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

Abierto Apto para principiantes
#5,185 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
86/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
bash
Área
cli

Línea de trabajo

Lee lgsm/config-default/config-lgsm/tfserver/_default.cfg junto con la definición de startparameters en ese archivo; el issue señala la discrepancia en el nombre de la variable. Comprueba cómo se cargan las configuraciones predeterminada y de instancia, y luego verifica los parámetros de inicio expandidos con el harness de reproducción descrito en el issue. Se considera terminado cuando la configuración predeterminada produce -IsCanFriendDamage=true y un valor de instancia de damageallies="false" produce -IsCanFriendDamage=false.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Shell
Estrellas
4.9k
Forks
870
Merge medio
18 h 44 min
PR fusionados (30 d)
148

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de GameServerManagers/LinuxGSM

Todos los issues de GameServerManagers/LinuxGSM

Issues similares

Más issues de Shell/Bash

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.