Galdia
Banned User
- Joined
- Oct 5, 2025
- Messages
- 13
- Reaction score
- 4
Hey Guys,
I just read this post about using CIDs in the OT server to simplify things (not sure it's a great idea, but it did get me thinking):
Removing .otb – Only Using .dat (https://otland.net/threads/removing-otb-only-using-dat.301613/#post-2789558)
One topic that's not talked about as often in OTdev is UniqueIDs:
Note: By ‘UniqueID’ here I mean the per-session ID assigned by the server to each item/creature, not the static map UniqueID or the OTB Item ID.
You can actually sort of take advantage of these to unlock basically cool new additional functionality in the game!
While these values may look like random, there’s actually some meaningful structure behind them: Digging into the code, we see some meaning is encoded into the upper UniqueID bits.
For example:
These values actually get interpreted by the Tibia client and directly affect how the game treats the entity.
For instance, if an ID starts with 0x1, the client treats it exactly like a player: enabling options like:
To clarify; there may be even more to this, but what I'm explaining here is simply that by using the 0x10000000 ID prefix you can enable player-specific options.
How We Use It:
To get more interesting interactions between players and NPCs we've been using 0x1 uniqueIDs to allow NPCs to be added to VIP lists and messaged privately.
For example if you message the 'Maya' NPC she will write down any issues or suggestions and then automatically emails the game devs (us).
Btw: To deal with the ambiguousness of player messages we use a free LLM (Gemma3) for language understanding / response generation.
Future Ideas:
In theory, this could open the door to more creative mechanics, like:
Do let me know if I have messed up any terminology or failed to explain fully,
OT dev is so fun, We really appreciate you guys!
I just read this post about using CIDs in the OT server to simplify things (not sure it's a great idea, but it did get me thinking):
Removing .otb – Only Using .dat (https://otland.net/threads/removing-otb-only-using-dat.301613/#post-2789558)
One topic that's not talked about as often in OTdev is UniqueIDs:
Note: By ‘UniqueID’ here I mean the per-session ID assigned by the server to each item/creature, not the static map UniqueID or the OTB Item ID.
You can actually sort of take advantage of these to unlock basically cool new additional functionality in the game!
While these values may look like random, there’s actually some meaningful structure behind them: Digging into the code, we see some meaning is encoded into the upper UniqueID bits.
For example:
- All monster UniqueIDs start with: 0x4(0000000)
- While player UniqueIDs start with: 0x1(0000000)
These values actually get interpreted by the Tibia client and directly affect how the game treats the entity.
For instance, if an ID starts with 0x1, the client treats it exactly like a player: enabling options like:
- Add to VIP
- Open trade
- Add to party (note these all function, Even if the entity is actually a mob or NPC.)
To clarify; there may be even more to this, but what I'm explaining here is simply that by using the 0x10000000 ID prefix you can enable player-specific options.
How We Use It:
To get more interesting interactions between players and NPCs we've been using 0x1 uniqueIDs to allow NPCs to be added to VIP lists and messaged privately.
For example if you message the 'Maya' NPC she will write down any issues or suggestions and then automatically emails the game devs (us).
Btw: To deal with the ambiguousness of player messages we use a free LLM (Gemma3) for language understanding / response generation.
Future Ideas:
In theory, this could open the door to more creative mechanics, like:
- Letting neutral mobs join a player’s party
- Allowing trades with wild orc NPCs etc
Do let me know if I have messed up any terminology or failed to explain fully,
OT dev is so fun, We really appreciate you guys!