LandSandBoat FFXI Development Skill
Expert knowledge base for Final Fantasy XI private server development using the LandSandBoat codebase.
When to Activate This Skill
Claude should activate this skill when the user's request involves:
- LandSandBoat Development: Server configuration, troubleshooting, or modifications
- FFXI Game Mechanics: Combat systems, status effects, abilities, magic, crafting
- Database Work: Schema design, queries, character data, game data tables
- Lua Scripting: Zone scripts, NPCs, quests, missions, mob behaviors
- GM Tools & APIs: Building admin tools, player management, server utilities
- Network Protocols: FFXI packet structures, IPC, HTTP API integration
- Server Architecture: Understanding multi-process design, ZeroMQ, C++20 implementation
Available Documentation
This skill provides comprehensive reference documentation in the docs/ directory:
Core Documentation Files
architecture-overview.md (24 KB)
- Multi-process server design (login, map, world, search servers)
- Technology stack (C++20, Lua, MariaDB, ZeroMQ)
- Build system and configuration
- Module system for extensions
gameplay-systems.md (32 KB)
- Combat system (physical, magical, ranged)
- Entity system (characters, mobs, NPCs, pets, trusts)
- Status effects and buffs
- Quest and mission systems
- Zone management and navigation
- NPC interaction patterns
database.md (56 KB) - Primary reference for database work
- Complete schema documentation for 126+ tables
- Table relationships and foreign keys
- Character data structures
- Game data (items, mobs, abilities, spells)
- Economy systems (auction house, synth recipes)
- Binary blob field documentation
networking.md (28 KB)
- Network architecture and ports
- IPC via ZeroMQ (localhost:54003)
- Optional HTTP API (disabled by default)
- Packet structures (C2S and S2C)
- Security considerations
scripting.md (16 KB)
- Lua integration architecture
- Zone script structure (OnInitialize, OnZoneIn, onTrigger, etc.)
- Entity interaction patterns
- Common scripting patterns and examples
- Enumerations and constants
utilities.md (8 KB)
- Python development tools (dbtool.py, announce.py, etc.)
- Database management utilities
- CI/CD tools and testing utilities
Setup Instructions
First-Time Setup
When this skill is first activated, verify if the LandSandBoat reference codebase is available:
- Check for reference directory: Look for
reference/ directory in the skill folder
- If missing: Offer to run the setup script to clone the complete LandSandBoat codebase
- Run setup: Execute
./scripts/setup-reference.sh from the skill directory
The reference directory provides:
- Complete C++20 source code (~26% of codebase)
- All 297 zone Lua scripts (~63% of codebase)
- 126+ SQL schema files
- Python development tools
- Configuration examples
Path References
All documentation and reference paths use the pattern: landsandboat-skill/path/to/file
Examples:
landsandboat-skill/docs/database.md - Database schema reference
landsandboat-skill/reference/src/map/zone.cpp - Zone C++ implementation
landsandboat-skill/reference/scripts/zones/ - Zone Lua scripts
Working with This Skill
Strategy for Different Tasks
Building GM Tools or APIs
- Start with architecture: Read
docs/architecture-overview.md to understand server processes
- Database access: Reference
docs/database.md for schema (tables, relationships, constraints)
- Network options: Check
docs/networking.md for:
- Direct database access (most common)
- HTTP API integration (if enabled)
- ZeroMQ IPC (for advanced server integration)
- Examples: Review
reference/tools/*.py for Python tool patterns
Recommended stack: TypeScript + TanStack Query for modern API development
Lua Scripting
- Patterns: Read
docs/scripting.md for architecture and common patterns
- Reference code: Browse
reference/scripts/zones/ for real examples
- Enumerations: Check
reference/scripts/enum/ for game constants
- Globals: Review
reference/scripts/globals/ for shared functions
Understanding Game Mechanics
- Overview: Start with
docs/gameplay-systems.md for high-level concepts
- C++ implementation: Reference
reference/src/map/ for core engine logic
- Lua formulas: Check
reference/scripts/globals/ for damage calculations, status effects
- Database data: Query game data tables documented in
docs/database.md
Database Design & Queries
- Schema reference: Use
docs/database.md as primary reference (56 KB, comprehensive)
- Table relationships: Understand foreign keys (e.g.,
charid → chars.charid)
- Binary blobs: Character missions, abilities, key items stored as binary (see schema docs)
- Constraints: Respect game limits (inventory slots, stacking, job restrictions)
- Transactions: Always use transactions for multi-table modifications
Network Protocol & Packets
- Architecture: Read
docs/networking.md for multi-server communication
- Packet definitions: Reference
reference/src/map/packets/ for C++ structures
- IPC patterns: Check
reference/src/common/ipc.h for message types
- Security: Note that IPC is localhost-only, HTTP API disabled by default
Important Considerations
Data Integrity
- Character data has complex interdependencies across multiple tables
- Binary blob fields (missions, abilities) require careful parsing
- Always backup database before bulk operations
- Test on development environment first
Game Balance
- Server rates configured in
reference/settings/default/main.lua
- Era-specific settings affect gameplay (level caps, job abilities, expansion content)
- Use module system for customizations without modifying core
Security
- Database credentials in
reference/settings/default/network.lua
- IPC bound to localhost only (no external access)
- HTTP API disabled by default - requires explicit enabling
- DDoS protection settings available in network config
Performance
- Lua scripts are hot-reloadable (no server restart needed)
- Optimize database queries (use indexed columns)
- ZeroMQ provides high-performance IPC
- Multiple map servers can run for load distribution
Common Use Cases
Player Management
- Query
chars table for character data
- Modify stats, inventory, position
- Track sessions in
accounts_sessions
Item Distribution
- Insert into
char_inventory with proper item IDs
- Respect stacking limits and container slots
- Validate items exist in
item_basic table
Server Announcements
- Use
reference/tools/announce.py
- Or integrate with World Server IPC
Economy Monitoring
- Query
auction_house for transactions
- Track price trends and market activity
- Check
char_points for currency tracking
World State Management
- Conquest system tables
- Campaign and besieged status
- Zone weather and time-of-day
Additional Resources
- LandSandBoat Repository: https://github.com/LandSandBoat/server
- GitHub Wiki: 48+ pages on installation, configuration, development
- Module Development: Guides for Lua, C++, and SQL modules
- Community Discord: Active development community
Debugging and Troubleshooting
If Claude isn't using this skill effectively:
- Verify skill activation: Check that request mentions FFXI or LandSandBoat
- Documentation access: Ensure
docs/ directory is readable
- Reference code: Run setup script if
reference/ directory is missing
- Specific queries: Provide context (e.g., "using LandSandBoat" or "FFXI private server")
Version Information
- LandSandBoat Version: Latest stable (reference cloned from main branch)
- Skill Version: 1.0.0
- Last Updated: 2025-11-05
- Documentation Coverage: ~164 KB across 6 primary documentation files
1---2name: landsandboat-ffxi3description: Expert knowledge of Final Fantasy XI private server development using LandSandBoat codebase. Use when working with FFXI game mechanics, LandSandBoat source code, database schema, Lua scripting, GM tools, or server administration.4---5
6# LandSandBoat FFXI Development Skill
7
8Expert knowledge base for Final Fantasy XI private server development using the LandSandBoat codebase.
9
10## When to Activate This Skill
11
12Claude should activate this skill when the user's request involves:
13
14- **LandSandBoat Development**: Server configuration, troubleshooting, or modifications
15- **FFXI Game Mechanics**: Combat systems, status effects, abilities, magic, crafting
16- **Database Work**: Schema design, queries, character data, game data tables
17- **Lua Scripting**: Zone scripts, NPCs, quests, missions, mob behaviors
18- **GM Tools & APIs**: Building admin tools, player management, server utilities
19- **Network Protocols**: FFXI packet structures, IPC, HTTP API integration
20- **Server Architecture**: Understanding multi-process design, ZeroMQ, C++20 implementation
21
22## Available Documentation
23
24This skill provides comprehensive reference documentation in the `docs/` directory:
25
26### Core Documentation Files
27
281. **architecture-overview.md** (24 KB)
29 - Multi-process server design (login, map, world, search servers)
30 - Technology stack (C++20, Lua, MariaDB, ZeroMQ)
31 - Build system and configuration
32 - Module system for extensions
33
342. **gameplay-systems.md** (32 KB)
35 - Combat system (physical, magical, ranged)
36 - Entity system (characters, mobs, NPCs, pets, trusts)
37 - Status effects and buffs
38 - Quest and mission systems
39 - Zone management and navigation
40 - NPC interaction patterns
41
423. **database.md** (56 KB) - **Primary reference for database work**
43 - Complete schema documentation for 126+ tables
44 - Table relationships and foreign keys
45 - Character data structures
46 - Game data (items, mobs, abilities, spells)
47 - Economy systems (auction house, synth recipes)
48 - Binary blob field documentation
49
504. **networking.md** (28 KB)
51 - Network architecture and ports
52 - IPC via ZeroMQ (localhost:54003)
53 - Optional HTTP API (disabled by default)
54 - Packet structures (C2S and S2C)
55 - Security considerations
56
575. **scripting.md** (16 KB)
58 - Lua integration architecture
59 - Zone script structure (OnInitialize, OnZoneIn, onTrigger, etc.)
60 - Entity interaction patterns
61 - Common scripting patterns and examples
62 - Enumerations and constants
63
646. **utilities.md** (8 KB)
65 - Python development tools (dbtool.py, announce.py, etc.)
66 - Database management utilities
67 - CI/CD tools and testing utilities
68
69## Setup Instructions
70
71### First-Time Setup
72
73When this skill is first activated, verify if the LandSandBoat reference codebase is available:
74
751. **Check for reference directory**: Look for `reference/` directory in the skill folder
762. **If missing**: Offer to run the setup script to clone the complete LandSandBoat codebase
773. **Run setup**: Execute `./scripts/setup-reference.sh` from the skill directory
78
79The reference directory provides:
80- Complete C++20 source code (~26% of codebase)
81- All 297 zone Lua scripts (~63% of codebase)
82- 126+ SQL schema files
83- Python development tools
84- Configuration examples
85
86### Path References
87
88All documentation and reference paths use the pattern: `landsandboat-skill/path/to/file`
89
90Examples:
91- `landsandboat-skill/docs/database.md` - Database schema reference
92- `landsandboat-skill/reference/src/map/zone.cpp` - Zone C++ implementation
93- `landsandboat-skill/reference/scripts/zones/` - Zone Lua scripts
94
95## Working with This Skill
96
97### Strategy for Different Tasks
98
99#### Building GM Tools or APIs
100
1011. **Start with architecture**: Read `docs/architecture-overview.md` to understand server processes
1022. **Database access**: Reference `docs/database.md` for schema (tables, relationships, constraints)
1033. **Network options**: Check `docs/networking.md` for:
104 - Direct database access (most common)
105 - HTTP API integration (if enabled)
106 - ZeroMQ IPC (for advanced server integration)
1074. **Examples**: Review `reference/tools/*.py` for Python tool patterns
108
109**Recommended stack**: TypeScript + TanStack Query for modern API development
110
111#### Lua Scripting
112
1131. **Patterns**: Read `docs/scripting.md` for architecture and common patterns
1142. **Reference code**: Browse `reference/scripts/zones/` for real examples
1153. **Enumerations**: Check `reference/scripts/enum/` for game constants
1164. **Globals**: Review `reference/scripts/globals/` for shared functions
117
118#### Understanding Game Mechanics
119
1201. **Overview**: Start with `docs/gameplay-systems.md` for high-level concepts
1212. **C++ implementation**: Reference `reference/src/map/` for core engine logic
1223. **Lua formulas**: Check `reference/scripts/globals/` for damage calculations, status effects
1234. **Database data**: Query game data tables documented in `docs/database.md`
124
125#### Database Design & Queries
126
1271. **Schema reference**: Use `docs/database.md` as primary reference (56 KB, comprehensive)
1282. **Table relationships**: Understand foreign keys (e.g., `charid` → `chars.charid`)
1293. **Binary blobs**: Character missions, abilities, key items stored as binary (see schema docs)
1304. **Constraints**: Respect game limits (inventory slots, stacking, job restrictions)
1315. **Transactions**: Always use transactions for multi-table modifications
132
133#### Network Protocol & Packets
134
1351. **Architecture**: Read `docs/networking.md` for multi-server communication
1362. **Packet definitions**: Reference `reference/src/map/packets/` for C++ structures
1373. **IPC patterns**: Check `reference/src/common/ipc.h` for message types
1384. **Security**: Note that IPC is localhost-only, HTTP API disabled by default
139
140## Important Considerations
141
142### Data Integrity
143
144- Character data has complex interdependencies across multiple tables
145- Binary blob fields (missions, abilities) require careful parsing
146- **Always backup database** before bulk operations
147- Test on development environment first
148
149### Game Balance
150
151- Server rates configured in `reference/settings/default/main.lua`
152- Era-specific settings affect gameplay (level caps, job abilities, expansion content)
153- Use module system for customizations without modifying core
154
155### Security
156
157- Database credentials in `reference/settings/default/network.lua`
158- IPC bound to localhost only (no external access)
159- HTTP API disabled by default - requires explicit enabling
160- DDoS protection settings available in network config
161
162### Performance
163
164- Lua scripts are hot-reloadable (no server restart needed)
165- Optimize database queries (use indexed columns)
166- ZeroMQ provides high-performance IPC
167- Multiple map servers can run for load distribution
168
169## Common Use Cases
170
171### Player Management
172- Query `chars` table for character data
173- Modify stats, inventory, position
174- Track sessions in `accounts_sessions`
175
176### Item Distribution
177- Insert into `char_inventory` with proper item IDs
178- Respect stacking limits and container slots
179- Validate items exist in `item_basic` table
180
181### Server Announcements
182- Use `reference/tools/announce.py`
183- Or integrate with World Server IPC
184
185### Economy Monitoring
186- Query `auction_house` for transactions
187- Track price trends and market activity
188- Check `char_points` for currency tracking
189
190### World State Management
191- Conquest system tables
192- Campaign and besieged status
193- Zone weather and time-of-day
194
195## Additional Resources
196
197- **LandSandBoat Repository**: https://github.com/LandSandBoat/server
198- **GitHub Wiki**: 48+ pages on installation, configuration, development
199- **Module Development**: Guides for Lua, C++, and SQL modules
200- **Community Discord**: Active development community
201
202## Debugging and Troubleshooting
203
204If Claude isn't using this skill effectively:
205
2061. **Verify skill activation**: Check that request mentions FFXI or LandSandBoat
2072. **Documentation access**: Ensure `docs/` directory is readable
2083. **Reference code**: Run setup script if `reference/` directory is missing
2094. **Specific queries**: Provide context (e.g., "using LandSandBoat" or "FFXI private server")
210
211## Version Information
212
213- **LandSandBoat Version**: Latest stable (reference cloned from main branch)
214- **Skill Version**: 1.0.0
215- **Last Updated**: 2025-11-05
216- **Documentation Coverage**: ~164 KB across 6 primary documentation files