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

BlackTek-Server Development Thread

I personally prefer managing account creation directly through the client, as it provides a seamless and integrated user experience. The website, in turn, should focus on aesthetic and informative content — such as server details, a wiki, client downloads, and general updates. There's no need to include account registration or ranking systems on the site itself. This approach not only simplifies the player's onboarding process but also allows the website to serve as a potential source of passive income through traffic-based monetization, much like blogs and content-driven platforms that earn revenue from visits and ad engagement.
I agree, account/character should be from the downloaded client, highscores, who is online page (if you want to add it) website should serve 100% as a gallery & knowledge base, but we are still following the old way of things because the community are used to it, if you have an idea to change the system followed by most ots in using website with all player based information and account, there must be an addition by using it
 
Monsters in BlackTek are now highly responsive!

We resolved the issues with monsters taking too long to respond on initial contact for all situations, and we also reduced the robotic "stop and go" actions that you typically see a monster doing while chasing or fleeing! Not only did we improve the movement's fluidity, the reaction time and responsiveness of the monsters, but we also reduced CPU usage while doing so!

That's right, you heard correctly! We didn't turn up the think interval, we didn't update the monsters path and targets on more actions or otherwise tweak or even touch the pathfinding code at all.. This is the typical way that Developers have tried to resolve monster responsiveness over the years and they all come with hefty CPU costs incurred... Not at BlackTek!

We get to have our cake and eat it too! Our monsters are very responsive, feeling like real tibia instead of open tibia, and we lowered our CPU consumption to get there, instead of increasing it like people normally do!

Here is a video of a player with ~1k speed, flying through an area filled with monsters, where they used to be able to make it all the way while only taking a couple hits at most... now, it's deadly trying to run past!


 
Monsters in BlackTek are now highly responsive!

We resolved the issues with monsters taking too long to respond on initial contact for all situations, and we also reduced the robotic "stop and go" actions that you typically see a monster doing while chasing or fleeing! Not only did we improve the movement's fluidity, the reaction time and responsiveness of the monsters, but we also reduced CPU usage while doing so!

That's right, you heard correctly! We didn't turn up the think interval, we didn't update the monsters path and targets on more actions or otherwise tweak or even touch the pathfinding code at all.. This is the typical way that Developers have tried to resolve monster responsiveness over the years and they all come with hefty CPU costs incurred... Not at BlackTek!

We get to have our cake and eat it too! Our monsters are very responsive, feeling like real tibia instead of open tibia, and we lowered our CPU consumption to get there, instead of increasing it like people normally do!

Here is a video of a player with ~1k speed, flying through an area filled with monsters, where they used to be able to make it all the way while only taking a couple hits at most... now, it's deadly trying to run past!


Looking insane!
i wonder when people will start telling "don't go TFS, go BlackTek"!
 
More monumental changes happening at BlackTek!

We now offer direct parsing of the .dat format for the server, allowing for the complete removal of the items.otb! I know what you are thinking, "oh no" what about all those problems with server id and client id... not to worry, thanks to the brilliance of @Tofame that is not a problem at all! He has created software to handle conversions and reorder the .dat based off of the server id...

You might be scratching your head trying to figure out how all this works... Well to put it simply, the client id's have been reordered by server id, and the server id's are gone! This means that crystal coin still reads as id 2160, it's just that it's client id 2160 now!

This strategy allows us and you, to not have to worry about all the traditional nonsense that arrives from choosing either client id or server id! Now it's even easier than ever to create custom items and see those custom items in game! This new .dat works perfectly with the mapeditor, and we also provide a complimentary .otb to use with your clients if you are using an OTC that still relies on them.

You can find more information about this update, where to find the new otb, and much more by joining our community!

PS. The only problem one may experience with switching to this system, is if they have custom client modules that have code based on hardcoded client id's... hopefully no one has code which was designed this way, but if you do, that would be the only thing that has issues and would need changed, the hardcoded id's.
 
More monumental changes happening at BlackTek!

We now offer direct parsing of the .dat format for the server, allowing for the complete removal of the items.otb! I know what you are thinking, "oh no" what about all those problems with server id and client id... not to worry, thanks to the brilliance of @Tofame that is not a problem at all! He has created software to handle conversions and reorder the .dat based off of the server id...

