O
描述
Open Fortress 是一款免费的《军团要塞2》模组,为TF2的世界带来了新的游戏模式、武器、角色、地图等内容。
16 浏览
2 下载
2026-06-30
更新于 2 天前
预设配置详情
Open Fortress
来自他们的网站
Open Fortress 是一个免费的《军团要塞2》模组,为TF2世界引入了新的游戏模式、武器、地图等内容。
服务器端口
Open Fortress 服务器需要开放1个端口,SourceTV端口也可为观战者开放。
| 端口 | 默认值 |
|---|---|
| 游戏/rcon | 27015 |
| SourceTV | 27020 |
Beans
由于他们现在使用Beans来下载所需文件,您需要将wings配置文件中的tempfs_size至少增加到6000以上,否则安装将失败。
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:games_source
./srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart -debug +maxplayers {{MAXPLAYERS}}
| 变量名 | 变量 | 描述 | 默认值 | 规则 | 可查看 | 可编辑 |
|---|---|---|---|---|---|---|
| 游戏ID | SRCDS_APPID |
使用SRCDS下载并运行游戏对应的ID。 | 244310 |
required|string|in:244310
必填 字符串 选项: 244310
|
||
| 游戏名称 | SRCDS_GAME |
使用SRCDS下载并运行的游戏对应的名称。 | open_fortress |
required|regex:/^(open_fortress)$/
必填 匹配: /^(open_fortress)$/
|
||
| 默认地图 | SRCDS_MAP |
启动服务器时使用的默认地图。 | dm_2fort |
required|regex:/^(\w{1,20})$/
必填 匹配: /^(\w{1,20})$/
|
||
| 最大玩家数 | MAXPLAYERS |
服务器允许的最大玩家数量。 | 24 |
required|string|max:32
必填 字符串 最大 32
|
镜像
registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian
入口
bash
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server
# Image to install with is 'registry.cn-shanghai.aliyuncs.com/pterodactyl-images/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.
"
echo -e "Using anonymous user.
"
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 "-----------------------------------------"
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL",
"meta": {
"update_url": "https://eggs.pterodactyl.top/eggs/84/download/egg-open-fortress.json",
"version": "PTDL_v2"
},
"exported_at": "2024-06-01T00:04:32+00:00",
"name": "Open Fortress",
"author": "espeon@espeon.dev",
"description": "Open Fortress 是一款免费的《军团要塞2》模组,为TF2的世界带来了新的游戏模式、武器、角色、地图等内容。",
"features": [
"steam_disk_space"
],
"docker_images": {
"registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:games_source": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:games_source"
},
"file_denylist": [],
"startup": "./srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart -debug +maxplayers {{MAXPLAYERS}}",
"config": {
"files": "{}",
"logs": "{}",
"startup": "{\r\n \"done\": \"gameserver Steam ID\"\r\n}",
"stop": "quit"
},
"scripts": {
"installation": {
"container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
"entrypoint": "bash",
"script": "#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n# Image to install with is 'registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian'\r\n\r\n# Beans need some extra packages?\r\napt -y update\r\napt -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\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd /tmp\r\nmkdir -p /mnt/server/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd\r\nmkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd /mnt/server/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root /mnt\r\nexport HOME=/mnt/server\r\n\r\n# SDK 2013\r\n./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit \r\n\r\n# OF\r\n./steamcmd.sh +force_install_dir /mnt/server/tf2 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update 232250 ${EXTRA_FLAGS} validate +quit \r\n\r\n## set up 32 bit libraries\r\nmkdir -p /mnt/server/.steam/sdk32\r\ncp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p /mnt/server/.steam/sdk64\r\ncp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so\r\n\r\n## download OpenFortress\r\ncd /mnt/server\r\nmv bin bin_dontdeleteme\r\n\r\n\r\ncurl -sSL -o beans https://beans.adastral.net/beans\r\nchmod +x beans\r\nif [ -d \"open_fortress\" ]; then\r\n echo \"OF is installed. Updating.\"\r\n ./beans --update ~\r\nelse\r\n echo \"OF is not installed. Instaling.\"\r\n mkdir -p /mnt/server/open_fortress\r\n # Run beans for 15 seconds to generate some random needed .dat file\r\n timeout 15s ./beans --install /mnt/server\r\n # Re-run beans now to actualy download the files\r\n echo \"Ignore the erorrs!, this can take a wile.\"\r\n ./beans --install /mnt/server/\r\nfi\r\n\r\nmv bin_dontdeleteme bin\r\n## add fixed gameinfo\r\ncd /mnt/server/open_fortress\r\nrm -rf gameinfo.txt\r\ncat >> gameinfo.txt << EOF\r\n\"GameInfo\"\r\n{\r\ngame \"Open Fortress\"\r\ntitle \"\"\r\ntitle2 \"\"\r\ngamelogo \"1\"\r\ndeveloper \"https://github.com/AgitationSkeleton/open_fortress/blob/master/credits.txt\"\r\ndeveloper_url\t\"https://github.com/KaidemonLP/Open-Fortress-Source\"\r\nmanual \"\"\r\ntype \"multiplayer_only\"\r\nhasportals \"0\" // gameui.dll\r\nhashdcontent\t\"0\" // gameui.dll\r\nnomodels \"0\" // gameui.dll\r\nnohimodel \"0\" // gameui.dll\r\nnocrosshair \"0\" // gameui.dll\r\nadvcrosshair \"1\" // gameui.dll\r\nnodifficulty\t\"1\" // gameui.dll\r\nsupportsvr \"0\" // engine.dll + gameui.dll\r\nbots \"0\" // gameui.dll\r\nnodegraph \"1\" // engine.dll\r\nperfwizard \"0\" // unused\r\nSupportsDX8 \"0\" // unused\r\nSupportsDX9 \"1\" // unused\r\nSupportsDX10\t\"0\" // unused\r\nSupportsDX11\t\"0\" // unused\r\nSupportsXbox\t\"0\" // unused\r\nSupportsXbox360\t\"0\" // unused\r\nSupportsXboxOne\t\"0\" // unused\r\nSupportsPS3 \"0\" // unused\r\nSupportsPS4 \"0\" // unused\r\nicon \"resource/game\"\r\nGameData \"ofd_fic2.fgd\"\r\nInstancePath\t\"maps/instances/\"\r\nhidden_maps\r\n{\r\n\"test_speakers\" 1\r\n\"test_hardware\" 1\r\n\"background01\" 1\r\n\"background02\" 1\r\n\"background03\" 1\r\n\"background04\" 1\r\n\"background05\" 1\r\n\"background06\" 1\r\n\"background07\" 1\r\n\"background08\" 1\r\n\"background09\" 1\r\n\"background12\" 1\r\n\"background15\" 1\r\n\"ep1_c17_00\" 1\r\n\"ep1_c17_00a\" 1\r\n\"ep1_c17_01\" 1\r\n\"ep1_c17_01a\" 1\r\n\"ep1_c17_02\" 1\r\n\"ep1_c17_02a\" 1\r\n\"ep1_c17_02b\" 1\r\n\"ep1_c17_05\" 1\r\n\"ep1_c17_06\" 1\r\n\"ep1_citadel_00\"\t1\r\n\"ep1_citadel_00_demo\" 1\r\n\"ep1_citadel_01\"\t1\r\n\"ep1_citadel_02\"\t1\r\n\"ep1_citadel_02b\"\t1\r\n\"ep1_citadel_03\"\t1\r\n\"ep1_citadel_04\"\t1\r\n\"ep1_background01\"\t1\r\n\"ep1_background01a\"\t1\r\n\"ep1_background02\"\t1\r\n\"ep2_outland_01\"\t1\r\n\"ep2_outland_01a\"\t1\r\n\"ep2_outland_02\"\t1\r\n\"ep2_outland_03\"\t1\r\n\"ep2_outland_04\"\t1\r\n\"ep2_outland_05\"\t1\r\n\"ep2_outland_06\"\t1\r\n\"ep2_outland_06a\"\t1\r\n\"ep2_outland_07\"\t1\r\n\"ep2_outland_08\"\t1\r\n\"ep2_outland_09\"\t1\r\n\"ep2_outland_10\"\t1\r\n\"ep2_outland_10a\"\t1\r\n\"ep2_outland_11\"\t1\r\n\"ep2_outland_11a\"\t1\r\n\"ep2_outland_11b\"\t1\r\n\"ep2_outland_12\"\t1\r\n\"ep2_outland_12a\"\t1\r\n\"ep2_background01\"\t1\r\n\"ep2_background02\"\t1\r\n\"ep2_background02a\"\t1\r\n\"ep2_background03\"\t1\r\n\"credits\" 1\r\n\"vst_lostcoast\" 1\r\n\"test\" 1\r\n\"sdk_vehicles\" 1\r\n}\r\nFileSystem\r\n{\r\nSteamAppId 243750\r\nSearchPaths\r\n{\r\ngame+mod |gameinfo_path|custom/*\r\ngame+game_write+mod+mod_write+default_write_path |gameinfo_path|.\r\ngamebin |gameinfo_path|bin\r\n// The lines below until the BREAK comment are responsible for the game resources to work properly\r\n// in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,\r\n// Source SDK and OF) in the same drive letter/partition. If you have a different storage configuration,\r\n// feel free to modify the paths below between quotes (example: D:\\Steam\\steamapps\\common\\Team Fortress 2\\tf).\r\ngame \"/home/container/tf2/tf/tf2_misc.vpk\"\r\ngame \"/home/container/tf2/tf/tf2_sound_misc.vpk\"\r\ngame \"/home/container/tf2/tf/tf2_sound_vo_english.vpk\"\r\ngame \"/home/container/tf2/tf/tf2_textures.vpk\"\r\ngame \"/home/container/tf2/tf\"\r\ngame \"/home/container/tf2/hl2/hl2_textures.vpk\"\r\ngame \"/home/container/tf2/hl2/hl2_sound_vo_english.vpk\"\r\ngame \"/home/container/tf2/hl2/hl2_sound_misc.vpk\"\r\n// The hl2 folder here is from Source SDK Base 2013 Multiplayer.\r\ngame \"|all_source_engine_paths|hl2\\hl2_misc.vpk\"\r\ngame \"|all_source_engine_paths|hl2\"\r\n// ========== BREAK ==========\r\nplatform |all_source_engine_paths|platform/platform_misc.vpk\r\nplatform |all_source_engine_paths|platform\r\ngame+download |gameinfo_path|download\r\n}\r\n}\r\n}\r\nEOF\r\n## fix issue /w symlink\r\ncd /mnt/server/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd /mnt/server/open_fortress/bin\r\nln -s server.so server_srv.so\r\n## fix issue with libstdc++.so\r\nrm -rf /mnt/server/bin/libstdc++.so.6\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\""
}
},
"variables": [
{
"name": "游戏ID",
"description": "使用SRCDS下载并运行游戏对应的ID。",
"env_variable": "SRCDS_APPID",
"default_value": "244310",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|in:244310",
"field_type": "text"
},
{
"name": "游戏名称",
"description": "使用SRCDS下载并运行的游戏对应的名称。",
"env_variable": "SRCDS_GAME",
"default_value": "open_fortress",
"user_viewable": true,
"user_editable": false,
"rules": "required|regex:/^(open_fortress)$/",
"field_type": "text"
},
{
"name": "默认地图",
"description": "启动服务器时使用的默认地图。",
"env_variable": "SRCDS_MAP",
"default_value": "dm_2fort",
"user_viewable": true,
"user_editable": true,
"rules": "required|regex:/^(\\w{1,20})$/",
"field_type": "text"
},
{
"name": "最大玩家数",
"description": "服务器允许的最大玩家数量。",
"env_variable": "MAXPLAYERS",
"default_value": "24",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:32",
"field_type": "text"
}
]
}附属文件
暂无附属文件
提交历史
Fork 关系
查看关系图暂无 Fork,成为第一个 Fork 的人吧!
统计
16
浏览
2
下载
0
星标
0
复刻
作者
飒
飒爽师叔
UID: 1
279 预设
·
2026-06