A feature-rich Dragon Ball Online private server fork by Nico Buzzi, based on OpenDBO.
DBO Legacy extends the original OpenDBO project with a comprehensive suite of tools, server-side features, and quality-of-life improvements designed for modern private server operators.
Have questions, suggestions, or need help? Feel free to reach out!
- Discord: Add me via User ID
700896227449110628or search for my username nNico - GitHub Issues: Open an issue on this repository
| Feature | Description | Documentation |
|---|---|---|
| Event Manager | Round-based PvE event system with world rotation, minion spawning, boss fights, and auto-restart | EventManager Guide • Español |
| Custom Drop Event | Config-driven drops, spawns, stat modifiers, buffs, titles, visuals, and totems for mobs | Custom Event Drop |
| Battle Pass System | Server-side progression with XP for kills, dungeons, PvP, Budokai; per-level rewards | BattlePass Guide |
| Virtual Transformations | Custom transformations with model swapping (race swaps, custom forms like SSB/UI) | VirtualTransform Guide |
| Mob Appearance Overrides | Swap mob models at runtime via config without client changes | MobAppearance Guide |
| Feature Flags | Enable/disable server features (Budokai, TMQ, Dojo, etc.) via config | FeatureFlags Guide |
| CCBD Enhancements | Extended to 150 floors with new mechanics (bombs, traps), boss-only floor mode, dynamic difficulty scaling | CCBD Guide |
| Budokai System | Full tournament system with matchmaking | Player Guide |
| Dojo System | Guild dojo battles with GM command support for manual execution | - |
| Rejoin System | Automatic dungeon rejoin for disconnected players (TMQ, TLQ, UD, BD, CC, Budokai) | - |
| Helper NPC System | Automated NPC companions to assist players in dungeons | - |
| Broly Dungeon | New endgame dungeon featuring Broly boss encounters | - |
| Blood Palace | Challenging wave-based survival dungeon | - |
| Kraken Normal | Kraken dungeon with standard difficulty | - |
| Kraken Hard | Kraken dungeon with increased difficulty and better rewards | - |
| Custom WPS Scripts | Modified world path scripts for enhanced dungeon mechanics and boss encounters | - |
| Player Mods | Server-side player stat modifications (buffs, multipliers) - automatically disabled during Budokai for fair PvP | - |
| Real-Time Translation | Automatic chat translation system allowing players to communicate across different languages in real-time | - |
| Feature | Description |
|---|---|
| Budokai 1v1 | Classic individual tournament battles |
| Budokai 2v2 / 3v3 / 4v4 / 5v5 | Team-based tournament modes with flexible party sizes |
| Random Arena | Automatic matchmaking fights every 10 minutes (configurable interval) with random map selection |
| Party vs Party | Organized team battles between parties |
| Guild vs Guild | Large-scale guild warfare battles |
| Individual Ranked | Solo competitive matchmaking |
| Tool | Description | Documentation |
|---|---|---|
| Server Monitor | Real-time monitoring dashboard for all server processes | Server Monitor |
| WPS Stage Gen | World path staging generator for dungeons/events (GUI + CLI) | WPS Stage Gen • CLI |
| RDF Table Editor | Visual editor for game data tables (RDF format) | Table Editor |
| Custom Drop Event Editor | GUI editor for CustomDropEvent.cfg | Tools/CustomDropEventEditor |
| Discord Announcer | Discord webhook integration for server announcements | Tools/DiscordAnnouncer |
| Dungeon Generator | Automated dungeon configuration generator | Tools/DungeonGenerator |
| EDF Crypt | Convert RDF to encrypted EDF format | Tools/edf_crypt |
All major features use external config files (no recompilation needed):
Events.cfg- Event Manager settingsCustomDropEvent.cfg- Drop/spawn/buff rulesBattlePass.cfg- Battle Pass configurationVirtualTransforms.cfg- Custom transformation definitionsMobAppearanceOverrides.cfg- Model swap mappingsFeatureFlags.cfg- Feature togglesGameServer.ini [DUNGEONS]- Dungeon settings
DBO-Legacy/
├── DboServer/ # C++ server source (Auth, Char, Chat, Game, Master, Query)
│ ├── ExecutionEnv/ # Runtime binaries and configs
│ ├── Documentation/ # Feature documentation
│ └── Database/ # SQL schemas
├── DboShared/ # Shared libraries
├── NtlLib/ # Network/utility libraries
├── Tools/ # .NET utilities and editors
│ ├── ServerMonitor/
│ ├── WpsStageGen/
│ ├── WpsStageGen.UI/
│ ├── TableEditor/
│ └── ...
└── Documentation/ # Additional guides
| Command | Description |
|---|---|
@unstuck |
Teleport back to your Popo Stone if stuck |
@online |
Shows amount of online players |
@exp on/off |
Toggle experience gain (useful for kid Budokai farming) |
@resetexp |
Reset your experience to 0 |
@addmasteritem |
Get master quest item if lost (after accepting from Korin) |
@addskill2 |
Unlock master class passive skill if bugged |
@addhtb |
Unlock main HTB and master HTB after skill reset |
| Command | Description |
|---|---|
@pm <name> <msg> |
Send private message to player |
@mute <name> |
Mute a player |
@unmute <name> |
Unmute a player |
@setdark <0/1> |
Toggle dark mode |
@start_dbhunt [hours] |
Start Dragonball Hunt event |
@stop_dbhunt |
Stop Dragonball Hunt event |
@start_dbscramble |
Start Dragonball Scramble event |
@stop_dbscramble |
Stop Dragonball Scramble event |
@start_stonedrop [hours] |
Start double stone drop event |
@stop_stonedrop |
Stop stone drop event |
@start_customdrop [hours] |
Start custom drop event |
@stop_customdrop |
Stop custom drop event |
@reload_customdrop [path] |
Reload CustomDropEvent.cfg |
@reload_helpernpc [path] |
Reload helper NPC configuration |
@helpernpc_metrics |
Show helper NPC metrics |
@helpernpc_resetmetrics |
Reset helper NPC metrics |
@helpernpc_refresh |
Refresh helper NPCs |
@customdrop_chainspawns |
Toggle chain spawns |
@customdrop_healmul <val> |
Set heal multiplier |
@customdrop_buffduration <val> |
Set buff duration |
| Command | Description |
|---|---|
@hide |
Toggle GM invisibility |
@teleport <x> <y> <z> |
Teleport to coordinates |
@world <id> |
Teleport to world |
@appear <name> |
Teleport to player |
@call <name> |
Summon player to you |
@all |
Teleport all players to you |
@setspeed <val> |
Set movement speed |
@setlevel <level> |
Set player level |
@level <level> [name] |
Set level (alt) |
@setclass <id> |
Set player class |
@addmob <id> [count] |
Spawn mob(s) |
@addmobgroup <id> |
Spawn mob group |
@addnpc <id> |
Spawn NPC |
@additem <id> [count] |
Give item |
@addskill <id> |
Give skill |
@heal |
Full heal |
@setzenny <amount> |
Set zenny |
@delallitems |
Delete all items |
@shutdown |
Shutdown server |
@dc <name> |
Disconnect player |
@kill <name> |
Kill player |
@god |
Toggle god mode |
@invincible |
Toggle invincibility |
@bann <name> |
Ban player |
@dbann <name> |
Database ban |
@purge |
Purge nearby mobs |
@notice <msg> |
Server-wide notice |
@cc <msg> |
Channel notification |
@warfog |
Toggle war fog |
@upgrade <slot> <level> |
Upgrade item |
@setitemrank <rank> |
Set item rank |
@go <loc> |
Go to preset location |
@addtitle <id> |
Add title |
@deltitle <id> |
Remove title |
@setitemduration <dur> |
Set item duration |
@bind |
Bind to current location |
@startevent <type> |
Start event (0=Honey, 1=Fairy) |
@stopevent <type> |
Stop event |
@deleteguild <name> |
Delete guild |
@cancelah |
Cancel auction house |
@addmudosa <amount> |
Add Mudosa points |
@startgm |
Start GM mode |
@createloot |
Create loot |
@PvpEvent |
Start PvP event |
@big <size> [name] |
Change player size |
@fly |
Toggle flight |
@resetskills |
Reset skills |
@buff <id> |
Apply buff |
@setadult |
Toggle adult mode |
All required third party tools can be obtained from our 3rd party repository.
Compiling the Client
-
Download / Install the necessary files:
- DirectX9.
- In case of encountering error S1023, execute the following commands as administrator:
MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5} MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
- In case of encountering error S1023, execute the following commands as administrator:
- 3rd party tools that you downloaded from our 3rd party repository.
- Client files: Download them from the Assets repository. First get the Base Client from the Releases section and then replace all needed files with the updated ones on the repo itself.
- Download v142 build tools (C++ MFC) via Visual Studio Installer.
- DirectX9.
-
Navigate to the following path:
source\repos\OpenDBO-Coreand create a folder named3rdParty. Move the Xtreme Toolkit folder there. -
Move the GFx SDK 3.3 folder into:
source\repos\OpenDBO-Core\DBOClient\Lib\NtlFlasher -
Access the GFx SDK 3.3 folder you just moved:
- Navigate to
source\repos\OpenDBO-Core\DBOClient\Lib\NtlFlasher\GFx SDK 3.3\3rdParty\jpeg-6b\gfx_projects\Win32 - Rename the folder named "Msvc80" to "Msvc142."
- Navigate to
-
Enter the Msvc142 folder and open the project: "libjpeg.sln"
-
Ensure the solution configuration in VS 2019 is set to: "Release and Win32." If not, adjust it.
-
Configure the libjpeg project settings:
- Right-click on libjpeg, go to Properties, and under Windows SDK Version, set it to the latest (10.0).
- Change the Platform Toolset to (v142).
- Right-click on libjpeg -> Build.
-
Navigate to folder:
source\repos\OpenDBO-Core\DboClient\DragonBalland extract the client's contents.- The downloaded RAR file should contain a folder named DragonBall; copy and paste its contents into the specified path.
- This RAR file is from the "Client" link provided above.
-
Go to folder:
source\repos\OpenDBO-Core\DboClientand open "DboClient.sln" -
In Solution Explorer, go to DBO\Client.vcxproj and repeat step 7.
-
In Solution Explorer, navigate to Tools\2DParticleEditor, right-click, and unload it.
-
Right-click on Client.vcxproj -> Build
- You should encounter only one error after compiling: 'libjpeg.lob'
-
Right-click on Client.vcxproj then go to properties:
- Navigate to Linker -> General -> Additional Library Directories.
- Update the paths to match your system:
$(SolutionDir)Lib\NtlFlasher\GFx SDK 3.3\Lib\$(PlatformName)\Msvc80\Release$(SolutionDir)Lib\NTlFlasher\GFx SDK 3.3\3rdParty\jpeg-6b\lib\$(PlatformName)\Msvc142\Release
-
Right-click on Client.vcxproj -> Rebuild
-
The Client should have compiled successfully.
Setting up the Server
-
Requirements:
- Windows 10
- 8 GB of RAM
-
Download and install Visual Studio 2019:
- Visual Studio 2019
- Select the "Community - Free Download" option to obtain the installer app.
- Open the installer app and follow these steps:
- Navigate to the "Workloads" section and install both "Desktop development with C++" and "Game development with C++."
- In the "Individual components" section, install "C++ Clang-cl for v142 build tools (x64/x86)."
- Click "Install while downloading" and wait for the process to complete.
-
Download and extract the OpenDBO-Core Repository:
- OpenDBO-Core Repository. Click "Code" -> Download ZIP.
- Extract the ZIP file to the main folder named "OpenDBO-Core."
-
Download and install/extract additional programs: it's recommended to set up the Client repository now. Otherwise perform steps 1 and 2 from the Client guide (if you already did it you can skip this step)
-
Compile the private server using Visual Studio 2019:
- Navigate to the "OpenDBO-Core" main folder, then to the "Dboserver" subfolder.
- Double-click "Dboserver.sln" to open it in Visual Studio 2019.
- Ensure "Release" and "x64" are selected from the top bar.
- In the "Solution Explorer," under "Server," right-click each server (AuthServer, CharServer, etc.) and click "Build" one by one.
- Wait for the server executable files to finish compiling.
-
Download and install XAMPP (you can also install the latest version of MariaDB directly, if so, you can skip this step and some steps of 7.):
- Deactivate User Account Control (UAC) by searching for "msconfig" in Windows, accessing the "tools" tab, and selecting "Disable UAC."
- Download and install XAMPP from XAMPP
- Navigate to "C:/xampp/apache/conf/httpd.conf" in Explorer.
- Open "httpd.conf" in Notepad, change the port to "Listen 8080," and change "ServerName localhost:" to "ServerName localhost:8080."
- In the XAMPP Control Panel, start "Apache" and "MySQL."
- Ensure your antivirus accepts XAMPP.
-
Open your browser and type: "localhost:8080/phpmyadmin/"
- Click "New" in the left column.
- Add a database named "dbo_acc" and click "make."
- Click "import" at the top, choose file, and select "dbo_acc.sql" from "OpenDBO-Core/DboServer/Database."
- Click "Start" at the bottom.
- Repeat this for "dbo_char" and "dbo_log."
- Within "dbo_acc," find "accounts," click "insert," and fill in a username and password.
- Generate an MD5 Hash for the password using MD5 Hash Generator, paste it next to "Password_hash," and click "Start" at the bottom.
- If you want GM permissions make sure to set
adminandisgmto10in theaccountstable andgamemasterto10in thecharacterstabel from thedbo_chardatabase.
-
Change the server .ini files:
- Navigate to "OpenDBO-Core/DboServer/ExecutionEnv/Config."
- Open "AuthServer.ini," "CharServer.ini," etc., with Notepad.
- Ensure all IP addresses are "127.0.0.1" and change the password to "test."
-
Run the server executables:
- Go to "OpenDBO-Core/DboServer/ExecutionEnv."
- Run
start_master_server.bat - Run
start_query_server.batand wait until its done (if you get missingMSVCP120.dllerror you can fix it by installing Microsoft Visual C++ Redistributable 2013). - Run
start_char_server_0.bat - Run
start_auth_server.bat - Run
start_channel_0.batand wait until it's finished (can take a lot of time, might need to press ENTER). Then close it. - Run
start_chat_server.batand wait until its done. - Run
start_channel_0.batagain,start_channel_1.bat(if you need 2 channels) andstart_channel_9.bat
-
Download and extract the DBO Client Files:
- Development Client/Server Access
- In the main folder, locate "ConfigOptions.xml," change the IP to "127.0.0.1" on each line, and save.
- Run the client, enter your username and password, and you’re ready to go.
- Config-driven drops, spawns, modifiers, buffs, titles (attributes), and visuals for mobs.
- Config:
DboServer/ExecutionEnv/config/CustomDropEvent.cfg - Optional levels sidecar:
DboServer/ExecutionEnv/config/CustomDropEvent.levels.json
- Event can be started via server control path (internally managed). While active, all rules apply to normal spawns and to event-created spawns.
- General format per line:
<id> [section]: <values> <id>: numeric mob tblidx. Useallfor global rules.- Supported sections:
- Drops (default when section omitted):
itemId@ratexcount(rate in 0..100, lowercasex, count default 1) modifiers: space-separated key/value multipliers (see keys below)spawnorspawns:mobId@ratexcountbuffs:skillTblidx[@durationMs](duration 0/omitted = skill default)titles:titleTblidx, ...(attribute effects from CharTitleTable applied to mobs)visuals:systemEffectTblidx[@intervalMs](visual-only; interval reserved; use@0)
- Drops (default when section omitted):
hp,physAtk,engAtk,physDef,engDef,atkSpd,runSpd,physCrit,engCrit,physCritDmg,engCritDmg,attackRate,dodgeRate,blockRate,blockDmg,guardRate,sizeRate- All are multiplicative except
sizeRatewhich is an absolute rate (client typical default 10). Specific overrides global when set (>0).
- You can have multiple lines per section. Values append (drops/spawns/buffs/titles/visuals) or multiply (modifiers).
- Global (
all) and specific (<id>) rules combine:- Lists (drops/spawns/buffs/titles/visuals): global entries + specific entries.
- Modifiers: multiply each field;
sizeRatechosen from specific if set, else global if set.
- On mob kill, if event is active, each configured spawn entry rolls independently.
rate < 100spawns are skipped if killer-target level gap > 10. - Event-created mobs:
- Use per-mob level if present in sidecar; otherwise base on killer mob level.
- Scaled stats: HP +1.5%/level, ATK +1.0%/level, DEF +1.0%/level.
- Apply configured modifiers, buffs, titles, and visuals.
- Mobs don’t have a
charTitlevisual field; titles here apply only attribute effects by readingCharTitleTablesystem effects and applying them to the mob’s attributes.
- Use
visuals:to always broadcast SystemEffect visuals to clients when the mob spawns (normal or event-created). No stat change. - For aura-like persistent visuals via buffs, use
buffs:with long durations and choose skills that have keep visuals (the editor’s Visuals picker helps).
- Flat JSON map of mobId to spawn level (1..255). Example:
{
"3131102": 50,
"46661101": 70
}# ===== Global (applies to all mobs) =====
all buffs: 700101@600000, 700202 # skillId@durationMs; 0/omitted = skill default
all visuals: 12345@0, 23456 # SystemEffect tblidx; @interval reserved (use 0)
all modifiers: hp=1.5 physAtk=1.2 runSpd=1.1 sizeRate=12
all titles: 1201, 1205 # CharTitle tblidx (attributes only)
all spawn: 3131102@100x2, 3131103@25x1 # mobId@ratexcount (use lowercase x)
# ===== Per-mob rules (merge with globals) =====
46661101: 315@100x100 # drops: itemId@ratexcount
46661101 spawn: 3131102@50x3
46661101 buffs: 701234@900000, 700777 # second uses skill keep time
46661101 visuals: 34567@0, 45678@0 # visuals broadcast on spawn
46661101 modifiers: hp=2.0 physDef=1.3 engDef=1.3
46661101 titles: 1302
# Another mob with only visuals/buffs
3131102 buffs: 700555@0
3131102 visuals: 56789@0
- Spawn a neutral beacon NPC on mob kill that periodically applies buffs in an area.
- Supports per-mob and global rules that merge like other sections.
<id> totem: beaconMobTblidx@lifeMs@radius@intervalMs: skillTblidx[@durationMs], skillTblidx[@durationMs], ...- Omit
radiusorintervalMsto use global defaults (see settings below). - Duration
@0or omitted uses the skill’s default keep time.
all settings: radius=<meters> interval=<ms> healMul=<float>radius: default area if a totem rule omits radius (default 30.0).interval: default pulse interval if omitted (default 2000 ms).healMul: multiplier for Heal-over-Time and EP-over-Time magnitudes applied by totems (default 3.0 for strong heals).
- On kill, each matching totem rule spawns the specified beacon at the mob’s position.
- While alive, the beacon pulses buffs to all players within
radiuseveryintervalMs. - HoT and EP-over-Time effects are boosted by
healMul. - Beacons despawn automatically after
lifeMsor when the event ends.
# Global defaults for big area and strong heals
all settings: radius=60 interval=2000 healMul=4
# Global speed zone + regen in huge area (good durations)
all totem: 16454201@45000@@: 300500@20000, 300510@20000, 300200@15000
# (beacon 16454201 lasts 45s, default 60m radius and 2s pulses; speed up, attack speed up, heal over time)
# Per-mob totem with explicit large radius and faster pulses
46661101 totem: 16454203@30000@80@1500: 300500@25000, 300200@15000
- Add any number of buffs to a totem rule. Use per-buff
@durationMsto control lifetime; re-applies on each pulse for players who remain in range. - For pure visuals, prefer
visuals:or use long-duration buffs that keep visuals. - Combine with
buffs:andmodifiers:on the beacon mob ID if you want the beacon to show effects or have altered stats (optional).
- “all …” lines append; use multiple lines as needed.
spawntokens aremobId@ratexcountwith lowercasex.visuals:require SystemEffect tblidx values, not skill ids. For long-lived visuals via buffs, list the skill ids underbuffs:with a long@durationMs.- Safety caps exist internally to avoid spam (e.g., stacked drops). Keep values reasonable.
Comprehensive documentation for server features and tools is available in the DboServer/Documentation folder:
- Event Manager - Round-based event system with world rotation, minion spawning, and auto-restart
- Custom Event Drop - Config-driven drops, spawns, modifiers, buffs, titles, and visuals
- Virtual Transformations - Custom transformation system with model swapping
- Feature Flags - Runtime feature toggle system
- CCBD v4 Guide - Dynamic dungeon configuration system
- Budokai Player Guide - Tournament system guide
- Server Monitor - Real-time server monitoring and management tool
- RDF Table Editor - Table editing tool for game data
- WPS Stage Gen - World path staging generation tool
- Battle Pass System - Server-side progression system
- Mob Appearance Overrides - Runtime mob model swapping
This project is based on OpenDBO. All and any copyrighted material belongs to their respective owners. This is a non-profit fan project aiming for game preservation. Thanks to DBOG for providing the base for this source code.
See LICENSE for details.