Add client version mode support to enable version-specific behavior: - Add Mode type with constants for all game versions (S1.0 through ZZ) - Add ClientMode (string) and RealClientMode (Mode) to Config - Add ClanMemberLimits to GameplayOptions for configurable clan sizes - Add MaximumFP to GameplayOptions for festa points cap - Parse ClientMode string to RealClientMode enum in LoadConfig - Set sensible defaults (ZZ for mode, standard limits for clans) - Update config.example.json with new fields This enables cherry-picking version-specific fixes from main branch.
Erupe Community Edition
Erupe is a community-maintained server emulator for Monster Hunter Frontier written in Go. It is a complete reverse-engineered solution to self-host a Monster Hunter Frontier server, using no code from Capcom.
Important
The purpose of this branch is to have a clean transition from a functional 9.2.0 release, to a future 9.3.0 version. Over the last 2 years after the release of 9.2.0, many commits introduced broken features.
Features
- Multi-version Support: Compatible with all Monster Hunter Frontier versions from Season 6.0 to ZZ
- Multi-platform: Supports PC, PlayStation 3, PlayStation Vita, and Wii U (up to Z2)
- Complete Server Emulation: Entry/Sign server, Channel server, and Launcher server
- Gameplay Customization: Configurable multipliers for experience, currency, and materials
- Event Systems: Support for Raviente, MezFes, Diva, Festa, and Tournament events
- Discord Integration: Optional real-time Discord bot integration
- In-game Commands: Extensible command system with configurable prefixes
- Developer Tools: Comprehensive logging, packet debugging, and save data dumps
Architecture
Erupe consists of three main server components:
- Sign Server (Port 53312): Handles authentication and account management
- Entrance Server (Port 53310): Manages world/server selection
- Channel Servers (Ports 54001+): Handle game sessions, quests, and player interactions
Multiple channel servers can run simultaneously, organized by world types:
- Newbie: For new players
- Normal: Standard gameplay
- Cities: City-focused instances
- Tavern: Special tavern area
- Return: For returning players
- MezFes: Festival events
Client Compatibility
Platforms
- PC
- PlayStation 3
- PlayStation Vita
- Wii U (Up to Z2)
Versions
- G10-ZZ (ClientMode): Extensively tested with great functionality
- G3-Z2 (Wii U): Tested with good functionality
- Forward.4: Basic functionality
- Season 6.0: Limited functionality (oldest supported version)
If you have an installed copy of Monster Hunter Frontier on an old hard drive, please get in contact so we can archive it!
Requirements
- Go 1.25+
- PostgreSQL
- Monster Hunter Frontier client (see Client Setup)
- Quest and scenario binary files (see Resources)
Installation
Quick Start (Pre-compiled Binary)
If you only want to run Erupe, download a pre-compiled binary:
erupe-cefor Linuxerupe.exefor Windows
Then proceed to Configuration.
Building from Source
First-time Setup
-
Clone the repository:
git clone https://github.com/ZeruLight/Erupe.git cd Erupe -
Create a PostgreSQL database and install the base schema:
# Download and apply the base schema wget https://github.com/ZeruLight/Erupe/releases/latest/download/SCHEMA.sql psql -U your_user -d your_database -f SCHEMA.sql -
Apply schema patches in order:
psql -U your_user -d your_database -f patch-schema/01_patch.sql # Repeat for each patch file in numerical order -
Copy and configure the config file:
cp config.example.json config.json # Edit config.json with your settings (see Configuration section) -
Install dependencies and build:
go mod download go build -
Run the server:
./erupe-ceOr run directly without building:
go run .
Updating an Existing Installation
-
Pull the latest changes:
git pull origin main -
Update dependencies:
go mod tidy -
Apply any new schema patches from patch-schema that you haven't run yet
-
Rebuild and restart:
go build ./erupe-ce
Docker Installation
For quick setup and development (not recommended for production), see docker/README.md.
Configuration
Erupe is configured via config.json. Copy config.example.json to get started.
Quick Configuration Overview
{
"Host": "127.0.0.1", // Server IP (leave empty for auto-detect)
"BinPath": "bin", // Path to quest/scenario files
"Language": "en", // "en" or "jp"
"Database": {
"Host": "localhost",
"Port": 5432,
"User": "postgres",
"Password": "your_password",
"Database": "erupe"
},
"Sign": {"Enabled": true, "Port": 53312},
"Entrance": {"Enabled": true, "Port": 53310}
}
Detailed Configuration Documentation
For comprehensive configuration details, see the docs/ directory:
- Configuration Overview - Start here for quick setup guide
- Basic Settings - Host, language, paths, login notices
- Server Configuration - Sign, Entrance, and Channel servers
- Database Setup - PostgreSQL configuration and schema management
- Gameplay Options - NP/RP caps, boost times, quest allowances
- Development Mode - Debug options and testing tools
- Logging - File logging, rotation, and analysis
- In-Game Commands - Chat commands configuration
- Courses - Subscription courses
- Discord Integration - Optional Discord bot setup
Example configurations:
- Local Development - Auto-account creation, debug logging
- Production Server - Secure production settings
- Community Server - Feature-rich with Discord integration
Client Setup
- Download and install a Monster Hunter Frontier client (version G10 or later recommended)
- Download Quest and Scenario Binary Files
- Extract the binary files to the
bindirectory in your Erupe installation - Configure your client to point to your Erupe server IP/hostname
- Modify the client's
host.txtor use a launcher to redirect to your server
Database Schemas
Erupe uses a structured schema system:
- Initialization Schema: Bootstraps database to version 9.1.0
- Update Schemas: Production-ready updates for new releases
- Patch Schemas: Development updates (subject to change)
- Bundled Schemas: Demo templates for shops, distributions, events, and gacha in schemas/bundled-schema/
Note: Only use patch schemas if you're following active development. They get consolidated into update schemas on release.
For detailed database setup instructions, see Database Configuration.
Development
For development guidelines, code architecture, and contribution instructions, see CLAUDE.md.
Running Tests
# Run all tests
go test -v ./...
# Check for race conditions
go test -v -race ./...
Log Analysis
Erupe includes a log analyzer tool in tools/loganalyzer/ for filtering, analyzing errors, tracking connections, and generating statistics. See Logging Documentation for details.
Troubleshooting
Quick Fixes
| Issue | Solution |
|---|---|
| Server won't start | Check PostgreSQL is running and database password is set |
| Client can't connect | Verify ports 53310, 53312, 54001+ are open in firewall |
| Database errors | Apply all schema patches in order (see Database Setup) |
| Quest files not loading | Verify BinPath points to extracted binary files |
Detailed Troubleshooting
For comprehensive troubleshooting guides, see:
- Database Troubleshooting - Connection, authentication, and schema issues
- Server Configuration - Port conflicts, connectivity issues
- Development Mode - Enable debug logging for packet analysis
Documentation
- Configuration Documentation - Complete configuration guide
- CLAUDE.md - Development guide and architecture overview
- config.example.json - Full configuration example
Resources
- Binary Files: Quest and Scenario Binary Files
- Discord Communities:
- Mezeporta Square Discord
- Mogapedia's Discord - Maintainers of this branch
- PewPewDojo Discord - General community
- Additional Resources:
Changelog
View CHANGELOG.md for version history and changes.
Contributing
See CONTRIBUTING.md for guidelines.
Authors
A list of contributors can be found at AUTHORS.md (if available) or in the git commit history.