Ark Survival Ascended (ASA) Server Infrastructure Terraform module.
I do this in my free time. Consider donating to keep the project going and motivate me to maintain the repo, add new features, etc :)
This module allows you to quickly deploy an Ark Survival Ascended server on AWS. Ark will run using GloriousEggroll Proton. A desired version of GE Proton can be chosen using the ge_proton_version
input.
- Ark SA running on Ubuntu with GE Proton
- The ability to use an existing GameUserSettings.ini and Game.ini
- Most GameUserSettings.ini settings are configurable inputs for creating a brand new configuration
- Ability to store backups in S3 at a defined interval
- Ability to add mods
- Ability to start from existing save data
Map Name | Systemd Service Name |
---|---|
The Island | ark-island |
Feature | Target Date |
---|---|
Replace stand alone EC2 instance with Autoscaling group | Feb 2024 |
Parametrize Game.ini options | Feb 2024 |
Configurable Restart interval | Feb 2024 |
Allow users to define which map to use | Feb 2024 |
Allow users to launch a cluster of multiple maps | March 2024 |
Make compute stateless. Store data external from compute via RDS and EFS | Sometime 2024 ( I don't even know if this is possible ) |
AWS SSM Support for SSH | March 2024 |
You must have the following to use this Terraform module:
- Terraform version >= 1.5.0 - Install Terraform
- An AWS account
- Create a file named
main.tf
- Add the following as a minimum. See all available inputs in the "Inputs" section of this README. Inputs not defined will use their default values.
module "ark-survival-ascended" {
source = "TheSudoYT/ark-survival-ascended/aws"
ge_proton_version = "8-27"
instance_type = "t3.xlarge"
create_ssh_key = true
ssh_public_key = "../../ark_public_key.pub"
ark_session_name = "ark-aws-ascended"
max_players = "32"
is_password_protected = true
join_password = "RockWellSucks"
enable_s3_backups = false
}
- Choose your inputs -
GameUserSettings.ini
inputs use default values unless you provide a value OTHER than the default value. Ark will use the settings from a custom GameUserSettings.ini file if you choose to use one. Modifying an input that is a GameUserSettings.ini setting while also using a custom GameUserSettings.ini file will result in that specific setting being overwritten in your custom file. - Initialize Terraform - Run
terraform init
to download the module and providers. - Create the Ark server and Infrastructure - Run
terraform apply
to start deploying the infrastructure.
Note
In testing it takes approximately 15 to 20 minutes on a t3.xlarge for steam to download and configure ark.
The terraform apply will complete, but the server will not appear in the server list until this completes. You can SSH into your server ssh -i my_ark_key.pem [email protected]
and use journalctl -xu cloud-final
to monitor the install. See the troubleshooting section of the README if you continue to have problems.
Note
In testing it takes approximately 3 to 5 minutes for your server to appear on the server list after installation is complete.
Ensure you tick the show player servers
box to view your server:
This module includes the option to enable backups. Enabling this will backup the ShooterGame/Saved
directory to an S3 bucket at the interval specified using cron. Backups will be retained in S3 based on the number of days specified by the input s3_bucket_backup_retention
. This is to save money. Versioning, kms, and replication are disabled to save money.
Note
Enabling this creates an additional S3 bucket. In testing, this adds an additional 0.10 USD ( 10 cents ) a month on average depending on the duration of backup retention, how often you backup, and how often you restore from backup. https://calculator.aws/#/addService
2 Files will be created on the ark server; ark_backup_script.sh
on install and ark_backup_log.log
when the first backup job runs. The backup log should show similiar to the one below if backup is a success:
ubuntu@ip-10-0-1-250:/ark-asa$ ls
Engine Manifest_DebugFiles_Win64.txt Manifest_NonUFSFiles_Win64.txt Manifest_UFSFiles_Win64.txt ShooterGame ark_backup_log.log ark_backup_script.sh compatibilitytools.d linux64 steamapps steamclient.so
ubuntu@ip-10-0-1-250:/ark-asa$ cat ark_backup_log.log
[INFO] Creating Ark Backup
tar: Removing leading `/' from member names
/ark-asa/ShooterGame/Saved/
/ark-asa/ShooterGame/Saved/SavedArks/
/ark-asa/ShooterGame/Saved/SavedArks/TheIsland_WP/
/ark-asa/ShooterGame/Saved/SavedArks/TheIsland_WP/TheIsland_WP.ark
/ark-asa/ShooterGame/Saved/Logs/
/ark-asa/ShooterGame/Saved/Logs/ShooterGame.log
/ark-asa/ShooterGame/Saved/Logs/FailedWaterDinoSpawns.log
/ark-asa/ShooterGame/Saved/Config/
/ark-asa/ShooterGame/Saved/Config/CrashReportClient/
/ark-asa/ShooterGame/Saved/Config/CrashReportClient/UECC-Windows-9D515DBA45100CBD707E679881FCDE73/
/ark-asa/ShooterGame/Saved/Config/CrashReportClient/UECC-Windows-9D515DBA45100CBD707E679881FCDE73/CrashReportClient.ini
/ark-asa/ShooterGame/Saved/Config/WindowsServer/
/ark-asa/ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini
/ark-asa/ShooterGame/Saved/Config/WindowsServer/Game.ini
[INFO] Uploading Ark Backup to s3
upload: ./ark-aws-ascended_backup_2024-01-01-18-47-04.tar.gz to s3://ark-backups-12345678912345/ark-aws-ascended_backup_2024-01-01-18-47-04.tar.gz
[INFO] Removing Local Ark Backup File
The backup should be visible in the AWS S3 bucket after the first specified backup interval time frame passes.
Mods can be added using the mod_list
input. This is a list of strings. Example: mod_list = ["935813", "900062"]
Future support for map mods planned.
Use the supported_server_platforms
input to define which platforms can connect to your server.
Warning
Always be mindful of using mods with multiple platforms. Some mods are not supported by all platforms. Check your mod details for more information.
Warning
I have only tested this with PC and ALL. I have only tested PS5 connections when configured as ALL.
supported_server_platforms = ["All"]
You can use existing save data from an existing server when starting the server. This is useful if you are migrating from another hosting platform or recreating the server. The following inputs are required to do this:
Warning
When backup_files_storage_type = "s3"
using The objects in the S3 bucket must not be compressed and must be in the root of the S3 bucket. The bucket's root directroy will be synced to the SaveGame directory.
Warning
When backup_files_storage_type = "local"
using The objects/files in the directory you specify with backup_files_local_path
must not be compressed. Terraform will iterate through each file in that directory and upload it to the root of an S3 bucket it creates.
Input | Description |
---|---|
start_from_backup = "true" |
Must be set to inform Terraform that you wish to start the server with existing save data. |
backup_files_storage_type = "local" or "s3" |
Valid inputs are "local" or "s3". Must be set if start_from_backup = true . |
backup_files_local_path = "/directory/on/my/pc" |
If backup_files_storage_type = "local" then you must provide a path on your local host relative to the terraform working directory. |
existing_backup_files_bootstrap_bucket_arn |
If backup_files_storage_type = "s3" then you must provide the ARN of an existing S3 bucket that contains the save game files in the root of the S3 bucket, uncompressed. |
existing_backup_files_bootstrap_bucket_name |
If backup_files_storage_type = "s3" then you must provide the Name of an existing S3 bucket that contains the save game files in the root of the S3 bucket, uncompressed |
-
backup_files_storage_type = "local"
will instruct terraform to create an S3 bucket namedark-bootstrap-local-saves-region-accID
and upload the save files from your local PCbackup_files_local_path
directory specified to that bucket. The user_data script on the EC2 instance will download the files from that S3 bucket when the server starts and place them in the/ark-asa/ShooterGame/Saved/SaveGames
directory. -
backup_files_storage_type = "s3"
Is informing terraform that you have an existing S3 bucket somewhere that contains the save game data. The EC2 user_data script will attempt to sync the root of that S3 bucket with the SaveGames directory of ark. That is why it is important that the objects be uncompressed and in the root of the directory.
You can use an existing GameUserSettings.ini so that the server starts with your custom settings. The following inputs are required to do this:
Note
Terraform Module inputs that are also key=value
pairs in the .ini files overwrite the .ini file options. For example, the ark_session_name
input will overwrite the value for SessionName in your GameUserSettings.ini file if you provided a custom one.
Input | Description |
---|---|
use_custom_gameusersettings = true | Must be set to pass a custom GameUserSettings.ini to the server on startup |
custom_gameusersettings_s3 = true | Cannot be set when custom_gameusersettings_github = true . Set to true if you would like to upload an existing GameUserSettings.ini to an S3 bucket during terraform apply. Setting this to true will create an S3 bucket and upload the file from your PC to the S3 bucket. It will then download the file from the S3 bucket on server startup. You MUST also set game_user_settings_ini_path as a path on your local system relative to the terraform working directory. It is easiest to just place GameUserSettings.ini in the root of your terraform working directory and just provide game_user_settings_ini_path = GameUserSettings.ini . |
game_user_settings_ini_path = "path/on/my/pc" | A path on your local system relative to the terraform working directory. It is easiest to just place GameUserSettings.ini in the root of your terraform working directory and just provide game_user_settings_ini_path = GameUserSettings.ini . Only used when custom_gameusersettings_s3 = true . |
custom_gameusersettings_github = true | Cannot be set when custom_gameusersettings_s3 = true . Set to true if you would like to download an existing GameUserSettings.ini to the server from a GitHub URL. Must also provide custom_gameusersettings_github_url = "https://my.url.com with a valid URL to a public GitHub repo. |
custom_gameusersettings_github_url = "https://my.url.com | A valid URL to a public GitHub repo to download an existing GameUserSettings.ini from onto the server during startup. Must have custom_gameusersettings_github = true and use_custom_gameusersettings = true to use. |
-
Using the S3 option will instruct terraform to create an S3 bucket along with an EC2 instance profile that will have permissions to assume an IAM role that is also created. This role contains a policy to allow only the EC2 instance to access the S3 bucket to download GameUserSettings.ini. This also instructs the user_data script that runs when the server starts to download GameUserSettings.ini from that S3 bucket and place it in
/ark-asa/ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini
-
Using the GitHub option will simply instruct the user_data script that runs when the server starts to download GameUserSettings.ini to the server and place it in
/ark-asa/ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini
You can use an existing Game.ini so that the server starts with your custom settings. The following inputs are required to do this:
Note
Terraform Module inputs that are also key=value
pairs in the .ini files overwrite the .ini file options. For example, the ark_session_name
input will overwrite the value for SessionName in your GameUserSettings.ini file if you provided a custom one.
Input | Description |
---|---|
use_custom_game_ini = true | Must be set to pass a custom Game.ini to the server on startup |
custom_gameini_s3 = true | Cannot be set when custom_gameini_github = true . Set to true if you would like to upload an existing Gameini.ini to an S3 bucket during terraform apply. Setting this to true will create an S3 bucket and upload the file from your PC to the S3 bucket. It will then download the file from the S3 bucket on server startup. You MUST also set game_ini_path as a path on your local system relative to the terraform working directory. It is easiest to just place Game.ini in the root of your terraform working directory and just provide game_ini_path = Game.ini . |
game_ini_path = "path/on/my/pc" | A path on your local system relative to the terraform working directory. It is easiest to just place Game.ini in the root of your terraform working directory and just provide game_ini_path = Game.ini . Only used when custom_gameini_s3 = true . |
custom_gameini_github = true | Cannot be set when custom_gameini_s3 = true . Set to true if you would like to download an existing Game.ini to the server from a GitHub URL. Must also provide custom_gameini_github_url = "https://my.url.com with a valid URL to a public GitHub repo. |
custom_gameini_github_url = "https://my.url.com | A valid URL to a public GitHub repo to download an existing Game.ini from onto the server during startup. Must have custom_gameini_github = true and use_custom_game_ini = true to use. |
-
Using the S3 option will instruct terraform to create an S3 bucket along with an EC2 instance profile that will have permissions to assume an IAM role that is also created. This role contains a policy to allow only the EC2 instance to access the S3 bucket to download Game.ini. This also instructs the user_data script that runs when the server starts to download Game.ini from that S3 bucket and place it in
/ark-asa/ShooterGame/Saved/Config/WindowsServer/Game.ini
-
Using the GitHub option will simply instruct the user_data script that runs when the server starts to download Game.ini to the server and place it in
/ark-asa/ShooterGame/Saved/Config/WindowsServer/Game.ini
-
Monitoring the installation - You can view the user_data script that ran by connecting to your server via SSH using the public key you provided, ubuntu user, and the IP address of the server. Example:
ssh -i .\ark_public_key [email protected]
. Once on the server you can view the progress of the user_data script that installs and configures ark using the commandjournalctl -xu cloud-final
. Use the space bar to scroll through the output line by line orshift+g
to scroll the end of the output. If there is an obvios reason that ark failed to install or start in the way you expect, you can most likely find it here. -
Checking the ark service is running - You can run
systemctl status ark-island
to view the status of the ark server. The service should sayActive: active (running)
. If it does not, then the ark server failed to start or has stopped for some reason.
- Using a Custom GameUserSettings and Game.ini From S3
- Using a Custom GameUserSettings and Game.ini From GitHub
- Enabling backups to S3
- Using Default Ark Settings
- Adding Mods
- Supporting Additional Platforms (PS5, Xbox, etc.)
- All Inputs Combines custom INI files with inputs that overwrite the custom settings
Feature | Reason for Abandoning | Comparable Feature Implemented |
---|---|---|
Allow users to pass in GameUserSettings.ini from their local machine by providing the path to the file relative to the terraform working directory. | Impossible without exceeding the allowable length of user_data. | Using the AWS CLI and an EC2 instance profile to download GameUserSettings.ini from S3 or another remote location such as GitHub. |
KMS Encryption | It can get expensive and this is Ark not a bank or government system. | None |
S3 Replication | Again, it can get expensive and this is Ark not a bank or government system. | None |
Name | Version |
---|---|
terraform | >= 1.5.0 |
aws | >= 5.0.0 |
No providers.
Name | Source | Version |
---|---|---|
ark_backup | ./modules/backup | n/a |
ark_compute | ./modules/compute | n/a |
ark_vpc | ./modules/networking | n/a |
No resources.
Name | Description | Type | Default | Required |
---|---|---|---|---|
admin_logging | If True, logs all admin commands to in-game chat. | bool |
false |
no |
allow_anyone_baby_imprint_cuddle | If True, allows anyone to take care of a baby creatures (cuddle etc.), not just whomever imprinted on it. | bool |
false |
no |
allow_flyer_carry_pve | If True, allows flying creatures to pick up wild creatures in PvE. | bool |
false |
no |
allow_raid_dino_feeding | If True, allows Titanosaurs to be permanently tamed (namely allow them to be fed). Note: in The Island only spawns a maximum of 3 Titanosaurs, so 3 tamed ones should ultimately block any more ones from spawning. | bool |
false |
no |
allow_third_person_player | If False, disables third person camera allowed by default on all dedicated servers. | bool |
true |
no |
always_allow_structure_pickup | If True disables the timer on the quick pick-up system. | bool |
false |
no |
ami_id | The AMI ID to use. Not providing one will result in the latest version of Ubuntu Focal 20.04 being used | string |
null |
no |
ark_session_name | The name of the Ark server as it appears in the list of servers when users look for a server to join | string |
"ark-aws-ascended" |
no |
auto_save_interval | Set interval for automatic saves. Must be a float. pattern allows float numbers like 15.0, 3.14, etc. Setting this to 0 will cause constant saving. | number |
15 |
no |
backup_files_local_path | Path to existing save game files relative to your Terraform working directory. Will be uploaded to the server. Required if backup_files_storage_path = local |
string |
"" |
no |
backup_files_storage_type | The location of your save game files that you wish to start the server with. Supported options are local or s3'. localmeans the save game files exist somewhere on the host you are running terraform apply from. s3 means the files exist in an s3 bucket. |
string |
"local" |
no |
backup_interval_cron_expression | How often to backup the ShooterGame/Saved directory to S3 in cron expression format (https://crontab.cronhub.io/) | string |
"0 23 * * *" |
no |
backup_s3_bucket_arn | The ARN of the s3 bucket that you would like to use for ShooterGame/Saved directory backups | string |
"" |
no |
backup_s3_bucket_name | The name of the S3 bucket to backup the ShooterGame/Saved directory to | string |
"" |
no |
clamp_resource_harvest_damage | If True, limit the damage caused by a tame to a resource on harvesting based on resource remaining health. Note: enabling this setting may result in sensible resource harvesting reduction using high damage tools or creatures. | bool |
false |
no |
create_backup_s3_bucket | True or False. Do you want to create an S3 bucket to FTP backups into | bool |
false |
no |
create_ssh_key | True or False. Determines if an SSH key is created in AWS | bool |
true |
no |
custom_gameini_github | True or False. Set true if use_custom_gameini is true and you want to download them from github. Must be a public repo. | bool |
false |
no |
custom_gameini_github_url | The URL to the Game.ini file on a public GitHub repo. Used when custom_gameini_github and use_custom_game_ini both == true. | string |
"" |
no |
custom_gameini_s3 | True or False. Set true if use_custom_gameini is true and you want to upload and download them from an S3 bucket during installation | bool |
false |
no |
custom_gameusersettings_github | True or False. Set true if use_custom_gameusersettings is true and you want to download them from github. Must be a public repo. | bool |
false |
no |
custom_gameusersettings_github_url | The URL to the GameUserSettings.ini file on a public GitHub repo. Used when custom_gameusersettings_github and custom_game_usersettings both == true. | string |
"" |
no |
custom_gameusersettings_s3 | True or False. Set true if use_custom_gameusersettings is true and you want to upload and download them from an S3 bucket during installation | bool |
false |
no |
day_cycle_speed_scale | Specifies the scaling factor for the passage of time in the ARK during the day. This value determines the length of each day, relative to the length of each night (as specified by NightTimeSpeedScale). Lowering this value increases the length of each day. | number |
1 |
no |
day_time_speed_scale | Specifies the scaling factor for the passage of time in the ARK during the day. This value determines the length of each day, relative to the length of each night (as specified by NightTimeSpeedScale). Lowering this value increases the length of each day. | number |
1 |
no |
difficulty_offset | Specifies the difficulty level. | number |
1 |
no |
dino_character_food_drain_multiplier | Specifies the scaling factor for creatures' food consumption. Higher values increase food consumption (creatures get hungry faster). It also affects the taming-times. | number |
1 |
no |
dino_character_health_recovery_multiplier | Specifies the scaling factor for creatures' health recovery. Higher values increase the recovery rate (creatures heal faster). | number |
1 |
no |
dino_character_stamina_drain_multiplier | Specifies the scaling factor for creatures' stamina consumption. Higher values increase stamina consumption (creatures get tired faster). | number |
1 |
no |
dino_damage_multiplier | Specifies the scaling factor for the damage wild creatures deal with their attacks. The default value 1 provides normal damage. Higher values increase damage. Lower values decrease it. | number |
1 |
no |
dino_resistance_multiplier | Specifies the scaling factor for the resistance to damage wild creatures receive when attacked. The default value 1 provides normal damage. Higher values decrease resistance, increasing damage per attack. Lower values increase it, reducing damage per attack. A value of 0.5 results in a creature taking half damage while a value of 2.0 would result in a creature taking double normal damage. | number |
1 |
no |
disable_dino_decay_pve | If True, disables the creature decay in PvE mode. Note: after patch 273.691, in PvE mode the creature auto-unclaim after decay period has been disabled. | bool |
false |
no |
disable_imprint_dino_buff | If True, disables the creature imprinting player Stat Bonus. Where whomever specifically imprinted on the creature, and raised it to have an Imprinting Quality, gets extra Damage/Resistance buff. | bool |
false |
no |
disable_pve_gamma | If True, prevents use of console command gamma in PvE mode. | bool |
false |
no |
disable_structure_decay_pve | If True, disables the gradual auto-decay of player structures. | bool |
false |
no |
disable_weather_fog | If True, disables fog. | bool |
false |
no |
dont_notify_player_joined | If True, globally disables player joins notifications. | bool |
false |
no |
ebs_volume_size | The size of the EBS volume attached to the EC2 instance | number |
50 |
no |
enable_extra_structure_prevention_volumes | If True, disables building in specific resource-rich areas, in particular setup on The Island around the major mountains. | bool |
false |
no |
enable_pvp_gamma | If True, allows use of console command gamma in PvP mode. | bool |
false |
no |
enable_rcon | True or False. Enable RCON or not | bool |
false |
no |
enable_s3_backups | True or False. Set to true to enable backing up of the ShooterGame/Saved directory to S3 | bool |
false |
no |
enable_session_manager | True or False. Determines if SSM Session Manager is enabled or not | bool |
false |
no |
enable_ssh | True or False. Determines if SSH and port 22 are enabled or not | bool |
true |
no |
existing_backup_files_bootstrap_bucket_arn | The ARN of an existing S3 bucket with ARK save game data. Files will be downloaded to the server. Objects must be in the root of the S3 bucket and not compressed. | string |
"" |
no |
existing_backup_files_bootstrap_bucket_name | The Name of an existing S3 bucket with ARK save game data. Files will be downloaded to the server. Objects must be in the root of the S3 bucket and not compressed. | string |
"" |
no |
existing_ssh_key_name | The name of an EXISTING SSH key for use with the EC2 instance | string |
null |
no |
force_destroy | True or False. Set to true if you want Terraform destroy commands to have the ability to destroy the backup bucket while it still containts backup files | bool |
false |
no |
game_client_port | The port that the game client listens on | number |
7777 |
no |
game_ini_path | Path to Game.ini relative to your Terraform working directory. Will be uploaded to the server. Required if use_custom_game_ini = true and custom_game_ini_s3 = true. | string |
"" |
no |
game_user_settings_ini_path | Path to GameUserSettings.ini relative to your Terraform working directory. Will be uploaded to the server. Required if use_custom_gameusersettings = true and custom_game_usersettings_s3 = true. | string |
"" |
no |
ge_proton_version | The version of GE Proton to use when installing Ark. Example: 8-21 (https://github.com/GloriousEggroll/proton-ge-custom/releases) | string |
"8-21" |
no |
harvest_ammount_multiplier | Specifies the scaling factor for yields from all harvesting activities (chopping down trees, picking berries, carving carcasses, mining rocks, etc.). Higher values increase the amount of materials harvested with each strike. | number |
1 |
no |
harvest_health_multiplier | Specifies the scaling factor for the health of items that can be harvested (trees, rocks, carcasses, etc.). Higher values increase the amount of damage (i.e., number of strikes) such objects can withstand before being destroyed, which results in higher overall harvest yields. | number |
1 |
no |
instance_type | The instance type to use | string |
"t3.xlarge" |
no |
is_password_protected | True or False. Is a password required for players to join the server | bool |
true |
no |
item_stack_size_multiplier | Allow increasing or decreasing global item stack size, this means all default stack sizes will be multiplied by the value given (excluding items that have a stack size of 1 by default). | number |
1 |
no |
join_password | The password required for players to join the server. Only required if is_password_protected = true | string |
"TinyTrexArms123!" |
no |
kick_idle_player_period | Time in seconds after which characters that have not moved or interacted will be kicked (if -EnableIdlePlayerKick as command line parameter is set). Note: although at code level it is defined as a floating-point number, it is suggested to use an integer instead. | number |
3600 |
no |
max_personal_tamed_dinos | Sets a per-tribe creature tame limit (500 on official PvE servers, 300 in official PvP servers). The default value of 0 disables such limit. | number |
0 |
no |
max_platform_saddle_structure_limit | Changes the maximum number of platformed-creatures/rafts allowed on the ARK (a potential performance cost). Example: MaxPlatformSaddleStructureLimit=10 would only allow 10 platform saddles/rafts across the entire ARK. | number |
75 |
no |
max_players | The number of max players the server allows | string |
"32" |
no |
max_tamed_dinos | Changes the maximum number of platformed-creatures/rafts allowed on the ARK (a potential performance cost). Example: MaxPlatformSaddleStructureLimit=10 would only allow 10 platform saddles/rafts across the entire ARK. | number |
5000 |
no |
mod_list | A list of mod IDs to add to the server. List of strings. Example: mod_list = ['935813', '900062'] | list(string) |
[ |
no |
night_time_speed_scale | Specifies the scaling factor for the passage of time in the ARK during night time. This value determines the length of each night, relative to the length of each day (as specified by DayTimeSpeedScale) Lowering this value increases the length of each night. | number |
1 |
no |
non_permanent_diseases | If True, makes permanent diseases not permanent. Players will lose them if on re-spawn. | bool |
false |
no |
override_official_difficulty | Allows you to override the default server difficulty level of 4 with 5 to match the new official server difficulty level. Default value of 0.0 disables the override. A value of 5.0 will allow common creatures to spawn up to level 150. Originally (247.95) available only as command line option. | number |
0 |
no |
override_structure_platform_prevention | If True, turrets becomes be buildable and functional on platform saddles. Since 247.999 applies on spike structure too. Note: despite patch notes, in ShooterGameServer it's coded OverrideStructurePlatformPrevention with two r. | bool |
false |
no |
oxygen_swim_speed_multiplier | Use this to set how swim speed is multiplied by level spent in oxygen. The value was reduced by 80% in 256.0. | number |
1 |
no |
per_platform_max_structure_multiplier | Higher value increases (from a percentage scale) max number of items place-able on saddles and rafts. | number |
1 |
no |
platform_saddle_build_area_bounds_multiplier | Increasing the number allows structures being placed further away from the platform. | number |
1 |
no |
player_character_food_drain_multiplier | Specifies the scaling factor for player characters' food consumption. Higher values increase food consumption (player characters get hungry faster). | number |
1 |
no |
player_character_health_recovery_multiplier | Specifies the scaling factor for player characters' health recovery. Higher values increase the recovery rate (player characters heal faster). | number |
1 |
no |
player_character_stamina_drain_multiplier | Specifies the scaling factor for player characters' stamina consumption. Higher values increase stamina consumption (player characters get tired faster). | number |
1 |
no |
player_character_water_drain_multiplier | Specifies the scaling factor for player characters' water consumption. Higher values increase water consumption (player characters get thirsty faster). | number |
1 |
no |
player_damage_multiplier | Specifies the scaling factor for the damage players deal with their attacks. The default value 1 provides normal damage. Higher values increase damage. Lower values decrease it. | number |
1 |
no |
player_resistance_multiplier | Specifies the scaling factor for the resistance to damage players receive when attacked. The default value 1 provides normal damage. Higher values decrease resistance, increasing damage per attack. Lower values increase it, reducing damage per attack. A value of 0.5 results in a player taking half damage while a value of 2.0 would result in taking double normal damage. | number |
1 |
no |
prevent_diseases | If True, completely diseases on the server. Thus far just Swamp Fever. | bool |
false |
no |
prevent_mate_boost | If True, disables creature mate boosting. | bool |
false |
no |
prevent_offline_pvp | If True, enables the Offline Raiding Prevention (ORP). When all tribe members are logged off, tribe characters, creature and structures become invulnerable. Creature starvation still applies, moreover, characters and creature can still die if drowned. Despite the name, it works on both PvE and PvP game modes. Due to performance reason, it is recommended to set a minimum interval with PreventOfflinePvPInterval option before ORP becomes active. ORP also helps lowering memory and CPU usage on a server. Enabled by default on Official PvE since 258.3 | bool |
false |
no |
prevent_offline_pvp_interval | Seconds to wait before a ORP becomes active for tribe/players and relative creatures/structures (10 seconds in official PvE servers). Note: although at code level it is defined as a floating-point number, it is suggested to use an integer instead. | number |
0 |
no |
prevent_spawn_animations | If True, player characters (re)spawn without the wake-up animation. | bool |
false |
no |
prevent_tribe_alliances | If True, prevents tribes from creating Alliances. | bool |
false |
no |
pve_allow_structures_at_supply_drops | If True, allows building near supply drop points in PvE mode. | bool |
false |
no |
raid_dino_character_food_drain_multiplier | Affects how quickly the food drains on such raid dinos (e.g.: Titanosaurus) | number |
1 |
no |
random_supply_crate_points | If True, supply drops are in random locations. Note: This setting is known to cause artifacts becoming inaccessible on Ragnarok if active. | bool |
false |
no |
rcon_port | The port number that RCON listens on if enabled | number |
null |
no |
rcon_server_game_log_buffer | Determines how many lines of game logs are send over the RCON. Note: despite being coded as a float it's suggested to treat it as integer. | number |
600 |
no |
resource_respawn_period_multiplier | Specifies the scaling factor for the re-spawn rate for resource nodes (trees, rocks, bushes, etc.). Lower values cause nodes to re-spawn more frequently. | number |
1 |
no |
s3_bucket_backup_retention | Lifecycle rule. The number of days to keep backups in S3 before they are deleted | number |
7 |
no |
server_admin_password | The admin password for the Ark server to perform admin commands | string |
"adminandypassword" |
no |
server_hardcore | If True, enables Hardcore mode (player characters revert to level 1 upon death) | bool |
false |
no |
server_pve | If True, disables PvP and enables PvE. | bool |
false |
no |
ssh_ingress_allowed_cidr | The CIDR range to allow SSH incoming connections from | list(string) |
[ |
no |
ssh_key_name | The name of the SSH key to be created for use with the EC2 instance | string |
"ark-ssh-key" |
no |
ssh_public_key | The path to the ssh public key to be used with the EC2 instance | string |
"~/.ssh/ark_public_key.pub" |
no |
start_from_backup | True of False. Set true to start the server from an existing Ark save. Requires existing save game files. | bool |
false |
no |
steam_query_port | The query port for steam server browser | number |
27015 |
no |
structure_pickup_hold_duration | Specifies the quick pick-up hold duration, a value of 0 results in instant pick-up. | number |
0.5 |
no |
structure_pickup_time_after_placement | Amount of time in seconds after placement that quick pick-up is available. | number |
30 |
no |
structure_prevent_resource_radius_multiplier | Same as ResourceNoReplenishRadiusStructures in Game.ini. If both settings are set both multiplier will be applied. Can be useful when cannot change the Game.ini file as it works as a command line option too. | number |
1 |
no |
structure_resistance_multiplier | Specifies the scaling factor for the resistance to damage structures receive when attacked. The default value 1 provides normal damage. Higher values decrease resistance, increasing damage per attack. Lower values increase it, reducing damage per attack. A value of 0.5 results in a structure taking half damage while a value of 2.0 would result in a structure taking double normal damage. | number |
1 |
no |
subnet_availability_zone | The AZ of the subnet to be created within the VPC | string |
"us-east-1a" |
no |
subnet_cidr_block | The CIDR block of the subnet to be created within the VPC | string |
"10.0.1.0/24" |
no |
supported_server_platforms | Allows the server to accept specified platforms. Options are PC for Steam, PS5 for PlayStation 5, XSX for XBOX, WINGDK for Microsoft Store, ALL for crossplay between PC and all consoles. Note: Steam dedicated server supports only PC and ALL options. Example: supported_server_platforms = ['PC', 'PS5'] | list(string) |
[ |
no |
taming_speed_multiplier | Specifies the scaling factor for creature taming speed. Higher values make taming faster. | number |
1 |
no |
the_max_structure_in_range | Specifies the maximum number of structures that can be constructed within a certain (currently hard-coded) range. Replaces the old value NewMaxStructuresInRange | number |
10500 |
no |
use_battleye | True or False. True will set the -noBattlEye flag. | bool |
false |
no |
use_custom_game_ini | True or False. Set true if you want to provide your own Game.ini file when the server is started. Required if game_user_settings_ini_path is defined | bool |
false |
no |
use_custom_gameusersettings | True or False. Set true if you want to provide your own GameUserSettings.ini file when the server is started. Required if game_user_settings_ini_path is defined | bool |
false |
no |
vpc_cidr_block | The CIDR block of the VPC to be created | string |
"10.0.0.0/16" |
no |
xp_multiplier | Specifies the scaling factor for the experience received by players, tribes and tames for various actions. The default value 1 provides the same amounts of experience as in the single player experience (and official public servers). Higher values increase XP amounts awarded for various actions; lower values decrease it. | number |
1 |
no |
Name | Description |
---|---|
admin_commands_password | The configured admin command password. |
ark_server_public_ip | The public IP address of the Ark server to connect on. |
backup_s3_bucket_arn | The ARN of the S3 bucket created for backups if enabled. |
backup_s3_bucket_name | The ID of the S3 bucket created for backups if enabled. |
custom_gameusersettings_file_name | The custom gameusersettings file name that was uploaded to s3 if use custom GUS ini with s3 was configured. |
custom_ini_s3_bucket_name | The ID of the S3 bucket that was created if use custom ini with s3 was configured. |
game_client_port | The configured game client port. |
join_password | The server join password required to join. |
max_players | The configured max players. |
security_group_id | The security group ID of the security group created by Terraform. |
server_is_password_protected | Is the server password protected. |
server_using_custom_gameini | Is the server using custom Game.ini. |
server_using_custom_gameusersettingsini | Is the server using custom GameUserSettings.ini. |
session_manager_enabled | Is AWS SSM Session Manager enabled or not. |
session_name | The configured session name. |
ssh_key_name | The name of the SSH key generated by Terraform. |
steam_query_port | The configured steam query port. |
subnet_id | The subnet ID of the subnet created by Terraform. |
vpc_id | The ID of the VPC created by Terraform. |