• 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!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Exaltation forge otland tfs

Katherine

New Member
Joined
Sep 12, 2011
Messages
6
Solutions
1
Reaction score
1
Hi guys.. I am back to tibia from 10 years absent and now i see many good things on it.
Was looked inside code and didn't found any distro with Equipment upgrade things

i ran tibia 12 client and looking for this
1659118826282.png

as you can see client don't understand how much items player got...


ok so first step is send bytes to server to get client request
so this is how we can easy debug
LUA:
function onRecvbyte(player, msg, byte)
    print("recieved byte: " .. byte)
    print(msg)
    print("==============")
end


and we got this in console:



Code:
recieved byte: 237
userdata: 0x42594768
==============
recieved byte: 237
userdata: 0x42594810
==============
recieved byte: 237
userdata: 0x425948b8
==============
recieved byte: 237
userdata: 0x42594960
==============
recieved byte: 237
userdata: 0x42594a08
==============
recieved byte: 192
userdata: 0x42594ab0
==============


2. Filtered 237 = 0xED because other buttons uses it too, we will do some updates later.
But now we look "unique" button id (if we can say that).. is 192 = 0xC0

So now we must answer to client with some data to set information about allowed items etc etc...
Who maybe working on it or have some info? Or maybe it already done?
 
I have it fully functional except for saving history to the database, but I made a lot of source edits so don't expect it to work on clean tfs

I also have plans to move parsing to c++ so keep in mind that this isn't final version
 
So nice🥰 to see that you are very smart and i understand how much time you lost to catch every byte.. Uhhh :eek:

WOW
my next question was about tournament but now i see answers lol
I LOVE YOU!!!!!!!!!

LUA:
        //case 0xBF: break; // exaltation forge (scripted)
        //case 0xC0: break; //request forge history (scripted)
        // 0xC1-0xC2 - empty
        // 0xC3 - tournament ui 1
        // 0xC4 - tournament ui 2
        // 0xC5 - empty
        // 0xC6 - tournament ui 3
        // 0xC7 - tournament ui 4
        // 0xC8 - tournament ui 5


Just say if i will finish "history" for forge upgrades may it help you ? I don't have any server and living in Ukraine so any time a bomb can destroy my house lol... just coding on home pc cuz a lot of free time
 
Last edited:
Just say if i will finish "history" for forge upgrades may it help you ?
it could help

I haven't decided on how to handle the database yet (to keep it compatible with clean tfs) so I decided to do edit other systems first.
 
I have it fully functional except for saving history to the database, but I made a lot of source edits so don't expect it to work on clean tfs

I also have plans to move parsing to c++ so keep in mind that this isn't final version
any way to add the changes to my otbr source code?
 
what is this otbr?
otservbr-global - RL Tibia server 12+ (map, quests, systems ex. autoloot). A bit buggy, but with a lot of features from 12+.
Engine:
Datapack (RL map 12+ compatible with 'canary' engine):
 
yea and if do this
<module type="recvbyte" byte="192" script="forge1280/000_constants.lua" />
<module type="recvbyte" byte="192" script="forge1280/010_config.lua" />
<module type="recvbyte" byte="192" script="forge1280/020_functions.lua" />
<module type="recvbyte" byte="192" script="forge1280/030_protocol.lua" />
<module type="recvbyte" byte="192" script="forge1280/040_monsters.lua" />
<module type="recvbyte" byte="192" script="forge1280/050_find_fiend_spell.lua" />
it got bugged with unknown functions.. but strange if otbr based on tfs need to some code c++ i think


i got tested
Bash:
[2022-10-08 10:05:49.128] [error] Lua script error:
scriptInterface: [Test Interface]
scriptId: [data/modules/scripts/forge1280/000_constants.lua]
timerEvent: []
 callbackId:[]
function: []
error [data/modules/scripts/forge1280/000_constants.lua:5: attempt to perform arithmetic on global 'RESOURCE_FORGE_DUST' (a nil value)
stack traceback:
        [C]: in function '__add'
        data/modules/scripts/forge1280/000_constants.lua:5: in main chunk]
[2022-10-08 10:05:49.129] [warning] [Event::checkScript] - Can not load script: scripts/forge1280/000_constants.lua
[2022-10-08 10:05:49.129] [error]
[2022-10-08 10:05:49.130] [error] Lua script error:
scriptInterface: [Test Interface]
scriptId: [data/modules/scripts/forge1280/010_config.lua]
timerEvent: []
 callbackId:[]
function: []
error [data/modules/scripts/forge1280/010_config.lua:65: table index is nil
stack traceback:
        [C]: in function '__newindex'
        data/modules/scripts/forge1280/010_config.lua:65: in main chunk]
[2022-10-08 10:05:49.130] [warning] [Event::checkScript] - Can not load script: scripts/forge1280/010_config.lua
[2022-10-08 10:05:49.130] [error]
[2022-10-08 10:05:49.132] [error] Lua script error:
scriptInterface: [Test Interface]
scriptId: [data/modules/scripts/forge1280/020_functions.lua]
timerEvent: []
 callbackId:[]
