Appearance
settings.yml:节点、数据库与回合
这是 FKEscape 的拓扑配置。大厅服和游戏服都需要此文件,并连接同一个 MySQL。首次部署先改本页,再配置玩法文件。
字段参考
| 路径 | 类型 / 默认值 | 作用与约束 | 生效 |
|---|---|---|---|
server-role | LOBBY | GAME / GAME | 当前节点职责 | 重启 |
server-id | 字符串 / game-1 | 节点唯一名;[A-Za-z0-9][A-Za-z0-9_-]{0,63} | 重启 |
lobby-server | 字符串 / lobby | 群组服中的大厅子服名称,同上格式 | 重启 |
database.mysql.host | 字符串 / 127.0.0.1 | MySQL 地址,不能为空 | 重启 |
database.mysql.port | 整数 / 3306 | 1..65535 | 重启 |
database.mysql.database | 字符串 / fkescape | 仅字母、数字、下划线 | 重启 |
database.mysql.username | 字符串 / root | 不能为空 | 重启 |
database.mysql.password | 字符串 / 空 | MySQL 密码;建议通过文件权限保护 | 重启 |
database.mysql.parameters | 查询串 / 见示例 | JDBC 参数,不含开头 ? | 重启 |
database.pool.maximum-pool-size | 整数 / 10 | 最大连接数,必须 > 0 | 重启 |
database.pool.minimum-idle | 整数 / 2 | 空闲连接数,0..maximum-pool-size | 重启 |
database.pool.connection-timeout-millis | 长整数 / 10000 | 取连接超时,至少 250ms | 重启 |
game.waiting-countdown | 秒 / 10 | 满足准入后集结倒计时,> 0 | 热重载;当前局按既有阶段运行 |
game.equipment-time | 秒 / 10 | 选装阶段时长,> 0 | 同上 |
game.teleport-time | 秒 / 3 | 投放前倒计时,> 0 | 同上 |
game.run-duration | 秒 / 600 | 行动总时长,> 0 | 同上 |
game.exit-timeout | 秒 / 60 | 结算/离场超时,> 0 | 同上 |
game.game-world | 字符串 / world | 战局世界,必须已加载 | 重启 |
game.spawn-points[] | 位置列表 | x,y,z[,yaw,pitch],世界取 game-world;至少与最小人数等量 | 热重载 |
lobby.shop-npcs[] | 非负整数列表 / [] | Citizens 商店 NPC ID | 热重载 |
lobby.join-npcs[] | 非负整数列表 / [] | Citizens 匹配 NPC ID;不能和商店 ID 重复 | 热重载 |
lobby.matchmaking.min-players | 整数 / 2 | 开始匹配人数,> 0;出生点数量不得更少 | 热重载 |
lobby.matchmaking.arrival-timeout | 秒 / 60 | 玩家进入游戏服的等待时间,10..600 | 热重载 |
位置也接受 world,x,y,z[,yaw,pitch],但出生点最终必须与 game-world 相同。坐标和角度必须是有限数字。
完整默认配置
yaml
server-role: GAME
server-id: game-1
lobby-server: lobby
database:
mysql:
host: 127.0.0.1
port: 3306
database: fkescape
username: root
password: ''
parameters: useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout-millis: 10000
game:
waiting-countdown: 10
equipment-time: 10
teleport-time: 3
run-duration: 600
exit-timeout: 60
game-world: world
spawn-points:
- "20.5,65,20.5,0,0"
- "-20.5,65,-20.5,180,0"
lobby:
shop-npcs: []
join-npcs: []
matchmaking:
min-players: 2
arrival-timeout: 60多节点示例
大厅使用 server-role: LOBBY、server-id: lobby;两台游戏服分别使用 GAME/game-1 与 GAME/game-2。三台机器的 database 必须一致,代理端服务器名必须与 server-id、lobby-server 对得上。
常见错误与验证
- 改了
server-role、server-id、database、lobby-server或game-world后执行重载会被明确拒绝,原配置继续运行;请滚动重启节点。 spawn-points少于min-players会导致配置加载失败,而不是运行时复用出生点。- 同一个 NPC 同时出现在两个列表会失败。
- 先确认 MySQL 可连,再启动大厅与游戏服;执行
/fkescape admin reload,观察“配置热重载完成”,最后用/fkescape join验证匹配、跨服抵达和出生点分配。