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

Đang mở Phù hợp với người mới
#5,185 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức phù hợp với người mới
86/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
bash
Lĩnh vực
cli

Hướng nghiên cứu

Đọc lgsm/config-default/config-lgsm/tfserver/_default.cfg cùng với định nghĩa startparameters trong tệp đó; issue chỉ ra sự không khớp về tên biến. Kiểm tra cách tải cấu hình mặc định và cấu hình phiên bản, sau đó xác minh các tham số khởi chạy đã khai triển bằng harness tái hiện được mô tả trong issue. Công việc hoàn tất khi thiết lập mặc định tạo ra -IsCanFriendDamage=true và giá trị phiên bản damageallies="false" tạo ra -IsCanFriendDamage=false.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Ngôn ngữ chính
Shell
Star
4.9k
Fork
870
Merge trung bình
18 giờ 44 phút
Pull request đã merge (30 ngày)
148

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của GameServerManagers/LinuxGSM

Tất cả issue của GameServerManagers/LinuxGSM

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.