GUID

From Retro Modding Wiki
Jump to navigation Jump to search

A GUID is a 128-bit ID used to uniquely identify an object. They are used in Metroid Prime 3: Corruption and Donkey Kong Country Returns to uniquely identify a value stored in the save file. They are also commonly used in Donkey Kong Country: Tropical Freeze as identifiers for all sorts of objects.

MP3/DKCR

Script objects that need to preserve data between play sessions will have a GUID listed as a property (with property ID 0x16D9A75D, which hashes to "ObjectId"). That ID is also stored in the SAVW file and associated with the object's instance ID. At runtime, when the object is loaded it uses the GUID to look up the value of the parameter and then updates itself accordingly. The GUIDs declared from the SAVW file are only valid within the world the SAVW file is associated with; reusing the same GUID from a different world is treated as a separate value.

GUIDs are also used by script layers to track whether the layer is active. The GUIDs associated with each layer can be found in the MLVL file. Layer GUIDs are different from the other IDs in that they are valid across the entire game, when referenced from any world.

GUIDs are used by the following objects:

Object Usage MP3 DKCR
Script Layer Tracks whether the layer is active or not.
CinematicCamera Tracks whether the cutscene has been watched before. If so, cinematic skip can be enabled. (CinematicCameras that don't have cinematic skip enabled don't have a GUID.)
MemoryRelay Tracks whether the relay is active.
Door Tracks whether the door has been opened at some point during gameplay. This is used to change the door color on the map.
Pickup Tracks whether the pickup has been acquired before.
  • In MP3, this is used to remove upgrades and expansions that the player has already collected from the map.
  • In DKCR, this is used to grey out puzzle pieces that the player has already collected and prevent them from being collecting a second time.