First of all, I highly recommend you take advantage of the Windows Favorites widget so that you can quickly navigate to “Grim Dawn” to launch AM as well as your working and build folders (set in AM options) and any other locations you need to access for modding.
Here is my Working
and I am going to navigate to:
C:\Users\jiaco\Documents\My Games\Grim Dawn\Working\database\records\proxies
which is where AM just recently extracted the latest hotfixed game files.
In this location we have the following template counts:
proxy proxyambush
386 148
proxylevelvarianceequation proxylimits
32 10
proxypool proxypoolequation
561 1
setpiece setpiecepart
106 2
setpiecepool spawnondeathpool
120 40
While you may have seen a class field out there, it does not seem to be globally set, but if you take the base string of the templateName field, you can partition dbrs into sets of like. Same thing in AM, when you have multiple dbrs selected and then right-click Edit them, if they have the same template, they open simultaneously in a single DBREditor interface.
In addition to knowing how things work inside the game engine, you need to know how things work in the game. For a monster to spawn (they live in records/creature/enemies), it has to be in a ProxyPool that is linked to a Proxy. The Proxy is something that goes on the map when building a world, linked to a ProxyPool that stipulates all the monsters and some weights and spawn limit values.
Here is what you see in the top level proxies folder:
All of the limit_ dbrs control level scaling of enemies based on a painted feature on the world map. the lv#_ dbrs fine tune enemy difficulty. The proxypoolequation has some variables that can be use to globally alter the spawn min max values.
If you want to remove the feature whereby the vanilla game scales enemies to a certain limit depending upon map zone, then you are looking into the proxy records. There is a field in there, (AM:Proxy Config/difficultyLimitsFile) that is by default BLANK. In GD, you have lots of fields that can be blank or empty. My guess is that the template stores a default value for all fields and that if one is blank, it gets that value. In this case, I never looked up the default value but I know that setting it to limit_unlimited.dbr does what I want. To do this quickly, enter the area001 subfolder, select all the dbrs within (Ctrl-A) and then right-click and Edit them:
Here, each dbr is a column in the editor.
Double click the difficultyLimitsFile field name to open the mass-edit-editor:
And now here you have to use to top widget “…” to Set the value to “records/proxies/limit_unlimited.dbr” for all open records. Then click the Apply button before the OK button and then be sure to use File-Save to store that change for all open dbrs.
Notice I did not talk about ProxyAmbush nor the folders alongside area001 (boss&quest,devotion,factionspawns,poolsdeathspawn). They also have records to mod. The main distinction is that proxies (and ambush proxies) are in one folder with a companion folder to hold the ProxyPools. area001 has its pools in the records/proxies/pools location. For the rest, look for a specific subfolder for the pools (example: records/proxies/boxx&quest/boss&questpools).
The next component of an xmax mod is to open proxypoolequation and modify those values by X. You have poolValue * 1 right now for all 4 fields, spawnMin Max champMin Max. You can just bump those values in so many ways. In addition, some proxies use the champion vs non-champion distinction in different ways. If you want to do a Grimmest style mod, you have to go in and mod ProxyPools manually.
There you can see that each entity has 4 main values. the name points to the dbr of the monster to spawn. The weight is a number that is used to give the frequency [(IndividualWeight / SumofAllWeights) * 100 -> % chance] that the named monster will spawn. Then you have the levelVarianceEquation, which I mentioned earlier, the name of the dbr is quite obvious about the intention. By setting a monster to a higher value, you get a better chance that that monster is over-leveled compared to the toon. The 4th field is sort of optional, the minPlayerLevel and maxPlayerLevel set the level range (of the pc/toon) that can encounter the monster. I use the minPlayerLevel to make Grimmest easier in the early areas.
Modding the pools takes manual work. You can see in a comparison of vanilla and the Grimmest source what has been done. It is a fine polish type of modding where you add in as many heroes to the Champion Pool slots and try to up the rate of encounters full of different enemies and scale back the fodder at the same time.
Once you run out of heroes of a type, you can see that the next step is to copy paste generate some new monsters and then go in and customize them, give them new skills and weapons.
What else do you need to know?