Summary
Frees up the shared script init budget on big modlists by building heavy vanilla static data on first use instead of at startup.
Description
Large modlists can run out of room in the game's shared startup init. Every static value in vanilla and every loaded mod is built in one generated init function, and that function has a hard instruction limit. Vanilla already uses a good chunk of it. Once a modlist pushes past the limit, the server can crash on boot with odd errors that point at unrelated vanilla lines.
This mod moves 394 static fields across 219 vanilla script files out of that startup init. Each one is now built the first time something actually uses it. Values and behaviour stay the same. Only the timing changes. Mostly it covers AI behaviour tree port lists, script invokers, lookup arrays and maps.
How it was made
- The files were generated by a tool run over the installed game's scripts, not edited by hand.
- A field was only changed if nothing outside its own file reads it. That check covered the rest of vanilla, the Rally DLC and every mod on the ARGC server list.
- Fields that get reassigned, sit inside #ifdef blocks, or are plain values or constants were left alone.
- Vanilla files that another mod on the list already overrides were skipped.
Please note
- Don't run it alongside another mod that overrides the same vanilla script files, or one that reads these static fields directly.
- It has to be regenerated after any game update that touches these files. I'll update it after patches.
- It was checked against the ARGC modlist. Other modlists should work, but I can't promise every mod out there plays nicely with it.
- It's server and client. Clients download it automatically.
Built for game version 1.9.
by Silence_AUS for A.R.G.C.
License
Arma Public License Share Alike (APL-SA)