Skip to content

feat(tf2classified): add Team Fortress 2 Classified server#4898

Merged
dgibbs64 merged 5 commits intodevelopfrom
feat/tf2classified
Apr 19, 2026
Merged

feat(tf2classified): add Team Fortress 2 Classified server#4898
dgibbs64 merged 5 commits intodevelopfrom
feat/tf2classified

Conversation

@dgibbs64
Copy link
Copy Markdown
Member

@dgibbs64 dgibbs64 commented Apr 19, 2026

Description

Add support for Team Fortress 2 Classified dedicated server (Steam appid 3557020). TF2 Classified requires the live TF2 server files (appid 232250) to be installed to a separate directory which is then passed to the server via the -tf_path parameter.

Introduces a new baseappid config variable: when set, SteamCMD downloads the base app to supportdir first, then the main appid to serverfiles. This avoids polluting serverfiles with the base game's files.

Finishes the work started in #4876 with the following fixes/additions:

  • Added missing ntfy alert fields to _default.cfg
  • Updated core_dl.sh to use the current array-based command format (the original PR used the deprecated string-based format)
  • Ordered tf2c after tf2 in serverlist.csv and install_config.sh for consistency

Reference: https://wiki.tf2classic.com/wiki/Dedicated_Linux_server

Fixes #4876

Type of change

  • Bug fix (a change which fixes an issue).
  • New feature (a change which adds functionality).
  • New Server (new server added).
  • Refactor (restructures existing code).
  • Comment update (typo, spelling, explanation, examples, etc).

Checklist

PR will not be merged until all steps are complete.

  • This pull request links to an issue.
  • This pull request uses the develop branch as its base.
  • This pull request subject follows the Conventional Commits standard.
  • This code follows the style guidelines of this project.
  • I have performed a self-review of my code.
  • I have checked that this code is commented where required.
  • I have provided a detailed enough description of this PR.
  • I have checked if documentation needs updating.

Documentation

If documentation does need updating either update it by creating a PR (preferred) or request a documentation update.

Copilot AI review requested due to automatic review settings April 19, 2026 10:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds LinuxGSM support for the Team Fortress 2 Classified dedicated server (appid 3557020) and introduces a two-stage SteamCMD install concept (download a required “base app” first, then the actual server app) to support servers that depend on another game’s files.

Changes:

  • Add tf2classified to the supported server list and install config handling.
  • Introduce baseappid handling in SteamCMD download flow to install base files into supportdir first.
  • Add a new default config for tf2classifiedserver (including start parameters and alert defaults).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
lgsm/modules/install_config.sh Adds tf2classified handling for default config setup.
lgsm/modules/core_dl.sh Adds SteamCMD download logic for optional baseappid installs.
lgsm/data/serverlist.csv Registers the new tf2classified server entry.
lgsm/config-default/config-lgsm/tf2classifiedserver/_default.cfg Introduces default config for the new server, including baseappid/supportdir and start parameters.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lgsm/modules/core_dl.sh Outdated
Comment thread lgsm/modules/core_dl.sh Outdated
Comment thread lgsm/modules/core_dl.sh Outdated
Comment thread lgsm/modules/core_dl.sh Outdated
Comment thread lgsm/modules/core_dl.sh Outdated
Comment thread lgsm/modules/core_dl.sh Outdated
Xinayder and others added 5 commits April 19, 2026 19:38
Add support for Team Fortress 2 Classified dedicated server (Steam appid
3557020). TF2 Classified requires the live TF2 server files (appid 232250)
to be installed to a separate directory which is then passed to the server
via the -tf_path parameter.

Introduces a new baseappid config variable: when set, SteamCMD downloads
the base app to supportdir first, then the main appid to serverfiles.

Reference: https://wiki.tf2classic.com/wiki/Dedicated_Linux_server

Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk>
…server

Shorter, conventional name consistent with other Source mod servers
(tfc, tf2, etc). The game directory is now tf2c, config dir tf2cserver,
shortname tf2c.

Also update startparameters game flag: -game tf2c
cp_badlands is a stock TF2 map. 4koth_frigid ships with the TF2C
dedicated server files and does not require TF2 base content on
the client.
The game's installed directory is tf2classified (not tf2c). Using
-game tf2c created a secondary directory with hardcoded absolute
paths in gameinfo.txt. Using tf2classified uses the proper install
with |appid_440| tokens in gameinfo.txt.
- Move baseappid block before branch/betapassword checks so base app
  is always installed first when baseappid is set, regardless of
  whether branch/betapassword are also configured
- Capture PIPESTATUS[0] after base app download and continue the
  retry loop on failure, preventing a failed base app install from
  being masked by a successful main app install
- Add guard: fail with a clear message when baseappid is set but
  supportdir is empty/unset
@dgibbs64 dgibbs64 force-pushed the feat/tf2classified branch from 31799b1 to b346e68 Compare April 19, 2026 19:39
@dgibbs64 dgibbs64 added this to the v26.1.0 milestone Apr 19, 2026
@dgibbs64 dgibbs64 merged commit 0bc0101 into develop Apr 19, 2026
5 checks passed
@dgibbs64 dgibbs64 deleted the feat/tf2classified branch April 19, 2026 19:49
This was referenced Apr 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants