SHA256
first commit
This commit is contained in:
commit
21788ba270
643 files changed
+45536
No files matched your search
@@ -0,0 +1,8 @@
|
||||
# ARMA
|
||||
|
||||
ARMA is a series of first-person tactical military shooters, originally released for Microsoft Windows. It features large elements of realism and simulation; a blend of large-scale military conflict spread across large areas alongside the more close quartered battles.
|
||||
|
||||
## Arma Titles
|
||||
|
||||
* [Arma 3](arma3)
|
||||
* [Arma Reforger](arma_reforger)
|
||||
@@ -0,0 +1,150 @@
|
||||
# Arma 3
|
||||
|
||||
***Updating your Egg? Please see [How to Update Egg](#how-to-update-egg) to avoid any issues!***
|
||||
___
|
||||
|
||||
## Authors / Contributors
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/lilkingjr1">
|
||||
<img src="https://avatars.githubusercontent.com/u/4533989" width="50px;" alt=""/><br /><sub><b>Red-Thirten</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=lilkingjr1" title="Codes">💻</a>
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=lilkingjr1" title="Maintains">🔨</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/aussieserverhosts">
|
||||
<img src="https://avatars.githubusercontent.com/u/65438932" width="50px;" alt=""/><br /><sub><b>Aussie Server Hosts</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=aussieserverhosts" title="Codes">💻</a>
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=aussieserverhosts" title="Contributor">💡</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/IAmSilK">
|
||||
<img src="https://avatars.githubusercontent.com/u/16708907" width="50px;" alt=""/><br /><sub><b>IAmSilK</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=IAmSilK" title="Codes">💻</a>
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=IAmSilK" title="Contributor">💡</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Yomanz">
|
||||
<img src="https://avatars.githubusercontent.com/u/5119107" width="50px;" alt=""/><br /><sub><b>Daave</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=Yomanz" title="Codes">💻</a>
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=Yomanz" title="Original Creator">⭐</a>
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=Yomanz" title="Retired from Development">💤</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- markdownlint-enable -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
___
|
||||
|
||||
### Game Description
|
||||
|
||||
From Bohemia Interactive's [Website](https://arma3.com/):
|
||||
> Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war.
|
||||
___
|
||||
|
||||
### Egg Capabilities
|
||||
|
||||
- Configurable to run 32 or 64-bit versions of the server
|
||||
- Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#recommended-egg-modifications))
|
||||
- Able to download server updates on startup
|
||||
- Able to download, update, and load Steam Workshop mods on startup (\*see [Installation Requirements](#installation-requirements))
|
||||
- Accepts uploaded HTML modlist files exported from the Arma 3 Launcher to define mods to load on the server.
|
||||
- Also accepts manually listed mods, CDLCs, and server-side only mods.
|
||||
- Checks for mod updates against their Steam Workshop page's last update for quick and efficient update checks.
|
||||
- Automatically moves mod `.bikey`'s to the `/keys/` directory.
|
||||
- Configurable to download Creator DLCs
|
||||
- Configurable to run Beta/Performance binaries of the server (if desired; advanced users only)
|
||||
- Additional [Arma 3 startup parameters](https://community.bistudio.com/wiki/Arma_3_Startup_Parameters) can be added to fine-tune performance
|
||||
- Configurable to run up to 5 Headless Clients in parallel with the main server (may require additional performance overhead)
|
||||
- [WHMCS](https://www.whmcs.com/) compatible (\*see [Recommended Egg Modifications](#recommended-egg-modifications))
|
||||
|
||||
___
|
||||
|
||||
### Installation Requirements
|
||||
|
||||
- A valid, **real** Steam account, with **Steam Guard turned off**, is required to install the server (default "anonymous" login cannot be used). This account *does not* need to own Arma 3. For security reasons it is [recommended by Valve](https://developer.valvesoftware.com/wiki/SteamCMD#With_a_Steam_account) that you create a new Steam account just for your dedicated servers.
|
||||
- For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients.
|
||||
|
||||
___
|
||||
|
||||
### Server Ports
|
||||
|
||||
Default server ports are listed below, but the Main port can be any port. There are three more ports after the Main port that are relative to the Main port (For example: The BattlEye port is always 4 ports higher than the Main port). **All four ports are required for normal server behavior.** It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports separate from each other.
|
||||
|
||||
| Port | Default (UDP) |
|
||||
|---------|---------|
|
||||
| **Arma 3 Game & VON (Main)** | 2302 |
|
||||
| Steam Query (+1) | 2303 |
|
||||
| Steam Port (+2) | 2304 |
|
||||
| BattleEye (+4) | 2306 |
|
||||
|
||||
___
|
||||
|
||||
### Installation/System Requirements
|
||||
|
||||
| | Bare Minimum | Recommended |
|
||||
|---------|---------|---------|
|
||||
| Processor | Recent x86/64 (AMD/Intel) processor. No ARM support. | ARMA 3 is mainly CPU intensive. Contrary to popular belief, the server binary *can* run on multiple cores/threads. However, it's ability to manage asynchronous tasks and hyperthread is *very* limited, meaning additional cores/threads reach diminishing returns very quickly. In addition, it's ability to utilize all of the CPU allotted to it for AI processing seems to be limited as well. Therefore, a Headless Client ***and*** a properly written mission file are highly recommended if large amounts of AI units will be used. |
|
||||
| RAM | 2048 MiB | 3072 MiB (If used, every Headless Client uses an additional 2048 MB of RAM as well) |
|
||||
| Storage | 10 GB | 50+ GB (depends on how many mods are installed) |
|
||||
| Network | 0.512 Mbit/s/player | 1-5 Mbit/s/player |
|
||||
| Host OS | Most stable Linux OS branches should work | Using the latest kernel version for your installed OS can prevent some edge-case installation/boot issues. |
|
||||
|
||||
___
|
||||
|
||||
### RCON
|
||||
|
||||
External/Compatible RCON clients can be used to connect to the server if the following requirements are met:
|
||||
|
||||
1. An extra port is forwarded and assigned to the server in Pterodactyl. It is recommended to use the +5 port from the Main port (ie. if Main port is 2032, RCON port would be 2037). The +3 port **cannot** be used as it is reserved.
|
||||
2. `server.cfg` has `BattlEye = 1;`. Unfortunately, RCON cannot be used with BattlEye off.
|
||||
3. A `beserver_x64.cfg` file (or `beserver.cfg` if using 32-bit) is added to `/home/container/battleye/launch` with the following content:
|
||||
```
|
||||
RConPassword your_rcon_password
|
||||
RConPort your_rcon_port
|
||||
```
|
||||
|
||||
___
|
||||
|
||||
### Mounting Workshop Mods
|
||||
|
||||
Server hosts may wish to save space and avoid download issues by mounting large and/or common mods. Unfortunately, Arma only allows mods to be loaded from directories down-stream of the server binary (ie. `/home/container/*`. Docker limitations disallow Pterodactyl from mounting mounts into `/home/container/*`. The only way around this that I can think of is to create a symlink with a destination that is outside of this location. If anyone knows a way around this, please open an Issue to let us know.
|
||||
|
||||
___
|
||||
|
||||
### Recommended Egg Modifications
|
||||
|
||||
The following are highly recommended variable modifications you can make to the egg after importing it to your panel. While viewing this egg, simply go to the "Variables" tab of the egg editor to make these changes.
|
||||
|
||||
#### Default Steam Username & Password
|
||||
|
||||
- To make deploying servers easy (**or if you are using WHMCS**), it is recommended to edit the default values of "Steam Username" and "Steam Password" to your Steam account dedicated for hosting. This will make all newly installed servers use these credentials. **DO NOT** make these fields visible to the end user so that they can use their own Steam accounts; the panel will save their Steam credentials in **plain text**, which is a BIG NO NO for security and privacy.
|
||||
|
||||
#### Restrict Max Players
|
||||
|
||||
- If you would like to restrict the maximum number of players that can join your client's server, you can change the permissions of the "Max Players" variable so that clients can only view this value (and not edit it). It's default value can also be changed, or the value can be changed on a server-by-server basis as desired.
|
||||
___
|
||||
|
||||
### How to Update Egg
|
||||
|
||||
If you already have an Arma 3 egg installed on your panel, there are a couple things to consider before updating to this egg:
|
||||
- The Startup Command has changed, but Pterodactyl currently does not update this across all your existing servers. Servers will still boot with their old Startup Command, but the new HTML Modlist feature will not work, and depreciated variables for config files will be used. Servers will have to be manually updated to the new Startup Command via the Startup tab.
|
||||
- Startup Variables have been completely rehauled. While most important existing variables have retained their Environment Variable names, a lot of their titles and order have been adjusted. Simply updating your existing egg with this egg may lead to Startup Variables being terribly out of order and cluttered. Therefore, the following steps are recommended to avoid this:
|
||||
1. Change the name of your existing Arma 3 egg to "Arma 3 (Old)".
|
||||
2. Install this updated egg as a new egg in your nest.
|
||||
3. Make any egg modifications you would like. (\*see [Recommended Egg Modifications](#recommended-egg-modifications))
|
||||
4. Change all existing Arma 3 servers to the new egg via the Startup tab.
|
||||
5. Delete the old egg.
|
||||
@@ -0,0 +1,59 @@
|
||||
// ****************************************************************************
|
||||
// *
|
||||
// ArmA 3 Basic Network Config File - basic.cfg *
|
||||
// *
|
||||
// More info about parameters: *
|
||||
// https://community.bistudio.com/wiki/basic.cfg *
|
||||
// *
|
||||
// ****************************************************************************
|
||||
|
||||
// Defines network tuning parameters.
|
||||
//
|
||||
// This file is to be passed to the -cfg parameter on the command line for the server.
|
||||
// The following settings are the suggested settings.
|
||||
// Some settings are disabled (commented out) by default. Remove the // behind a setting to activate it.
|
||||
|
||||
// BANDWIDTH SETTINGS
|
||||
|
||||
// Bandwidth the server is guaranteed to have (in bps)
|
||||
// General guideline is NumberOfPlayers * 256kb
|
||||
// Default: 131072
|
||||
//MinBandwidth=5120000;
|
||||
// Bandwidth the server can never go above (in bps)
|
||||
// For a single server, use full network speed; decrease when running multiple servers
|
||||
//MaxBandwidth=10240000;
|
||||
|
||||
// PACKET SETTINGS
|
||||
|
||||
// Maximum number of packets per frame.
|
||||
// Increasing the value potentially decreases lag, but increases desync
|
||||
// Default: 128
|
||||
//MaxMsgSend=2048;
|
||||
// Maximum payload of guaranteed packet (in b)
|
||||
// Small messages are packed to larger packets
|
||||
// Guaranteed packets are used for non-repetitive events, like shooting
|
||||
// Lower value means more packets are sent, so less events will get combined
|
||||
// Default: 512
|
||||
MaxSizeGuaranteed=512;
|
||||
// Maximum payload of non-guaranteed packet (in b)
|
||||
// Increasing this value may improve bandwidth requirement, but may also increase lag
|
||||
// Largest factor in desync
|
||||
// Guidance is half of MaxSizeGuaranteed
|
||||
// Default: 256
|
||||
MaxSizeNonguaranteed=256;
|
||||
// Maximal size of a packet sent over the network
|
||||
// Only necessary if ISP forces lower packet size and there are connectivity issues
|
||||
// Default: 1400
|
||||
//class sockets{maxPacketSize=1400};
|
||||
|
||||
// SMOOTHNESS SETTINGS
|
||||
|
||||
// Minimal error required to send network updates for far units
|
||||
// Smaller values will make for smoother movement at long ranges, but will increase network traffic
|
||||
// Default: 0.003
|
||||
//MinErrorToSend=0.01;
|
||||
// Minimal error required to send network updates for near units
|
||||
// Using larger value can reduce traffic sent for near units
|
||||
// Also controls client to server traffic
|
||||
// Default: 0.01
|
||||
//MinErrorToSendNear=0.02;
|
||||
@@ -0,0 +1,166 @@
|
||||
// ****************************************************************************
|
||||
// *
|
||||
// ArmA 3 Server Config File - server.cfg *
|
||||
// *
|
||||
// More info about parameters: *
|
||||
// https://community.bistudio.com/wiki/server.cfg *
|
||||
// *
|
||||
// ****************************************************************************
|
||||
|
||||
// Some settings are not listed here; see link above for extensive list.
|
||||
// Some settings are disabled (commented out). Remove the // to enable them.
|
||||
|
||||
// === GLOBAL SETTINGS ===
|
||||
|
||||
// Hostname for server.
|
||||
hostname = "Arma 3 Server";
|
||||
|
||||
// Server password - for private servers.
|
||||
password = "";
|
||||
|
||||
// Admin Password
|
||||
//passwordAdmin = "ADMINPASSWORD";
|
||||
|
||||
// Whitelisted Admins - Clients that do not need a password to login.
|
||||
//admins[] = { "UID OR steamID64", "0123456789", "9876543210" };
|
||||
|
||||
// Server Command Password - for scripting and certain mods.
|
||||
//serverCommandPassword = "COMMANDPASSWORD";
|
||||
|
||||
// Log File
|
||||
logFile = "server_console.log";
|
||||
// RPT File Timestamp Format - none | short | full
|
||||
timeStampFormat = "short";
|
||||
|
||||
// Message of the Day (MOTD)
|
||||
motd[] = {
|
||||
"Welcome to My Arma 3 Server",
|
||||
"TS3 Server: teamspeak.somewhere.com",
|
||||
"Web: www.example.com"
|
||||
};
|
||||
// MOTD Interval - Seconds between each message.
|
||||
motdInterval = 5;
|
||||
|
||||
// Missions Cycle
|
||||
class Missions
|
||||
{
|
||||
class Mission1
|
||||
{
|
||||
template = MP_ZGM_m11.Altis;
|
||||
difficulty = "Regular";
|
||||
class Params {};
|
||||
};
|
||||
class Mission2
|
||||
{
|
||||
template = MP_ZGM_m12.Stratis;
|
||||
difficulty = "Recruit";
|
||||
class Params {};
|
||||
};
|
||||
};
|
||||
// Whitelisted Missions - Only these missions can be selected on the mission select screen.
|
||||
//missionWhitelist[] = { "MP_ZGM_m11.Altis", "MP_ZGM_m12.Stratis" };
|
||||
|
||||
|
||||
// === JOINING RULES ===
|
||||
|
||||
// Server Slots
|
||||
maxPlayers = 32;
|
||||
|
||||
// Enable BattlEye
|
||||
BattlEye = 1;
|
||||
|
||||
// Addon Signature Verification - Verifies .pbos against .bisign files - 0 = Disabled | 2 = Enabled (v2)
|
||||
verifySignatures = 2;
|
||||
|
||||
// Kick Duplicate Player IDs - 0 = No | 1 = Yes
|
||||
kickDuplicate = 1;
|
||||
// Allow File Patching - 0 = No Clients | 1 = Headless Clients only | 2 = All Clients
|
||||
allowedFilePatching = 0;
|
||||
// Minimum Required Client Version
|
||||
//requiredBuild = 999999999;
|
||||
// LAN Mode
|
||||
loopback = 0;
|
||||
// UPNP Router Mode
|
||||
upnp = 0;
|
||||
|
||||
// Headless Client IP Whitelists
|
||||
headlessClients[] = { "127.0.0.1" };
|
||||
localClient[] = { "127.0.0.1" };
|
||||
|
||||
|
||||
// === INGAME SETTINGS ===
|
||||
|
||||
// Advanced Flight Model Enforcement - 0 = Up to player | 1 = Advanced model enforced | 2 = Simple model enforced
|
||||
forceRotorLibSimulation = 0;
|
||||
|
||||
// Disable In-Game Voice Chat (Voice over Network)
|
||||
disableVoN = 0;
|
||||
// VoN Codec - 0 = older SPEEX codec | 1 = newer IETF standard OPUS codec
|
||||
vonCodec = 1;
|
||||
// VoN Codec Quality
|
||||
// 0-10 = 8kHz (narrowband).
|
||||
// 11-20 = 16kHz (wideband).
|
||||
// 21-30 = 32kHz (ultrawideband).
|
||||
vonCodecQuality = 10;
|
||||
|
||||
// Persistent Mission - Keeps mission running when all players disconnect.
|
||||
persistent = 0;
|
||||
|
||||
// Allow Drawing in Map
|
||||
drawingInMap = 1;
|
||||
|
||||
// Enforce Difficulty - Use "Custom" for ServerProfile-defined custom difficulty
|
||||
forcedDifficulty = "regular";
|
||||
|
||||
|
||||
// === VOTING ===
|
||||
|
||||
// Allowed Vote Commands - Un-comment this to prevent voted commands (like vote-kick)
|
||||
//allowedVoteCmds[] = {};
|
||||
|
||||
// Start mission-voting when X number of players connect.
|
||||
voteMissionPlayers = 1;
|
||||
|
||||
// Vote Threshold - Percentage of votes needed to confirm a vote.
|
||||
voteThreshold = 0.33;
|
||||
|
||||
|
||||
// === CLIENT NETWORK HEALTH ===
|
||||
|
||||
// Seconds to wait before disconnecting a user which temporarily lost connection.
|
||||
disconnectTimeout = 90;
|
||||
// Max Desync Value
|
||||
maxdesync = 150;
|
||||
// Max Ping (ms)
|
||||
maxping = 200;
|
||||
// Max Packet Loss
|
||||
maxpacketloss = 50;
|
||||
|
||||
// Action to Take on Slow Network (defined above)
|
||||
// Defines if {<MaxPing>, <MaxPacketLoss>, <MaxDesync>, <DisconnectTimeout>} will be logged (0) or kicked (1)
|
||||
kickClientsOnSlowNetwork[] = { 1, 1, 0, 1 };
|
||||
|
||||
// Kick Duration (temp-ban) on Network Kick
|
||||
// Options {<manual kick>, <connectivity kick>, <BattlEye kick>, <harmless kick>} -- Timeout {>0 seconds; -1 until missionEnd; -2 until serverRestart}
|
||||
kickTimeout[] = { {0, -1},{1, 1},{2, 5},{3, 1} };
|
||||
|
||||
|
||||
// === SERVER SIDE SCRIPTING ===
|
||||
// See https://community.bistudio.com/wiki/ArmA:_Server_Side_Scripting
|
||||
|
||||
onUserConnected = "";
|
||||
onUserDisconnected = "";
|
||||
doubleIdDetected = "";
|
||||
|
||||
onUnsignedData = "kick (_this select 0)";
|
||||
onHackedData = "kick (_this select 0)";
|
||||
onDifferentData = "";
|
||||
|
||||
// Only allow files with these extensions to be loaded via loadFile command
|
||||
allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
|
||||
// Only allow files with these extensions to be loaded via preprocessFile/preprocessFileLineNumber commands
|
||||
allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"};
|
||||
// Only allow files with these extensions to be loaded via HTMLLoad command
|
||||
allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"};
|
||||
// Leave commented to let missions/campaigns/addons decide what URIs are supported. Un-comment to define server-level restrictions for URIs
|
||||
//allowedHTMLLoadURIs = {};
|
||||
@@ -0,0 +1,254 @@
|
||||
{
|
||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||
"meta": {
|
||||
"version": "PTDL_v2",
|
||||
"update_url": null
|
||||
},
|
||||
"exported_at": "2024-01-13T21:10:57+01:00",
|
||||
"name": "Arma 3",
|
||||
"author": "rehlmgaming@gmail.com",
|
||||
"description": "Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC's premier military game. Authentic, diverse, open - Arma 3 sends you to war.",
|
||||
"features": [
|
||||
"steam_disk_space"
|
||||
],
|
||||
"docker_images": {
|
||||
"ghcr.io\/parkervcp\/games:arma3": "ghcr.io\/parkervcp\/games:arma3"
|
||||
},
|
||||
"file_denylist": [],
|
||||
"startup": ".\/{{SERVER_BINARY}} -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/serverprofile -bepath=.\/ -cfg=basic.cfg -config=server.cfg -mod=\\\"{{CLIENT_MODS}}\\\" -serverMod=\\\"{{SERVERMODS}}\\\" \\\"{{STARTUP_PARAMS}}\\\"",
|
||||
"config": {
|
||||
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"password=\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"\/\/password=\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"\/\/password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n \"headlessClients\": \"headlessClients[] = { \\\"127.0.0.1\\\" };\",\r\n \"localClient\": \"localClient[] = { \\\"127.0.0.1\\\" };\"\r\n }\r\n }\r\n}",
|
||||
"startup": "{\r\n \"done\": \"Host identity created.\"\r\n}",
|
||||
"logs": "{}",
|
||||
"stop": "^C"
|
||||
},
|
||||
"scripts": {
|
||||
"installation": {
|
||||
"script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Arma 3 Egg - egg-arma3.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2022\/05\/22\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n# Check for valid Steam credentials to download Arma 3 with (requires valid Steam account)\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_USER}\" == \"anonymous\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"INSTALLATION ERROR: A valid REAL Steam account is required to download the Arma 3 Dedicated Server.\"\r\n echo -e \"\\t(\\\"anonymous\\\" account cannot be used. Game ownership is not required.)\"\r\n exit 1\r\nfi\r\n\r\n# Download and install SteamCMD\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/steamapps\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\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# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n# Arma 3 setup\r\ncd \/mnt\/server\/\r\n[[ -f basic.cfg ]] || curl -sSLO ${BASIC_URL}\r\n[[ -f server.cfg ]] || curl -sSLO ${BASIC_URL%\/*}\/server.cfg\r\nchmod 644 basic.cfg server.cfg\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
|
||||
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||
"entrypoint": "\/bin\/bash"
|
||||
}
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"name": "[REQUIRED] Steam Username",
|
||||
"description": "Used for installation and updates. Account does not need to own Arma 3, but MUST BE a VALID Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*",
|
||||
"env_variable": "STEAM_USER",
|
||||
"default_value": "your_steam_username",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[REQUIRED] Steam Password",
|
||||
"description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for install to complete successfully. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*",
|
||||
"env_variable": "STEAM_PASS",
|
||||
"default_value": "your_steam_password",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Number of SteamCMD Retry Attempts",
|
||||
"description": "How many times SteamCMD should retry downloading a server or mod after a recoverable error. (ie. A particularly large mod like CUP or RHS download times out)",
|
||||
"env_variable": "STEAMCMD_ATTEMPTS",
|
||||
"default_value": "3",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Server Binary",
|
||||
"description": "Server binary to call on server start. (32-bit: arma3server | 64-bit: arma3server_x64)",
|
||||
"env_variable": "SERVER_BINARY",
|
||||
"default_value": "arma3server_x64",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:arma3server,arma3server_x64,arma3serverprofiling,arma3serverprofiling_x64",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Extra Startup Parameters",
|
||||
"description": "See https:\/\/community.bistudio.com\/wiki\/Arma_3_Startup_Parameters for more info on valid flags for this field. \"-noLogs\" is recommended to prevent console rate-limit warnings.",
|
||||
"env_variable": "STARTUP_PARAMS",
|
||||
"default_value": "-noLogs",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "string|nullable",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Max Players",
|
||||
"description": "Maximum number of players allowed to join the server.",
|
||||
"env_variable": "MAX_PLAYERS",
|
||||
"default_value": "32",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer|gt:0",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Server Password",
|
||||
"description": "Password required to join the server. Leave blank to have no password.",
|
||||
"env_variable": "SERVER_PASSWORD",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Automatic Updates",
|
||||
"description": "Quickly checks for any server or mod updates on startup, and updates if necessary. (1 Enable | 0 Disable)",
|
||||
"env_variable": "UPDATE_SERVER",
|
||||
"default_value": "1",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Disable Mod Downloads\/Updates",
|
||||
"description": "If the Steam account does not own the base Arma 3 game, Steam Workshop mod downloads\/updates will not work. If so, this setting allows disabling of this feature to avoid errors. (1 Disable | 0 Enable)",
|
||||
"env_variable": "DISABLE_MOD_UPDATES",
|
||||
"default_value": "0",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Download Creator DLCs",
|
||||
"description": "Downloads\/Updates all the mod files required to run any CDLC during the next Automatic Update. DLCs can be enabled by adding their mod folder name to the Additional Mods startup variable. For example, add \"vn;\" to load the Prairie Fire CDLC. (1 Yes | 0 No)",
|
||||
"env_variable": "CDLC",
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Modlist File (Exported from A3 Launcher)",
|
||||
"description": "Filename for an exported modlist. This file will be parsed for mod installation and loading. Upload your HTML file to the root directory (eg. \/home\/container\/modlist.html). Leave blank to disable loading mods from a modlist.",
|
||||
"env_variable": "MOD_FILE",
|
||||
"default_value": "modlist.html",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Additional Mods",
|
||||
"description": "A semicolon-separated list of additional mod folders to load. Useful for loading CDLCs or manually uploaded mods. This mod list will be loaded in addition to the Modlist File (if used). Any mods in this list that are in \"@workshopID\" form will also be included in Automatic Updates (if enabled). NO capital letters, spaces, or folders starting with a number! (ex. myMod;vn;@123456789;@987654321;etc;)",
|
||||
"env_variable": "MODIFICATIONS",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Repair] Make Mod Files Lowercase",
|
||||
"description": "Every mod that is set to be loaded will have its folder and files changed to lowercase (to prevent errors). It is recommended to enable this for one server boot after copying a mod from a Windows machine to the server, or if mods seem to not be loading. (1 Enable | 0 Disable)",
|
||||
"env_variable": "MODS_LOWERCASE",
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Repair] Validate Server Files",
|
||||
"description": "Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed. (1 Enable | 0 Disable)",
|
||||
"env_variable": "VALIDATE_SERVER",
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Server-Side Only Mods",
|
||||
"description": "Mod folders to be used with the \"-serverMods\" startup option. They only run server-side and are not required by clients if \"verifySignatures\" is enabled. Any mods in this list that are in \"@workshopID\" form will also be included in Automatic Updates (if enabled). NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)",
|
||||
"env_variable": "SERVERMODS",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Optional Client-Side Mods",
|
||||
"description": "A semicolon-separated list of optional mods to load into the keys folder, but not include in server's mod parameter. Useful for allowing clients to connect to the server with or without the mod loaded. Mods in this list must be in \"@workshopID\" form (ex. @123456789;@987654321;). These will also be included in Automatic Updates (if enabled).",
|
||||
"env_variable": "OPTIONALMODS",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Extra Flags for SteamCMD",
|
||||
"description": "[This will override \"Download Creator DLCs\" if used] Only used when checking for server updates, and typically used for grabbing beta builds. Example: -beta profiling -betapassword CautionSpecialProfilingAndTestingBranchArma3",
|
||||
"env_variable": "STEAMCMD_EXTRA_FLAGS",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Headless Clients (HC)",
|
||||
"description": "Number of Headless Clients (0 - 5) to launch parallel with the server. Be sure to set the following \"HC Connect Password\" variable if your server is password locked. PLEASE NOTE: Using a headless client is only recommended for advanced users, adds extra overhead to your permitted server resources, and is only beneficial if a properly written, HC compliant, mission file is provided. See https:\/\/community.bistudio.com\/wiki\/Arma_3:_Headless_Client for more info.",
|
||||
"env_variable": "HC_NUM",
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer|between:0,5",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] HC Hide Console Output",
|
||||
"description": "Hides Headless Client console output (except for critical errors) to prevent nonessential console spam. (1 Hide | 0 Show)",
|
||||
"env_variable": "HC_HIDE",
|
||||
"default_value": "1",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Clear HC Profiles Cache on Startup",
|
||||
"description": "Deletes all profiles from the \"\/home\/container\/serverprofile\/home\" directory on startup, except for the server's main \"Player\" profile. Recommended to enable when running HCs, because the profiles are generally unused and can cause HCs to crash if they develop errors. (1 Enable | 0 Disable)",
|
||||
"env_variable": "CLEAR_CACHE",
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Arma 3 Dedicated Server App ID",
|
||||
"description": "Used for installation and updates. Rarely needs to be changed.",
|
||||
"env_variable": "STEAMCMD_APPID",
|
||||
"default_value": "233780",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] basic.cfg URL",
|
||||
"description": "URL to a valid Arma 3 basic.cfg file. The \"Basic\" configuration file is used during server runtime for advanced network performance tuning. Because it is a required file, this URL is used to download it during installation, or if the file is found missing during startup.",
|
||||
"env_variable": "BASIC_URL",
|
||||
"default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|url",
|
||||
"field_type": "text"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
# Arma Reforger
|
||||
|
||||
***Server version currently marked as early access by the Arma developers! Check back often for egg updates as more features are added to the server software.***
|
||||
___
|
||||
|
||||
## Authors / Contributors
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/lilkingjr1">
|
||||
<img src="https://avatars.githubusercontent.com/u/4533989" width="50px;" alt=""/><br /><sub><b>Red-Thirten</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=lilkingjr1" title="Codes">💻</a>
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=lilkingjr1" title="Maintains">🔨</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Soljian">
|
||||
<img src="https://avatars.githubusercontent.com/u/4036453" width="50px;" alt=""/><br /><sub><b>Soljian</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<a href="https://github.com/parkervcp/eggs/commits?author=Soljian" title="Contributor">💡</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- markdownlint-enable -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
___
|
||||
|
||||
### Game Description
|
||||
|
||||
From Bohemia Interactive's [Website](https://reforger.armaplatform.com/):
|
||||
> Experience authentic Cold War combat and join friends in the struggle for a sprawling, 51 km² mid-Atlantic island — or take on the role of Game Master and create your very own scenarios for others to enjoy.
|
||||
___
|
||||
|
||||
### Egg Capabilities
|
||||
|
||||
- Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable.
|
||||
- Able to download and load Arma Reforger Workshop mods on startup (requires manual editing of the `config.json` file).
|
||||
- Configuration of multiple common settings in the `config.json` file via Startup Parameters:
|
||||
- Server Name, Passwords, Scenario ID, Disable Third Person, Max FPS, and more...
|
||||
- Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#restrict-max-players)).
|
||||
- [WHMCS](https://www.whmcs.com/) compatible.
|
||||
|
||||
___
|
||||
|
||||
### Server Ports
|
||||
|
||||
| Port | Default (UDP) | Notes |
|
||||
|---------|---------|---------|
|
||||
| **Game** | 2001 | **Required** / Primary port in Pterodactyl |
|
||||
| Steam communication | 50000..65000 | Documented, but not seemingly needed |
|
||||
| Steam Query | 17777 | Used to provide Steam with server status (but does not seemingly need to be forwarded) |
|
||||
|
||||
___
|
||||
|
||||
### Installation/System Requirements
|
||||
|
||||
| | Bare Minimum | Recommended |
|
||||
|---------|---------|---------|
|
||||
| Processor | Recent x86/64 (AMD/Intel) processor. No ARM support. | Can use up to 300-600% CPU under load with uncapped FPS (set Max FPS to prevent). |
|
||||
| RAM | 3328 MiB | 6144-8192 MiB |
|
||||
| Storage | 5 GB | 7-10 GB (or more, depending on number of mods downloaded) |
|
||||
| Network | If node is behind a NAT, will require Egg Modification (\*see [Define Host Registered Bind Address](#define-host-registered-bind-address) | Pterodactyl Node is not behind a NAT |
|
||||
| Game Ownership | Not required to start or download mods. | ---- |
|
||||
|
||||
___
|
||||
|
||||
### How to Add Mods
|
||||
|
||||
Currently, adding mods to your server is tricky because there is very little documentation and it is difficult to find mod IDs. Hopefully this will change in the future, but following these steps will get it to work:
|
||||
|
||||
1. Open up a client copy of Arma Reforger and subscribe/download any mods you want to add to the server (at this time, I do not know of a way to find mod IDs without requiring use of the game).
|
||||
2. Once done, close the game and navigate to this folder on your computer: `My Documents\My Games\ArmaReforger\addons\`
|
||||
3. Aimlessly open each folder to find which mods you want to add and open each of their `ServerData.json` files in a text editor.
|
||||
4. Then, on your server panel, open the `config.json` file for editing.
|
||||
5. Find `"mods": []` and replace it with the following:
|
||||
|
||||
```json
|
||||
"mods": [
|
||||
{
|
||||
"modId": "591AF5BDA9F7CE8B",
|
||||
"name": "Capture & Hold",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
{
|
||||
"modId": "9A51598BACFBFDE7",
|
||||
"name": "Explosive Goats Beta",
|
||||
"version": "0.5.42"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
6. Change `modId` to equal the `id` value found at the top of the `ServerData.json` file you found.
|
||||
7. Change `name` to equal the `name` value found at the **top** of the `ServerData.json` file you found.
|
||||
8. Change `version` to equal the `version` value found at the top of the `ServerData.json` file you found.
|
||||
9. Repeat for each mod you want to add by copy/pasting the `{}` sections like shown above. Make sure each `{}` section has a `,` after it, **except** for the last item.
|
||||
|
||||
The server will automatically download and run the mods you specify on startup. For mods that add scenarios, you can find the Scenario IDs listed as `gameId` in the `ServerData.json` file. Lastly, if a mod updates, you will likely have to change the `version` value to match it's new version. You may also have to delete the mod folder in the `addons/` directory to have it re-download (reports on this have been mixed).
|
||||
|
||||
___
|
||||
|
||||
### Recommended Egg Modifications
|
||||
|
||||
The following are highly recommended variable modifications you can make to the egg after importing it to your panel.
|
||||
|
||||
#### Define Host Registered Bind Address
|
||||
|
||||
Due to a current behavior of Pterodactyl, `SERVER_IP` will not return the node's public IP address if it is behind a NAT; it will return its private IP address. Unfortunately at this time, Arma Reforger **requires** the server's public IP address to be strictly defined within `config.json`. If you know your node is behind a NAT (or you are finding your node's private IP address being added to `config.json`), you will need to edit this egg after importing it by following these steps:
|
||||
|
||||
1. As a panel admin, find and open the egg within your Nests tab.
|
||||
2. On the first tab "Configuration", find the "Configuration Files" box under the "Process Management" section.
|
||||
3. Carefully (as to not touch anything else), find `{{server.build.default.ip}}` and replace it with your node's public IP address. If done correctly, the line should now look something like this:
|
||||
|
||||
```json
|
||||
" \"gameHostRegisterBindAddress\"": " \"gameHostRegisterBindAddress\": \"123.4.56.789\",",
|
||||
```
|
||||
|
||||
#### Restrict Max Players
|
||||
|
||||
If you would like to restrict the maximum number of players that can join your client's server, you can change the permissions of the "Max Players" variable so that clients can only view this value (and not edit it). It's default value can also be changed, or the value can be changed on a server-by-server basis as desired.
|
||||
@@ -0,0 +1,184 @@
|
||||
{
|
||||
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
|
||||
"meta": {
|
||||
"version": "PTDL_v2",
|
||||
"update_url": null
|
||||
},
|
||||
"exported_at": "2023-07-22T10:56:26+02:00",
|
||||
"name": "Arma Reforger",
|
||||
"author": "rehlmgaming@gmail.com",
|
||||
"description": "Experience authentic Cold War combat and join friends in the struggle for a sprawling, 51 km\u00b2 mid-Atlantic island \u2014 or take on the role of Game Master and create your very own scenarios for others to enjoy.",
|
||||
"features": [
|
||||
"steam_disk_space"
|
||||
],
|
||||
"docker_images": {
|
||||
"ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian"
|
||||
},
|
||||
"file_denylist": [],
|
||||
"startup": ".\/ArmaReforgerServer -gproj .\/addons\/data\/ArmaReforger.gproj -config .\/config.json -profile .\/profile -backendlog -nothrow -listScenarios -logStats $(({{LOG_INTERVAL}}*1000)) -maxFPS {{MAX_FPS}}",
|
||||
"config": {
|
||||
"files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"bindAddress\": \"0.0.0.0\",\r\n \"bindPort\": \"{{server.build.default.port}}\",\r\n \"publicAddress\": \"{{server.build.default.ip}}\",\r\n \"publicPort\": \"{{server.build.default.port}}\",\r\n \"game.name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"game.password\": \"{{server.build.env.SERVER_PASS}}\",\r\n \"game.passwordAdmin\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"game.scenarioId\": \"{{server.build.env.SCENARIO_ID}}\",\r\n \"game.maxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"game.gameProperties.fastValidation\": true\r\n }\r\n }\r\n}",
|
||||
"startup": "{\r\n \"done\": \"Starting RPL server\"\r\n}",
|
||||
"logs": "{}",
|
||||
"stop": "^C"
|
||||
},
|
||||
"scripts": {
|
||||
"installation": {
|
||||
"script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\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## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## add below your custom commands if needed\r\n\r\n\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"bindAddress\": \"0.0.0.0\",\r\n\t\"bindPort\": ${SERVER_PORT},\r\n\t\"publicAddress\": \"${SERVER_IP}\",\r\n\t\"publicPort\": ${SERVER_PORT},\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"passwordAdmin\": \"${ADMIN_PASS}\",\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"maxPlayers\": ${MAX_PLAYERS},\r\n\t\t\"visible\": true,\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 500,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"VONDisableUI\": false,\r\n\t\t\t\"VONDisableDirectSpeechUI\": false\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"",
|
||||
"container": "ghcr.io\/parkervcp\/installers:debian",
|
||||
"entrypoint": "bash"
|
||||
}
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"name": "Automatic Updates",
|
||||
"description": "Quickly checks for any server or mod updates on startup, and updates if necessary.",
|
||||
"env_variable": "AUTO_UPDATE",
|
||||
"default_value": "1",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "boolean",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Server Region",
|
||||
"description": "Region listed in the server browser. ISO 3166-1 alpha-2 codes can be used in this field.",
|
||||
"env_variable": "REGION",
|
||||
"default_value": "US",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,EU,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Server Name",
|
||||
"description": "Name displayed in the server browser.",
|
||||
"env_variable": "SERVER_NAME",
|
||||
"default_value": "Arma Reforger Server",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:255",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Max Players",
|
||||
"description": "Maximum number of players allowed to join the server.",
|
||||
"env_variable": "MAX_PLAYERS",
|
||||
"default_value": "32",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer|between:1,256",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Server Password",
|
||||
"description": "Password required for clients to enter before they can join the server. Leave empty to have no password.",
|
||||
"env_variable": "SERVER_PASS",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string|max:32",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Admin Password",
|
||||
"description": "",
|
||||
"env_variable": "ADMIN_PASS",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string|max:32",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Scenario ID",
|
||||
"description": "ID of scenario to run\/play. Valid IDs can be viewed in the console upon startup of the server.",
|
||||
"env_variable": "SCENARIO_ID",
|
||||
"default_value": "{ECC61978EDCC2B5A}Missions\/23_Campaign.conf",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Auto Joinable",
|
||||
"description": "Set if the session can be selected through the auto join feature.",
|
||||
"env_variable": "AUTO_JOINABLE",
|
||||
"default_value": "true",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:true,false",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Visible in Server Browser",
|
||||
"description": "Set the visibility of the server in the Server Browser.",
|
||||
"env_variable": "VISIBLE",
|
||||
"default_value": "true",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:true,false",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Enable BattlEye",
|
||||
"description": "Enables the anti-cheat engine on the server and requires all clients to be running it.",
|
||||
"env_variable": "BATTLEYE",
|
||||
"default_value": "true",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:true,false",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "Disable Third Person",
|
||||
"description": "",
|
||||
"env_variable": "DISABLE_THIRD",
|
||||
"default_value": "false",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:true,false",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Max FPS",
|
||||
"description": "Sets a maximum FPS limit for the server, saving performance in some cases. Leave empty for no limit.",
|
||||
"env_variable": "MAX_FPS",
|
||||
"default_value": "120",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|integer|gt:0",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Log FPS Interval",
|
||||
"description": "How often (in seconds) to log the FPS and other debug stats to the console. Set to 0 to disable.",
|
||||
"env_variable": "LOG_INTERVAL",
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer|min:0",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Repair] Validate Server Files",
|
||||
"description": "\"true\" to enable; empty to disable. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.",
|
||||
"env_variable": "VALIDATE",
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"field_type": "text"
|
||||
},
|
||||
{
|
||||
"name": "[Advanced] Arma Reforger Dedicated Server App ID",
|
||||
"description": "Used for installation and updates. Rarely needs to be changed.",
|
||||
"env_variable": "SRCDS_APPID",
|
||||
"default_value": "1874900",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer",
|
||||
"field_type": "text"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user