A one-file-per-building fix for Delenda Est R28, which references ten technologies by the wrong path. The result is a JavaScript error thrown every time an affected building is drawn or hovered, which in a normal game means thousands of them.
ERROR: JavaScript error: globalscripts/Technologies.js line 141
undefined has no properties
DeriveTechnologyRequirements@globalscripts/Technologies.js:141
Researcher.prototype.GetTechnologiesList@simulation/components/Researcher.js:223
One game of mine produced 11,537 error lines, of which 5,554 were this. Error logging is synchronous and writes to disk, so on older hardware it's a genuine cause of stutter, not just noise in the log.
Delenda Est moved a lot of its technologies into subdirectories and didn't
update the buildings that research them. The technologies all still exist, they
just aren't where the templates say they are, so the lookup returns undefined
and DeriveTechnologyRequirements falls over on template.requirements.
| Referenced as | Actually lives at | In |
|---|---|---|
pair_tower_01 |
defense_tower/pair_tower_01 |
Yayoi stone defence tower |
range_defensive_loopholes |
defense_tower/range_defensive_loopholes |
Yayoi stone defence tower |
range_defensive_murderholes |
defense_tower/range_defensive_murderholes |
Yayoi stone defence tower |
training_animals_husbandry |
corral/training_animals_husbandry |
Suebi farmstead |
gather_draft_animals |
corral/gather_draft_animals |
Suebi farmstead |
training_animals_stockbreeding |
gather_animals_stockbreeding |
Suebi farmstead |
health_citizens_01 |
house/health_citizens_01 |
Cimbri and Gothic wagon houses |
corral/training_animals_stockbreeding |
gather_animals_stockbreeding |
Hunnic stable |
nomads/range_cavalry_archers_parthian_tactics |
stable/parthian_tactics |
Hunnic stable |
nomads/gather_hunting_dogs |
gather_hunting_dogs |
Hunnic support wagon |
Ships corrected copies of the six affected templates, taken verbatim from Delenda Est with only the technology paths changed. Nothing else is touched, no balance is altered, and the technologies work as they were presumably meant to, which means the Yayoi actually get their tower upgrades back.
Copy this folder to your 0 A.D. mods directory and enable it after Delenda Est, so it takes precedence:
mod public 0ad_delenda_est_r28 de-tech-fix
macOS: ~/Library/Application Support/0ad/mods/de-tech-fix
Linux: ~/.local/share/0ad/mods/de-tech-fix
Because 0 A.D. mods replace whole files rather than patching them, these are copies of Delenda Est's templates as of R28 0.28.0. If Delenda Est updates those six buildings, this will hold them at the old version until I refresh it. Once upstream fixes the paths, delete this mod.
Verified by running a Yayoi game on Hindu Kush for 3,423 turns with zero errors, and by checking that every technology referenced by every building in the chain now resolves.
orchardroot, made in Cheshire, mostly out of irritation.