Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Bug]: cs2server ignores the GSLT entered during install

未关闭 适合新手
#5,106 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@borzaka 已经在做这个了。

开始于 2026年10月26日。

  • #5107 来自 @borzaka —— 未关闭

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
82/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
bash, shell
领域
cli, game-dev

调研方向

阅读 lgsm/config-default/config-lgsm/cs2server/_default.cfg 中 startparameters 定义附近的内容,并与其他 Source 服务器配置中的 GSLT 处理方式进行比较。在 +exec ${selfname}.cfg 后添加令牌参数,因为报告的测试表明顺序很重要。完成标准是:全新安装会将输入的令牌传递给服务器,并且服务器控制台使用该令牌登录 Steam gameserver 账户。

由索引模型根据 Issue 内容生成。

描述

command: install command: start distro: Debian engine: source2 game: Counter-Strike 2 regression: yes reproducible: always severity: high type: bug
Severity

severity: high

Reproducibility

reproducible: always

Regression

regression: yes

Affects latest release

latest-release: yes

User story

As a CS2 server administrator, I want the GSLT I enter during install to be used by the server, so that players can join it from the internet.

Script name

cs2server

Game

Counter-Strike 2

Linux distro

Debian 12

Command

command: install, command: start

Expected behavior

The GSLT entered at the GSLT TOKEN: prompt during install (stored as gslt in lgsm/config-lgsm/cs2server/cs2server.cfg) is passed to the server, and the console shows:

Logging into Steam gameserver account with logon token 'XXXXXXXX...'
Actual behavior

The token is stored but never reaches the server. The server logs into an anonymous game server account and only accepts LAN connections:

*  No Steam account token was specified.           *
*  Logging into anonymous game server account.     *
*  Connections will be restricted to LAN only.     *
Further information

install_gslt.sh asks for the token, writes it to lgsm/config-lgsm/cs2server/cs2server.cfg and tells the user that the GSLT can be changed there. But the cs2server startparameters in lgsm/config-default/config-lgsm/cs2server/_default.cfg (line 24) never uses ${gslt}:

startparameters="-dedicated -ip ${ip} -port ${port} -maxplayers ${maxplayers} -authkey ${wsapikey} +exec ${selfname}.cfg"

No module passes the token on either: sv_setsteamaccount does not appear anywhere in lgsm/modules/. The other 11 Source servers with a GSLT (csgo, css, tf2, gmod, ...) all have +sv_setsteamaccount ${gslt} in their startparameters.

How it got here:

  • f33bfdf4 (2023-10-27): cs2server started with +sv_setsteamaccount ${gslt} in its start parameters.
  • 2fff61f4 (#4405, 2024-01-19): the parameters, including gslt, were moved into the game server config. The CS2 server.cfg template in Game-Server-Configs has an sv_setsteamaccount "" line. #4457 reported the missing parameters and was closed with "The CS2 start parameters were merged into the config file".
  • cac8b81a (2024-10-06): gslt="" was added back to the cs2server config, so the installer prompts for the token again (command_install.sh checks [ -v gslt ]). But it was not added back to startparameters, so the token entered at the prompt is ignored.

Today the token only works if it is also typed by hand into the sv_setsteamaccount line of serverfiles/game/csgo/cfg/cs2server.cfg. The installer does not mention this.

I tested where the parameter can go (fresh cs2server install, startparameters overridden in the instance config):

Test Token location Order Result
A LinuxGSM gslt +exec ${selfname}.cfg +sv_setsteamaccount ${gslt} logon token
B LinuxGSM gslt +sv_setsteamaccount ${gslt} +exec ${selfname}.cfg anonymous
C game server config only, gslt="" +exec ${selfname}.cfg +sv_setsteamaccount ${gslt} Usage: sv_setsteamaccount <login_token>, then logon token

B fails because the game server config template sets sv_setsteamaccount "", which clears a token set before it. Test A also shows that the Steam login happens after all command-line commands, even though the game server config contains a map line. Test C shows that an empty gslt only prints the usage line, so servers that set the token in the game server config keep working.

Suggested fix: add +sv_setsteamaccount ${gslt} after +exec ${selfname}.cfg. I will open a PR for it.

Pre-checks
  • I ran update and validate before reporting this issue.

Reproduced on a fresh install on Debian 12.15 (bookworm) x86_64.

Relevant log output
$ grep -A8 "SteamGameServer_Init" log/console/cs2server-console.log
SteamGameServer_Init() OK, logging on to Steam
****************************************************
*                                                  *
*  No Steam account token was specified.           *
*  Logging into anonymous game server account.     *
*  Connections will be restricted to LAN only.     *
*                                                  *
*  To create a game server account go to           *
*  http://steamcommunity.com/dev/managegameservers *
Steps to reproduce
  1. Run ./linuxgsm.sh cs2server and ./cs2server install, and enter a valid GSLT at the GSLT TOKEN: prompt.
  2. Check that lgsm/config-lgsm/cs2server/cs2server.cfg contains gslt="<token>".
  3. Run ./cs2server start.
  4. Run grep -E "logon token|anonymous game server" log/console/cs2server-console.log: the anonymous login banner is shown.
  5. Run ./cs2server details: the command-line parameters do not contain +sv_setsteamaccount.

🤖 Generated with Claude Code

主要语言
Shell
星标
4.9k
派生
871
平均合并
14 小时 50 分钟
30 天内合并 PR
109

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

GameServerManagers/LinuxGSM 的其他 Issue

查看 GameServerManagers/LinuxGSM 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。