You might be scratching your head trying to figure out how all this works... Well to put it simply, the client id's have been reordered by server id, and the server id's are gone! This means that crystal coin still reads as id 2160, it's just that it's client id 2160 now!

This strategy allows us and you, to not have to worry about all the traditional nonsense that arrives from choosing either client id or server id! Now it's even easier than ever to create custom items and see those custom items in game! This new .dat works perfectly with the mapeditor, and we also provide a complimentary .otb to use with your clients if you are using an OTC that still relies on them.

You can find more information about this update, where to find the new otb, and much more by joining our community!

PS. The only problem one may experience with switching to this system, is if they have custom client modules that have code based on hardcoded client id's... hopefully no one has code which was designed this way, but if you do, that would be the only thing that has issues and would need changed, the hardcoded id's.

The beauty of this is like me i have a completely from scratch created spr and dat i can just add my dat to the items folder , rename it to items.dat and it works perfectly!

i am using it and it is amazing.
 
More monumental changes happening at BlackTek!

We now offer direct parsing of the .dat format for the server, allowing for the complete removal of the items.otb! I know what you are thinking, "oh no" what about all those problems with server id and client id... not to worry, thanks to the brilliance of @Tofame that is not a problem at all! He has created software to handle conversions and reorder the .dat based off of the server id...

You might be scratching your head trying to figure out how all this works... Well to put it simply, the client id's have been reordered by server id, and the server id's are gone! This means that crystal coin still reads as id 2160, it's just that it's client id 2160 now!

This strategy allows us and you, to not have to worry about all the traditional nonsense that arrives from choosing either client id or server id! Now it's even easier than ever to create custom items and see those custom items in game! This new .dat works perfectly with the mapeditor, and we also provide a complimentary .otb to use with your clients if you are using an OTC that still relies on them.

You can find more information about this update, where to find the new otb, and much more by joining our community!

PS. The only problem one may experience with switching to this system, is if they have custom client modules that have code based on hardcoded client id's... hopefully no one has code which was designed this way, but if you do, that would be the only thing that has issues and would need changed, the hardcoded id's.
this project is looking tentative
 
this project is looking tentative
Why do you say that? It has been on a steady growth for well over a year now, and is fast approaching the two year mark of being developed... what exactly is uncertain about it?

i am using it and it is amazing.
I am glad you are enjoying the simplicity of this system, and the perks of BlackTek :)
 
Last edited:
Why do you say that? It has been on a steady growth for well over a year now, and is fast approaching the two year mark of being developed... what exactly is uncertain about it?


I am glad you are enjoying the simplicity of this system, and the perks of BlackTek :)
Post automatically merged:


Nevermind, after seeing who your alt accounts are, it makes sense that you would come here and talk shit

View attachment 94523
wasn't talking shit i meant thats is looking good haha
 
Well I guess I appreciate the thought anyways... but tentative means uncertain, provisional, or done hesitantly, so, didn't really come off as a compliment..
My bad my ensligh suck anyway did not mean to say that ^^ im not doing anything related to ot latelly and this is calling me
 
More monumental changes happening at BlackTek!

We now offer direct parsing of the .dat format for the server, allowing for the complete removal of the items.otb! I know what you are thinking, "oh no" what about all those problems with server id and client id... not to worry, thanks to the brilliance of @Tofame that is not a problem at all! He has created software to handle conversions and reorder the .dat based off of the server id...

You might be scratching your head trying to figure out how all this works... Well to put it simply, the client id's have been reordered by server id, and the server id's are gone! This means that crystal coin still reads as id 2160, it's just that it's client id 2160 now!

This strategy allows us and you, to not have to worry about all the traditional nonsense that arrives from choosing either client id or server id! Now it's even easier than ever to create custom items and see those custom items in game! This new .dat works perfectly with the mapeditor, and we also provide a complimentary .otb to use with your clients if you are using an OTC that still relies on them.

You can find more information about this update, where to find the new otb, and much more by joining our community!

PS. The only problem one may experience with switching to this system, is if they have custom client modules that have code based on hardcoded client id's... hopefully no one has code which was designed this way, but if you do, that would be the only thing that has issues and would need changed, the hardcoded id's.
Well done! I've always disliked the way it handled server ids and client ids. This is a much more elegant solution, imo.
 
Well done! I've always disliked the way it handled server ids and client ids. This is a much more elegant solution, imo.
Thank you! I can't take any credit for this elegant solution or the code for it, it was all @Tofame ! I agree, he did outstanding work!
 
