Multiple Hotkey Settings for the C++ Client

Did you always want to use more than one hotkey setting without changing them every time you relog? well it is easy:
(The following does only work with Windows, a Linux version is comming when i have time)

Open your Editor and copy the following text into it, then save that file under LaunchTibia.bat and make sure that you have “all files” selected at the type, and not only .txt. Or you could also download our already created .bat file

@echo off
color 0A
title Tibia Hotkey Manager

IF EXIST "%ProgramFiles(X86)%\Tibia" set TibiaExe="%ProgramFiles(X86)%\Tibia"
IF EXIST "%ProgramFiles%\Tibia" set TibiaExe="%ProgramFiles%\Tibia"
set HotkeyPath="%AppData%\Tibia"

echo Welcome, %USERNAME%
echo Select your hotkey file please
echo 1. Knight
echo 2. Paladin
echo 3. Druid
echo 4. Sorcerer
set /p choice="Enter your choice: "

if "%choice%"=="1" set f="knight.cfg"
if "%choice%"=="2" set f="paladin.cfg"
if "%choice%"=="3" set f="druid.cfg"
if "%choice%"=="4" set f="sorcerer.cfg"

copy /y "%HotkeyPath%\%f%" "%HotkeyPath%\Tibia.cfg"

cd %TibiaExe%\

copy /y "%HotkeyPath%\Tibia.cfg" "%HotkeyPath%\%f%"

If you then want to have a special hotkey set, you simply do the following: double click the file, then you enter the number of the set you want to use (for example “3” for druid) and then you press enter. But keep the black window open in the background. It will close when you close Tibia. If you want to switch the hotkey set you need to restart Tibia.

It will look like this:

Tibia Hotkey Manager

Tibia Hotkey Manager

VLC-Transcoder 0.0

VLC-Transcoder 0.0


It is basicly a program wich uses the VLC media player to transcode media files.

You can add files via drag and drop. You need some knowledge about the different file formats because the GUI will not stop you from doing stupid things like choosing a WAVE muxer and adding a video to it.

The program is written with Lazarus and should run under MacOS and Linux as well as Windows, but only Windows is tested and shared as binary.

I would be very happy about Feedback.



  • Error handeling
  • Add missing Codecs/Muxer

Assembler IDE

Screenshot Assembler V_003

Here you see a screenshot of my latest development, an IDE for learning assembler, more specific assembler on a register machine, without all the hard stuff like a stack or external libraries. Just very simple comands which are interpreted. For now the programm itself is in german, but multi language support is coming soon. It supports comments (every line starting with “–“), labels (“:labelname”), jump instructions (“jump 5” to jump at line 5 or “jump label” to jump to a label) and math instructions (“add 5” to add the value of the register 5 to the accumulator). More to come later on

Here is the download link.

First overview over my music box – software

The software runs on the Raspberry Pi, for all of you who do not know what a Raspberry Pi is :  click here.

Everything is based on raspbian, a linux distribution based on debian. I used the fstab file to automatically mount the first 10 block devices it finds onto “/media/sda/”,  “/media/sdb1”, “/media/sdc1”, etc . “/media/” is then used as the music folder for the Music Player Daemon. HostAPD together with Dnsmasq are used to spawn the WLan and make the Pi traceable with an URL (i used ). If the LAN connection is established, the Pi acts as NAT and let clients accsess its shared LAN connection. (for infos how to, see here). I use a Samba server to accsess the USB-sticks once they are connected. Lighttpd and php is used to host a small website on the pi, including a PHP-mpd-client.

A more detailed description, including an sd-cad image and config files will be posted as soon as i got more time to write.

First overview over my music box – hardware

This is the very first post about my music box:

Music box front view

What is it? Well basicly it is a big battery, combined with a Raspberry Pi, an amplifier and speakers, used to play music. Some more pictures:

Music box rear view

