- Renamed config key from GuildMealDuration to ClanMealDuration - Changed unit from minutes to seconds (matching upstream convention) - Updated handler to use seconds-based calculation - Updated documentation and examples This fixes the bug where clan meals were not being shared between guild members when using a config.json with the upstream naming.
Erupe Configuration Documentation
Comprehensive configuration documentation for Erupe, the Monster Hunter Frontier server emulator.
Quick Start
- Copy config.example.json to
config.json - Read Basic Settings and Server Configuration
- Set up Database
- Adjust Gameplay Options to your preference
- Start the server!
Documentation Index
Essential Configuration
- Basic Settings - Host, language, and basic server options
- Server Configuration - Sign, Entrance, and Channel server setup
- Database - PostgreSQL configuration and schema management
Development
- Development Mode - Debug options, packet logging, and testing tools
- Logging - File logging, rotation, and log analysis
Gameplay & Features
- Gameplay Options - NP/RP caps, boost times, quest allowances
- Courses - Subscription course configuration
- In-Game Commands - Chat commands for players and admins
Optional Features
- Discord Integration - Real-time Discord bot for server activity
Configuration File Structure
The main configuration file is config.json with this structure:
{
"Host": "127.0.0.1",
"BinPath": "bin",
"Language": "en",
"DevMode": false,
"DevModeOptions": { ... },
"GameplayOptions": { ... },
"Logging": { ... },
"Discord": { ... },
"Commands": [ ... ],
"Courses": [ ... ],
"Database": { ... },
"Sign": { ... },
"SignV2": { ... },
"Channel": { ... },
"Entrance": { ... }
}
Configuration Sections
| Section | Documentation | Purpose |
|---|---|---|
| Basic Settings | basic-settings.md | Host, paths, language, login notices |
| DevMode | development-mode.md | Development and debugging options |
| GameplayOptions | gameplay-options.md | Gameplay balance and modifiers |
| Logging | logging.md | File logging and rotation |
| Discord | discord-integration.md | Discord bot integration |
| Commands | commands.md | In-game chat commands |
| Courses | courses.md | Subscription courses |
| Database | database.md | PostgreSQL connection |
| Sign/SignV2 | server-configuration.md | Authentication servers |
| Channel | server-configuration.md | Gameplay server |
| Entrance | server-configuration.md | World list server |
Common Configuration Scenarios
Local Development Server
Perfect for testing and development:
{
"Host": "127.0.0.1",
"DevMode": true,
"DevModeOptions": {
"AutoCreateAccount": true,
"MaxLauncherHR": true
},
"Database": {
"Host": "localhost",
"User": "postgres",
"Password": "dev",
"Database": "erupe_dev"
}
}
See: development-mode.md
Production Server (Minimal)
Minimal production-ready configuration:
{
"Host": "",
"DevMode": false,
"DisableSoftCrash": true,
"Logging": {
"LogToFile": true,
"LogMaxBackups": 7,
"LogMaxAge": 30
},
"Database": {
"Host": "localhost",
"User": "erupe",
"Password": "SECURE_PASSWORD_HERE",
"Database": "erupe"
}
}
See: basic-settings.md, logging.md
Community Server
Feature-rich community server:
{
"Host": "",
"DevMode": false,
"HideLoginNotice": false,
"LoginNotices": ["Welcome to our server!"],
"GameplayOptions": {
"MaximumNP": 999999,
"BoostTimeDuration": 240
},
"Discord": {
"Enabled": true,
"BotToken": "YOUR_TOKEN",
"RealtimeChannelID": "YOUR_CHANNEL_ID"
},
"Commands": [
{"Name": "Reload", "Enabled": true, "Prefix": "!reload"},
{"Name": "Course", "Enabled": true, "Prefix": "!course"}
]
}
See: gameplay-options.md, discord-integration.md, commands.md
Security Checklist
Before running a public server, verify:
DevMode: false- Disable development modeAutoCreateAccount: false- Require manual account creationDisableTokenCheck: false- Enable token validationCleanDB: false- Don't wipe database on startup- Strong database password set
Rightscommand disabled (or carefully controlled)KeyQuestcommand disabled (unless intentional)- Firewall configured for only necessary ports
- Database not exposed publicly
- Logging enabled for monitoring
See: development-mode.md#security-warnings
Performance Tuning
For large servers:
- Increase player limits: Adjust
MaxPlayersin channel configuration - Add more channels: Distribute load across multiple channel servers
- Optimize database: Use connection pooling, increase shared buffers
- Increase log rotation: Larger
LogMaxSizeandLogMaxBackups - Monitor resources: Use log analyzer to track errors and performance
See: server-configuration.md, database.md#performance-tuning
Configuration Validation
Erupe validates configuration on startup. Common errors:
| Error | Cause | Fix |
|---|---|---|
| "Database password is blank" | Empty password field | Set a password in config |
| "Invalid host address" | Malformed Host value | Use valid IP or leave empty for auto-detect |
| "Discord failed" | Invalid Discord config | Check bot token and channel ID |
| Port already in use | Port conflict | Change port or stop conflicting service |
Environment-Specific Configuration
Docker
When running in Docker, use service names for hosts:
{
"Database": {
"Host": "db",
"Port": 5432
}
}
Cloud Hosting
For cloud deployments:
- Use environment variables for secrets (requires code modification)
- Enable
DisableSoftCrash: truefor auto-restart - Use absolute paths for logs (
/var/log/erupe/erupe.log) - Consider external database (RDS, Cloud SQL)
Additional Resources
- CLAUDE.md - Development guide and architecture
- config.example.json - Full example configuration
- Log Analyzer - Log analysis tools
- GitHub Issues - Report bugs and request features
Getting Help
If you need help with configuration:
- Check the relevant documentation page above
- Review config.example.json for examples
- Check server logs for specific errors
- Search GitHub Issues
- Ask in the Erupe Discord community
Contributing
Found an error or want to improve these docs?
- Fork the repository
- Edit the documentation in
docs/ - Submit a pull request
See CLAUDE.md for contribution guidelines.