[Bug]: The Front never receives the friendly damage setting

オープン 初心者向け
#5,185 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
1/5
見積もり時間
1時間未満
初心者へのやさしさ
86/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
bash
領域
cli

調査の方向性

lgsm/config-default/config-lgsm/tfserver/_default.cfgと、そのファイル内のstartparametersの定義を読みます。issueでは変数名の不一致が指摘されています。デフォルト設定とインスタンス設定がどのように読み込まれるかを確認し、issueに記載された再現ハーネスで展開後の起動パラメーターを検証します。デフォルト設定が-IsCanFriendDamage=trueになり、インスタンスの値damageallies="false"が-IsCanFriendDamage=falseになることを確認できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

command: start engine: unreal4 game: The Front reproducible: always severity: medium type: bug
Severity

severity: medium

Reproducibility

reproducible: always

Regression

regression: no

Affects latest release

latest-release: yes

User story

As a The Front server administrator, I want the friendly damage setting in the LinuxGSM config to reach the server, so that I can decide whether squadmates can damage each other.

Script name

tfserver

Game

The Front

Linux distro

Other

Command

command: start

Expected behavior

The server starts with -IsCanFriendDamage=true, the value the default config sets, and setting damageallies in the instance config changes it.

Actual behavior

Unless the instance config sets damageallies, the server starts with an empty value, -IsCanFriendDamage=. The damangeallies value from the default config is never used.

lgsm/config-default/config-lgsm/tfserver/_default.cfg defines the variable with a typo on line 22:

damangeallies="true"

but startparameters on line 36 reads a different name:

-IsCanFriendDamage=${damageallies}

damageallies is not set anywhere in LinuxGSM, so it expands to an empty string. The setting next to it, damageself="true" with -IsCanSelfDamage=${damageself}, is spelled the same in both places and works.

I could not find an official developer reference for IsCanFriendDamage, so I don't know how the game handles an empty value.

Further information

How it got here:

  • 67472a82 (#4359, 2023-10-29) added The Front with damangeallies="true" in _default.cfg. The start parameters already used -IsCanFriendDamage=${damageallies}, so the setting has never reached the server.
  • b133c444 (fix(tf): update anticheat to UseEAC, 2025-03-08) is the last change to the startparameters line. It did not touch this parameter.
  • The server request is #4335. The example start command in https://github.com/GameServerManagers/LinuxGSM/issues/4335#issuecomment-1762376303 includes IsCanSelfDamage=0 and IsCanFriendDamage=0.
  • v26.5.0 (2026-11-04) and develop (c37014cf) still have the typo.

Neither damangeallies nor damageallies appears anywhere else in the repository, including the modules.

Workaround on current versions: set damageallies (correct spelling) in lgsm/config-lgsm/tfserver/tfserver.cfg. The start parameters use that name, so the value is passed. Copying the misspelled damangeallies from _default.cfg into common.cfg or the instance config has no effect.

When this is fixed, existing servers will be started with -IsCanFriendDamage=true unless their config sets damageallies="false".

Third-party hosting guides show IsCanFriendDamage=0 (off) as the value in the game's own server config. I could not confirm that in an official developer source.

This was found by code review of develop, not on a live server. I reproduced it with a Git Bash harness that copies the real config templates, sources them in the order linuxgsm.sh does (_default.cfg, common.cfg, secrets-common.cfg, tfserver.cfg, secrets-tfserver.cfg), and runs the real fn_reload_startparameters from linuxgsm.sh. The output is below.

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

Not applicable: found by code review of develop and reproduced with the harness above, not reported from a running server.

Relevant log output
# develop (c37014cf), expanded startparameters
defaults only                                  -> IsCanSelfDamage=true | IsCanFriendDamage=
instance damageallies="false"                  -> IsCanSelfDamage=true | IsCanFriendDamage=false
instance damangeallies="false" (typo copied)   -> IsCanSelfDamage=true | IsCanFriendDamage=
Steps to reproduce
  1. Install tfserver.
  2. Run ./tfserver details.
  3. Under "Command-line Parameters", the start command contains -IsCanFriendDamage= with no value, while -IsCanSelfDamage=true is set.
  4. Set damangeallies="false" in lgsm/config-lgsm/tfserver/tfserver.cfg and run ./tfserver details again: -IsCanFriendDamage= is still empty.

🤖 Generated with Claude Code

主要言語
Shell
スター
4.9k
フォーク
870
平均マージ
18時間 44分
マージ済み PR(30日)
148

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

GameServerManagers/LinuxGSM のほかの issue

GameServerManagers/LinuxGSM の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。