Open-source ToS server. This branch adds the Laima expansion as a package:
hundreds of skill/buff/pad/ability handlers, instance dungeons, parties,
trading — all toggled via packages.conf (enabled_packages: laima).
Targets client version 390044.
- Build:
dotnet build Melia.sln - Tests:
dotnet test(Test.Shared) - Run:
start-all.bat(or start-barracks/zone-1/social/web individually)
src/ZoneServer/— gameplay engine: Skills, Buffs, Pads, Abilities, World, AI, Network, Servicessrc/ZoneServer/Packages/Laima/— our handler overrides ([Package("laima")]), organized<ClassTree>/<Job>/src/Shared/— const enums (SkillId, BuffId), data loaders, ObjectProperties, MeliaDb basesrc/BarracksServer/,src/SocialServer/,src/WebServer/— login/character, party/chat, web APIsystem/db/+packages/laima/db/+user/db/— three-tier merged JSON-text game datasystem/scripts/+packages/laima/scripts/— C# content scripts (NPCs, spawns, AI, dungeons)system/conf/+user/conf/— config with include mechanism (user overrides system)sql/main.sql+sql/updates/— MySQL schema + migrations- Full architecture:
doc/dev/architecture.md
- Laima content never edits upstream Melia files. Override behavior via
[Package("laima")]handlers insrc/ZoneServer/Packages/Laima/and data overrides inpackages/laima/db/. Seedoc/dev/laima_package.md. - New game data entries go in
packages/laima/db/*.txt(or*_overrides.txtto patch upstream entries) — never insystem/db/. - Schema changes are new files in
sql/updates/update_YYYY-MM-DD_N.sql(and mirrored inmain.sqlfor fresh installs) — never edit applied updates. - Coding style: tabs, Allman braces, naming per
CONTRIBUTING.md.
When you change how a subsystem works, update its doc/dev/ page and any
.claude/skills/ checklist that references it. The subsystem → doc → skill
mapping lives in the maintenance table in doc/dev/README.md.
doc/dev/README.md is the index of all developer docs and agent skills.
Known landmines and unresolved bugs: doc/dev/known_issues.md.
User-facing docs (setup, scripting reference, formulas): doc/.