Skip to content

Releases: opentibiabr/otclient

4.0 + hotfix(1)

13 Jan 20:04
f38ab2b

Choose a tag to compare

Release 4.0 – Paperdoll System

Hotfix(1) Included

  • fix(#1596): rect of creature drawInformation bar (#1597)

This release marks a major milestone for the project, highlighted by the introduction of the long-awaited Paperdoll System, alongside a broad set of improvements, performance optimizations, refactors, and bug fixes across the client.

Paperdoll System

The new Paperdoll feature brings a modern, flexible, and visually accurate way to render character equipment and appearance. It lays the foundation for richer customization, better visual consistency, and future feature expansion related to outfits, items, and effects.

Preview

2023-05-12_14-30-35_3.mp4

Highlights

UI, Rendering & Graphics

  • Major shader improvements across UI components (items, creatures, missiles, effects).
  • Stabilized UI creature rendering, sizing, and clipping behavior.
  • Atlas rendering enabled in UI, including support for large spritesheets.
  • Significant DrawPool and rendering pipeline optimizations.
  • New CSS-compatible text engine with precise width calculation.

HTML / CSS Engine

  • Continuous evolution of the embedded HTML/CSS system:
    • Table support, initial flexbox support, placement attributes, absolute positioning fixes.
    • Improved text rules, white-space handling, width/height support.
    • Better compatibility with older modules.
  • Modal dialogs now accept HTML strings correctly.

Gameplay & Systems

  • New/expanded systems: Paperdoll, Forge, Prey, Stash, Market, Cyclopedia, and Game Market.
  • Monk vocation support: spells, stat bars, cooldowns, health/mana circles.
  • Improved mouse control modes and smarter click handling.
  • Enhanced action bars with multiple bars support.
  • Numerous fixes for battle list, cooldowns, skills, outfits, walking logic, and minimap behavior.

Performance & Stability

  • Extensive performance optimizations in text layout, glyph positioning, spectator retrieval, and draw pipeline.
  • Reduced memory usage in underline handling.
  • Parallelized rendering stages for improved frame times.
  • Dozens of crash fixes, nil-guard additions, and memory leak resolutions.

Tooling, Build & CI

  • Updated and pinned vcpkg baselines and workflows.
  • Faster Debug builds with /DEBUG:FASTLINK.
  • Improved Linux, Android, Emscripten, and non-Unity build support.
  • New CLI tool for DAT dumping.
  • Refactors and codebase modernization for long-term maintainability.

Contributors

Returning Contributors

Thanks to everyone who contributed to this release:

New Contributors

A special welcome to first-time contributors in this release:


Full Changelog

4.0b4...4.0

4.0 Beta 4 (UI Improve)

27 Aug 22:03
8311a01

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 4.0b3...4.0b4

4.0 Beta 3 (Texture Atlas/Async Texture Loading)

09 Aug 00:48
e376723

Choose a tag to compare

🚀 Improvements

  • 🔥 Major Performance Upgrade – Texture Atlas System

    • Implemented and optimized Texture Atlas to reduce texture binds, improve GPU batching, and boost rendering performance.
    • Impact: Up to 1.4x–3x FPS boost in heavy rendering scenarios.
  • ⚡ Async Texture Loading (SPR/DAT) Performance Boost

    • Replaced mutex with atomic in async sprite loading to reduce contention – #1240 (by @mehah)
    • Implemented faster sprite decoding & streaming – #1265 (by @mehah)
    • Impact: Significantly reduces map/asset load times, especially on large datasets.
  • Android

  • System & Performance

    • Refactor things.lua to Controller System + add loadDat fallback logic – #1224 (by @mehah)
    • Optimize drawpool – #1235 (by @mehah)
    • Replace Mutex with Spinlock in Dispatcher & Draw Pipeline – #1238 (by @mehah)
  • Features


🐛 Fixes


🧹 Code Cleanup


👥 New Contributors


Full Changelog: 4.0b2 → 4.0b3

4.0 Beta 2

27 Jun 21:47
9b2cf4b

Choose a tag to compare

What's Changed

Creature Scale

Otclient.-.Redemption.2025-06-27.18-45-50.mp4

Battle Optimization

459005215-33524496-68ce-4e51-bafa-1f48ae7d4d2d.mp4

Peformance Test (VSYNC 144hz)

Otclient.-.Redemption.2025-06-30.19-39-47.mp4

✨ Features

  • feat: Allow to disable animation for Thing #1021
  • feat: Support adding items to any slot in containers #1033
  • feat: Boosted creature, staticdata from assets, bestiary races rework #1064
  • feat: Latency-adaptive camera (Beta) #1090
  • feat: Checkbox for quickloot accepted items #1105
  • feat: Quickloot through bestiary #1112
  • feat: Cyclopedia back button #1115
  • feat: Thing scale #981
  • feat: Cam system by kondra #1116
  • feat: Create accounts with API MyACC #1131
  • feat: Daily Reward in HTML/CSS #1143
  • feat: Quest Log tracker and Style 14.10 in HTML/CSS #1144
  • feat: Options control buttons #1148
  • feat: New shop (based on store) #1151
  • feat: Add Lua functions getAnchors and getAnchor(anchorType) #1207
  • feat: Player / monster icons 12.81 #973
  • feat: Texture cache for drawpool #1216
  • feat: "Read-only Tab" in game_console #1189
  • feat: Load sounds with protobuf #1074

🛠 Improvements

  • improve: Walking system independent of server response #1087
  • improve: UIGraph line smoothing #1016
  • improve: Refactor walking for better responsiveness #1028
  • improve: Remove duplicate include #1006
  • improve: Encryption system #1075
  • improve: Game walk uses controller system #1055
  • improve: QuickLoot features #1096
  • improve: Crypt #1089
  • improve: Utils #1092
  • improve: String #1117
  • improve: Rect/Point/Size #1118
  • improve: Color #1120
  • improve: New game shop #1153
  • improve: Optimization of new shop (store) #1159
  • improve: Encryption #1138
  • improve: Add macOS CMake presets #1083
  • improve: GameLoadSprInsteadProtobuf #1204
  • improve: Add support to fmt format to logger class #1169
  • improve: Textures/Matrix Cache/Camera/Pre-Draw optimization #1170

🐛 Bug Fixes

  • fix: Incorrect usage of const ref shared_ptr #1010
  • fix: Freezing walking #1069
  • fix: Fluid colors #1110, #1167
  • fix: Texture flickering #1188
  • fix: Make some things thread-safe to resolve crashes #1165
  • fix: Loading textures without transparency in DirectX #1213
  • fix: Use weak_ptr in connection callbacks #1177
  • fix: Animated foreground #1181
  • fix: Updater texture #1211
  • fix: And many more small bug fixes (see changelog for full list)

⚙️ Performance

  • perf: Support multithreading in updateVisibleTiles #1082
  • perf: Battle and general layout update optimized #1193, #1212

🧹 Cleanup

  • Cleanup: Prevent errors and warnings in Lua code #1179

🔧 CI / Build

  • fix: Build workflows #1139
  • ci/cl: Improved caching, concurrency, and trigger control #1178
  • fix: Browser build + Emscripten Build Workflow #1124

🆕 New Contributors


📄 Full Changelog: Compare v4.0b → v4.0b2

4.0 Beta

25 Dec 17:12

Choose a tag to compare

Summary

Creature Information by UIWidget

widget_creature_information.mp4

Html syntax beta v0.1

html1.mp4
htnl2.mp4

Hud Scale

hud.mp4

Pulse and fade in Attached Effect

pulse.mp4

What's Changed

Read more

3.5

10 May 19:15
7d96402

Choose a tag to compare

3.5

What's Changed

Read more

3.1

20 May 16:40
47a3e59

Choose a tag to compare

3.1

What's Changed

New Contributors

Full Changelog: 3.0.2...3.1

[Widget Shader Support]

widget_shader_support.mp4

[Attached Effect (Server Support)]

attached_effect_server_support.mp4

[Attached Effect with apng]

Attachedeffectwithapng.mp4

[Font Scale]

font-scale.mp4

[Particle and Title with scale sample]

particle_title_sample.mp4

3.0.2

18 Mar 15:07

Choose a tag to compare

What's Changed

fix: text scale by @mehah
fix: lighting system bugs by @mehah
fix: messages are in wrong position by @mehah

Full Changelog: 3.0...3.0.2

3.0.1

16 Mar 20:20

Choose a tag to compare

Hotfix

fix: lighting bug with creature information scale @mehah

What's Changed

  • feat: Task Module by @dewral in #457
  • feat: adaptive ui loading by @BenDol in #451
  • feat: text scale options by @mehah in #466
  • fix: Outfits as item id does not works with Creature widget by @mehah #472
  • fix: Player diagonal direction lag by @mehah #469
  • fix: Target texture unloads (red square) by @mehah #468
  • fix: [Highlight] Disappears on relog by @mehah #476
  • fix: [Highlight] Select top item of stack, instead them all by @mehah #474
  • fix: [Highlight] Wrongly updated mouse position on floor change by @mehah #475
  • fix: android sound crash by @tuliomagalhaes in #461
  • fix: crash and UI mobile by @beats-dh in #465
  • fix: for alot of OTC's to not display health properly in circle bars. by @themaoci in #463
  • fix: for custom asserts, where ids are not sorted. by @mehah
  • fix: highlight stop to work on change outfit](1bfa892)
  • fix: m_glyphsTextRectCache random crash by @mehah #470
  • improve: Attached Effect (new props) by @mehah in #460
  • improve: autowalk by @mehah
  • improve: density pixel (mobile) by @mehah in #462
  • perf: lighting optimization up to 39% by @mehah in #459
  • rework: remove client code from framework (fps & ASYNC_DISPATCHER_MAX_THREAD) by @BenDol in #458