1759972028033.webp
Here is a closer look at the configuration process for BlackTek AAC


1759972047618.webp

1759972064659.webp


Streamside has done a marvelous job on preparing a top tier, full fledged website and account creator for use with BlackTek Server.. Boasting a nice admin panel for all your administrative needs as well as this guided setup, and more :)
 
Not a whole lot of activity has been seen on the repo lately because most the work I have done over the last few weeks has all been locally, working on a new spawning system from scratch.. but progress continues to be made!

I wanted to let you all know, that we are about to break the 500 commits mark!
:cool:

1761068953505.webp
 
Another update for you guys: BlackTek has broken the 500 (currently 504) commit mark, and we have the project upgraded to C++23.

1762473882894.webp
 
Last edited:
Another update for you guys: BlackTek has broken the 500 (currently 504) commit mark, and (afaik) we are the first one to have the project upgraded to C++23.

View attachment 95827
Just to clarify a small detail — the first OpenTibia-based project updated to C++23 was the official OpenTibiaBR Canary, and that update was implemented by me.
You can verify the original change here:
perf: build cmake (#2972) · opentibiabr/canary@c4786c4 (https://github.com/opentibiabr/canary/commit/c4786c42e412bf884c5683a96d17a78fe157fc5f#diff-4166551a5ac28cf3eaeff778e899b408f3ecf6d667eb0afabe3c7f9069ab0edeL6)


I’m not saying anyone copied anything — just clarifying that Canary was the first base project to migrate to C++23.
Any forks or derived servers that use Canary as their base naturally inherited this change afterward.
 
Last edited:
Hi everyone, just to clarify something regarding the recent C++23 update claims —
the migration to C++23 was originally done by me in the official OpenTibiaBR Canary repository well before any forks implemented it.


You can verify the original commit here:
perf: build cmake (#2972) · opentibiabr/canary@c4786c4 (https://github.com/opentibiabr/canary/commit/c4786c42e412bf884c5683a96d17a78fe157fc5f#diff-4166551a5ac28cf3eaeff778e899b408f3ecf6d667eb0afabe3c7f9069ab0edeL6)


This change introduced the full C++23 toolchain upgrade (compiler flags, CMake configuration, and compatibility fixes), and it was publicly available in Canary long before any derived project mentioned it.
Please give proper credit when referencing this work — forks that reused the code did not originate the update.
Uhm how about you check yourself before making accusations!

I most definitely didn't steal, copy or reproduce ANY work from Canary for this update... so please fact check what you are saying before you accuse someone of not giving credit to referenced work... if you were to look, blacktek doesn't use cmake, we use premake, and THE only changes needed for this (for blacktek) was this:

1762475536243.webp

That's it... that's literally all I had to do, change a 20 to a 23 in my PREMAKE file.. so please, explain to me how I am copying Canary and not giving credit?
 
Uhm how about you check yourself before making accusations!

I most definitely didn't steal, copy or reproduce ANY work from Canary for this update... so please fact check what you are saying before you accuse someone of not giving credit to referenced work... if you were to look, blacktek doesn't use cmake, we use premake, and THE only changes needed for this (for blacktek) was this:

View attachment 95828

That's it... that's literally all I had to do, change a 20 to a 23 in my PREMAKE file.. so please, explain to me how I am copying Canary and not giving credit?


I understand your point — and to be clear, I never said you copied or reused any code.
The message you replied to was my initial clarification before I edited it to make that distinction clear.

Also, my apologies — there was a translation mistake in my first message that made it sound harsher than what I actually meant. That was not my intention.

The only point I’m making is about who first implemented C++23 in an OpenTibia base.
That happened in OpenTibiaBR Canary

I fully acknowledge that your project uses Premake and not CMake, and that you made your own independent adjustments — no issue there.
My clarification is simply that Canary was the first base project to move to C++23, chronologically, and that’s a verifiable fact.

So there’s no accusation here — just setting the record straight about the timeline and origin of the first C++23 adoption in the OpenTibia ecosystem.
 
Also, my apologies — there was a translation mistake in my first message that made it sound harsher than what I actually meant. That was not my intention.
Unfortunate language barrier that escalated to a conflict... 😟
Dw, good job to both of you, what matters is progressing forward.
 
Back
Top