Alpha Game Server Manager Open source · Sector Alpha

Server content

Install mods, plugins, and Workshop items.

AlphaGSM installs server-side mods, plugins, and addons for supported games. It records what you asked for, applies that desired state, and deletes only the files it owns.

One command flow

Finish create and setup first. Mods install into the dedicated-server tree.

./alphagsm myserver mod add SOURCE ID
./alphagsm myserver mod apply
./alphagsm myserver mod list
./alphagsm myserver mod remove SOURCE ID
./alphagsm myserver mod apply
./alphagsm myserver mod cleanup
  • mod add records desired content. Nothing is installed yet.
  • mod apply downloads the recorded content, writes it into the approved directories, and stores ownership.
  • mod list prints that desired state.
  • mod remove drops one recorded entry. The files leave on the following mod apply.
  • mod cleanup removes AlphaGSM-owned addon files and clears the desired entries it tracks. The rest of the install stays.

curated is a compatibility alias for manifest. Prefer manifest in new commands. The Docker manager uses the same verbs after ./alphagsm-docker start, with ./alphagsm-docker in place of ./alphagsm.

Where the file comes from

SourceYou provideUse it when
manifestA family name such as sourcemod or viaversionYou want AlphaGSM's checked-in, reproducible entry.
workshopA numeric Workshop item ID or official Steam URLThe module has a native Workshop loader, or you are staging a public item for one.
workshop-collectionA collection ID or official Steam URLYou want every validated member of a same-game collection.
gamebananaA numeric GameBanana item IDThe addon is hosted on GameBanana.
moddbA Mod DB download or addon page URLMod DB can resolve a supported zip or tar archive.
urlA direct jar or plugin URLThe module accepts a single plugin file, such as Paper or TShock.

GameBanana, Mod DB, and Steam Workshop are provider types, not catalogues that exist only for one game. Each module still decides which providers and file types it can activate.

Team Fortress 2, the worked example

MetaMod and SourceMod come from the checked-in manifest. SourceMod can take a channel when the registry exposes one, such as 1.12.

./alphagsm mytf2 create teamfortress2
./alphagsm mytf2 setup
./alphagsm mytf2 mod add manifest metamod
./alphagsm mytf2 mod add manifest sourcemod
./alphagsm mytf2 mod apply
./alphagsm mytf2 mod list

Those families land under tf/addons/ and tf/cfg/. Other TF2 sources use the same apply step:

./alphagsm mytf2 mod add gamebanana 12345
./alphagsm mytf2 mod add moddb https://www.moddb.com/mods/cage-eight/downloads/cage-eight
./alphagsm mytf2 mod add workshop ITEM_ID
./alphagsm mytf2 mod apply
./alphagsm mytf2 set map workshop/ITEM_ID

Workshop activation on TF2 accepts multiplayer maps and rejects cosmetic uploads. set map workshop/ITEM_ID selects the map after apply. During apply, AlphaGSM checks Steam AppID 440 and recognised map tags. Tags do not guarantee that the running server finishes loading the map. Checked-in competitive maps use a separate map command, including cp_granary_pro_rc8, koth_product_rcx, and pl_vigil_rc10:

./alphagsm mytf2 map add curated cp_granary_pro_rc8
./alphagsm mytf2 map apply
./alphagsm mytf2 map list

Map files land under tf/maps/. map add curated is the older alias. The TF2 guide has the module's ports and settings.

Other Source dedicated servers

Half-Life 2: Deathmatch, Garry's Mod, Left 4 Dead 2, Insurgency, and other Source modules that ship a manifest use the same MetaMod and SourceMod families.

./alphagsm myhl2dm mod add manifest metamod
./alphagsm myhl2dm mod add manifest sourcemod
./alphagsm myhl2dm mod apply

Garry's Mod also has ulib, ulx, and advdupe2. Adding ulx installs ulib first. Counter-Strike 2 accepts gamebanana, moddb, and workshop for its server-side installer. That installer does not turn an arbitrary Workshop map into a public CS2 server. Public CS2 hosting still needs the game's account-bound login token.

Minecraft and Terraria plugins

Paper keeps plugin state under a variant-specific directory so it stays separate from other Minecraft variants. The checked-in families include viaversion, viabackwards, viarewind, luckperms, vault, placeholderapi, protocollib, essentialsx, essentialsxchat, essentialsxspawn, essentialsxprotect, essentialsxantibuild, and discordsrv. viabackwards requires viaversion. viarewind requires both. essentialsxchat requires essentialsx. AlphaGSM installs those prerequisites for the checked-in entries.

./alphagsm mypaper mod add manifest viaversion
./alphagsm mypaper mod add manifest luckperms
./alphagsm mypaper mod add url https://plugins.example.invalid/TestPlugin.jar
./alphagsm mypaper mod apply

BungeeCord, Velocity, and Waterfall use the same verbs with their own proxy manifests. Families include viaversion, viabackwards, viarewind, luckperms, and geyser. AlphaGSM selects the Bungee-compatible or Velocity-compatible jar for families that publish both. Each proxy keeps state under .alphagsm/mods/minecraft-<variant>/.

./alphagsm myproxy create minecraft.velocity
./alphagsm myproxy setup
./alphagsm myproxy mod add manifest luckperms
./alphagsm myproxy mod add manifest geyser
./alphagsm myproxy mod apply

Use minecraft.bungeecord, minecraft.velocity, or minecraft.waterfall as the create module. TShock isolates its plugins the same way. Its manifest includes banguard, smartregions, and perplayerloot, and it accepts a direct .dll URL or a Mod DB archive.

./alphagsm mytshock mod add manifest banguard
./alphagsm mytshock mod add url https://plugins.example.invalid/ExamplePlugin.dll
./alphagsm mytshock mod apply