This is the rear side, here i house the control switches (not visible, they are hidden behind the wood. On the left part of the hub is the USB sound card, wich connects the Pi to the amplifier. The little stick you see on the top is a WLan-stick, used to connect to the Pi and control it. Behind the hub is a LAN connection, wich can turn the Pi into a WLan hotspot and is used to update the Pi. The hub is of course not only powered by USB, but got another power supply too. (500 mA are just WAY too few)

Music box top view B

Top view on the music box, you see my way of mounting the speakers here. Its not pretty but it works.

Music box top view A

Another top view, here you can see the wooden frame i used to mount all the stuff in the box.

Music box top view close up

Close up of the internal stuff. Here you see the amplifier (red, to the left) wich claims to be 300 W (it feels to be a lot less). In the center is the Raspberry Pi with its SD-card and USB connection to the hub. To the Right you see the power regulator (the little black box) wich turns the 12V comming from the batteries into the 5V needed for the Raspberry Pi and the USB-hub. The amplifier works on 12V. On the top you see the three switches wich controll the box. Under all this you see the batteries. This are 4x 17 Ah batteries. They got a lot of weight but are needed to make the box run ~5 days of average use off the grid. Average use includes a few cellphone charges.

All this is mounted on a wooden frame, wich inturn is screwed to the box from the bottom side. The carrying strap is connected to the frame too. I do not feel safe about the connection to the box, but for now it seems to work.

With the top cover included, the box got a basic waterproofing and is great for outside use.

Tibia Lore – Ferumbras Story

A little movie I made for the TibiaML movie contest 2013. Its made using Minecraft and a lot of camera work.

Thanks to:

Exiled Yoshi – Story ideas and tips
Bahatamut –  Tips
Subler Efal – Idea about the story teller and place
Mithion – Minecraft mod “Ars Magica” ( )
Sushen – Minecraft mod “Cam Studio” ( )
Daloure – For building Thais in Minecraft ( )
Karliiee – Minecraft Texture Pack ( )


0:00 – 2:13
“Disabled emotions suite – Part 6” by “zero-project”
( )

2:14 – 2:59
“zero-project – 09 – The return of the king” by “zero-project”
( )

2:59 – 4:57
“zero-project – 06 – Battle at the misty valley” by “zero-project”
( )

4:57 – 5:16
“zero-project – 01 – Intro” by “zero-project”
( )

Thumbnail background picture by Andrew Malone ( )

BreatIT clone the 9999999th

Break It clone

Just a little game, with a lot of comments (in german). If I have enought time, I will make this a little bit more shiny, I plan to include the following:

  • time based movement
  • the ability to control the ball by making the beater reflecting the ball based on the position it hit the beater
  • adding droops wich apear if u break a block

If you got some more ideas, feel free to comment.


Into the Tibia automap format (C++ client)


I. Introduction

I‘d recommend you to have some programming background – otherwise you might find it hard to understand some aspects of this article. I must mention something concerning this article: some content could be used to create hacking tools and bots. I am aware of this fact, but it is like with all tools: they can be used for good and for bad things. With a hammer you can either build a house or kill your neighbour, then please:
do something good for the community and don’t misuse your knowledge!
Another side note: the entire code you will see in here is written in Delphi XE2. It shouldn’t be hard to port it though.
In this article I will give you a detailed explanation of the Tibia map format (C++ client).


II. Basics

You can find the map data at “%AppData%/Tibia/Automap” for Windows or “~/.tibia/automap” for Linux.
You will find a hell lot of files inside that folder – this is your automap. The automap is broken down into 256×256 big pieces.
The file name consists of: “” where x is the x coordinate, y the y coordinate and z the height of the map piece (7 is the regular ground level, 0 stands for deepest underground and 15 for the topmost floor). These numbers are filled up with zeros. They range from “” to “”.
If an area has not been explored yet, the file does not exist. As soon as you visit even a tiniest part of it, the file gets created.

III. Map Format

It is actually a really easy system, just the details get a bit tricky:

-65536 bytes: 256×256 bytes, each byte representing 1 visible pixel of the map
-65536 bytes: 256×256 bytes, each byte representing the walking speed on a specific tile
-4 bytes: the amount of markers on the map
The following section appears once for each marker on the map, if there are no markers the file ends here.
-1 byte: x position
-1 byte: map tile the marker is on on the x axis
-2 bytes: blank, they are always zero
-1 byte: y position
-1 byte: map tile the marker is on on the y axis
-2 bytes: blank, they are always zero
-4 bytes: the image ID of the marker
-2 bytes: length of the description that follows
-n bytes: the description of the marker, each byte representing 1 ANSI character, not zero terminated

Well – this seems easy! Let’s go into more details:

IV. Graphical map colors

If you play around a little with the map files you will find out that Tibia doesn’t use all of the 256 possible colors – actually ONLY the following 15 (maybe 16):

 TTibiaMapColor = record
 colorID: byte;
 r,g,b: byte;

 TibiaMapColorList: array[0..15] of TTibiaMapColor = (
 (colorID:000;r:000;g:000;b:000), // tar, void, inner cave walls, undiscovered area
 (colorID:012;r:000;g:102;b:000), // trees or bushes,
 (colorID:024;r:000;g:204;b:000), // grass or stone ground,
 (colorID:030;r:000;g:255;b:000), // swamp
 (colorID:040;r:051;g:000;b:204), // water
 (colorID:086;r:102;g:102;b:102), // mountain or rock
 (colorID:114;r:153;g:051;b:000), // cave wall
 (colorID:121;r:153;g:102;b:051), // cave mud
 (colorID:129;r:153;g:153;b:153), // normal floor or road
 (colorID:179;r:204;g:255;b:255), // ice walls
 (colorID:186;r:255;g:051;b:000), // wall
 (colorID:192;r:255;g:102;b:000), // lava
 (colorID:207;r:255;g:204;b:153), // sand
 (colorID:210;r:255;g:255;b:000), // ladder, hole, rope point, stairs or a teleporter (means of transporting without the use of NPCs)
 (colorID:215;r:255;g:255;b:255), // snow
 (colorID:255;r:150;g:000;b:255));// unknown

colorID is the byte written in the file, r, g and b are just the regular RGB colors used by the client to display the automap.
Please note that I have only found the id 255 at a single pixel and when I went there to check it, Tibia client removed it and replaced it with 0, so it was probably just a bug. But you can never know for sure – after all, 16 colors would make more sense than 15.

V. Pathfinding

This one is quite easy:

0: unexplored
255: non-walkable
1-250: the lower the value is, the higher is your movement speed on that tile
251-254: not used

Please note that stairs/teleporters etc. are marked as non-walkable too, so you’d need to check if this tile is marked as stairs/tp in the graphical map to be sure it is non-walkable.
If you combine those two maps you can do a very nice pathfinding, even (for example) calculate what’s the fastest way from Thais to Ab’Dendriel. (google for “A* Pathfinding”)

VI. Code

Here are some of my units to help you with the map format:

If i find a way to post them in a better way i will do so.

VII. Ending

Thank you for reading my article! If you liked it, please leave your comment at the bottom of this page.
If you didn’t like the article, please write a comment as well and tell me what do you think it lacked or what you disliked.
See you soon (or a little bit later) in a article on the network connections of Tibia.

Have fun playing!