Open Fortress
Open Fortress is a free Team Fortress 2 mod that introduces new gamemodes, weapons, characters, maps, and more to the world of TF2.
Ports
Add an allocation on the node for each port.
- Game/rcon 27015
- SourceTV 27020
Image
- games_source ghcr.io/ptero-eggs/yolks:games_source
Panel features
- steam_disk_space
The Panel tells the user when SteamCMD does not have enough disk space.
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
4 variables
Startup command
./srcds_run -game open_fortress -console -port 27015 +map dm_2fort +ip 0.0.0.0 -strictportbind -norestart -debug +maxplayers 24Dotted values come from the server settings. These values are examples.
The ID corresponding to the game to download and run using SRCDS.
SRCDS_APPIDUsers cannot see
required|string|in:244310
The name corresponding to the game to download and run using SRCDS.
SRCDS_GAMEUsers can see
required|regex:/^(open_fortress)$/
The default map to use when starting the server.
SRCDS_MAPUsers can edit
required|regex:/^(\w{1,20})$/
The maximum amount of players allowed on the server.
MAXPLAYERSUsers can edit
required|string|max:32
Wings
- Stop command
- quit
- Running when the console shows
- gameserver Steam ID
Readme
Open Fortress
From their Website
Open Fortress is a free Team Fortress 2 mod that introduces new gamemodes, weapons, characters, maps, and more to the world of TF2.
Server Ports
Open Fortress servers require 1 port to be open, the SourceTV port can also be opened for spectators.
| Port | default |
|---|---|
| Game/rcon | 27015 |
| SourceTV | 27020 |
Beans
Because they now use Beans to download the needed files you need increase the tempfs_size in the wings config.yml to at least a value above 6000 else the install will fail.
Changes
- fixie pixie 馃悷
路 yesBad 路 73a886f
- Add steamcmd based eggs
路 Daniel Barton 路 60ef9fb
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 220 lines bash in ghcr.io/ptero-eggs/installers:debian Show Hide
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server
# Image to install with is 'ghcr.io/ptero-eggs/installers:debian'
# Beans need some extra packages?
apt -y update
apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates p7zip-full libstdc++6 libstdc++6:i386 libncurses5:i386 libtinfo5:i386 libcurl4-gnutls-dev:i386 screen libsdl2-2.0-0:i386 file
## just in case someone removed the defaults.
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd
# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server
# SDK 2013
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit
# OF
./steamcmd.sh +force_install_dir /mnt/server/tf2 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update 232250 ${EXTRA_FLAGS} validate +quit
## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
## download OpenFortress
cd /mnt/server
mv bin bin_dontdeleteme
curl -sSL -o beans https://beans.adastral.net/beans
chmod +x beans
if [ -d "open_fortress" ]; then
echo "OF is installed. Updating."
./beans --update ~
else
echo "OF is not installed. Instaling."
mkdir -p /mnt/server/open_fortress
# Run beans for 15 seconds to generate some random needed .dat file
timeout 15s ./beans --install /mnt/server
# Re-run beans now to actualy download the files
echo "Ignore the erorrs!, this can take a wile."
./beans --install /mnt/server/
fi
mv bin_dontdeleteme bin
## add fixed gameinfo
cd /mnt/server/open_fortress
rm -rf gameinfo.txt
cat >> gameinfo.txt << EOF
"GameInfo"
{
game "Open Fortress"
title ""
title2 ""
gamelogo "1"
developer "https://github.com/AgitationSkeleton/open_fortress/blob/master/credits.txt"
developer_url "https://github.com/KaidemonLP/Open-Fortress-Source"
manual ""
type "multiplayer_only"
hasportals "0" // gameui.dll
hashdcontent "0" // gameui.dll
nomodels "0" // gameui.dll
nohimodel "0" // gameui.dll
nocrosshair "0" // gameui.dll
advcrosshair "1" // gameui.dll
nodifficulty "1" // gameui.dll
supportsvr "0" // engine.dll + gameui.dll
bots "0" // gameui.dll
nodegraph "1" // engine.dll
perfwizard "0" // unused
SupportsDX8 "0" // unused
SupportsDX9 "1" // unused
SupportsDX10 "0" // unused
SupportsDX11 "0" // unused
SupportsXbox "0" // unused
SupportsXbox360 "0" // unused
SupportsXboxOne "0" // unused
SupportsPS3 "0" // unused
SupportsPS4 "0" // unused
icon "resource/game"
GameData "ofd_fic2.fgd"
InstancePath "maps/instances/"
hidden_maps
{
"test_speakers" 1
"test_hardware" 1
"background01" 1
"background02" 1
"background03" 1
"background04" 1
"background05" 1
"background06" 1
"background07" 1
"background08" 1
"background09" 1
"background12" 1
"background15" 1
"ep1_c17_00" 1
"ep1_c17_00a" 1
"ep1_c17_01" 1
"ep1_c17_01a" 1
"ep1_c17_02" 1
"ep1_c17_02a" 1
"ep1_c17_02b" 1
"ep1_c17_05" 1
"ep1_c17_06" 1
"ep1_citadel_00" 1
"ep1_citadel_00_demo" 1
"ep1_citadel_01" 1
"ep1_citadel_02" 1
"ep1_citadel_02b" 1
"ep1_citadel_03" 1
"ep1_citadel_04" 1
"ep1_background01" 1
"ep1_background01a" 1
"ep1_background02" 1
"ep2_outland_01" 1
"ep2_outland_01a" 1
"ep2_outland_02" 1
"ep2_outland_03" 1
"ep2_outland_04" 1
"ep2_outland_05" 1
"ep2_outland_06" 1
"ep2_outland_06a" 1
"ep2_outland_07" 1
"ep2_outland_08" 1
"ep2_outland_09" 1
"ep2_outland_10" 1
"ep2_outland_10a" 1
"ep2_outland_11" 1
"ep2_outland_11a" 1
"ep2_outland_11b" 1
"ep2_outland_12" 1
"ep2_outland_12a" 1
"ep2_background01" 1
"ep2_background02" 1
"ep2_background02a" 1
"ep2_background03" 1
"credits" 1
"vst_lostcoast" 1
"test" 1
"sdk_vehicles" 1
}
FileSystem
{
SteamAppId 243750
SearchPaths
{
game+mod |gameinfo_path|custom/*
game+game_write+mod+mod_write+default_write_path |gameinfo_path|.
gamebin |gameinfo_path|bin
// The lines below until the BREAK comment are responsible for the game resources to work properly
// in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,
// Source SDK and OF) in the same drive letter/partition. If you have a different storage configuration,
// feel free to modify the paths below between quotes (example: D:\Steam\steamapps\common\Team Fortress 2\tf).
game "/home/container/tf2/tf/tf2_misc.vpk"
game "/home/container/tf2/tf/tf2_sound_misc.vpk"
game "/home/container/tf2/tf/tf2_sound_vo_english.vpk"
game "/home/container/tf2/tf/tf2_textures.vpk"
game "/home/container/tf2/tf"
game "/home/container/tf2/hl2/hl2_textures.vpk"
game "/home/container/tf2/hl2/hl2_sound_vo_english.vpk"
game "/home/container/tf2/hl2/hl2_sound_misc.vpk"
// The hl2 folder here is from Source SDK Base 2013 Multiplayer.
game "|all_source_engine_paths|hl2\hl2_misc.vpk"
game "|all_source_engine_paths|hl2"
// ========== BREAK ==========
platform |all_source_engine_paths|platform/platform_misc.vpk
platform |all_source_engine_paths|platform
game+download |gameinfo_path|download
}
}
}
EOF
## fix issue /w symlink
cd /mnt/server/bin
ln -s datacache_srv.so datacache.so
ln -s dedicated_srv.so dedicated.so
ln -s engine_srv.so engine.so
ln -s materialsystem_srv.so materialsystem.so
ln -s replay_srv.so replay.so
ln -s scenefilecache_srv.so scenefilecache.so
ln -s shaderapiempty_srv.so shaderapiempty.so
ln -s soundemittersystem_srv.so soundemittersystem.so
ln -s studiorender_srv.so studiorender.so
ln -s vphysics_srv.so vphysics.so
## more symlink fixes
cd /mnt/server/open_fortress/bin
ln -s server.so server_srv.so
## fix issue with libstdc++.so
rm -rf /mnt/server/bin/libstdc++.so.6
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"