function: []
error [data/modules/scripts/forge1280/020_functions.lua:2: attempt to call global 'getForgeMeta' (a nil value)
stack traceback:
        [C]: in function 'getForgeMeta'
        data/modules/scripts/forge1280/020_functions.lua:2: in main chunk]
[2022-10-08 10:05:49.132] [warning] [Event::checkScript] - Can not load script: scripts/forge1280/020_functions.lua
[2022-10-08 10:05:49.132] [error]
[2022-10-08 10:05:49.133] [error] Lua script error:
scriptInterface: [Test Interface]
scriptId: [data/modules/scripts/forge1280/030_protocol.lua]
timerEvent: []
 callbackId:[]
function: []
error [data/modules/scripts/forge1280/030_protocol.lua:61: attempt to call global 'setPacketEvent' (a nil value)
stack traceback:
        [C]: in function 'setPacketEvent'
        data/modules/scripts/forge1280/030_protocol.lua:61: in main chunk]
[2022-10-08 10:05:49.134] [warning] [Event::checkScript] - Can not load script: scripts/forge1280/030_protocol.lua
[2022-10-08 10:05:49.134] [error]
[2022-10-08 10:05:49.135] [error] Lua script error:
scriptInterface: [Test Interface]
scriptId: [data/modules/scripts/forge1280/040_monsters.lua]
timerEvent: []
 callbackId:[]
function: []
error [data/modules/scripts/forge1280/040_monsters.lua:211: attempt to index local 'ec' (a nil value)
stack traceback:
        [C]: in function '__newindex'
        data/modules/scripts/forge1280/040_monsters.lua:211: in main chunk]
[2022-10-08 10:05:49.136] [warning] [Event::checkScript] - Can not load script: scripts/forge1280/040_monsters.lua
[2022-10-08 10:05:49.136] [error]
[2022-10-08 10:05:49.137] [warning] [Event::checkScript] - Event onRecvbyte not found scripts/forge1280/050_find_fiend_spell.lua
 
if otbr based on tfs need to some code c++ i think
OTBR didn't base their tiers code on TFS. Both engines developed their own implementation of tiers after 12.80 update which is why this code it may be hard to port.
Both codes are independent - not based on each other. Some of us only exchanged packet structure info.

Otland TFS tiers implementation is loosely based on my fork, but it's mostly just workarounds to get it working, no actual functionality.

I finished moving packets parsing to c++ btw. setPacketEvent is no longer used for forge
 
I have it fully functional except for saving history to the database, but I made a lot of source edits so don't expect it to work on clean tfs

I also have plans to move parsing to c++ so keep in mind that this isn't final version
Will the final content of the exaltation forge be public? I would like to test it...
 
Has this topic been abandoned?

The TFS repository on GitHub (otland) is essentially abandoned.


If you're waiting for someone to submit a pull request to the TFS 13.10 with Forge repository, you'll probably be waiting at least 10 years… and another 10 years for it to be reviewed and approved.


If you're looking for a project that implements all features of Tibia, use Canary.
 
The TFS repository on GitHub (otland) is essentially abandoned.


If you're waiting for someone to submit a pull request to the TFS 13.10 with Forge repository, you'll probably be waiting at least 10 years… and another 10 years for it to be reviewed and approved.


If you're looking for a project that implements all features of Tibia, use Canary.
tfs is abandoned?
1755686867831.webp
 
tfs is abandoned?
Do you know why the TFS team on Otland doesn’t want to rush things like Canary does? Because rushing only causes bugs, memory leaks, and poorly implemented features. Canary might have some cool 12.x+ protocol features, but it’s full of problems. On top of that, it uses a bunch of unnecessary files it would be much better to keep everything in the original files and only adapt when needed.

TFS, on the other hand, is carefully planned and comes with the new network system, which follows the same structure as module.cpp and .h for communication. This allows mixing a bit of C++ with almost full Lua support, making it possible to send data properly to the client.

I tested this myself: on OTC Mehah and OTCv8 (my custom client running on TFS 1.7 8.60), I implemented the Forge system. For Mehah, I ran it with TFS 1.6 13.10 and the Forge worked perfectly. It wasn’t easy it took a lot of work but I managed it thanks to the new network system, which recognizes Forge and sends it correctly to both the CIP client and the OTC Mehah.

TFS is designed with stability in mind, avoiding headaches, memory leaks, and broken features. For me, TFS is the better choice right now. It doesn’t matter if it has fewer features what matters is that it’s stable and 100%. Canary often breaks things and causes issues from time to time… I’d rather stick with something stable

Note: I’m already working on TFS 1.6 with protocol 14.05. I’m still trying to upgrade it to 15.x soon, and then I’ll implement the missing systems like Imbuements, Charms, and the Wheel of Destiny.

OTC MEHAH.

1755689236406.webp

Otcv8 custom
1755689273609.webp
 
@Mateus Robeerto
I admit it, you’ve got balls to brag about a stolen, decrypted module and server side code made with AI…
1755707151355.webp



