Otclient is an alternative Tibia client for usage with otserv. It aims to be complete and flexible, for that it uses LUA scripting for all game interface functionality and configurations files with a syntax similar to CSS for the client interface design. Otclient works with a modular system, this means that each functionality is a separated module, giving the possibility to users modify and customize anything easily. Users can also create new mods and extend game interface for their own purposes. Otclient is written in C++20 and heavily scripted in lua.
For a server to connect to, you can build your own with the forgottenserver or canary.
[!NOTE]
Based on edubart/otclient Rev: 2.760
Beyond of it's flexibility with scripts, otclient comes with tons of other features that make possible the creation of new client side stuff in otserv that was not possible before. These include, sound system, graphics effects with shaders, modules/addons system, animated textures, styleable user interface, transparency, multi language, in game lua terminal, an OpenGL 2.0 ES engine that make possible to port to mobile platforms. Otclient is also flexible enough to create tibia tools like map editors just using scripts, because it wasn't designed to be just a client, instead otclient was designed to be a combination of a framework and tibia APIs.
C++20 ( v17 , Unity build and Manifest Mode (vcpkg.json) ) build in x32 and x64
i ) Description: with this the spr file is not cached, consequently, less ram is consumed.
ii ) Video
https://github.com/kokekanon/otclient.readme/assets/114332266/f3b7916a-d6ed-46f5-b516-30421de4616d
-i ) Description:
[Main Thread]
[Thread 2]
[Thread 3]
Collect information on what will be drawn in the UI
highlightingPtr to stackPos
new async dispatcher (using bs thread_pool)
optimized updateChildrenIndexStates & updateLayout
removed ThingTypePtr
scoped object to raw pointer
shaderPtr to shaderId
and multiple optimizations
https://github.com/kokekanon/otclient.readme/assets/114332266/de8ffd14-af8c-4cc0-b5b1-2e166243bffc
Walking System Improvements
Supports sequenced packages and compression
Asserts load (Tibia 13)
i ) Description:
[UIWidget] Improvements in the UI algorithm, with that we had a better performance in >add, remove and reposition widgets, it is possible to see these improvements >through the battle module.
ii ) Video
https://github.com/kokekanon/otclient.readme/assets/114332266/eed1464a-ae4d-4cd6-9f22-c719b4f09766
updated libraries
https://github.com/kokekanon/otclient.readme/assets/114332266/0c382d93-6217-4efa-8f22-b51844801df4
Compatible with .Apng
Example Code: (code sample: effects.lua, code test)
Example specific settings for lookType X outfit_618.lua
![]() |
![]() |
![]() |
---|---|---|
ThingCategory Attached Effect | Texture(Png) Attached Effect | Particule |
Floor Shadowing
Highlight Mouse Target (press shift to select any object)
Floor View Mode (Normal, Fade, Locked, Always, Always with transparency)
Floating Effects Option
Refactored Walk System
Support for more mouse buttons, for example 4 and 5
a safer way to create modules, without the need to unbind keys, disconnect events, or destroy widgets.
compatible with ObjectBuilderV0.5.5
need enable this feature:
g_game.enableFeature(GameNegativeOffset)
Video
https://github.com/kokekanon/otclient.readme/assets/114332266/16aaa78b-fc55-4c6e-ae63-7c4063c5b032
https://github.com/kokekanon/otclient.readme/assets/114332266/c2567f3f-136e-4e11-964f-3ade89c0056b
![]() |
![]() |
![]() |
---|---|---|
Title Attached Effect | Title Widget | Title Particule |
https://github.com/user-attachments/assets/9f20814f-0aed-4b70-8852-334ac745ec11
https://github.com/user-attachments/assets/3ac8473c-8e90-4639-b815-ef183c7e2adf
Note: Module example:
![]() |
![]() |
![]() |
---|---|---|
Interface | Density Pixel | Joystick (patrykq) |
Support Tibia 12.85/protobuf by @Nekiro
by @SkullzOTS
To enable just go to config.h, set 1 in ENABLE_DISCORD_RPC and configure the others definitions
You can see the step by step in YouTube
![]() |
![]() |
![]() |
---|---|---|
Example interface | Example in game | future discord-game-sdk |
![]() |
![]() |
![]() |
---|---|---|
Creature | Map | Mount |
Refactored Battle Module by @andersonfaaria
Health&Mana Circle by @EgzoT, @GustavoBlaze, @Tekadon58 (GITHUB Project)
Tibia Theme 1.2 by Zews (Forum Thread)
Add option ADJUST_CREATURE_INFORMATION_BASED_ON_CROP_SIZE in config.h by @SkullzOTS
by @Mrpox
3D Sound and Sound Effects! by @Codinablack
Example 1 | Example 2 | Example 3 |
---|---|---|
by @marcosvf132
Game_shop v8
Minimap WorldTime
void ProtocolGame::sendWorldTime()
function Player.sendWorldTime(self, time)
void ProtocolGame::sendTibiaTime(int32_t time)
Outfit windows compatible with attachEffect , shader
Calendar
client_bottommenu (activate the array "Services.status" in init.lua)
put this./otclient/tools/api/status.php
in your C:/UniServerZ/www/api/
if not work try ,active curl:
![]() |
![]() |
---|---|
Interface | In-game |
Imbuement tracker by @Reyaleman
Blessing
Screenshot
Highscores
Store (compatible with 1098 , 12.91 ~ 13.40)
QuickLoot
Groups Vip
Reward Wall (Daily Rewards)
by @OTArchive
wiki: https://github.com/OTArchive/otclient-web/wiki/Guia-%E2%80%90-OTClient-Redemption-Web
https://github.com/user-attachments/assets/e8ab58c7-1be3-4c76-bc6d-bd831e846826
Bot V8 (@luanluciano93, @SkullzOTS, @kokekanon, @FranciskoKing, @Kizuno18)
Shader with Framebuffer (@SkullzOTS, @Mryukiimaru, @JeanTheOne, @KizaruHere)
![]() |
![]() |
![]() |
---|---|---|
Creature. | Items | UICreature |
The Mobile Project This is a fork of edubart's otclient. The objective of this fork it's to develop a runnable otclient on mobiles devices.
Tasks that need to do:
Current compiling tutorials:
If you are interested in compiling this project, just go to the wiki.
In order to build the app for production, run the following command :
docker build -t mehah/otclient .
# Disable access control for the X server.
xhost +
# Run the container image with the required bindings to the host devices and volumes.
docker run -it --rm \
--env DISPLAY \
--volume /tmp/.X11-unix:/tmp/.X11-unix \
--device /dev/dri \
--device /dev/snd mehah/otclient /bin/bash
# Enable access control for the X server.
xhost -
Try to ask questions in discord
Have found a bug? Please create an issue in our bug tracker
[!TIP]
if using Nostalrius 7.2, Nekiro TFS-1.5-Downgrades-7.72 OR any protocol below 860 that the walking system is stuttering. set force-new-walking-formula: true in setup.otml
In Old Protocol , if you consider that the speed of the item is too fast, modify item-ticks-per-frame: 75 in setup.otml
TO-DO list | Status | PR |
---|---|---|
wheel of destiny | None | |
Forge | None | |
Analyzer | #802 | |
Sound tibia 13 | #1098 |
Protocol / version | Description | Required Feature | Compatibility |
---|---|---|---|
TFS (7.72) |
Downgrade nekiro / Nostalrius |
force-new-walking-formula: true item-ticks-per-frame: 500 |
â |
TFS 0.4 (8.6) |
Fir3element | item-ticks-per-frame: 500 | â |
TFS 1.5 (8.0 / 8.60) |
Downgrade nekiro / MillhioreBT |
force-new-walking-formula: true item-ticks-per-frame: 500 |
â |
TFS 1.4.2 (10.98) |
Release Otland | â | |
TFS 1.6 (13.10) |
Main repo otland (2024) |
See wiki | â |
Canary (13.21 / 13.32 / 13.40) |
OpenTibiaBr | Assets , Enable HTTP login and port 80 | â |
Canary (14.05) |
OpenTibiaBr | Assets , Enable HTTP login and port 80 | â |
Otclient is made available under the MIT License MIT License .thus this means that you are free to do whatever you want, commercial, non-commercial, closed or open
If you are interested in supporting the project, go to this link, any value is great help, thank you.