feat: add Steel Division squad server

This commit is contained in:
Price Hiller 2024-07-01 18:35:36 -05:00
parent f86375bc1b
commit 8a4eac37d7
Signed by: Price
GPG Key ID: C3FADDE7A8534BEB
3 changed files with 558 additions and 0 deletions

View File

@ -27,6 +27,8 @@ jobs:
SQUAD_VANILLA_SERVER_LICENSE: "${{ secrets.squad_vanilla_server_license }}" SQUAD_VANILLA_SERVER_LICENSE: "${{ secrets.squad_vanilla_server_license }}"
SQUAD_VANILLA_SQUADJS_DISCORD_TOKEN: "${{ secrets.squad_vanilla_squadjs_discord_token }}" SQUAD_VANILLA_SQUADJS_DISCORD_TOKEN: "${{ secrets.squad_vanilla_squadjs_discord_token }}"
SQUAD_STEEL_DIVISION_SQUADJS_DISCORD_TOKEN: "${{ secrets.squad_steel_division_squadjs_discord_token }}"
SQUAD_MEE_SERVER_LICENSE: "${{ secrets.squad_mee_server_license }}" SQUAD_MEE_SERVER_LICENSE: "${{ secrets.squad_mee_server_license }}"
SQUAD_MEE_SQUADJS_DISCORD_TOKEN: "${{ secrets.squad_mee_squadjs_discord_token }}" SQUAD_MEE_SQUADJS_DISCORD_TOKEN: "${{ secrets.squad_mee_squadjs_discord_token }}"

View File

@ -614,6 +614,23 @@ all:
query: 27169 query: 27169
rcon: 21116 rcon: 21116
beacon: 15200 beacon: 15200
- name: "[ASG] Asgard Eternal | Steel Devision"
server_id: 4
docker:
name: steel-division
images:
server: squad:steel-division
squadjs: squadjs:latest
secrets:
rcon_password: "{{ lookup('ansible.builtin.env', 'SQUAD_RCON_PASSWORD')}}"
squadjs_discord_token: "{{ lookup('ansible.builtin.env', 'SQUAD_STEEL_DIVISION_SQUADJS_DISCORD_TOKEN') | default('')}}"
server_password: "{{ lookup('ansible.builtin.env', 'SQUAD_STEEL_DIVSION_SERVER_PASSWORD') | default('')}}"
license: ""
ports:
game: 7795
query: 27173
rcon: 21118
beacon: 15300
registry_site: asgard-eternal.com registry_site: asgard-eternal.com
registry_site_email: price@orion-technologies.io registry_site_email: price@orion-technologies.io
registry_system_user: docker-reg registry_system_user: docker-reg

View File

