No screenshots yet.
|UIDCollisionFinder.mut||2.17 kB||05 Apr 2017|
Technically this is a mutator, but you might also think of it as a Utility, one whose purpose is to help you in designing levels.
Clients and servers are able to communciate about the statuses of specific objects, such as pickups, because the game has assigned them “UIDs.” The U is short for Universal, but unfortunately that’s not always true, and multiple objects are sometimes assigned the same UID, which is known as collision.
The nastiest case of this is when both colliding objects are created by generators—usually pickups, because of how JJ2 level design tends to go—in which case one of the two colliding objects will stop spawning for clients altogether until the server specifically intervenes. For example, the bottom left corner of Battle3 has four rows of generating ice ammo pickups; however, the bottom row almost never respawns for clients, because their UIDs collide with events elsewhere in the level.
This mutator identifies which pairs of objects will be assigned the same UID, letting you fix those pairs before releasing your level. Collisions can be resolved by changing the positions of one or both objects, changing the eventIDs of one or both objects (e.g. replacing some bouncers with toasters), or changing the width of the level. Of course, remember to run the mutator again afterwards, because you might have introduced new collisions while removing the old ones.
This mutator arguably overgenerates in its reports: any two objects named will have the same UID, but that won’t necessarily be a problem. If a Steady Light and a Red Spring collide, for example, that doesn’t matter much, since there’s little reason the server would need to communicate with clients about either of those objects. Pickups being prevented from spawning is the worst case and should definitely be addresed. Still, all collisions get reported just in case, and you can figure out for yourself which ones are or aren’t worth worrying about.
Eat your lima beans, Johnny.