Skip to content

settings.yml:节点、数据库与回合

这是 FKEscape 的拓扑配置。大厅服和游戏服都需要此文件,并连接同一个 MySQL。首次部署先改本页,再配置玩法文件。

字段参考

路径类型 / 默认值作用与约束生效
server-roleLOBBY | 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.1MySQL 地址,不能为空重启
database.mysql.port整数 / 33061..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: LOBBYserver-id: lobby;两台游戏服分别使用 GAME/game-1GAME/game-2。三台机器的 database 必须一致,代理端服务器名必须与 server-idlobby-server 对得上。

常见错误与验证

  • 改了 server-roleserver-iddatabaselobby-servergame-world 后执行重载会被明确拒绝,原配置继续运行;请滚动重启节点。
  • spawn-points 少于 min-players 会导致配置加载失败,而不是运行时复用出生点。
  • 同一个 NPC 同时出现在两个列表会失败。
  • 先确认 MySQL 可连,再启动大厅与游戏服;执行 /fkescape reload,观察“配置热重载完成”,最后用 /fkescape join 验证匹配、跨服抵达和出生点分配。