@ -0,0 +1,539 @@
{
"server": {
"id": {{ server.server_id }},
"host": "{{ ansible_host }}",
"queryPort": {{ server.ports.query }},
"rconPort": {{ server.ports.rcon }},
"rconPassword": "{{ server.secrets.rcon_password }}",
"logReaderMode": "tail",
"logDir": "/home/squadjs/SquadLogs",
"ftp": {
"port": 21,
"user": "FTP Username",
"password": "FTP Password",
"useListForSize": false
},
"adminLists": [
{
"type": "local",
"source": "/home/squadjs/SquadConfig/Admins.cfg"
}
{% for listsource in server.remote_admin_list %}
,
{
"type": "remote",
"source": "http://asgard-eternal.com:8000/?grpName={{ listsource | regex_replace(' ', '%20') }}"
}
{% endfor %}
]
},
"connectors": {
"discord": "{{ server.secrets.squadjs_discord_token }}",
"sqlite": {
"dialect": "sqlite",
"storage": "/home/squadjs/data/squadjs.sqlite"
},
"mysql": {
"dialect":"mysql",
"host":"asgard-eternal.com",
"port":3306,
"username":"{{ squad_mysql.user }}",
"password":"{{ squad_mysql.user_password }}",
"database":"{{ squad_mysql.database }}"
}
},
"plugins": [
{
"plugin": "SquadBaiting",
"enabled": true,
"discordClient": "discord",
"channelID": "1258146129657204870",
"resetPlayerCountersAtNewGame": true,
"warnInGameAdmins": false,
"disableDefaultAdminWarns": true,
"roleChangeTriggersSquadBaiting": true,
"detectEarlySquadbaitingMinutes": 1,
"enforceEarlySquadBaitingAfterSeconds": 30,
"playerRules": [
{
"name": "Squad baiting is not allowed",
"enabled": true,
"discordLogging": false,
"baitingCounter": {
"min": 0,
"max": 6
},
"actions": [
{
"type": "rcon",
"enabled": true,
"content": "AdminWarn {old_leader:steamid} \"Squad baiting is not allowed\""
}
]
},
{
"name": "Kick player",
"enabled": true,
"discordLogging": true,
"baitingCounter": {
"min": 7,
"max": 15
},
"actions": [
{
"type": "rcon",
"enabled": false,
"content": "AdminKick {old_leader:steamid} \"Squad baiting not allowed\""
}
]
}
],
"squadRules": [
{
"name": "Pre-disband warnings",
"enabled": true,
"baitingCounter": {
"min": 4,
"max": 5
},
"actions": [
{
"type": "rcon",
"content": "AdminBroadcast \"Squad {squad:squadid} Team {squad:teamid} will be disbanded due to squad-baiting\""
},
{
"type": "rcon",
"content": "AdminDisbandSquad {squad:teamid} {squad:squadid}"
}
]
},
{
"name": "Disband warnings",
"enabled": true,
"baitingCounter": {
"min": 6,
"max": 10
},
"actions": [
{
"type": "rcon",
"content": "AdminBroadcast \"Squad {squad:squadid} Team {squad:teamid} has been disbanded due to squad-baiting\""
},
{
"type": "rcon",
"content": "AdminDisbandSquad {squad:teamid} {squad:squadid}"
}
]
}
],
"earlySquadBaitingRules": [
{
"name": "Disband",
"enabled": true,
"actions": [
{
"type": "rcon",
"content": "AdminDisbandSquad {squad:teamid} {squad:squadid}"
}
]
}
]
},
{
"plugin": "AutoKickUnassigned",
"enabled": true,
"warningMessage": "Join a squad, you are are unassigned and will be kicked",
"kickMessage": "Unassigned - automatically removed",
"frequencyOfWarnings": 30,
"unassignedTimer": 360,
"playerThreshold": 90,
"roundStartDelay": 900,
"ignoreAdmins": true,
"ignoreWhitelist": false
},
{
"plugin": "AutoTKWarn",
"enabled": true,
"attackerMessage": "Please apologise for ALL TKs in ALL chat!",
"victimMessage": null
},
{
"plugin": "CBLInfo",
"enabled": true,
"discordClient": "discord",
"channelID": "1258145485852639292",
"threshold": 6
},
{
"plugin": "ChatCommands",
"enabled": true,
"commands": [
{
"command": "squadjs",
"type": "warn",
"response": "This server is powered by SquadJS.",
"ignoreChats": []
}
]
},
{
"plugin": "DBLog",
"enabled": false,
"database": "mysql",
"overrideServerID": {{ server.server_id }}
},
{
"plugin": "DBLogPlayerTime",
"enabled": true,
"database": "mysql",
"overrideServerID": null,
"seedingThreshold": 50,
"whitelistfilepath": "./autowlfiles/{{ server.docker.name }}-autowl.cfg",
"incseed": 40,
"decseed": 6
},
{
"plugin": "DiscordCheater",
"enabled": true,
"discordClient": "discord",
"channelID": "1258145614516977724"
},
{
"plugin": "DiscordAdminBroadcast",
"enabled": true,
"discordClient": "discord",
"channelID": "1066978042376880148",
"color": 16761867
},
{
"plugin": "DiscordAdminCamLogs",
"enabled": true,
"discordClient": "discord",
"channelID": "1258145113448906832",
"color": 16761867
},
{
"plugin": "DiscordAdminRequest",
"enabled": true,
"discordClient": "discord",
"channelID": "1258145389878448270",
"ignoreChats": [],
"ignorePhrases": [],
"command": "admin",
{% set _pingable_groups = [] %}
{% for group in server.groups %}
{%- if group.squadjs.admin_ping is defined and group.squadjs.admin_ping is true -%} {{ _pingable_groups.append(group) }} {% endif %}
{% endfor %}
"pingGroups": [
{% for group in _pingable_groups %}
"{{ group.name }}"{{ ", " if not loop.last else "" }}
{% endfor %}
],
"pingDelay": 60000,
"color": 16761867,
"warnInGameAdmins": true,
"showInGameAdmins": true
},
{
"plugin": "DiscordChat",
"enabled": true,
"discordClient": "discord",
"channelID": "1258144890697683096",
"chatColors": {},
"color": 16761867,
"ignoreChats": [
]
},
{
"plugin": "DiscordDebug",
"enabled": false,
"discordClient": "discord",
"channelID": "",
"events": []
},
{
"plugin": "DiscordFOBHABExplosionDamage",
"enabled": true,
"discordClient": "discord",
"channelID": "1258145045026967624",
"color": 16761867
},
{
"plugin": "DiscordKillFeed",
"enabled": true,
"discordClient": "discord",
"channelID": "1258144786607509504",
"color": 16761867,
"disableCBL": false
},
{
"plugin": "DiscordPlaceholder",
"enabled": false,
"discordClient": "discord",
"command": "!placeholder",
"channelID": ""
},
{
"plugin": "DiscordRcon",
"enabled": false,
"discordClient": "discord",
"channelID": "",
"permissions": {},
"prependAdminNameInBroadcast": false
},
{
"plugin": "DiscordRoundWinner",
"enabled": false,
"discordClient": "discord",
"channelID": "1066965171400093716",
"color": 16761867
},
{
"plugin": "DiscordRoundEnded",
"enabled": false,
"discordClient": "discord",
"channelID": "1066965171400093716",
"color": 16761867
},
{
"plugin": "DiscordServerStatus",
"enabled": true,
"discordClient": "discord",
"messageStore": "mysql",
"command": "!status",
"disableSubscriptions": false,
"updateInterval": 60000,
"setBotStatus": true
},
{
"plugin": "DiscordSquadCreated",
"enabled": true,
"discordClient": "discord",
"channelID": "1258145544438812794",
"color": 16761867,
"useEmbed": true
},
{
"plugin": "DiscordSubsystemRestarter",
"enabled": false,
"discordClient": "discord",
"role": ""
},
{
"plugin": "DiscordTeamkill",
"enabled": true,
"discordClient": "discord",
"channelID": "1258144839216660500",
"color": 16761867,
"disableCBL": false
},
{
"plugin": "FogOfWar",
"enabled": false,
"mode": 1,
"delay": 10000
},
{
"plugin": "IntervalledBroadcasts",
"enabled": false,
"broadcasts": [],
"interval": 300000
},
{
"plugin": "SeedingMode",
"enabled": false,
"interval": 600000,
"seedingThreshold": 50,
"seedingMessage": "Seeding Rules Active! Fight only over the middle flags! No FOB Hunting!",
"liveEnabled": true,
"liveThreshold": 52,
"liveMessage": "Live!",
"waitOnNewGames": true,
"waitTimeOnNewGame": 30
},
{
"plugin": "SocketIOAPI",
"enabled": false,
"websocketPort": "",
"securityToken": ""
},
{
"plugin": "TeamRandomizer",
"enabled": true,
"command": "randomize"
},
{
"plugin": "SquadNameValidator",
"enabled": true,
"discordClient": "discord",
"channelID": "1066978080364707880",
"warningMessage": "Your squad has been disbanded due to a non-compliant name.",
"rules": [
{
"description": "Disband every ARMOR/ARMOUR/VIC/VEHICLE and other variants",
"type": "regex",
"logic": "match=disband",
"rule": "/(a.?r ?m ?(?:o|e|a|u)* ?r)|((^| )v ?[ie] ?c ?($| ))|(v ?e ?h ?i ?c ?l ?e)|(i ?f ?v)|(a ?p ?c)/",
"warningMessage": "R9 | This name is not a valid vehicle claim! Please name your squad the vehicle you wish to claim."
}
]
},
{
"plugin": "MapVote",
"enabled": false,
"discordClient": "discord",
"entriesAmount": 5,
"entryFormat": "{map_name} {gamemode} {map_version} {factions}",
"automaticVoteStart": true,
"votingDuration": 20,
"minPlayersForVote": 30,
"voteWaitTimeFromMatchStart": 15,
"voteBroadcastInterval": 6,
"numberRecentMapsToExlude": 3,
"automaticSeedingMode": true,
"gamemodeWhitelist": [ "RAAS", "tanks", "invasion", "inv" ],
"layerFilteringMode": "blacklist",
"layerLevelBlacklist": [
"FoolsRoad",
"Kamdesh",
"Logar",
"Mestia",
"Sumari",
"Narva_Invasion_v5",
"Narva_RAAS_v5",
"Gorodok_RAAS_v04",
"Fallujah_RAAS_v7",
"AlBasrah_RAAS_v1",
"Chora_Invasion",
"Fallujah_Invasion",
"GooseBay_Invasion_v3",
"Gorodok_Invasion_v1",
"Fallujah_RAAS_v6",
"BlackCoast_Invasion_v2",
"BlackCoast_Invasion_v1",
"BlackCoast_Invasion_v3",
"Mutaha_Invasion_v1",
"Narva_Invasion_v3",
"Skorpo_Invasion_v2",
"Skorpo_Invasion_v3",
"Skorpo_Invasion_v4",
"Tallil_Tanks_v1",
"Tallil_RAAS_v2",
"Tallil_RAAS_v7",
"Tallil_Invasion_v1",
"Tallil_Invasion_v2",
"Tallil_Invasion_v5",
"Yehorivka_RAAS_v04",
"Yehorivka_RAAS_v10",
"Yehorivka_RAAS_v05",
"Yehorivka_RAAS_v14",
"Harju_Invasion_v1",
"Harju_Invasion_v3",
"Harju_Invasion_v4",
"Harju_Invasion_v5",
"Harju_RAAS_v2",
"Harju_RAAS_v5",
"Tallil_RAAS_v3",
"Manicouagan_RAAS_v13",
"Manicouagan_RAAS_v15",
"Kohat_Invasion_v1",
"Kohat_RAAS_v04",
"Kohat_RAAS_v06",
"Kohat_RAAS_v07",
"Lashkar_Invasion",
"Lashkar_RAAS_v1",
"Lashkar_RAAS_v4"
],
"layerLevelWhitelist": [
"Anvil_RAAS_v4",
"Belaya_RAAS_v1",
"BlackCoast_RAAS_v1",
"GooseBay_Invasion_v3",
"Gorodok_Invasion_v2",
"Gorodok_RAAS_v06",
"Harju_RAAS_v4",
"Narva_Invasion_v1",
"Narva_RAAS_v2",
"Yehorivka_RAAS_v01",
"Yehorivka_RAAS_v02",
"Gorodok_RAAS_v03",
"Skorpo_Invasion_v2",
"Belaya_Invasion_v3",
"GooseBay_Invasion_v4",
"GooseBay_RAAS_v1",
"GooseBay_RAAS_v2",
"Harju_Invasion_v4",
"Mutaha_RAAS_v4",
"Yehorivka_RAAS_v10",
"Yehorivka_RAAS_v11",
"Skorpo_RAAS_v5",
"Yehorivka_RAAS_v05",
"Skorpo_RAAS_v4",
"BlackCoast_Invasion_v5",
"BlackCoast_RAAS_v5",
"Manicouagan_AAS_v4",
"Manicouagan_Invasion_v8",
"Manicouagan_Invasion_v9",
"Manicouagan_RAAS_v10",
"Manicouagan_RAAS_v11",
"Manicouagan_RAAS_v12",
"Manicouagan_RAAS_v13",
"Manicouagan_RAAS_v14",
"Manicouagan_RAAS_v15",
"Narva_RAAS_v7",
"Skorpo_Invasion_v1",
"Yehorivka_RAAS_v05",
"Narva_RAAS_v7",
"Sanxian_RAAS_v1"
],
"applyBlacklistToWhitelist": true,
"factionsBlacklist": [ ],
"minRaasEntries": 3,
"minGamemodeEntries": { "raas": 4 },
"hideVotesCount": false,
"showRerollOption": true,
"showRerollOptionInCustomVotes": false,
"voteBroadcastMessage": "MAPVOTE\nVote for the next map by writing in chat the corresponding number!",
"voteWinnerBroadcastMessage": "MAPVOTE\nThe winning layer is\n",
"showWinnerBroadcastMessage": true,
"allowedSameMapEntries": 2,
"logToDiscord": true,
"channelID": "1100392613514858547",
"persistentDataFile": "/home/squadjs/mapvotepdata.data",
"timezone": -4,
"minimumVotesToAcceptResult": 1,
"instantSeedingModePlayerCount": 1,
"nextLayerSeedingModePlayerCount": 30,
"seedingGameMode": "Training"
},
{
"plugin": "Switch",
"commandPrefix": [ "!switch", "!change" ],
"enabled": true,
"discordClient": "discord",
"channelID": "1117217579921051718",
"switchCooldownHours": 2,
"switchEnabledMinutes": 5,
"doubleSwitchCommands": [ "!bug", "!stuck", "!doubleswitch", "!runningman" ],
"doubleSwitchCooldownHours": 0.5,
"doubleSwitchEnabledMinutes": 5,
"maxUnbalancedSlots": 5,
"switchToOldTeamAfterRejoin": true,
"database": "mysql"
}
],
"logger": {
"verboseness": {
"SquadServer": 0,
"LogParser": 0,
"RCON": 3
},
"colors": {
"SquadServer": "yellowBright",
"SquadServerFactory": "yellowBright",
"LogParser": "blueBright",
"RCON": "redBright"
}
}
}