Mezeporta/Erupe
GitHub: Mezeporta/Erupe
基于 Go 语言开发的《怪物猎人 Frontier Online》私服模拟器,通过完整逆向工程实现服务端,支持游戏社区自建服务器和数字遗产保护。
Stars: 253 | Forks: 66
# Erupe
[](https://github.com/Mezeporta/Erupe/actions/workflows/go.yml)
[](https://github.com/Mezeporta/Erupe/actions/workflows/github-code-scanning/codeql)
[](https://go.dev/)
[](https://github.com/Mezeporta/Erupe/releases/latest)
Erupe 是一个由社区维护的 Monster Hunter Frontier 服务器模拟器,使用 Go 语言编写。这是一个完全逆向工程的解决方案,用于自建 Monster Hunter Frontier 服务器,不使用任何来自 Capcom 的代码。
## 快速开始
从以下两种安装方法中选择一种,然后继续阅读 [任务与场景文件](#quest--scenario-files)。
### 选项 A:预编译二进制文件
1. 从 [GitHub Releases](https://github.com/Mezeporta/Erupe/releases/latest) 下载适用于您平台的最新版本:
- `erupe-ce` (适用于 Linux)
- `erupe.exe` (适用于 Windows)
2. 设置 PostgreSQL 并创建数据库:
createdb -U postgres erupe
服务器首次启动时会自动应用所有 schema 迁移。
3. 复制并编辑配置文件:
cp config.example.json config.json
# 使用您的数据库凭据编辑 config.json
4. 下载 [任务/场景文件](#quest--scenario-files) 并将其解压到 `bin/` 目录
5. 运行:`./erupe-ce`
### 选项 B:从源码构建
需要 [Go 1.25+](https://go.dev/dl/) 和 [PostgreSQL](https://www.postgresql.org/download/)。
1. 克隆并构建:
git clone https://github.com/Mezeporta/Erupe.git
cd Erupe
go mod download
go build -o erupe-ce
2. 设置数据库(同选项 A 的步骤 2–3)
3. 复制并编辑配置文件:
cp config.example.json config.json
4. 下载 [任务/场景文件](#quest--scenario-files) 并将其解压到 `bin/` 目录
5. 运行:`./erupe-ce`
## 任务与场景文件
**下载**:[任务与场景二进制文件](https://files.catbox.moe/xf0l7w.7z)
这些文件包含服务器在游戏期间发送给客户端的任务定义和场景数据。将压缩包解压到您的 `bin/` 目录(如果是 Docker 安装,则为 `docker/bin/`)。路径必须与您配置中的 `BinPath` 设置匹配(默认值:`"bin"`)。
**如果没有这些文件,任务将无法加载,客户端将会崩溃。**
## 客户端设置
1. 获取 Monster Hunter Frontier 客户端(建议使用 G10 或更高版本)
2. 通过编辑 `host.txt` 或使用启动器重定向到您服务器的 IP,将客户端指向您的服务器
3. 启动 `mhf.exe`,选择您的服务器,并创建一个账户
如果您在旧硬盘上有 Monster Hunter 的**已安装**副本,**请**联系我们以便我们进行归档!
## 更新
```
git pull origin main
go mod tidy
go build -o erupe-ce
```
数据库 schema 迁移会在服务器启动时自动应用 —— 无需手动执行 SQL 步骤。
对于 Docker 用户,请参阅 [docker/README.md](./docker/README.md)。
## 配置
在启动服务器之前编辑 `config.json`。基本设置如下:
```
{
"Host": "127.0.0.1",
"BinPath": "bin",
"Language": "en",
"ClientMode": "ZZ",
"Database": {
"Host": "localhost",
"Port": 5432,
"User": "postgres",
"Password": "your_password",
"Database": "erupe"
}
}
```
| 设置 | 描述 |
|---------|-------------|
| `Host` | 向客户端广播的 IP。本地游戏使用 `127.0.0.1`,远程游戏使用您的 LAN/WAN IP。在配置中留空则自动检测 |
| `ClientMode` | 目标客户端版本(`ZZ`、`G10`、`Forward4` 等) |
| `BinPath` | 任务/场景文件的路径 |
| `Language` | `"en"` 或 `"jp"` |
`config.example.json` 故意保持精简 —— 所有其他设置在服务器中都有内置的合理默认值。有关完整的配置参考(游戏倍率、调试选项、Discord 集成、游戏内命令、入口/频道定义),请参阅 [config.reference.json](./config.reference.json) 和 [Erupe Wiki](https://github.com/Mezeporta/Erupe/wiki)。
## 功能特性
- **多版本支持**:兼容从 Season 6.0 到 ZZ 的所有 Monster Hunter Frontier 版本
- **多平台**:支持 PC、PlayStation 3、PlayStation Vita 和 Wii U(最高至 Z2)
- **完整服务器模拟**:Entry/Sign 服务器、Channel 服务器和 Launcher 服务器
- **游戏玩法自定义**:可配置的经验、货币和材料倍率
- **活动系统**:支持 Raviente、MezFes、Diva、Festa 和 Tournament 活动
- **Discord 集成**:可选的实时 Discord 机器人集成
- **游戏内命令**:具有可配置前缀的可扩展命令系统
- **开发者工具**:全面的日志记录、数据包调试和存档数据转储
## 架构
Erupe 由三个主要服务器组件组成:
- **Sign Server** (端口 53312):处理身份验证和账户管理
- **Entrance Server** (端口 53310):管理世界/服务器选择
- **Channel Servers** (端口 54001+):处理游戏会话、任务和玩家交互
多个 Channel 服务器可以同时运行,按世界类型组织:Newbie、Normal、Cities、Tavern、Return 和 MezFes。
## 客户端兼容性
### 平台
- PC
- PlayStation 3
- PlayStation Vita
- Wii U(最高至 Z2)
### 版本
- **G10-ZZ** (ClientMode):经过广泛测试,功能完善
- **G3-Z2** (Wii U):已测试,功能良好
- **Forward.4**:基本功能
- **Season 6.0**:功能有限(支持的最早版本)
## 数据库 Schema
Erupe 使用嵌入式自动迁移 schema 系统。[server/migrations/sql/](./server/migrations/sql/) 中的迁移会在启动时自动应用 —— 无需手动执行 SQL 步骤。
- **迁移**:在 `schema_version` 表中跟踪的编号 SQL 文件(`0001_init.sql`、`0002_*.sql` 等)
- **种子数据**:[server/migrations/seed/](./server/migrations/seed/) 中的商店、分发、活动和扭蛋的演示模板 —— 在新建数据库时自动应用
## 开发
### 分支策略
- **main**:活跃开发分支,包含最新的功能和改进
- **stable/v9.2.x**:稳定发布分支,适合追求稳定性而非前沿功能的用户
### 运行测试
```
go test -v ./... # Run all tests
go test -v -race ./... # Check for race conditions (mandatory before merging)
```
## 故障排除
### 服务器无法启动
- 验证 PostgreSQL 是否正在运行:`systemctl status postgresql` (Linux) 或 `pg_ctl status` (Windows)
- 检查 `config.json` 中的数据库凭据
- 确保所有必需端口可用且未被防火墙阻止
### 客户端无法连接
- 验证服务器是否正在监听:`netstat -an | grep 53310`
- 检查防火墙规则是否允许端口 53310、53312 和 54001+ 上的流量
- 确保客户端的 `host.txt` 指向正确的服务器 IP
- 对于远程连接,将 config.json 中的 `"Host"` 设置为 `0.0.0.0` 或您的服务器 IP
### 数据库 Schema 错误
- Schema 迁移在启动时自动运行 —— 检查服务器日志中的迁移错误
- 检查 PostgreSQL 日志以获取详细的错误消息
- 验证数据库用户是否拥有足够的权限
### 任务文件无法加载
- 确认 config.json 中的 `BinPath` 指向已解压的任务/场景文件
- 验证二进制文件是否与您的 `ClientMode` 设置匹配
- 检查文件权限
### 调试日志
在 `config.json` 中启用详细日志记录:
```
{
"DebugOptions": {
"LogInboundMessages": true,
"LogOutboundMessages": true
}
}
```
## 资源
- **任务/场景文件**:[下载](https://files.catbox.moe/xf0l7w.7z)
- **文档**:[Erupe Wiki](https://github.com/Mezeporta/Erupe/wiki)
- **Discord 社区**:
- [Mezeporta Square](https://discord.gg/DnwcpXM488)
- [Mogapedia](https://discord.gg/f77VwBX5w7)(法国 Monster Hunter 社区,现任 Erupe 维护者)
- [PewPewDojo](https://discord.gg/CFnzbhQ)
- **社区工具**:
- [Ferias](https://xl3lackout.github.io/MHFZ-Ferias-English-Project/) — 素材和道具数据库
- [Damage Calculator](https://mh.fist.moe/damagecalc.html) — 在线伤害计算器
- [Armor Set Searcher](https://github.com/matthe815/mhfz-ass/releases) — 装备套装搜索应用
## 更新日志
查看 [CHANGELOG.md](CHANGELOG.md) 以获取版本历史和更改记录。
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。
## 作者
作者列表可在 [AUTHORS.md](AUTHORS.md) 中找到。
标签:Erupe, EVTX分析, Go语言, MHF, PostgreSQL, 云资产清单, 开源游戏, 怪物猎人, 怪物猎人边境, 日志审计, 服务器开发, 测试用例, 游戏开发, 游戏服务器模拟器, 社区维护, 私服, 私服搭建, 程序破解, 网络游戏, 请求拦截, 逆向工程, 配置审计