Steam Workshop items and collections

Left 4 Dead 2, Garry's Mod, Unturned, Project Zomboid, and the other native loaders accept workshop and workshop-collection. AlphaGSM checks Steam's game AppID for the item or collection and every nested child before saving anything. Unavailable, private, wrong-game, empty, and cyclic collections are rejected. If Steam does not return an ID, the command says the item was not found and that it may be private, unlisted, or removed. A found item prints its visibility, including public, and its title when Steam provides one. A same-game check does not prove the addon runs on a dedicated server.

./alphagsm myl4d2 mod add workshop ITEM_ID
./alphagsm myl4d2 mod add workshop-collection COLLECTION_ID
./alphagsm myl4d2 mod list
./alphagsm myl4d2 mod apply

Importing a collection again adds newly listed items and skips duplicates. Previously requested items stay. Replace ITEM_ID and COLLECTION_ID before you run the commands.

Anonymous SteamCMD login is used for these downloads. Some games and items still require an entitled Steam account. AlphaGSM reports that failure. Public visibility does not guarantee anonymous download access.

Modules without a native installer can still stage a public item. Run setup first. AlphaGSM checks the module's declared Workshop AppID, the installed Source gameinfo.txt, or steam_appid.txt. It does not substitute the dedicated-server tool AppID.

./alphagsm myserver workshop download item ITEM_ID_OR_URL
./alphagsm myserver workshop download collection COLLECTION_ID_OR_URL
./alphagsm myserver workshop list

Downloading an item again replaces its staged payload. Follow the game's own install rules to activate staged files. The per-game native commands and the CI evidence are on the Workshop page.

Native Workshop loaders with a dual-runtime pass

These 21 modules passed anonymous Workshop integration and smoke in both process and Docker. Open a row for the copy-paste create, setup, add, apply, and start commands.

GameModuleAppIDHow apply activates it
Left 4 Dead 2l4d2server550Each item must be one bare .vpk. AlphaGSM installs it under left4dead2/addons/workshop/ and applies enabled addons before start.
Garry's Modgmodserver4000Validated GMA contents are extracted into addon directories that AlphaGSM owns.
Unturnedunturned304930Owned IDs are written to WorkshopDownloadConfig.json. Select the installed map with the native Map command in Commands.dat.
Project Zomboidprojectzomboid108600AlphaGSM reads mod.info, then maintains WorkshopItems and Mods in the server profile. The passing fixture used Build 42.
Barotraumabtserver602960The content package is validated and enabled as a native package entry.
Avorionavserver445220Lua mod metadata is validated and owned declarations are added to modconfig.lua.
Insurgency (2014)insserver222880Owned entries are maintained in subscribed_file_ids.txt and native Workshop map loading is enabled. No Steam Web API key is required.
Day of Infamydoiserver447820Owned entries are maintained in subscribed_file_ids.txt and native Workshop map loading is enabled.
Conan Exilesconanexiles440900Owned PAK files are staged and ordered in modlist.txt.
ARK: Survival Evolvedark346110The Linux dedicated server loads Windows-cooked Workshop maps. A custom world is checked through engine startup and A2S map identity.
Squadsquadserver393380Native PAK and IoStore mounting, mod serialization, and layer registration are required. Live population is read through native RCON.
Squad 44squad44server736220The native loader registers the Workshop PAK, serializes the mod, and starts the custom world. Stop may use its existing forced-stop fallback.
No More Room in Hellnmrihserver224260Map assets are validated and staged in the native game content directories.
BrainBread 2bb2server346330Map assets are validated and loaded through the game's existing per-item Workshop search path.
Team Fortress 2teamfortress2440TF2's native Workshop loader accepts multiplayer maps. After apply, select the map with set map workshop/ITEM_ID. Cosmetic uploads are rejected. No Steam account or GSLT is used.
Natural Selection 2ns2server4920Native map and server-plugin downloads are activated by the NS2 loader. The dedicated-server guide on this site is not in the 16 October support snapshot.
Terraria tModLoaderterraria.tmodloader1281930Compatible .tmod packages are validated. Operator entries already in Mods/enabled.json are preserved.
Alien Swarm: Reactive Dropasrdserver563560Native Workshop content is loaded by the Reactive Drop dedicated server. The server runs through Wine/Proton on Linux.
Space Engineersseserver244850Native Workshop scripts are checked for their own session initialization. Live changes to a running server are rejected.
Wreckfestwreckfestserver228380The native track registry must contain the Workshop track. A fresh profile is initialized with one real start and stop before that check.
Stationeersstationeersserver544550A fresh native save must contain the Workshop world identity and its loaded structure prefabs.

What AlphaGSM will not install

  • Client-only or single-player mods.
  • Files outside the approved addon, plugin, or Workshop directories.
  • A Workshop item whose payload fails that module's check, even when the Steam ID is public.
  • Content for a module with no mod installer. Palworld, for example, has no AlphaGSM mod command today.

Framework packs such as Oxide, Carbon, BepInEx, and CounterStrikeSharp are pinned per module. Use the matching game guide before assuming a family name exists. The upstream reference is Installing Mods.

Frequently asked questions

What is the difference between mod add and mod apply?

mod add only records the request. mod apply downloads and installs it, then tracks the files AlphaGSM owns.

How do I remove one mod without wiping the server?

Run mod remove with the same source and ID, then mod apply. mod cleanup removes every owned addon file for that server's tracked content.

Does workshop download install the mod?

No. It stages the payload under .alphagsm/workshop/content/. Native games in the Workshop list need mod add workshop and mod apply.

Which source should I prefer?

Use manifest when AlphaGSM already publishes the family. Use Workshop, GameBanana, Mod DB, or a direct URL only when that module documents the provider.