Initial commit
This commit is contained in:
commit
ac99940e17
|
@ -0,0 +1,49 @@
|
|||
- name: Fetch TShock server
|
||||
get_url:
|
||||
url: "https://github.com/Pryaxis/TShock/releases/download/v4.4.0-pre12/TShock4.4.0_Pre12_Terraria1.4.0.5.zip"
|
||||
dest: "/tmp/tshock.zip"
|
||||
tags:
|
||||
- terraria
|
||||
- fetch
|
||||
notify: Run service actions
|
||||
- name: Extract TShock server
|
||||
command:
|
||||
chdir: "/opt/terraria"
|
||||
warn: false
|
||||
argv:
|
||||
- "unzip"
|
||||
- "/tmp/tshock.zip"
|
||||
tags:
|
||||
- terraria
|
||||
- fetch
|
||||
- name: Change ownership of server
|
||||
command:
|
||||
argv:
|
||||
- "chown"
|
||||
- "-R"
|
||||
- "nobody:nogroup"
|
||||
- "/opt/terraria"
|
||||
tags:
|
||||
- terraria
|
||||
- fetch
|
||||
- name: Copy configurations
|
||||
loop: "{{ terraria.configs }}"
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ terraria.paths.data }}/tshock/{{ item }}"
|
||||
mode: "600"
|
||||
owner: "nobody"
|
||||
group: "nogroup"
|
||||
tags:
|
||||
- terraria
|
||||
- configs
|
||||
notify: Run service actions
|
||||
when: ( terraria.configs|default([]) ) | length
|
||||
- name: Copy service
|
||||
template:
|
||||
src: "tshock.service.j2"
|
||||
dest: "/etc/systemd/system/tshock.service"
|
||||
tags:
|
||||
- terraria
|
||||
- systemd
|
||||
notify: Run service actions
|
|
@ -0,0 +1,142 @@
|
|||
{
|
||||
"ServerPassword": "",
|
||||
"ServerPort": {{ terraria.bind.port }},
|
||||
"MaxSlots": 16,
|
||||
"ReservedSlots": 20,
|
||||
"ServerName": "[RX] The blocky game that's not Minecraft!",
|
||||
"UseServerName": true,
|
||||
"LogPath": "tshock",
|
||||
"DebugLogs": true,
|
||||
"DisableLoginBeforeJoin": false,
|
||||
"IgnoreChestStacksOnLoad": false,
|
||||
"AutoSave": true,
|
||||
"AnnounceSave": true,
|
||||
"ShowBackupAutosaveMessages": true,
|
||||
"BackupInterval": 0,
|
||||
"BackupKeepFor": 60,
|
||||
"SaveWorldOnCrash": true,
|
||||
"SaveWorldOnLastPlayerExit": true,
|
||||
"InvasionMultiplier": 1,
|
||||
"DefaultMaximumSpawns": 5,
|
||||
"DefaultSpawnRate": 600,
|
||||
"InfiniteInvasion": false,
|
||||
"PvPMode": "normal",
|
||||
"SpawnProtection": true,
|
||||
"SpawnProtectionRadius": 40,
|
||||
"RangeChecks": true,
|
||||
"HardcoreOnly": false,
|
||||
"MediumcoreOnly": false,
|
||||
"DisableBuild": false,
|
||||
"DisableHardmode": false,
|
||||
"DisableDungeonGuardian": false,
|
||||
"DisableClownBombs": false,
|
||||
"DisableSnowBalls": false,
|
||||
"DisableTombstones": true,
|
||||
"ForceTime": "normal",
|
||||
"DisableInvisPvP": false,
|
||||
"MaxRangeForDisabled": 10,
|
||||
"RegionProtectChests": false,
|
||||
"RegionProtectGemLocks": true,
|
||||
"IgnoreProjUpdate": false,
|
||||
"IgnoreProjKill": false,
|
||||
"AllowCutTilesAndBreakables": false,
|
||||
"AllowIce": true,
|
||||
"AllowCrimsonCreep": true,
|
||||
"AllowCorruptionCreep": true,
|
||||
"AllowHallowCreep": true,
|
||||
"StatueSpawn200": 3,
|
||||
"StatueSpawn600": 6,
|
||||
"StatueSpawnWorld": 10,
|
||||
"PreventBannedItemSpawn": false,
|
||||
"PreventDeadModification": true,
|
||||
"PreventInvalidPlaceStyle": true,
|
||||
"ForceXmas": false,
|
||||
"ForceHalloween": false,
|
||||
"AllowAllowedGroupsToSpawnBannedItems": false,
|
||||
"RespawnSeconds": 5,
|
||||
"RespawnBossSeconds": 10,
|
||||
"AnonymousBossInvasions": true,
|
||||
"MaxHP": 500,
|
||||
"MaxMP": 200,
|
||||
"BombExplosionRadius": 5,
|
||||
"DefaultRegistrationGroupName": "default",
|
||||
"DefaultGuestGroupName": "guest",
|
||||
"RememberLeavePos": false,
|
||||
"MaximumLoginAttempts": 3,
|
||||
"KickOnMediumcoreDeath": false,
|
||||
"MediumcoreKickReason": "Death results in a kick",
|
||||
"BanOnMediumcoreDeath": false,
|
||||
"MediumcoreBanReason": "Death results in a ban",
|
||||
"EnableWhitelist": false,
|
||||
"WhitelistKickReason": "You are not on the whitelist.",
|
||||
"ServerFullReason": "Server is full",
|
||||
"ServerFullNoReservedReason": "Server is full. No reserved slots open.",
|
||||
"KickOnHardcoreDeath": false,
|
||||
"HardcoreKickReason": "Death results in a kick",
|
||||
"BanOnHardcoreDeath": false,
|
||||
"HardcoreBanReason": "Death results in a ban",
|
||||
"EnableIPBans": true,
|
||||
"EnableUUIDBans": true,
|
||||
"EnableBanOnUsernames": false,
|
||||
"KickProxyUsers": false,
|
||||
"RequireLogin": false,
|
||||
"AllowLoginAnyUsername": true,
|
||||
"AllowRegisterAnyUsername": false,
|
||||
"MinimumPasswordLength": 4,
|
||||
"HashAlgorithm": "sha512",
|
||||
"BCryptWorkFactor": 7,
|
||||
"DisableUUIDLogin": false,
|
||||
"KickEmptyUUID": false,
|
||||
"TilePaintThreshold": 15,
|
||||
"KickOnTilePaintThresholdBroken": false,
|
||||
"MaxDamage": 1175,
|
||||
"MaxProjDamage": 1175,
|
||||
"KickOnDamageThresholdBroken": false,
|
||||
"TileKillThreshold": 60,
|
||||
"KickOnTileKillThresholdBroken": false,
|
||||
"TilePlaceThreshold": 32,
|
||||
"KickOnTilePlaceThresholdBroken": false,
|
||||
"TileLiquidThreshold": 50,
|
||||
"KickOnTileLiquidThresholdBroken": false,
|
||||
"ProjIgnoreShrapnel": true,
|
||||
"ProjectileThreshold": 50,
|
||||
"KickOnProjectileThresholdBroken": false,
|
||||
"HealOtherThreshold": 50,
|
||||
"KickOnHealOtherThresholdBroken": false,
|
||||
"CommandSpecifier": "/",
|
||||
"CommandSilentSpecifier": ".",
|
||||
"DisableSpewLogs": true,
|
||||
"DisableSecondUpdateLogs": false,
|
||||
"SuperAdminChatRGB": [
|
||||
255,
|
||||
255,
|
||||
255
|
||||
],
|
||||
"SuperAdminChatPrefix": "[SA] ",
|
||||
"SuperAdminChatSuffix": "",
|
||||
"EnableGeoIP": false,
|
||||
"DisplayIPToAdmins": false,
|
||||
"ChatFormat": "{1}{2}{3}: {4}",
|
||||
"ChatAboveHeadsFormat": "{2}",
|
||||
"EnableChatAboveHeads": false,
|
||||
"BroadcastRGB": [
|
||||
127,
|
||||
255,
|
||||
212
|
||||
],
|
||||
"StorageType": "sqlite",
|
||||
"SqliteDBPath": "tshock.sqlite",
|
||||
"MySqlHost": "localhost:3306",
|
||||
"MySqlDbName": "",
|
||||
"MySqlUsername": "",
|
||||
"MySqlPassword": "",
|
||||
"UseSqlLogs": false,
|
||||
"RevertToTextLogsOnSqlFailures": 10,
|
||||
"RestApiEnabled": false,
|
||||
"RestApiPort": 7878,
|
||||
"LogRest": false,
|
||||
"EnableTokenEndpointAuthentication": false,
|
||||
"RESTMaximumRequestsPerInterval": 5,
|
||||
"RESTRequestBucketDecreaseIntervalMinutes": 1,
|
||||
"ApplicationRestTokens": {}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"Enabled": true,
|
||||
"ServerSideCharacterSave": 5,
|
||||
"LogonDiscardThreshold": 250,
|
||||
"StartingHealth": 100,
|
||||
"StartingMana": 20,
|
||||
"StartingInventory": [
|
||||
{
|
||||
"netID": -15,
|
||||
"prefix": 0,
|
||||
"stack": 1
|
||||
},
|
||||
{
|
||||
"netID": -13,
|
||||
"prefix": 0,
|
||||
"stack": 1
|
||||
},
|
||||
{
|
||||
"netID": -16,
|
||||
"prefix": 0,
|
||||
"stack": 1
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=Terraria server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/mono /opt/terraria/TerrariaServer.exe -world "Worlds/{{ terraria.world }}.wld" -autocreate 3
|
||||
Restart=on-failure
|
||||
User=nobody
|
||||
Group=nogroup
|
||||
WorkingDirectory={{ terraria.paths.data }}
|
||||
ProtectSystem=strict
|
||||
BindPaths=-{{ terraria.paths.data }}
|
||||
TemporaryFileSystem=/:rw
|
||||
PrivateTmp=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Reference in New Issue