Welcome! The OpenTibiaBR team is deeply committed to continuously enriching this project with new features and fixes. Your support, either financial or through code contributions and issue reports, is vital for our ongoing work.
-
To contribute code or report problems, join our Discord community.
-
If you'd like to financially support the project, please consider making a donation.
-
For tutorials and additional resources, visit our documentation.
Download Tibia Client 14.12
Download OTClient Redemption, thanks for @mehah
What's Changed
- fix: condition suppression removal logic on equip/de-equip by @dudantas in #3563
- feat: protocol 14.12 by @dudantas in #3524
- fix: docker build by @Costallat in #3575
- feat: add yasir missing items up to 14.12 by @InVoidEcho in #3581
- fix: clear player target on logout/removal by @kaleohanopahala in #3582
- fix: crash on shopPlayers cleanup in closeAllShopWindows by @dudantas in #3604
- perf: parallelize player saves via thread pool by @dudantas in #3602
- feat: new talkaction manage kv by @LeoTKBR in #3502
- feat: new talkaction ban by @LeoTKBR in #3511
- fix: conclusion description Paw and Fur tasks by @Destroyyy007 in #3512
- fix: gamestore exploit by @LeoTKBR in #3515
- fix: the ape city quest mission 7 by @fugu320 in #3532
- fix: grave danger darashia boss sir nictros by @mdbeng in #3533
- fix: prevent task flood caused by double OTSYS_TIME() subtraction in action delay by @dudantas in #3591
- fix: ensure stats are only applied when imbuement is successfully added by @dudantas in #3554
- fix: potential deadlocks in KVStore by enforcing safe lock ordering by @dudantas in #3568
- fix: use-after-free in Lua garbage collection of shared objects by @dudantas in #3553
- fix: divine empowerment damage bonus by @gabrielew in #3607
- fix: add missing migration from player death column by @dudantas in #3540
- fix: podium of renown description by @lamonato29 in #3558
- fix: fluids descriptions by @vllsystems in #3559
- fix: candia races and fluids by @majestyotbr in #3566
- fix: ramp from temple of the moon goddess by @majestyotbr in #3567
- fix: annihilator quest & other monster values by @GooseWithAKnife in #3580
- fix: npc flickering soul by @kaleohanopahala in #3589
- fix: grand master oberon messages by @GooseWithAKnife in #3593
- fix: low blow appearing twice in server log by @gabrielew in #3573
- fix: familiar cooldown by @gabrielew in #3569
- fix: avoid duplicated call onrefreshCyclopediaMonsterTracker method by @gabrielew in #3603
- fix: show more than one creature icon by @gabrielew in #3610
- fix: add tile null checks in combat and spell logic by @dudantas in #3614
- fix: add null and bounds checks in replaceThing method by @dudantas in #3615
- fix: add missing ON DELETE CASCADE by @slawkens in #3590
- feat: add Nimmersats Dragons spawns by @Pablodotnet in #3613
- feat: add candia spawn by @Pablodotnet in #3617
- feat: add missing attributes to new helmets by @Pablodotnet in #3621
- fix: double destruction in Lua __gc for shared_ptr userdata by @dudantas in #3623
- enhancement: add ability to give minor charms to players as god by @Pablodotnet in #3622
- enhancement: add winged druid outfit to store by @Pablodotnet in #3624
- enhancement: delete duplicated /raid talkaction by @Pablodotnet in #3626
- fix: outfit monster value by @gabrielew in #3627
- fix: wrong ids of two items of black bert by @Pablodotnet in #3628
- fix: exit destination of gnomprona boss tp by @Pablodotnet in #3630
- fix: add coordinate validation in getTile method by @dudantas in #3631
- enhancement: add buy bulk of carpets and fix magic carpet mount description by @Pablodotnet in #3632
- fix: reset exp boosts at server initialization by @Pablodotnet in #3633
- feat: dancing fairy action by @kaleohanopahala in #3636
- feat: birdcage by @kaleohanopahala in #3640
- improve creature pushing by @kaleohanopahala in #3637
- improve monster push items by @kaleohanopahala in #3638
- feat: azzilon by @Pablodotnet in #3634
- Fix: A-Z order GetAllKv by @LeoTKBR in #3643
- fix: arbaziloth boss by @Pablodotnet in #3647
- fix: timira boss reward by @Pablodotnet in #3649
- fix: gloothomotive mount item by @Pablodotnet in #3650
- fix: ferumbras ascension quest by @Pablodotnet in #3646
- enhancement: set boss cooldown when teleporting players to boss rooms by @Pablodotnet in #3652
- fix: the unwelcome boss room by @Pablodotnet in #3653
- fix: boss race id for ascending ferumbras by @Pablodotnet in #3654
- fix: library final boss room access teleports by @Pablodotnet in #3655
- fix: entrance to bakragore boss by @Pablodotnet in #3656
- fix: delete requirement of exact players to start cults of tibia bosses by @Pablodotnet in #3657
- fix: update outfit cache storage reference for golden outfit by @jbracovich in #3658
- fix: update quaidDen ID for grave danger quest by @jbracovich in #3659
- fix: spirit of purity mount by @Pablodotnet in #3661
- enhancement: add functionality to items used to obtain the second familiar by @Pablodotnet in #3662
- enhancement: add reported missing corpses by @Pablodotnet in #3663
- improve: refactor and extend Benchmark utility by @dudantas in #3665
- fix: underflow in container slot search for non-stackables by @dudantas in #3667
- fix: destinations of rotten blood bosses exits by @Pablodotnet in #3670
- fix: remove spirit of purity mount from store by @Pablodotnet in #3673
- chore(macos): setup compilation on macos/clang by @luan in #3671
- refactor: test setup and improve test isolation by @dudantas in #3676
- chore: setup ctest from root by @luan in #3677
- refactor: DI usage in tests and improve integration test logic by @dudantas in #3678
- improve: refactor storages in PlayerStorage component and optimized save by @dudantas in #3664
- fix: operator precedence and minor code cleanup by @dudantas in #3679
- fix: missing return after unknown immunity in Lua functions by @dudantas in #3669
- refactor: KVStore eviction and add deleted key filtering by @dudantas in #3651
- fix: only push player if vocation is valid by @dudantas in #3648
- refactor: player login container and hotkey handling by @dudantas in #3680
- fix: type safety on raid checks by @luan in #3675
- chore: add cmake-format and cmake-lint by @luan in #3672
- refactor: test env setup and logger injection in tests by @dudantas in #3683
- fix: add nullptr check to function Bank::deposit(destination, amount) by @kaleohanopahala in #3687
- fix: potential null on InstantSpell::canThrowSpell by @kaleohanopahala in #3688
- fix: visual studio build by @tibianito in #3690
- fix: add uint8_t limit to cyclopedia tracker list, preventing client crash (#3693) by @gabrielew in #3693
- fix: persist tracked quests in client by @gabrielew in #3685
- fix: remove duplicated include of
io/iobestiary.hppby @gabrielew in #3696 - feature: add missing water floor and fix water bucket id by @Pablodotnet in #3698
- feature: gamestore 'new' flag in home offers by @vllsystems in #3704
- fix: use uniform RNG for offensive charm proc probability by @gabrielew in #3703
- fix: restrict stash item removal to tier 0 in market offers by @dudantas in #3711
- improve: change default option TOGGLE_BIN_FOLDER to OFF by @dudantas in #3716
- fix: ensures more reliable stash retrieval and consistency for players by @gabrielew in #3712
- fix: adjust hotkey flow to respect item tiers by @gabrielew in #3695
- fix: possible null at playerrequesttrade by @kaleohanopahala in #3719
- fix: enable 'toggle_bin' flag for gha by @Costallat in #3729
- fix: enforce max item tier in market operations by @dudantas in #3731
- fix: warn instead of sendHouseAuctionMessage on null player by @kasajames in #3735
- fix: add nullptr checks at game fuctions by @kasajames in #3734
- fix: buy all regular blessings by @andreoam in #3722
- refactor: migrate tests from boost::ut to GoogleTest by @dudantas in #3717
- fix: set default value for taskName in Dispatcher by @dudantas in #3743
- feat: loot highlight effect by @dudantas in #2623
- fix: familiar time by @kasajames in #3747
- fix: sendUpdateTileCreature log client debug by @kasajames in #3748
- feat/improve: create "custom loot" for monsters by @dudantas in #3080
- fix: update lastLogout to current time on player actions by @dudantas in #3755
- fix: house checks to monster movement logic by @kaleohanopahala in #3760
- fix: loot highlight effect by @kasajames in #3761
- fix: ignore removed creatures or creatures with no HP when assembling tile descriptions by @gabrielew in #3765
- ci/cd: auto deploy to our test server by @lgrossi in #3776
- ci/cd: allowing deployment via comments by @lgrossi in #3777
- ci/cd: fix artifact download by @lgrossi in #3778
- refactor: add gamestore catalog modules by @dudantas in #3738
- refactor: quest system to use modular catalog loading by @dudantas in #3763
- fix: update missionId for Mathemagics quest stage by @dudantas in #3788
- feat: add event scheduler by json by @dudantas in #3085
- improve: refactor and modularize player forge history handling by @dudantas in #3666
- perf: replace std::ranges::copy with std::memcpy for buffer ops by @dudantas in #3790
- refactor: event callback system and update usages by @dudantas in #3684
- feat: prevent idle kick when KICK_AFTER_MINUTES is zero by @dudantas in #3791
- fix: throttle imbuement tracker updates to 1s interval by @dudantas in #3766
- fix: update GitHub Actions to use versioned actions by @dudantas in #3792
- chore: update copyright year range in source headers by @dudantas in #3789
- fix: killing in the name of quest boss kill count by @EGSilver in #3713
- fix: burst arrow attributes by @vllsystems in #3758
- fix: a father's burden quest by @GuiValladao in #3774
- fix: a sweaty cyclops npc by @GuiValladao in #3775
- fix: add correct loot to the abomination boss by @Pablodotnet in #3780
- feat: fiery horseshoe action to add mount to player by @Pablodotnet in #3781
- fix: change spirit of purity type of mount by @Pablodotnet in #3782
- feat: foxmouse mount action and change mount type by @Pablodotnet in #3783
- fix: add dawnfire pantaloons item to timira loot table by @kaeltj in #3784
- fix: lynda npc by @Pablodotnet in #3786
- feat(quests): allow non-sequential quest IDs and indices by @LeoTKBR in #3795
- fix: avoid infinite loop in replaceString with empty sought parameter by @kaleohanopahala in #3793
- feat: export whole combat damage to lua by @phacUFPE in #3694
- fix: correct mapping of AccountType to GroupType in talkactions by @tiagopsd in #3629
- feat: log received opcodes from client by @LeoTKBR in #3618
- fix: vcxproj build problems by @Zbizu in #3796
- fix: refine down-item snapshot for monster push by @dudantas in #3797
- fix: single target damage application in CombatFunc by @dudantas in #3800
- fix: god account type 5->6 in schema.sql and add migration by @Zbizu in #3806
- feat: add open PvP situations and improve skull duration logic by @dudantas in #3802
- fix: market enter item count overflow and enforce entry limit by @dudantas in #3811
- fix: improve DBTransaction executeWithinTransaction reliability and correctness by @un000000 in #3641
- fix: prevent teleport usage with invalid destination by @dudantas in #3812
- fix: add missing include by @dudantas in #3817
- fix: war golem loot adjustment by @kaeltj in #3813
- fix: add dwarven helmet to the horned fox loot table by @kaeltj in #3815
- fix: roshamuul quest resonance chamber action by @kaeltj in #3814
- fix: spawn plunder patriarch by @dudantas in #3819
- fix: house item transfer logic and bed sleeper reset on invalid state by @dudantas in #3546
- fix: target player from lastHitCreature param by @gabrielew in #3574
- fix: cap god setmaxspeed walk bug by @dudantas in #3810
- refactor: replace GMP/MPIR with OpenSSL for RSA by @beats-dh in #3805
- chore: Update vcpkg baseline to 2026.01.16 by @github-actions[bot] in #3824
- build: update visual studio solution by @majestyotbr in #3821
- feat: new sounds ambient and music by @LeoTKBR in #3526
- fix: monsters healing target by @LeoTKBR in #3825
- fix: add rate limiting to party analyzer updates by @dudantas in #3728
- refactor: workflows to use concurrency for run cancellation by @dudantas in #3827
- refactor: CI workflows and unify Windows builds by @dudantas in #3828
- fix: party hunt loot values (market data) by @dudantas in #3829
- ci: enable vcpkg binary caching (x-gha/nuget) and fix build caches by @dudantas in #3831
- fix: Ice Islands Quest and Buddel after Barbarian test by @Rakarski in #3830
- CI/CD: improve permissions, artifacts, vcpkg cache, and test flexibility by @dudantas in #3832
- perf: refactor imbuement decay to per-item management by @dudantas in #3134
- fix: lion's rock quest - small topaz and searing fire field by @Rakarski in #3836
New Contributors
- @InVoidEcho made their first contribution in #3581
- @Destroyyy007 made their first contribution in #3512
- @fugu320 made their first contribution in #3532
- @gabrielew made their first contribution in #3607
- @vllsystems made their first contribution in #3559
- @GooseWithAKnife made their first contribution in #3580
- @Pablodotnet made their first contribution in #3613
- @jbracovich made their first contribution in #3658
- @tibianito made their first contribution in #3690
- @kasajames made their first contribution in #3735
- @EGSilver made their first contribution in #3713
- @kaeltj made their first contribution in #3784
- @tiagopsd made their first contribution in #3629
- @github-actions[bot] made their first contribution in #3824
- @Rakarski made their first contribution in #3830
Full Changelog: v3.2.1...v3.3.0