#1

2nd Jan 2026 at 8:47 AM
Last edited by e.arth : 2nd Jan 2026 at
5:37 PM.
Custom adventures in tombs in The Sims 3 in a custom world
I’m trying to create custom adventures in tombs in The Sims 3 in a custom world.
After some testing, I think I’ve finally managed to identify part of the internal flow the game uses to link a tomb room to an opportunity.
From what I’ve been able to investigate, the game seems to store a string called
AdventureKey inside a specific
TombRoomMarker of the tomb (in such a way that, if that TombRoomMarker is deleted from the lot, the game stops identifying the location as the one linked to the opportunity). This string, in turn, is persisted in the
UNKN 0x04F7BDA7 resource, located inside the .world file. This resource apparently stores the state of the tomb rooms when the world is exported.
The interesting point is that there is no interaction on the TombRoomMarker that allows defining or editing the AdventureKey directly. This key seems to be introduced indirectly through the
TombRoomInfo.SetName() method. From what I’ve been able to understand, the TombRoomMarker instantiates a TombRoomInfo to register the room’s information, and it is during this process that the AdventureKey is created and stored. It apparently consists of a data pair made up of
TombRoomInfo.Name and an
ObjectId, possibly the ObjectId of the TombRoomMarker itself that holds the tomb’s Name.
The
AdventureComponent.LoadAdventureKeys method is responsible for saving this data. It also resets the tomb’s Name to
null at the end of the process. This method is called by
AdventureComponent.LoadAllWorldbuilderDataAndAdvendureKeys(), but I still haven’t been able to identify when this call actually occurs. When using
Analyze on it in ILSpy, nothing appears under
Used By, which makes it difficult to trace the exact point at which the game executes this routine.
However, I haven’t found any interaction or tool in the game that allows passing parameters to SetName() or directly manipulating AdventureKey.
My goal is to be able to read and modify the AdventureKey of a TombRoomMarker during gameplay so that it works in EIG, and to allow the creation of fully custom adventures in custom worlds before exporting. My initial idea would be to inject an interaction into the TombRoomMarker that could:
- call SetName() with a custom AdventureKey; or
- directly introduce the AdventureKey from the AdventureComponent class.
Could someone help me understand where to begin to inject this interaction?