• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

OTclientV8 ItemTooltip + rarity frames + custom color on item name

For those using TFS 1.5 Nekiro or any downgrade version, here is the most updated and correct one without mistakes. This is the best option.

I did used this commits (frames+tooltips work well) and when I kill monster or walk through doors I get tons of protocol errors. Also when moving items or interacting with any items (even onLook on doors). Using 1.5 downgrade by Nekiro. I was sitting whole night on this and nobody has answer to it. I'm 100% sure I did everything correct. I checked multiple times. I have tried literally everything in this post.
LUA:
ERROR: ProtocolGame parse message exception (347 bytes, 320 unread, last opcode is 0x14 (20), prev opcode is 0x6a (106)): InputMessage eof reached
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
ERROR: no thing at pos:533 944 7, stackpos:2
at:
    [C++]: ?getMappedThing@ProtocolGame@@QEAA?AV?$shared_object_ptr@VThing@@@stdext@@AEBV?$shared_object_ptr@VInputMessage@@@3@@Z
ERROR: no creature found to move
at:
    [C++]: ?parseCreatureMove@ProtocolGame@@AEAAXAEBV?$shared_object_ptr@VInputMessage@@@stdext@@@Z
ERROR: ProtocolGame parse message exception (623 bytes, 33 unread, last opcode is 0x20 (32), prev opcode is 0x6a (106)): unhandled opcode 32
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
ERROR: ProtocolGame parse message exception (243 bytes, 216 unread, last opcode is 0x14 (20), prev opcode is 0x6a (106)): InputMessage eof reached
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
ERROR: ProtocolGame parse message exception (303 bytes, 272 unread, last opcode is 0x12 (18), prev opcode is 0x6a (106)): unhandled opcode 18
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
 
I did used this commits (frames+tooltips work well) and when I kill monster or walk through doors I get tons of protocol errors. Also when moving items or interacting with any items (even onLook on doors). Using 1.5 downgrade by Nekiro. I was sitting whole night on this and nobody has answer to it. I'm 100% sure I did everything correct. I checked multiple times. I have tried literally everything in this post.
LUA:
ERROR: ProtocolGame parse message exception (347 bytes, 320 unread, last opcode is 0x14 (20), prev opcode is 0x6a (106)): InputMessage eof reached
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
ERROR: no thing at pos:533 944 7, stackpos:2
at:
    [C++]: ?getMappedThing@ProtocolGame@@QEAA?AV?$shared_object_ptr@VThing@@@stdext@@AEBV?$shared_object_ptr@VInputMessage@@@3@@Z
ERROR: no creature found to move
at:
    [C++]: ?parseCreatureMove@ProtocolGame@@AEAAXAEBV?$shared_object_ptr@VInputMessage@@@stdext@@@Z
ERROR: ProtocolGame parse message exception (623 bytes, 33 unread, last opcode is 0x20 (32), prev opcode is 0x6a (106)): unhandled opcode 32
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
ERROR: ProtocolGame parse message exception (243 bytes, 216 unread, last opcode is 0x14 (20), prev opcode is 0x6a (106)): InputMessage eof reached
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
ERROR: ProtocolGame parse message exception (303 bytes, 272 unread, last opcode is 0x12 (18), prev opcode is 0x6a (106)): unhandled opcode 18
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 860)
Yes, I know this error. You just need to revert the changes specifically in void ProtocolGame::sendAddTileItem.


Here’s the commit you can use, it will fix it for you:

 
Yes, I know this error. You just need to revert the changes specifically in void ProtocolGame::sendAddTileItem.


Here’s the commit you can use, it will fix it for you:

Thanks for answer.I did changed this in sendAddTileItem but then I had to change it also in sendUpdateTileItem and it fixed the issue with interacting with items, but after that I got this error ERROR: ProtocolGame parse message exception (272 bytes, 74 unread, last opcode is 0xaa (170), prev opcode is 0xb4 (180)): unknown message mode 0 and it seems like the fix from screenshot doesn't help. Every problems started with the rarity system. Idk im so lost, i fix one bug and then i get anothers. 1752772300660.webp
 
