• 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!

Best TFS Data Pack to Start a New OTS Project?

OTAmator

Active Member
Joined
May 4, 2016
Messages
99
Solutions
1
Reaction score
31
Hey,
Which TFS data pack do you think is currently the best to start a new OTS project and I’m searching for the best TFS data pack to build it on. Ideally, it should meet the following:
  • As bug-free and stable as possible
  • Lots of modern engine features (e.g., revscript support, extra systems)
  • Includes as many Tibia 10+ sprites as possible


    What would you recommend? My plan is to downgrade it to version 7.4/8.0.
    If you were starting a project from scratch right now, which engine would you choose?
 
Last edited:
So should i just use the newest version of tfs engine?
yeah and start creating your OT from scratch most datapacks are outed they use stupid codes and weird configurations, doing your thing is the best as global intelligence is rising you can't look to files from the past and improve it and expect it to be all fine, you will find bugs, issues, crashes..etc best to do is use gesior version of 1.4.2

Post automatically merged:

this version includes major fixes applied on tfs 1.5 that wasn't on 1.4.2 makes it the most stable version
 
If you want a non-custom project you surely can start with this


Now for a custom one with wings aura shader etc etc


The best options so far

ps: why you @Tofame stopped working with TMS :(
 
If you want a non-custom project you surely can start with this


Now for a custom one with wings aura shader etc etc


The best options so far

ps: why you @Tofame stopped working with TMS :(
There are always problems with some libs, as they change all the time. Examples are boost api change, fmt 2x "breaking" changes over last 2 years.
I dont want to keep an eye on that, when other people already do the same. The idea of "TMS" is continued by alyson, which you linked, in a better way - as always, its best to keep unchanged 1.4.2 alive and stable.

There is also Commits · Black-Tek/BlackTek-Server (https://github.com/Black-Tek/BlackTek-Server/commits/master/), which is a fork of TFS 1.4.2, meant to optimize/fix 1.4.2 issues and on top of that do custom stuff/go in a way to become general game engine.

Since you want custom/extra systems, look at BlackTek. @OTAmator
 
I see a lot of people working on TFS 1.4 forks for years. Maybe someday we will all work together on single repository.
I once asked about development of official 'TFS 1.4' branch on otland github (to make 1.4.3, 1.4.4 etc.), but some devs said it's useless and they want to work on new versions :(
There are always problems with some libs, as they change all the time.
That's what my branch focus on. It's named 'compilation', because I update TFS 1.4 to make it compile on newest Windows and Linux.

My branch has 3 goals:
  • make it compile on newest Windows/Linux (for compilation use instructions from newest TFS master, not TFS 1.4 or doc folder of my branch)
  • make it super stable - remove all known bugs, do not do useless changes (like many other forks do)
  • optimize code - add changes to algorithms, to make it run faster/better: optimized item decay, save items in binary format [optional], OTCv8 proxy/haproxy [optional]

I add there optimizations and bug fixes from TFS master/canary/BTS - only stable ones (I always review and test them myself). I also write my own optimizations ex. 'optimized item decay algorithm':

It's 99.99% compatible with TFS 1.4. Only change that breaks compatibility is "global storage" (Game.getStorageValue(key), Game.setStorageValue(key, value)) that stored in database, as it was on TFS 0.X.
It breaks compatibility with TFS 1.4 for 2 reasons:
  • it stores values in database, not as Lua variables - official TFS resets all values on server restart
  • global storage accepts only numbers as values - official TFS allows any Lua type: number, string, table, object etc.
All 'backward compatibility breaking changes' will be soon listed in 'doc' folder of my branch (for now just this one).
 
I see a lot of people working on TFS 1.4 forks for years. Maybe someday we will all work together on single repository.
I once asked about development of official 'TFS 1.4' branch on otland github (to make 1.4.3, 1.4.4 etc.), but some devs said it's useless and they want to work on new versions :(

That's what my branch focus on. It's named 'compilation', because I update TFS 1.4 to make it compile on newest Windows and Linux.

My branch has 3 goals:
  • make it compile on newest Windows/Linux (for compilation use instructions from newest TFS master, not TFS 1.4 or doc folder of my branch)
  • make it super stable - remove all known bugs, do not do useless changes (like many other forks do)
  • optimize code - add changes to algorithms, to make it run faster/better: optimized item decay, save items in binary format [optional], OTCv8 proxy/haproxy [optional]

I add there optimizations and bug fixes from TFS master/canary/BTS - only stable ones (I always review and test them myself). I also write my own optimizations ex. 'optimized item decay algorithm':

It's 99.99% compatible with TFS 1.4. Only change that breaks compatibility is "global storage" (Game.getStorageValue(key), Game.setStorageValue(key, value)) that stored in database, as it was on TFS 0.X.
It breaks compatibility with TFS 1.4 for 2 reasons:
  • it stores values in database, not as Lua variables - official TFS resets all values on server restart
  • global storage accepts only numbers as values - official TFS allows any Lua type: number, string, table, object etc.
All 'backward compatibility breaking changes' will be soon listed in 'doc' folder of my branch (for now just this one).
This community would be messed up without you, @Gesior.pl !

THANK you for always being supportive and helpful! REAL LEGEND on OTLand! #truth
 
Yeah if you want to know the best server to start with, for your needs... it's blacktek.. We probably also have the best support out of all those mentioned here already as well, the best custom features, easier to get started with our bootstrap scripts, extremely scalable server, built in account manager, all sorts of reasons to choose us... but just to demonstrate the types of optimizations and the magnitude of their impact, here is some benchmark comparisons (before and after) of my latest optimization of the decay system (not the same optimization gesior and others have done either), using coroutines.

Both are measured in nano seconds
Post automatically merged:

PS:
We are the only server with "responsive monsters" out of the ones mentioned so far... and our monsters not only are more responsive, but consume less CPU also ;)
 

Attachments

  • original_tfs_decay.webp
    original_tfs_decay.webp
    4.2 KB · Views: 74 · VirusTotal
  • blacktek_optimized_decay.webp
    blacktek_optimized_decay.webp
    49.8 KB · Views: 74 · VirusTotal
Ontopic: @OTAmator If what you want is a real Tibia datapack from 7.72<, dig into the leaked tarball files, specifically the moveuse.dat file, and you can replicate most of the actions and movements in Lua from there. In fact, there you have the core of most of the tibia actions and movements. On the other hand, if your goal is a custom server with a custom map, then you should learn Lua and start coding it yourself from scratch, just like @El Bringy suggested.
 
Last edited by a moderator:
Hello, honestly, I tested version 1.7 (master) and it’s full of errors. I also tested version 1.6 (stable), but there’s nothing stable about it — the errors from 1.6 also appear in 1.7. I even tested Canary 1.3.0 and 1.5.0, and those are also full of issues... the best version I found was 1.4, suggested by Gesior: (https://github.com/gesior/forgottenserver-gesior)

I’m working on it now — it compiled without errors, the website installed without issues, and I’m about to download the assets to open in the client.

What seems to be happening is that the developers are more focused on creating new versions rather than fixing the problems of the older ones, which is generating several unstable releases... however, some developers prefer to focus on specific versions instead of advancing endlessly. In other words, instead of adding new systems, why not fix the issues with the ones we already have? I find that much more interesting and smarter as well.

Anyway... try out (https://github.com/gesior/forgottenserver-gesior) 1.4 (10.98) and see if it works for you, if it has everything you need. I also think this version is interesting because it sits right in between an 8.x and a 12.x — we get a taste of nostalgia but also a taste of the newer features.Captura de tela 2025-09-04 201108.webpCaptura de tela 2025-09-05 151042.webp
Post automatically merged:

It’s official, I just logged in hehe out of all the versions, this was really the only one I managed to use without any problems at all — compilation, website installation, logging in without errors. I’m using the 3.5 client from the official repository here; I’m not sure if it’s the best and most recommended for a 10.98 version, but as a test, it worked.
 

Attachments

  • Captura de tela 2025-09-05 152112.webp
    Captura de tela 2025-09-05 152112.webp
    244.3 KB · Views: 36 · VirusTotal
Last edited:
Just going to write that I tried running 1.7 and 1.6 and for being "releases" I can't ever recommend them. I bashed my head trying to fix connection issues between the database and server and it just wasn't having it. I tried MariaDB and MySQL and after 12 hours of reading documentation and solutions, I finally came across Gesior's post in Bunny's thread and came to the same conclusion both of them. It's not worth the headache.

Since I can't use the latest TFS I guess I'll try BlackTek and see if its any good (and looking at Cod's progress I'm pretty excited).
 
Back
Top