-------------------------------------


The Lua network system is like 5 to 10 years old, I don't know what you're talking about…
  • Features
kid Check the pull requests...

There’s a graveyard of features like stash, cyclopedia, bestiary, quickloot, httpclient, vipgroups, and others,
from real developers, not AI, that will NEVER be approved
because some are too purist.
Some quotes from PR:
1) "The content of this PR is not intended to be merged because there are voices in the community that the engine should be clean without unnecessary things such as things from the 12+ protocol."
2) "I think adding this to TFS would be a mistake, it's not needed, and for many like myself, not wanted"
3) " I obviously highly disagree with the thought that this needs merged"
4) " don't think it makes sense to merge it to this project"


What makes you think your little piece of AI code will be taken seriously?

  • Protocol change
There’s a PR for 13.16, just changing a few bits, it’s been waiting a year without approval, and they even closed it.
Do you really intend to reach protocol 14, breaking most of the features in the PRs I mentioned earlier (because the packets aren’t the same) [evil punk will return and comment "need rebase 🤣 "]?

By the way, did you reverse engineer with Wireshark or are you copying the packets from Canary?

And on top of that, you want to copy protocol header 15 from Canary? Do you know how much work and research they needed so you could just copy it into TFS?

@Mateus Robeerto
@Mateus Robeerto
 
Last edited:
Do you know why the TFS team on Otland doesn’t want to rush things like Canary does? Because rushing only causes bugs, memory leaks, and poorly implemented features. Canary might have some cool 12.x+ protocol features, but it’s full of problems. On top of that, it uses a bunch of unnecessary files it would be much better to keep everything in the original files and only adapt when needed.

TFS, on the other hand, is carefully planned and comes with the new network system, which follows the same structure as module.cpp and .h for communication. This allows mixing a bit of C++ with almost full Lua support, making it possible to send data properly to the client.

I tested this myself: on OTC Mehah and OTCv8 (my custom client running on TFS 1.7 8.60), I implemented the Forge system. For Mehah, I ran it with TFS 1.6 13.10 and the Forge worked perfectly. It wasn’t easy it took a lot of work but I managed it thanks to the new network system, which recognizes Forge and sends it correctly to both the CIP client and the OTC Mehah.

TFS is designed with stability in mind, avoiding headaches, memory leaks, and broken features. For me, TFS is the better choice right now. It doesn’t matter if it has fewer features what matters is that it’s stable and 100%. Canary often breaks things and causes issues from time to time… I’d rather stick with something stable

Note: I’m already working on TFS 1.6 with protocol 14.05. I’m still trying to upgrade it to 15.x soon, and then I’ll implement the missing systems like Imbuements, Charms, and the Wheel of Destiny.

OTC MEHAH.

View attachment 94392

Otcv8 custom
View attachment 94393
I've never seen so much non-sense written in a single message..
 
tfs is abandoned?
Have you seen the number of abandoned PRs, or the ones closed after years of waiting?
Have you seen the number of unresolved issues? Some are more than 10 years old, others just got closed.
Have you seen the amount of memory leaks, (commits fix, issues, pr)?
Have you seen the number of bugs since the new pathfinding?
How many developers are currently active?
What is the frequency of new commits in the main branch?
Did you see that some time ago it couldn’t even compile on Linux and they had to revert commits?

1755707535375.webp

Do you even use the main repo, or are you only on the 1.6 downgrade…? Speak with facts.
 
Last edited:
Do you know why the TFS team on Otland doesn’t want to rush things like Canary does? Because rushing only causes bugs, memory leaks, and poorly implemented features. Canary might have some cool 12.x+ protocol features, but it’s full of problems. On top of that, it uses a bunch of unnecessary files it would be much better to keep everything in the original files and only adapt when needed.

TFS, on the other hand, is carefully planned and comes with the new network system, which follows the same structure as module.cpp and .h for communication. This allows mixing a bit of C++ with almost full Lua support, making it possible to send data properly to the client.

I tested this myself: on OTC Mehah and OTCv8 (my custom client running on TFS 1.7 8.60), I implemented the Forge system. For Mehah, I ran it with TFS 1.6 13.10 and the Forge worked perfectly. It wasn’t easy it took a lot of work but I managed it thanks to the new network system, which recognizes Forge and sends it correctly to both the CIP client and the OTC Mehah.

TFS is designed with stability in mind, avoiding headaches, memory leaks, and broken features. For me, TFS is the better choice right now. It doesn’t matter if it has fewer features what matters is that it’s stable and 100%. Canary often breaks things and causes issues from time to time… I’d rather stick with something stable

Note: I’m already working on TFS 1.6 with protocol 14.05. I’m still trying to upgrade it to 15.x soon, and then I’ll implement the missing systems like Imbuements, Charms, and the Wheel of Destiny.

OTC MEHAH.

View attachment 94392

Otcv8 custom
View attachment 94393
I know that tfs is not abandoned. I just showed ss with the development of it :D But of course, everything needs good marketing, and Canary dev tried this here
 
Back
Top