diff --git a/code/controllers/subsystem/dynamic/_dynamic_ruleset.dm b/code/controllers/subsystem/dynamic/_dynamic_ruleset.dm index ece1d5f1b4b..282c83d8f0f 100644 --- a/code/controllers/subsystem/dynamic/_dynamic_ruleset.dm +++ b/code/controllers/subsystem/dynamic/_dynamic_ruleset.dm @@ -110,6 +110,7 @@ if(new_var in locked_config_values) log_dynamic("Bad config edit rejected: [new_var]") return FALSE + if(islist(new_val) && (new_var == NAMEOF(src, weight) || new_var == NAMEOF(src, min_pop))) new_val = load_tier_list(new_val) @@ -128,7 +129,16 @@ var/alist/tier_list = alist() // loads a list of list("2" = 1, "3" = 3) into an alist(2 = 1, 3 = 3) for(var/tier in incoming_list) - tier_list[text2num(tier)] = incoming_list[tier] + var/tier_value = text2num(tier) + if (tier_value > DYNAMIC_TIER_HIGH) + stack_trace("Dynamic config for [name] encountered a tier value exceeding DYNAMIC_TIER_HIGH!") + message_admins(span_boldannounce("Dynamic config for [name] encountered a tier value exceeding DYNAMIC_TIER_HIGH!")) + tier_value = DYNAMIC_TIER_HIGH + else if (tier_value < DYNAMIC_TIER_GREEN) + stack_trace("Dynamic config for [name] encountered a negative tier value, below DYNAMIC_TIER_GREEN!") + message_admins(span_boldannounce("Dynamic config for [name] encountered a negative tier value, below DYNAMIC_TIER_GREEN!")) + tier_value = DYNAMIC_TIER_GREEN + tier_list[tier_value] = incoming_list[tier] return tier_list