0536aea27a7792aecef78d2bf4f012cd0d64ef37
RuneBase(RuneTemplate) fills the race, class and discipline maps from item_race_req / item_class_req / item_disc_req (names to rune ids through CObjectIndex; class runes with rune_is_standard_character_creation go to baseClass, the rest to promotionClass) with a restrict flag for each, and the level from item_level_req. static_rune_runereq is no longer used for cached rune bases; GET_RUNE_REQS stays until 2.11. ApplyRuneMsg follows ArcCharacter_MeetsItemReqs (0x475F40) and ArcItemRestrict_Check (0x4BAC60): restrict true = blacklist, false = whitelist. The class check passes when the base class or the promotion is listed. The discipline check is against the discs already held, using the new rune's list only. Parity (offline, scripts/p25a.py with feasible race/promotion pairs under the client rule; scripts/p25b.py over all 315 rune bases). Value changes, all decided JSON (D6, 2026-10-21): - 3001 Animator: + Irekei (4 pairs); Summoner blocks it - 3008 Commander: Saboteur blocks it - 3010 Duelist: level 20, 5 races, 7 promotions (had no DB rows; -111 pairs) - 3018 Enchanter, 3030 Conjurer: + Vampire (4 pairs each) - 3020 Summoner: - Thief/Warrior/Barbarian (28 pairs), + Centaur Druid/Priest (4); Animator blocks it - 3031 Darksworn: + Irekei Priest (2); 3032 Valkyr: + Human/Aelfborn Warrior (2) - 3037 Artillerist: + Sentinel (11); 3044 Strigoi: Belgosch blocks it - 252127 Master of Throwing: - Scout (16 pairs) - 70 more runes with no DB rows gain their JSON lists (class runes 2500-2526 except the Pet rune, creation talents and Bloodline talents); only runestones are checked - Stat chains: the DB "higher rank held" blocks leave the discipline map. Ranks 1-8 are still refused by the sub type rule; a rank-0 rune now replaces a higher rank as the client does (decided: follow the client) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Magicbane Open-Source MMO Project
The Community written Shadowbane emulator
Magicbane
Public Repository
magicbot@magicbane.com
Magicbane is an emulator for the long dead but much beloved Ubisoft MMO, Shadowbane. The project was founded in 2013 with the concept of free availability of gameplay; players unencumbered by any factor other than a desire to again play a game they once loved. A game where the developers do not play is guaranteed to be the fairest game.
The Magicbane Team has wanted to open source Shadowbane for half a decade. We are excited to now finally have the opportunity, along with some new technology, to truly democratize Shadowbane.
- Written in some 80k lines of Java 8 and bash.
- Project with real infrastructure; Production and development servers supporting multiple containerized apps.
- MagicBox container technology enables instant deployment and trouble free development on modest hardware.
- MagicBox plugin capability allows for new and interesting player experiences.
Contributing
- Project is released under an MIT license. Please see the LICENSE file.
- Inbound == Outbound.
- IntelliJ is the supported IDE.
- Write code today see it running on the Magicbane production server tomorrow.
Support
Documentation is available through the Magicbane Wiki and Discord server.
Description
Public Repository for the Magicbane Shadowbane Emulator
87 MiB
1 Stars
434 Watchers
6 Forks
Languages
Java
100%