New Contributors

Full Changelog: 3.0b...3.0

Message Scale Options

Otclient.-.Redemption.2023-03-16.17-16-23-1.mp4

Attached Effect (New Props)

loop(number): quantity of loop that the effect will remain active.
duration(number): duration of effect.
transform(bool): Instead of attaching, the character will change the outfit.
hideOwner(bool): Hide the owner where the effect was attached.

2023-03-06_19-43-16-1.mp4

Android [Density Pixel]

image

image

3.0b

02 Mar 22:51

Choose a tag to compare

What's Changed

  • clean: move client SPRITE_SIZE out of the framework by @BenDol in #448
  • clean: shader clean up and remove client code from the framework by @BenDol in #444
  • feat: add always-show-count to UIItem by @BenDol in #445
  • feat: add module enabled setting, useful when testing by @BenDol in #446
  • feat: thing texture garbage collection by @mehah in 9d1b5c5
  • fix missing byte on change outfit by @alfuveam in #406
  • fix missing import of by @ranisalt in #439
  • fix: add missing ThingAttrMarket to thingtype.cpp by @h4b00 in #423
  • fix: added missing CMake module for asio library by @ranisalt in #430
  • fix: android startup crash and input events by @BenDol in #440
  • fix: clang compilation for android build - added QueueEntry construct by @BenDol in #433
  • fix: clang warning/errors by @mehah in #441
  • fix: crash, division by zero by @conde2 in #422
  • fix: monsters with invisible name and health bar not showing in battle list by @Nottinghster in #443
  • fix: outfit render picker scaling issues #405 by @mehah in #407
  • improve: Async texture loading / Rewrite Mark System / AutoRepeatDelay to 50 / cleanup by @mehah in #417
  • improve: HTTP.download by @Mrpox in #425
  • improve: bool to bitwise and int to uint8/16 by @mehah in #426
  • improve: lighting system replaced by that of the V8 by @mehah in #447
  • improve: rewrite Drawpool by @mehah in #415
  • improve: update GHA to read builtin-baseline from vcpkg.json by @beats-dh in #403
  • improve: walk response when changing direction by @conde2 in #409

New Contributors

Full Changelog: 2.8...3.0b

Android

android2.mp4
android1.mp4