In making the snippet I think I've identified the problem. I'm using custom wear and unwear commands because I'm changing a boolean when clothes are worn and unworn, and that seems to be overriding the inventory_worn limit.
Like I say, it's easily worked around!
######################################
# Adventuron #
###################################### start_at = house_upstairs ######################################
# Locations #
###################################### locations { house_upstairs : location "You are upstairs." ;
} ######################################
# Objects #
###################################### objects {
clothes : object "your normal clothes" wearable = "true" initially_worn = "true" ;
outfit : object "an outfit" wearable = "true" start_at = "house_upstairs" ;
dress : object "a dress" wearable = "true" start_at = "house_upstairs" ;
jacket : object "a jacket" wearable = "true" start_at = "house_upstairs" ;
} ######################################
# On Command #
###################################### on_command { : match "unwear clothes" {
: if (is_worn "clothes") {
: unwear "clothes" ;
: set_true "not_wearing_clothes" ;
: done ;
}
}
: match "unwear outfit" {
: if (is_worn "outfit") {
: unwear "outfit" ;
: set_true "not_wearing_clothes" ;
: done ;
}
}
: match "unwear dress" {
: if (is_worn "dress") {
: unwear "dress" ;
: set_true "not_wearing_clothes" ;
: done ;
}
}
: match "unwear jacket" {
: if (is_worn "jacket") {
: unwear "jacket" ;
: set_true "not_wearing_clothes" ;
: done ;
}
}
: match "wear clothes" {
: wear "clothes" ;
: if (is_worn "clothes") {
: set_false "not_wearing_clothes" ;
}
: done ;
}
: match "wear outfit" {
: wear "outfit" ;
: if (is_worn "outfit") {
: set_false "not_wearing_clothes" ;
}
: done ;
}
: match "wear dress" {
: wear "dress" ;
: if (is_worn "dress") {
: set_false "not_wearing_clothes" ;
}
: done ;
}
: match "wear jacket" {
: wear "jacket" ;
: if (is_worn "jacket") {
: set_false "not_wearing_clothes" ;
}
: done ;
}
} ######################################
# Booleans #
###################################### booleans {
not_wearing_clothes : boolean "false" ;
}
######################################
# Integers #
###################################### integers {
clothes_limit : integer "1" ;
} ######################################
# Settings #
###################################### settings {
inventory_worn_items_limit_var = clothes_limit
}