Naming Packs and Tables for Prioritization & Load Order
Pack File Names
The pack file launcher is not to be trusted to tell you the priority of the contents.
Given packs with all identical table names (but different values), the results usually follow in this priority order:
- Numbers starting with 0.
- Symbols (I believe they start with ! or @ as highest)
- __
- Letters
Additionally, Steam tracks each characters from left to right.
So 00 has a higher priority than 0 or 0!
9@ has a higher priority in loader order than @0.
Note that this does not follow ASCII convention which is what many modders as well as the mod manager believes.
I have tested this quite a number of times. Several times, I found that symbols out-prioritized 0-starting mods. I am not sure how this happened. There is some inconsistency. It may not matter once you read the next section.
Tables Call the Priority!
The various data sections in a pack file are called "Tables".
A) The labeling of the tables trumps the labeling of the Pack files.
If your pack file start with a 0 and a table is named building_effects, it will lose in priority to a packfile that starts with z with a table named @building_effects.
B) Tables follow the same precedence rules as Pack files:
Given tables with all identical table names (but different values), the results seem to always follow in this priority order:
- Numbers starting with 0.
- Symbols (I believe they start with ! or @ as highest)
- __
- Letters
Additionally, the launcher matches each characters from left to right.
So 00 has a higher priority than 0 or 0!
However, it seems to group similars before proceeding to the second digit.
So 5z will have a higher priority than 61 even though 1 has a higher priority than z.
It looks at the first digit, picks the few tables that start with the highest priority, then decides which one to pick based on the priority of the second digit.
Example: You load three pack files with same different names.
The building_effects tables in a given level in each pack start with 0b, 00, 000, @b, 99b, @0b and __b.
In what order will they load?
000
00
0b next
99b next
@0b next
@b next
__b last (haven't tested this one yet)
Overwriting entire files
Do you want to completely obliterate the contents of a Vanilla table or another mod that uses a name you like for a table?
Create a table with the exact same name as that table.
AND set the load order.
This is the only time a load order is required. I use Kaedrin's Mod Manager to set load order when I must. It seems to stick after I set it the first time. Otherwise, make sure your packfile mod has a prefix lower than the target. If you are overwriting Data.pack, you don't need to set the load order.
This is important to know if you are using someone else's mod. Many lazy modders forget to rename their tables. They create small tables with their mods and forget that they just overwrote Vanilla, creating a multitude of bugs for those using the mods.
I found this works for games from Rome2 to Troy. Not sure about later games.
Example: I wanted to completely overwrite the broken Radious garrison tables, but they kept sneaking into my mod.
I named a armed_citizenry to match his table name and added 1 row with a index of 0 in the table.
It completely removed his mod's garrison entries.
This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.