Results 1 to 2 of 2

Thread: Tibia 11 linux - Java

  1. #1
    Super Moderator klusbert's Avatar
    Join Date
    Dec 2007

    Tibia 11 linux - Java

    Hello there has been a long time since I posted here. I am not even sure anyone is still online these days.
    I wanted to share a mini tutorial with you how to work with Tibia on Linux.

    Tools needed:
    1. Cheat engine server (
    2. Virtualbox, virtualmanager or vmwareplayer( I prefer virtual manager) with a working windows installation
    3. On the windows VM install cheatengine.

    Alternatively, you can install cheatengine using wine, but you still need cheat engine server to interact with the client.

    If you have not heard of WinApps I recommend you to cheat it out, then you can run windows apps "natively" on Linux with a backend VM.

    Let's find an address we start easy by finding player experience.

    I will not use any pointers can or anything, the method I use seems to work quite well.
    These steps should be very easy for anyone to follow.

    Next right click on that address and click "Find out what writes to this address"
    Then kill a monster to gain some experience you we see some result in my case I got this.

    Next, add the address value of the RDI in my case it is 084091C8 to the address list.

    We have now an address at 84091C8 that holds the value 26812944 but this "key" is unique so if we find that key in memory we can easily find the player experience address. (keep in mind that these keys changes on client updates)

    Please verify this by searching for a new value in cheat engine and enter the value 26812944.

    So with this logic we can implement a memory scanner in our favorite language(i have two versions one in java and one in c

    The java version seems a bit faster and is more updated including lighthack using battlelist.
    The battle list reader is however not perfect, I had some trouble navigating through the tree structure but it seems to work so I will leave it for now.

        public void scan(MemoryScanner _memoryScanner, Map<AddressIdentifier, Long> addresses) {
            List<Long> result = _memoryScanner.scanInt(26812944, true);
            if (result.size() != 1) {
                System.out.println("Error finding player Experience address");
            long baseAddress = result.get(0);
            addresses.put(AddressIdentifier.PLAYER_EXPERIENCE, baseAddress + 0x28);
    Here is a sample of code that should help you understand how I find these addresses in memory.

    The reason why I left the C# project is that I can't find any easy way to create a UI with c# in Linux. Monodevelop crashes for me without any error code and programmatically create UI is not my cup of tea.
    Any tips is appreciated
    I thought of going with Python since I used it in a deep learning course but Python gives me rashes.

    I tried to create a model that was able to identify creatures from the screen, if you want you can check that project here.
    Last edited by klusbert; 07-20-2021 at 10:28 AM.
    How to find battlelist address -->
    Updating addresses -->
    DataReader -->

  2. #2
    Super Moderator klusbert's Avatar
    Join Date
    Dec 2007
    You will of course need to have root access to be able to read/write memory, I just run my intellij with sudo. I had some problem with latest 2021 version so I use 2020 instead.
    How to find battlelist address -->
    Updating addresses -->
    DataReader -->

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts