opentibiabr / otclient
git clone https://github.com/opentibiabr/otclient.git
4.1 · 2mo ago
🔥 on GitHub Trending today
An alternative Tibia game client for OTServ servers, written in C++20 with its interface and game logic scripted in Lua.
Why you might care
It is built as a modular framework where UI and features are Lua modules styled with CSS-like syntax, so mods and custom interfaces can be added without changing the engine. It supports OpenGL rendering, shaders, a sound system, and an in-game Lua terminal, and targets servers such as TheForgottenServer and Canary.
+1
stars, 24h · #17,299
+~2
stars, 7 days · #26,209
+~10
stars, 30 days · #29,774
540
★ total · +0% this week
548
forks · 50 open issues
Star history (as recorded here)
LanguageLua
License—
Created2020-06-18 (6y ago)
Last push2d ago
Watchers35
OwnerOrganization
Seen on GitHub Trending
- 2026-10-23 — #5 daily in lua · +1 ★
Links
README excerpt
OTClient - Redemption --- ## 📋 Table of Contents 1. 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 --- ## What is OTClient? OTClient is an alternative Tibia client for usage with OTServ. It aims to be **complete** and **flexible**: - **LUA scripting** for all game interface functionality - **CSS-like syntax** for UI design - **Modular system**: each functionality is a separate module, allowing easy customization - Users can create new mods and extend the interface - Written in **C++20** and heavily scripted in **LUA** 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 - **Description**: with this the spr file is not cached, consequently, less RAM is consumed. - **Video**: https://github.com/kokekanon/otclient.readme/assets/114332266/f3b7916a-d6ed-46f5-b516-30421de4616d 🧵 Multi-threading **Main Thread** - Sound - Particles - Load Textures (files) - Windows Events (keyboard, mouse, ...) - Draw texture **Thread 2** - Connection - Events (g_dispatcher) - Collect information on what will be drawn on the Map **Thread 3** - Collect information on what will be drawn in the UI **Image:** 🧹 Garbage Collection **Description (1):** [code] **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)* - C++20 ( v17 , Unity build and Manifest Mode *(vcpkg.json)* ) build in x32 and x64 - Walking System Improvements - Supports sequenced packages and compression - Asserts load (Tibia 13) --- ### 🎛️ UI & UX 🧩 UIWidgets Improvements - **Description:** Improvements in the UI algorithm; better performance in add/remove/reposition widgets. Visible in the **battle module**. - **Video:** https://github.com/user-attachments/assets/35c79819-b78b-4578-a4a2-af1235139807 🔁 Auto Reload Module Activate: `g_modules.enableAutoReload()` (init.lua) Video: https://github.com/kokekanon/otclient.readme/assets/114332266/0c382d93-6217-4efa-8f22-b51844801df4 ✨ Attache
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.