logo OTClient - Redemption

Discord Shield CI License: MIT

πŸ“‹ Table of Contents

  1. Logo What is OTClient?
  2. πŸš€ Features
  3. The Mobile Project
  4. πŸ”¨ Compiling
  5. 🐳 Docker
  6. 🩺 Need Help?
  7. πŸ“‘ Bugs
  8. ❀️ Roadmap
  9. πŸ’― Support Protocol
  10. ©️ License
  11. ❀️ Contributors
  12. πŸ“¦ Client Assets Auto-Install

Logo What is OTClient?

OTClient is an alternative Tibia client for usage with OTServ. It aims to be complete and flexible:

For a server to connect to, you can build your own with theforgottenserver or canary.

[!NOTE] Based on edubart/otclient β€’ Rev: 2.760

πŸš€ Features

Beyond its flexibility with scripts, OTClient comes with many features that enable client-side innovation in OTServ: sound system, graphics effects with shaders, modules/addons, animated textures, styleable UI, transparency, multi-language, in-game LUA terminal, and an OpenGL 2.0 ES engine that allows porting to mobile platforms. It is also flexible enough to create Tibia tools like map editors using scriptsβ€”OTClient is a framework + Tibia APIs.

⚑ Performance & Engine

πŸ–ΌοΈ Draw Render (optimization showcase)

https://github.com/user-attachments/assets/fe5f1d7f-7195-4d65-bca6-c2b5d62d3890

πŸ“¦ Asynchronous Texture Loading 🧡 Multi-threading

Main Thread

Thread 2

Thread 3

Image:
multinucleo

🧹 Garbage Collection

Description (1):

Garbage Collection is the feature responsible for automatically managing memory by identifying and releasing objects that are no longer in use. This allows the client to maintain efficient memory usage, avoid unnecessary data accumulation, and improve overall stability.

Description (2):
Garbage collector is used to check what is no longer being used and remove it from memory. (lua, texture, drawpool, thingtype)

🧭 Texture Atlas System

(coming with engine improvements and draw-call reduction)

πŸŽ›οΈ UI & UX

🧩 UIWidgets Improvements πŸ” Auto Reload Module

Activate: g_modules.enableAutoReload() (init.lua)
Video:

https://github.com/kokekanon/otclient.readme/assets/114332266/0c382d93-6217-4efa-8f22-b51844801df4

✨ Attached Effects System (aura, wings…)

[!TIP] You can adjust offsets per looktype using ThingConfig when a default offset doesn’t align perfectly for a given sprite.

ThingCategory Attached Effect Texture (PNG) Attached Effect Particule

🧭 Module Controller System

A safer way to create modules, without the need to unbind keys, disconnect events, or destroy widgets.
Example: (modules/game_minimap/minimap.lua)

πŸ–ΌοΈ Anti-Aliasing Mode Options

GIF:
aa

🧩 Creature Information by UIWidget

Video:

https://github.com/kokekanon/otclient.readme/assets/114332266/c2567f3f-136e-4e11-964f-3ade89c0056b

🧱 Tile Widget

Wiki: https://github.com/mehah/otclient/wiki/Tutorial-Attached-Effects

Title Attached Effect Title Widget Title Particule

🧩 Support HTML/CSS Syntax

https://github.com/user-attachments/assets/b16359d3-09a4-4181-bcb8-c76339b64b37

https://github.com/user-attachments/assets/d3844223-7e35-45da-a872-3141f1c5860a

https://github.com/user-attachments/assets/9f20814f-0aed-4b70-8852-334ac745ec11

https://github.com/user-attachments/assets/3ac8473c-8e90-4639-b815-ef183c7e2adf

Module examples:

πŸŽ₯ Latency-adaptive camera

Basically the camera adapts to the server latency to always remain smooth and avoid stuttering while walking.
If the ping gets high, the camera moves slower to keep up with the server's response time; if the ping drops, the camera moves faster. (Depends on character speed.)

🧭 Support Negative Offset (.dat)

Video:

https://github.com/kokekanon/otclient.readme/assets/114332266/16aaa78b-fc55-4c6e-ae63-7c4063c5b032

πŸ”— Compatibility & Protocols

[!NOTE] See section πŸ’― Support Protocol for a full compatibility matrix and required flags.

🧩 Community Mods & Integrations

πŸ™‹ Community (Features)

πŸ•ΉοΈ Discord RPC β€” @SkullzOTS

Example interface Example in game future discord-game-sdk

πŸ” Encryption System β€” @Mrpox *(unsafe implementation)*

[!WARNING] This encryption implementation is considered unsafe. Use at your own risk.

⬆️ Client Updater β€” @conde2 🌈 Colored Text β€” @conde2 πŸ”³ QR Code support β€” @conde2 πŸ’¬ Typing Icon β€” @SkullzOTS

πŸͺœ Smooth Walk Elevation β€” @SkullzOTS

πŸ—ΊοΈ Layout based on Tibia 13 β€” @marcosvf132

Status service
Put ./otclient/tools/api/status.php in:
C:/UniServerZ/www/api/

If it doesn't work, enable curl:

image image

Interface In-game

🌐 Browser Client β€” @OTArchive

Interface Density Pixel Joystick

Creature Map Mount

Example 1 Example 2 Example 3

πŸ’Έ Sponsored (Features)

Creature Items UICreature

πŸ”¦ OTClient V8 (Features)

The Mobile Project

This is a fork of edubart's OTClient. The objective of this fork is to develop a runnable OTClient on mobile devices.

Tasks

πŸ”¨ Compiling

If you are interested in compiling this project, visit the Wiki.

🐳 Docker

In order to build the app for production, run the following commands:

1) Build the image

docker build -t mehah/otclient .

2) Run the built image

# 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 -

🩺 Need Help?

Ask questions on Discord: https://discord.gg/tUjTBZzMCy

πŸ“‘ Bugs

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 and the walking system is stuttering, set
force-new-walking-formula: true in data/setup.otml.
In old protocols, if item speed feels too fast, adjust
item-ticks-per-frame: 75 in data/setup.otml.

if you use TVP or Nostalrius 7.72 activate the feature g_game.enableFeature(GameTileAddThingWithStackpos) in game_feature .

❀️ Roadmap

TO-DO list Status PR
Sound tibia 13 #1098
Prey and tasks #1380
Compendium #1625
Party List None
Proficiency #1593
New Imbui 15x/14x #1616

πŸ’― Support Protocol

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 See Wiki βœ…
Canary (14.00 ~ 14.12) OpenTibiaBr See Wiki βœ…
Canary (15.00 ~ 15.24) OpenTibiaBr See Wiki βœ…

©️ License

OTClient is made available under the MIT License β€” you are free to use it for commercial, non-commercial, closed or open projects.
See: MIT License

❀️ Contributors

If you are interested in supporting the project, donate here:
PayPal