From 81d09aee14cc4963cfea92ade7251aea2a8e27cb Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 20 Jul 2025 16:21:53 +0300 Subject: [PATCH] Add workaround & logging for mods that use incorrect building ID's --- lib/entities/faction/CTownHandler.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/entities/faction/CTownHandler.cpp b/lib/entities/faction/CTownHandler.cpp index 066632ecc..373149114 100644 --- a/lib/entities/faction/CTownHandler.cpp +++ b/lib/entities/faction/CTownHandler.cpp @@ -889,6 +889,13 @@ void CTownHandler::beforeValidate(JsonNode & object) return; JsonNode baseCopy(buildingsLibrary[name]); + + if (target.Struct().count("id") && baseCopy.Struct().count("id")) + { + logMod->warn("Mod '%s': Town building '%s' has specified 'id' field for a predefined building! Ignoring this field.", target["id"].getModScope(), name); + target.Struct().erase("id"); + } + baseCopy.setModScope(target.getModScope()); JsonUtils::inherit(target, baseCopy); };