What is Canary:

What is Canary

OpenTibiaBR - Canary is a free and open-source MMORPG server emulator written in C++.

This project was created with the intention of being a base as clean as possible, to work as an MMORPG engine and not necessarily linked to Tibia Global, although it will also work. The OpenTibiaBR - Global Datapack was adapted to work with the source of the Canary.

To connect to the server and to take a stable experience, you can use otclient redemption or tibia client and if you want to edit something, check our customized tools.



Compiled Canary:




GOD Account:

  • @god / god

Update 28/06/2019:

  • Protocol 12.00.

Update 11/04/2020:

  • Bestiary, Charms, Quickloot (Moon).

Update 13/07/2020:

  • Protocol 12.20.

Update 25/07/2020:

  • Store 12.20.

Update 27/07/2020:

  • Protocol 12.40.

Update 03/08/2020:

  • Boosted Creature.

Update 24/08/2020:

  • Quickloot (C++).

Update 26/08/2020:

  • Supply Stash.

Update 01/10/2020:

  • Protocol 12.51.

Update 04/11/2020:

  • Event Schedule.

Update 12/17/2020:

  • Bestiary C++, Bestiary Monsters, Charms C++, Reflect / Heal System by elements, Boosted Creature C++.

Update 12/21/2020:

  • Protocol 12.60.

Update 25/01/2021:

  • Protocol 12.61.

Update 14/03/2021:

  • Protocol 12.64.

Update 12/06/2021:

  • Protocol 12.72.

  • Imbuement C++.

Update 07/02/2022:

  • Compatibility with the OTServBR-Global datapack.

  • Conversion to Client Id.

Update 08/02/2022:

  • Protocol 12.85.

Update 27/04/2022:

  • Protobuf.

  • Protocol 12.86.

Update 14/09/2022:

  • Protocol 12.91.

Update 09/12/2022:

  • Forge System C++.

Update 13/02/2023:

  • Bosstiary System C++.

Update 25/04/2023:

  • Protocol 13.16.

Update 26/04/2023:

  • Imbuement Tracker.

Update 28/04/2023:

  • Multiprotocol Compatibility with Client 11.00 (10x).

Update 20/05/2023:

  • Hazard System.

Update 19/07/2023:

  • Protocol 13.20.

Map Features:

  • Custom Map.

  • Global Map.

Extra Features:

  • Revscriptsys.

  • Spdlog.



Boosted Creature:

Event Schedule:




Daily Reward:







Supply Stash:

Hunting Analysers:


Customize Character:


How to update appearances.dat:

How to update appearances.dat

Since this commit, Canary is not using items.otb anymore, now use the appearances.dat. Using Tibia protobuf files instead of old .otb file looks like the best approach to keep the repository most updated as possible.

  • If you just want to keep your assets the same as global, you can just simple copy the 'appearances-XXXXXXXXX.dat' file from the client's /assets/ folder, rename it to 'appearances.dat' and paste on "/data/items/" on the server and it's already up-to-date.

  • If you want to customize the client assets you can use Assets Editor. On Assets Editor open your client 12x /assets/ folder, edit/add/remove anything you want on it, save and compile it. After that you just go to you client /assets/ folder, copy the appearances-xxalotofnumbersxx.dat, paste it on the server /items/ folder and rename it to appearances.dat.

Server Folder Structure:

Server Folder Structure
  • data - this is the "core" folder, it is where the files that are absolutely necessary for the distro to open correctly, such as libs, xmls, etc. Here we have files that both the otservbr-global and canary datapack share with each other.

  • data-otservbr-global - this is the global datapack files, some libs and folders that are only for the global server, such as scripts, monsters, npcs, world.

  • data-canary - a "clean" datapack as far as possible, with only the scripts and files necessary for the server to work.

  • NOTE - The "data" folder is actually the "core" of the server, we didn't rename it to avoid having to make changes to the sites and login.php, since they read the "data/xml". The other two folders, data-otservbr-global and data-canary can be changed in config.lua, which one you want the executable to read, by default we'll point to the global one, as that's what most use. If you want to start a custom server with "as few files and scripts as possible", then switch to "data-canary".

    We also added a boolean in config.lua that allows choosing another name for the datapack, by default we will also keep this disabled, since we will only maintain support for these two datapacks, it is up to each one to know what they are doing in case they want to change it.

Last updated