Memory handling of mutators

Are there any resources I’ve missed / files I’ve overlooked that might provide some clues as to the method by which the game activates/deactivates mutators for a given area? Some dives into the database files provided the mutators easily enough but no real clues about how that ends up structured on the memory side.

Is the game handling of it something like

  1. game assigns mutators to game regions (a collection of boolean flags?)
  2. game reads player’s current location and determines which region the player is in
  3. game enables/disables mutators as appropriate for player’s current region

Or is there a much simpler way to approach this specifically for forcing desired mutators in crucible, i.e. depopulating the list of mutators until there’s only 5 that will always show up?

I think developers would rather go with the easy way. Before you create something, you think of all easiest possibilities, then how exactly you’d want it to work and then implement it. They probably determine it via checking which map you’re in and then (eventually, if needed) add a condition if they want mutators to be applied earlier. Checking map coordinates and then putting an appropriate condition not only sucks to do, but also takes a long time to do.

Got myself a debugger and poked around the game files. Looks like Game.dll has most or all of the mutator related function calls with a good portion of them being multiplayer related at first glance. Going to be a deep dive and I don’t expect much with my limited assembly experience. Here goes…

World has a challenge area layer painted, the layer has database with difficulty modifiers, loot modifiers and a mutator list assigned to it.

In the Crucible and Shattered Realm, it’s handled via Lua.

1 Like

Found enough help on other posts to get mutator mods for crucible working!