www/ only contains gitignored content (www/jp/) so it doesn't exist in the CI checkout, causing the Docker build to fail.
Erupe
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.
Branch Strategy
- main: Active development branch with the latest features and improvements
- stable/v9.2.x: Stable release branch for those seeking stability over cutting-edge 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/Mezeporta/Erupe.git cd Erupe -
Create a PostgreSQL database and install the base schema:
# Download and apply the base schema wget https://github.com/Mezeporta/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 schemas/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 schemas/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
Edit config.json to configure your server. Key settings include:
Core Settings
{
"Host": "127.0.0.1", // Server binding address
"BinPath": "bin", // Path to quest/scenario binaries
"Language": "en", // "en" or "jp"
"ClientMode": "ZZ" // Target client version
}
Database
{
"Database": {
"Host": "localhost",
"Port": 5432,
"User": "postgres",
"Password": "your_password",
"Database": "erupe"
}
}
Server Ports
{
"Sign": {
"Enabled": true,
"Port": 53312 // Authentication server
},
"Entrance": {
"Enabled": true,
"Port": 53310 // World selection server
}
}
Channel servers are configured under Entrance.Entries[].Channels[] with individual ports (default: 54001+).
Development Options
{
"DebugOptions": {
"LogInboundMessages": false, // Log incoming packets
"LogOutboundMessages": false, // Log outgoing packets
"MaxHexdumpLength": 256 // Max bytes for hexdump logs
}
}
Gameplay Options
{
"GameplayOptions": {
"MaximumNP": 100000, // Max Netcafe Points
"MaximumRP": 50000, // Max Road Points
"BoostTimeDuration": 7200, // Login boost duration (seconds)
"BonusQuestAllowance": 3, // Daily bonus quests
"DailyQuestAllowance": 1 // Daily quest limit
}
}
In-game Commands
Configure available commands and their prefixes:
{
"CommandPrefix": "!",
"Commands": [
{"Name": "Raviente", "Enabled": true, "Prefix": "ravi"},
{"Name": "Reload", "Enabled": true, "Prefix": "reload"},
{"Name": "Course", "Enabled": true, "Prefix": "course"}
]
}
For a complete configuration example, see config.example.json.
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.
Development
Running Tests
# Run all tests
go test -v ./...
# Check for race conditions
go test -v -race ./...
Troubleshooting
Common Issues
Server won't start
- Verify PostgreSQL is running:
systemctl status postgresql(Linux) orpg_ctl status(Windows) - Check database credentials in
config.json - Ensure all required ports are available and not blocked by firewall
Client can't connect
- Verify server is listening:
netstat -an | grep 53310 - Check firewall rules allow traffic on ports 53310, 53312, and 54001+
- Ensure client's
host.txtpoints to correct server IP - For remote connections, set
"Host"in config.json to0.0.0.0or your server's IP
Database schema errors
- Ensure all patch files are applied in order
- Check PostgreSQL logs for detailed error messages
- Verify database user has sufficient privileges
Quest files not loading
- Confirm
BinPathin config.json points to extracted quest/scenario files - Verify binary files match your
ClientModesetting - Check file permissions
Debug Logging
Enable detailed logging in config.json:
{
"DebugOptions": {
"LogInboundMessages": true,
"LogOutboundMessages": true
}
}
Resources
- Binary Files: Quest and Scenario Binary Files
- Discord Communities:
- Documentation: Erupe Wiki
- FAQ: Community FAQ Pastebin
Changelog
View CHANGELOG.md for version history and changes.
Contributing
See CONTRIBUTING.md for guidelines.
Authors
A list of authors can be found at AUTHORS.md.