Reset Behavior
Resets, along with game max and room max have interesting behavior. Not using them properly can have unintended consequences.
Recommendations to keep things simple
- The number of defined reset entries for a mob or object in the area always matches the game max: If you define 3 resets for a given mob in 3 different rooms, the game max should be set to 3.
- For each reset of a given mob/object, the game max should be set to the same value. Having game max set differently on different resets of the same mob/object will cause weird behavior.
- Don't set room max. (leave at 0)
Note that this still isn't perfect when mobs move around. The lowest numbered room will always load first if possible, and the results are the same whether room max is set or not. (if a mob leaves the first room and a player kills a mob a higher numbered room, a mob will repop in the first room and the second will be skipped)
What if you don't follow these guidelines?
If you don't follow these, here are some examples demonstrating how things work.
Example 1: Game max is higher than the number of total resets
- mob-1 is has a reset defined in room-1 and room-2
- Game max for each reset is set to 3. Room max is set to 0.
Results:
- Repop 1: One mob loads in room-1 and one in room-2.
- Repop 2: An additional mob resets in room-1.
- Sometime later: Player kills mob in room-2.
- Repop after: An additional mob resets in room-1, reaching game max of 3. No mob is loaded in room-2.
Explanation: Each room is processed in order of the room key. Since room-2 is processed second, the reset in room-1 is checked first, loading additional mobs up to the game max. This could be managed partially by setting a room max in room-1, but as mobs wander, the same behavior will be experienced - room-1 will load mobs, room-2 will not.
Example 2: Game max is mismatched between rooms.
- mob-1 has a single reset defined in room-1, room-2, and room-3.
- game max for reset in room-1 and room-3 are set to 3. game max for reset in room-2 is set to 4. Room max is set to 0.
Results:
- Repop 1: One mob loads in each of the three rooms.
- Repop 2: An additional mob loads in room-2, which has the higher game max.
- Sometime later: Player kills mob in room-3.
- Repop after: An additional mob loads in room-2, leaving room-1 with one and room-2 with 3. None are loaded in room-3.
Explanation: Similar to the above, but game max is checked in each room as it is processed - these are not globally checked. As room-1 is processed, the mud checks to see if the game max of 3 is reached, so doesn't load a mob. When room-2 is processed, the game max of 4 has not been reached, so it'll load an additional mob. Next, room-3 is processed, which again has a cap of 3.