So for TFS 1.4.2, OTCv8 for frames and colors to work, I only need this, right?


and add the name "legendary" to e.g. mace

I'm just checking this out, because I think I did something wrong earlier and got the error "ERROR: unhandled opcode 32"
 
Here it is, complete and updated... You need to remember the server side if it's a name that will send 'Epic' to the client... So, you should set it like this here.
elseif (string.find(name, "Epic")) then

You need to check the modules game_inventory and container to see if they are lowercase or uppercase. If it's lowercase and you set it as lowercase on the server side, for example, 'Leo' or 'Oen' or any custom script, make sure the name is also lowercase, like rarity, epic, rare, etc. Understand? Both names need to match.
Post automatically merged:

Hello! Would these mods work with OTCR Mehah?

I'm getting some errors, probably 'cause it's looking for OTCv8 elements?

1764721253837.webp
 
Hello! Would these mods work with OTCR Mehah?
This rarity and tooltip system was only made for OTCv8 by Kondrah.
If you want something similar — rarities and tooltips — you’ll need to use another one, preferably the version made by MEHAH.


You can check this one here:
mehah tooltsips · kokekanon/TFS-1.4.2-Compatible-Aura-Effect-Wings-Shader-MEHAH@7764f37 (https://github.com/kokekanon/TFS-1.4.2-Compatible-Aura-Effect-Wings-Shader-MEHAH/commit/7764f3703ffba18c6a21a14bce08ea2ac15b4bee)


Or use the original OTC version from MEHAH, which already displays tooltips. You can download it, apply the changes, and test it.
I also recommend joining MEHAH’s community — they can help you better with this:

1764725502788.webp

 
This rarity and tooltip system was only made for OTCv8 by Kondrah.
If you want something similar — rarities and tooltips — you’ll need to use another one, preferably the version made by MEHAH.


You can check this one here:
mehah tooltsips · kokekanon/TFS-1.4.2-Compatible-Aura-Effect-Wings-Shader-MEHAH@7764f37 (https://github.com/kokekanon/TFS-1.4.2-Compatible-Aura-Effect-Wings-Shader-MEHAH/commit/7764f3703ffba18c6a21a14bce08ea2ac15b4bee)


Or use the original OTC version from MEHAH, which already displays tooltips. You can download it, apply the changes, and test it.
I also recommend joining MEHAH’s community — they can help you better with this:

View attachment 96412

I'm using official's Mehah 4b2 client.

Thanks man. I've done the changes in TFS based on this commit. Altought, I encountered several errors.
1764727778742.webp
I'm using black tek server (TFS 1.4.2 it should not be a problem)

First time i fixed the erros with copilot's help (I'm no professional developer), it compiled but wasn't working.

I'm sending you this image with the errors of the original commit's version. Am I missing something here?

Appreciate your help dude.
 
Here are the changes that I needed to do in order to compile:
I had to change mentions like:

C++:
msg.addItem(item, isMehah);

to

msg.addItem(item.get(), isMehah);

It is compiling and while debugging the client it seems to be working(?)

containers.lua

LUA:
local function setFrames()
  for _, container in pairs(g_game.getContainers()) do
      local window = container.itemsPanel
      for i, child in pairs(window:getChildren()) do
          local id = child:getItemId()
          local price = 0

          local name = child:getTooltip()
          print("id:", id)
          print("name:",child)
          child:setImageSource("/images/ui/item")
          if (name) then
            if (string.find(name, "legendary")) then
              child:setImageSource('/images/ui/rarity_gold')
            elseif (string.find(name, "epic")) then
              child:setImageSource('/images/ui/rarity_purple')
            elseif (string.find(name, "rare")) then
              child:setImageSource('/images/ui/rarity_blue')
            end
          end
      end
  end

The ID is being returned correctly,
The problems seems to be in the child:getTooltip() function.

@Mateus Robeerto I was unable to open your discord link, can you please send me the discord server credentials for mehah community?
Post automatically merged:

1764770435047.webp
 
Back
Top