【免费下载链接】ReSkate
ReSkate 独立服务器(Dedicated Server)是这款开源滑板游戏的多玩家核心:它独立于客户端运行,让你在局域网外也能和朋友畅滑。本篇是 ReSkate 服务器管理进阶指南,完整解读三大体系——角色权限(roles.json 中谁拥有什么命令与权限)、玩家投票(换图、踢人、自定义投票与投票)和反作弊检测(speedhack、滑板钉板、评分模组修改的检测与处置),并附上 Linux 部署入口与配置文件位置。
1. 先认识 ReSkate 独立服务器
ReSkate 服务器是一个无头(headless)程序:运行后它会以自己的名字出现在游戏内Multiplayer > Servers浏览器中,玩家也可以凭服务器代码直接加入。关键事实:
- 无需开放任何端口:玩家默认通过 Steam 中继网络(Steam Relay)连接;若你手动转发 UDP 27015-27016,浏览器还能显示 ping,加入更快;
- 自动更新:服务器启动后每 30 分钟检查一次新版 ReSkate,有空闲时自动安装并重启(可用
auto_update: false关闭); - 玩家数量:1-249 人,还可额外配置若干"预留槽位";
- 客户端与服务端版本必须一致。
完整启动说明见 Server/README.txt,Linux 部署见 Server/README-linux.md。
2. 角色权限体系:roles.json 完整解读
2.1 文件位置与五个默认角色
谁能在你的服务器上做什么,全部由data/roles.json决定(与服务端程序同目录,旁边还有data/bans.json封禁名单)。服务器首次启动会自动写入该文件,并附带五个开箱即用的角色:
| 角色 | Rank | 标签 | 能力 |
|---|---|---|---|
player(默认) | 0 | 无 | 聊天、投票、组队、私聊 |
vip | 10 | VIP | 预留槽位(满员时可加入) |
moderator | 50 | Mod | kick / ban / unban、消息、tphere、投票管理、反作弊提醒 |
admin | 100 | Admin | 所有命令与全部权限 |
muted | 0 | 无 | inherit: false,仅保留投票与组队(用于禁言) |
新服务器的第一个管理员,在服务器窗口输入role <你的SteamID64> admin即可。
2.2 一个角色的七个字段
{ "name": "moderator", "tag": "Mod", "color": "#5EC8FF", "rank": 50, "inherit": true, "commands": ["kick", "ban", "unban", "bans", "msg"], "permissions": ["reserved_slot", "anticheat_alerts"] }| 字段 | 说明 |
|---|---|
name | 1-24 位,仅限a-z 0-9 - _,不能叫none |
tag | 显示在玩家名字前的标签,最长 16 字符;不能占用游戏自带标签(Server、Host、ReSkate Admin 等) |
color | 标签颜色,#RRGGBB格式 |
rank | 0-1000,决定"官大一级"的层级关系 |
inherit | true(默认)继承默认角色的全部能力;false则只有自身列出的(禁言角色就是这么做的) |
commands | 可执行的服务器命令,"*"代表除role、reserved外的全部命令 |
permissions | 非命令类的权限位,见下表 |
权限定义与位运算合并逻辑在 Server/roles.h,角色的"结算"逻辑(settle把继承项合并进granted_*字段)见 Server/roles.h。
2.3 十一项权限位一览
| 权限 | 作用 |
|---|---|
chat | 允许聊天,缺了即被禁言 |
votes | 发起已开启的投票并参与投票 |
parties | 组队与队伍聊天(/p) |
whisper | 私聊(/w) |
reserved_slot | 服务器满员时仍可加入(每人占一个超编位) |
unlimited_objects | 无摆放数量上限;他人被禁时仍可建造与缩放 |
movement | 他人被禁时仍可用 noclip、No Bail 与加速 |
no_afk_kick | 永不因挂机被踢 |
vote_kick_immune | 不会被投票踢出 |
anticheat_alerts | 反作弊发现异常时在聊天里提醒该角色 |
polls | 他人被禁时仍可发起/结束投票 |
2.4 Rank 等级规则(最易踩坑的一点)
- 玩家不能kick / ban / 改角色任何 rank ≥ 自己的人;
- 玩家不能发放 rank ≥ 自己的角色,也不能改自己的角色;
- 服务器控制台窗口凌驾于一切角色之上。
也就是说:rank 50 的 moderator 可以处置 rank 0 的 player 和 rank 10 的 vip,但动不了 rank 100 的 admin。默认角色配置见 Server/ROLES.md。
2.5 运行时管理角色的四条命令
roles 列出所有角色及持有人 roles reload 重新读取 data/roles.json role <玩家名或SteamID64> <角色> 授予角色 role <玩家名或SteamID64> none 撤销角色角色变更后玩家聊天中即时收到通知,游戏菜单也会同步刷新该角色对应的操作项;改动会自动持久化到文件。文件写错时服务器会拒绝加载并说明原因,沿用旧配置——所以改文件时建议先停下服务器或改完执行roles reload。
📌 实用配方:muted角色用于禁言(role <玩家> muted);builder角色(只给unlimited_objects)适合"仅管理员建造"的服务器上给常客开绿灯;完整示例见 Server/ROLES.md。
3. 玩家投票体系:让社区自己运营
ReSkate 服务器内置了完整的投票/表决机制,配置段为ReSkateServer.json的"votes"(详见 Server/README.txt),实现见 Server/server_votes.cpp,投票逻辑的单元测试在 Server/Test/server_activity_tests.cpp。
3.1 五种内置投票
| 投票 | 触发方式 | 说明 |
|---|---|---|
换图map | /vote map <地图名> | 目标图必须在maps.pool池内 |
踢人kick | /vote kick <玩家> | 始终需要至少 2 张赞成票,被踢时长由kick_minutes控制(默认 5 分钟) |
时间tod | /vote tod <时段> | 需开启world_layer_sync |
加时extend | /vote extend | 默认开启,需设置rotation_minutes;给当前图加时 |
自定义custom | /vote <名称> [参数] | 投票通过后执行一条服务器命令,最多 16 个 |
关键参数:
percent:通过所需赞成比例,未投票玩家不计入任何一边;seconds(默认 30):投票时长,一旦剩余票数无法翻盘会提前结束;cooldown_seconds(默认 60):同一玩家两次发起的冷却;min_players:可发起投票所需的最低在线人数;- 投票用聊天中的
/yes、/no进行,管理员不能被投票踢出。
3.2 自定义投票:投票通过即执行命令
这是最强大的功能——每个自定义投票都是一条"社区授权的命令",命令中的{map}替换为当前地图、{arg}替换为玩家选中的选项:
{"name": "restart", "description": "Reload the current map", "command": "map {map}", "percent": 60} {"name": "park", "description": "Spawn a park for 30 min", "command": "park-mod add {arg} 30", "choices": ["street", "plaza"], "percent": 60}玩家只需输入/vote park street,凑够 60% 赞成即触发park-mod add street 30。配合 Park Editor 的公园模组(park_mods),你的服务器可以完全由玩家投票驱动运营。
3.3 Polls 投票与服务器代投票
- Polls:最多 6 个选项的纯调查,不执行任何命令;
polls设为off/admins(默认)/everyone控制谁能发起,/1、/2快捷作答; - 控制台发起:服务器窗口可以代社区发投票(
vote map grom、poll Next map? | Grom | Stadium),且poll-run能按得票选项执行命令,例如poll-run tod {answer} | Time of day? | morning | noon | night——把"投票"变成真正的自动化决策。
📌 运营建议:开启map+kick投票(各 60%),再加一个restart自定义投票和extend加时票,即可获得"地图轮转 + 玩家自治"的完整循环;rotation_vote还能让轮转到时自动发起三选一投票。
4. 反作弊检测体系:三层防线
反作弊全部位于服务端,配置段为"anti_cheat"(Server/README.txt),每项都支持三档处置:warn(警告,默认)/kick(踢出)/off(关闭)。
4.1 第一层:speedhack 检测(speed-check)
针对 Cheat Engine 之类加速游戏时钟的外挂。原理很精巧:加速会使玩家姿态消息的"发送-到达"时间差持续缩小(网络延迟只会抖动不会递减),算法在 20 秒窗口内测量斜率,实测速度超过1.45 倍且连续3 个区块超标才判罚——误报率极低。warn下作弊者会被移出 throwdown 与合作挑战直至恢复,kick则直接踢出。核心算法见 Server/speed_check.h。
4.2 第二层:滑板钉板检测(board-check)
针对修改版客户端把滑板"钉"在别人身上的经典作弊:真实滑板停在原地,而被钉的板会跟随另一名玩家移动。检测器标记"离开主人 3 米以上、紧跟某玩家 1.5 米内、跟随距离累计超过 8 米且持续 3 秒以上"的滑板;warn下该玩家的滑板不再对其他人生效,并提醒管理员与日志,恢复正常行为 30 秒后自动解除。逻辑见 Server/board_check.h。
4.3 第三层:评分/物理模组修改检测(score-check)
针对通过 ReSkate 模组修改得分(单招分、倍率、throwdown 计分逻辑)或核心手感(物理、摔倒、动作手势)的玩家:每人客户端在启动时检查自己安装的模组并上报指纹,服务器比对决定处置。warn下玩家被移出 throwdown 与合作挑战、全体聊天可见。如果你的服务器全体使用某个评分模组,可用allowed_scoring_mods(或score-allow命令)登记其指纹(16 位十六进制)放行。
4.4 其他防线:骨骼限制、全局封禁与聊天净化
| 机制 | 参数/命令 | 说明 |
|---|---|---|
| 骨骼缩放限制 | bone_scale_limit(1-8,默认 2) | 限制"大头"类模组对其他玩家显示的缩放上限;设为 1 则所有人统一身高 |
| 骨骼伸展限制 | bone_reach_limit(0.5-20 米,默认 1) | 防止被篡改客户端把骨骼拉伸横跨整张地图 |
| 物理配置强制 | enforce_tuning(默认 true) | 强制使用游戏自带的 Gameplay/SkatePhysicsTuning,玩家私自编辑的 truck 位置等不会同步给他人 |
| 全局封禁 | use_global_bans(默认 true) | 启动时及每 10 分钟从 ReSkate 后端拉取官方 BAN 名单;实现见 Server/global_bans.h |
| 聊天词过滤 | word_warnings、data/words_blocked.txt、data/words_filtered.txt | 服务端词表叠加官方词表;禁用词消息不转发并警告,累计 3 次踢出(次数可调) |
| 摆放滥用保护 | 见"players"段 | 1 分钟内摆放超过 2 倍上限+100 个物体(脚本刷物件)会被全服清掉并静默 1 分钟 |
管理命令速查:speed-check off|warn|kick、board-check off|warn|kick、score-check [off|warn|kick](无参数时列出每个玩家的检测结果)、score-allow、bone-scale <1-8>、bone-reach <0.5-20>。
5. Linux 部署与延伸阅读
Linux 上运行 ReSkate 服务器需要安装 Steam 运行库(仓库提供了脚本 contrib/setup-linux-server-libs.sh),服务化可参考 contrib/reskate-server.service,托管平台(Pterodactyl)方案见 contrib/pterodactyl/。完整 Linux 说明在 Server/README-linux.md。
📚核心资料清单:
- 服务器总览与全部配置项:Server/README.txt
- 角色系统完整参考:Server/ROLES.md
- 每条命令的详细说明:Server/README-roles.txt
- 角色结构定义:Server/roles.h
- 投票实现:Server/server_votes.cpp
- 反作弊检测器:Server/speed_check.h、Server/board_check.h
- 单元测试:Server/Test/
掌握角色权限、投票与反作弊这三块,你的 ReSkate 服务器就具备了一套完整、可自治、公平干净的运营体系。先从role <你的SteamID64> admin开始吧 🛹
【免费下载链接】ReSkate
相关推荐
Kener v4.0.23 引入完整 RBAC 权限体系:角色、权限与多角色用户管理实战指南
Kener v4.0.23 引入完整 RBAC 权限体系:角色、权限与多角色用户管理实战指南 Kener v4.0.23 将原有的"单用户单角色"模型升级为完整
可观测性后端前端运维Flagsmith 角色权限管理(RBAC)完全指南:角色、用户组与四级权限体系
Flagsmith 角色权限管理(RBAC)完全指南:角色、用户组与四级权限体系 本指南基于 Flagsmith 开源仓库中的官方 RBAC 文档,系统讲解 F
后端前端OpenProject 角色与权限(Roles and Permissions)系统管理完整指南
OpenProject 角色与权限(Roles and Permissions)系统管理完整指南 本文是 OpenProject 系统管理指南的「用户与权限」系
后端前端项目管理企业应用协同办公
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考