本指南涵盖了在使用 Legion Hosting 运行 Garry's Mod 专用服务器时可能遇到的常见问题及其原因和解决方法。
服务器设置:如果您尚未配置服务器,请先参阅 Garry's Mod 服务器设置指南。有关管理员模组问题,请参阅 Garry's Mod 管理员设置 (ULX)。
目录
1. 缺失贴图 / 粉黑棋盘格
原因:Garry's Mod 不包含其他 Valve 游戏(Counter-Strike: Source、Half-Life 2 等)的素材。许多社区地图和插件使用了 CS:S 的贴图。
服务器端修复
- 挂载 Counter-Strike: Source:在 GPanel 中,检查您的套餐是否支持挂载额外游戏内容。如果可用,请在服务器设置中启用 CS:S 挂载。
- CSS 内容插件:从 Garry's Mod Workshop 添加社区 CS:S 内容包到您服务器的 Workshop 合集中。搜索 "Counter-Strike: Source Content" 并添加。
- 手动上传:如果以上选项都不可用,您可以通过 SFTP 手动将 CS:S 内容文件上传到
garrysmod/addons/css-content/。请参阅 SFTP 上传指南获取说明。
客户端修复
拥有 Counter-Strike: Source 的玩家可以在 GMod 中通过 Options → Game Content 挂载它。这将在他们端解决缺失贴图问题,无需更改服务器。
2. Workshop 插件未下载
如果您的服务器在启动时未加载 Workshop 插件,请检查以下内容:
| 检查项 | 修复方法 |
|---|---|
| Steam API 密钥缺失或无效 | 在 GPanel 的 Startup 下,将 STEAM_API_KEY 变量设置为从 steamcommunity.com/dev/apikey 获取的有效密钥。 |
| 合集不是公开的 | 您的 Workshop 合集必须设置为 公开。未列出或私密的合集在专用服务器上不会下载。 |
| 合集 ID 放错位置 | +host_workshop_collection 参数必须在 GPanel Startup 命令行中,而非 server.cfg 中。 |
| 控制台出现 403 / 认证错误 | 您的 Steam API 密钥无效或已被撤销。生成新密钥并在 GPanel 中更新。 |
提示:重启后检查 GPanel 中的服务器控制台输出。Workshop 下载错误会在启动日志的早期出现,并显示失败的具体 Workshop ID。
3. 服务器未出现在服务器浏览器中
如果您的服务器正在运行但未出现在 Steam 服务器浏览器中:
- 检查
sv_lan:确保在server.cfg中设置了sv_lan 0。值为1会使服务器仅限局域网。 - 检查您的 GSLT:确保已通过
sv_setsteamaccount设置了有效的游戏服务器登录令牌。过期或已撤销的令牌将阻止公开列出。在 steamcommunity.com/dev/managegameservers 生成新令牌。 - 等待几分钟:新服务器首次启动后,可能需要几分钟才能出现在 Steam 主服务器列表中。
- 尝试直接连接:先尝试通过直接 IP 连接(参见连接说明)以确认服务器确实在运行。
GSLT 封禁:如果 Steam 检测到滥用或某些服务器端修改,可能会封禁 GSLT。如果您的令牌被封禁,您需要生成新令牌,并可能需要联系 Steam 客服。
4. DarkRP 职业未显示
如果设置 DarkRP 后自定义职业未出现在 F4 菜单中:
- 检查文件夹位置:DarkRP 本身必须在
garrysmod/gamemodes/darkrp/,而非addons/中。DarkRPModification 必须在garrysmod/addons/darkrpmodification/中。这是最常见的错误。 - 检查 Lua 错误:在 GPanel 中打开服务器控制台,查看启动时的 Lua 错误。
jobs.lua中的语法错误将导致所有自定义职业无法加载。 - 验证游戏模式:确认
server.cfg中设置了sv_gamemode "darkrp",并且服务器已完全重启(而非仅切换了地图)。 - 检查文件编码:如果您在 Windows 上编辑了 Lua 文件,请确保它们保存为不带 BOM 的 UTF-8 格式。某些文本编辑器会添加 BOM(字节顺序标记),这可能会破坏 Lua 解析。
快速调试步骤
// Run these in the server console to check gamemode status:
lua_run print(engine.ActiveGamemode())
// Should output: darkrp
lua_run PrintTable(RPExtraTeams)
// Should list all custom jobs if DarkRP loaded correctly
5. ULX 命令无效
如果安装后 ULX 命令返回错误或无任何反应:
- 两个插件都安装了吗?ULX 需要同时安装 ULib 和 ULX。没有 ULib,ULX 将无法运行。请验证两者都存在于
garrysmod/addons/中或在您的 Workshop 合集中。 - 检查控制台错误:在 GPanel 中查看启动期间的服务器控制台输出,寻找提及 ULib 或 ULX 的错误。
- 验证用户分配:使用您的确切 Steam 显示名称运行
ulx adduser,或使用ulx adduserid "STEAM_0:1:12345678" superadmin配合 Steam ID 以确保可靠性。 - 插件冲突:某些插件可能与 ULX 冲突。如果在添加新插件后命令停止工作,请尝试移除该插件并重启以隔离问题。
有关详细的 ULX 设置说明,请参阅 Garry's Mod 管理员设置 (ULX) 指南。
6. 高延迟 / 卡顿
如果您的服务器出现高延迟或卡顿峰值:
- 插件过多:大型 Workshop 合集会增加内存使用和加载时间。检查您的合集并移除未积极使用的插件。
- 实体过载 (DarkRP):拥有大量可生成实体(印钞机、毒品实验室等)的 DarkRP 服务器可能会占用大量 CPU。在
darkrpmodification/lua/darkrp_config/settings.lua中设置合理的实体限制。 - 自动保存导致的卡顿峰值:如果卡顿每隔几分钟定期发生,可能是服务器自动保存。这是正常行为,但间隔可以调整。
- 玩家数量与套餐匹配:确保您的玩家数量不超过套餐资源可承受的范围。如果接近资源限制,考虑在
server.cfg中降低maxplayers。 - 地图复杂度:某些社区地图优化较差。如果切换地图后开始卡顿,请尝试恢复到较简单的地图以隔离问题。
7. 服务器启动时崩溃
如果您的服务器崩溃或无法启动:
- 检查控制台日志:在 GPanel 中查看崩溃前的控制台输出。最后几行通常指明了原因。
- 有问题的插件:最近添加的插件可能导致了崩溃。移除您最后添加的插件并尝试重启。如果服务器启动成功,则该插件是问题所在。
- 损坏的游戏模式文件:如果使用 DarkRP 或其他第三方游戏模式,请尝试从 Workshop 或 GitHub 重新安装。
- 内存不足:过多的插件可能超出您套餐的内存分配。在 GPanel 中检查资源使用情况,并考虑精简插件列表。
隔离有问题的插件:如果您无法确定哪个插件导致服务器崩溃,请从 Workshop 合集中移除所有插件,然后逐一添加回去,每次添加后重启,直到找到问题所在。
8. 客户端卡在"正在下载"或加入缓慢
如果玩家加入时长时间卡在下载内容:
- 设置 FastDL:没有 FastDL,客户端直接通过游戏服务器下载文件,速度非常慢。请参阅服务器设置指南中的 FastDL 部分。
- 使用 Workshop 管理插件:通过 Workshop 分发的插件通过 Steam 的 CDN 下载,比直接从服务器下载更快。尽可能优先使用 Workshop 合集而非手动上传插件。
- 减少插件数量:每个插件都会增加客户端的下载时间。移除对服务器游戏体验非必要的插件。
- 检查
resource.AddFile的使用:如果您通过resource.lua强制客户端下载大量文件,请检查列表并移除客户端实际不需要的文件条目。
相关文章
- Garry's Mod 服务器设置指南 — Server.cfg、Workshop、游戏模式、DarkRP、FastDL
- Garry's Mod 管理员设置 (ULX) — 安装 ULX/ULib、管理命令、权限组
- 如何通过 SFTP 上传文件
- 如何查找服务器 IP 和端口
仍然无法解决?如果以上修复方法均未解决您的问题,请提交工单,并附上您的服务器 IP、问题描述以及任何相关的控制台输出或错误信息。