feat: game templates, schemas and validator
Validate game templates / validate (push) Successful in 10m6s
Validate game templates / validate (push) Successful in 10m6s
Public game templates for GBR Hosting, one games/<id>/game.yaml per game, imported from the panel. A Go tool validates them against JSON Schemas and checks for credentials, private addresses and consents that default to accepted; CI runs it on every push. Admin/RCON passwords are no longer shared defaults: they are blank with x-generate so the panel creates one per server, and Palworld/ARK no longer publish their RCON/REST ports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
822b44e2e5
20 files changed
+2283
No files matched your search
@@ -0,0 +1,332 @@
|
||||
# yaml-language-server: $schema=../../schema/game.schema.json
|
||||
id: ark-survival-ascended-crossplay
|
||||
name: 'ARK: Survival Ascended (Crossplay Dedicated Server)'
|
||||
defaultDockerImage: mschnitzer/asa-linux-server:latest
|
||||
defaultStartupCommand: bash -c 'mkdir -p /server /data/Steam /data/steamcmd /data/cluster-shared && rm -rf /home/gameserver/server-files /home/gameserver/Steam /home/gameserver/steamcmd /home/gameserver/cluster-shared && ln -sfn /server /home/gameserver/server-files && ln -sfn /data/Steam /home/gameserver/Steam && ln -sfn /data/steamcmd /home/gameserver/steamcmd && ln -sfn /data/cluster-shared /home/gameserver/cluster-shared && export ASA_START_PARAMS="${ASA_START_PARAMS:-${SERVER_MAP:-TheIsland_WP}?listen?Port=${PORT:-7777}?RCONPort=${RCON_PORT:-27020}?RCONEnabled=True -WinLiveMaxPlayers=${MAX_PLAYERS:-70} -ServerPlatform=ALL}" && exec /usr/bin/start_server'
|
||||
requiredMemoryMb: 16384
|
||||
requiredDiskMb: 32768
|
||||
defaultPorts:
|
||||
- 7777/udp
|
||||
installMethod: NONE
|
||||
defaultConfig:
|
||||
AdminLogging: false
|
||||
AllowFlyerCarryPvE: false
|
||||
AllowHitMarkers: true
|
||||
AllowThirdPersonPlayer: true
|
||||
AlwaysAllowStructurePickup: true
|
||||
AutoSavePeriodMinutes: 15
|
||||
DayCycleSpeedScale: 1
|
||||
DayTimeSpeedScale: 1
|
||||
DifficultyOffset: 1
|
||||
DisableDinoDecayPvE: false
|
||||
DisableStructureDecayPvE: false
|
||||
EnablePVPGamma: false
|
||||
MaxPlayers: 70
|
||||
NightTimeSpeedScale: 1
|
||||
OverrideOfficialDifficulty: 5
|
||||
Port: 7777
|
||||
PreventDiseases: false
|
||||
PreventDownloadDinos: false
|
||||
PreventDownloadItems: false
|
||||
PreventDownloadSurvivors: false
|
||||
PreventUploadDinos: false
|
||||
PreventUploadItems: false
|
||||
PreventUploadSurvivors: false
|
||||
RCONEnabled: true
|
||||
RCONPort: 27020
|
||||
ServerAdminPassword: ""
|
||||
ServerCrosshair: true
|
||||
ServerHardcore: false
|
||||
ServerMap: TheIsland_WP
|
||||
ServerPVE: false
|
||||
ServerPassword: ""
|
||||
ShowFloatingDamageText: false
|
||||
ShowMapPlayerLocation: true
|
||||
bDisableStructurePlacementCollision: false
|
||||
configSchema:
|
||||
$schema: http://json-schema.org/draft-07/schema#
|
||||
properties:
|
||||
AdminLogging:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Broadcasts in-game administrative commands in chat to all connected players.
|
||||
title: Admin Command Logging
|
||||
type: boolean
|
||||
AllowFlyerCarryPvE:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Allows airborne tamed creatures to pick up and carry wild or non-allied dinosaurs in PvE.
|
||||
title: Allow Flyer Carry in PvE
|
||||
type: boolean
|
||||
AllowHitMarkers:
|
||||
category: Gameplay & Rules
|
||||
default: true
|
||||
description: Shows floating visual indicators when striking an enemy or creature.
|
||||
title: Allow Hit Markers
|
||||
type: boolean
|
||||
AllowThirdPersonPlayer:
|
||||
category: Gameplay & Rules
|
||||
default: true
|
||||
description: Permits players to switch between first-person and third-person camera views.
|
||||
title: Allow Third Person
|
||||
type: boolean
|
||||
AlwaysAllowStructurePickup:
|
||||
category: Gameplay & Rules
|
||||
default: true
|
||||
description: Allows players to pick up placed structures indefinitely without demolition restrictions.
|
||||
title: Always Allow Structure Pickup
|
||||
type: boolean
|
||||
AutoSavePeriodMinutes:
|
||||
category: World & Environment
|
||||
default: 15
|
||||
description: Frequency in minutes at which the server automatically saves world and player state.
|
||||
title: Auto-Save Interval (Minutes)
|
||||
type: number
|
||||
DayCycleSpeedScale:
|
||||
category: World & Environment
|
||||
default: 1
|
||||
description: Global multiplier adjusting the overall speed of the 24-hour day/night cycle.
|
||||
title: Day Cycle Speed Scale
|
||||
type: number
|
||||
DayTimeSpeedScale:
|
||||
category: World & Environment
|
||||
default: 1
|
||||
description: Multiplier governing the passage speed of daytime hours relative to standard speed.
|
||||
title: Day Time Speed Scale
|
||||
type: number
|
||||
DifficultyOffset:
|
||||
category: Gameplay & Rules
|
||||
default: 1
|
||||
description: Base difficulty multiplier governing wild creature level distributions (0.0 to 1.0).
|
||||
title: Difficulty Offset
|
||||
type: number
|
||||
DisableDinoDecayPvE:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Disables unclaiming timers and decay for inactive tamed creatures in PvE mode.
|
||||
title: Disable Dino Decay in PvE
|
||||
type: boolean
|
||||
DisableStructureDecayPvE:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Disables the automatic structure decay and demolition timer on abandoned PvE bases.
|
||||
title: Disable Structure Decay in PvE
|
||||
type: boolean
|
||||
EnablePVPGamma:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Allows players to use client gamma brightness adjustments during PvP sessions.
|
||||
title: Enable PvP Gamma
|
||||
type: boolean
|
||||
MaxPlayers:
|
||||
category: System & General
|
||||
default: 70
|
||||
description: Maximum number of simultaneous players allowed on the server.
|
||||
title: Max Players
|
||||
type: integer
|
||||
NightTimeSpeedScale:
|
||||
category: World & Environment
|
||||
default: 1
|
||||
description: Multiplier governing the passage speed of nighttime hours relative to standard speed.
|
||||
title: Night Time Speed Scale
|
||||
type: number
|
||||
OverrideOfficialDifficulty:
|
||||
category: Gameplay & Rules
|
||||
default: 5
|
||||
description: Sets the maximum wild dino level ceiling (e.g. 5.0 allows wild creatures up to level 150).
|
||||
title: Override Official Difficulty
|
||||
type: number
|
||||
Port:
|
||||
category: System & General
|
||||
default: 7777
|
||||
description: Primary UDP port used by game clients to connect to the dedicated server.
|
||||
title: Game Port
|
||||
type: integer
|
||||
PreventDiseases:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Disables all permanent sicknesses and diseases from afflicting players.
|
||||
title: Prevent Diseases
|
||||
type: boolean
|
||||
PreventDownloadDinos:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Blocks transferring tamed creatures into the server from external cluster servers.
|
||||
title: Prevent Download Dinos
|
||||
type: boolean
|
||||
PreventDownloadItems:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Blocks downloading items or inventory into the server from external sources or cluster.
|
||||
title: Prevent Download Items
|
||||
type: boolean
|
||||
PreventDownloadSurvivors:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Blocks transferring survivor characters into the server from other cluster servers.
|
||||
title: Prevent Download Survivors
|
||||
type: boolean
|
||||
PreventUploadDinos:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Disallows survivors from uploading tamed creatures to cluster cloud storage.
|
||||
title: Prevent Upload Dinos
|
||||
type: boolean
|
||||
PreventUploadItems:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Disallows survivors from uploading items and equipment to cluster cloud storage.
|
||||
title: Prevent Upload Items
|
||||
type: boolean
|
||||
PreventUploadSurvivors:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: Disallows survivors from uploading their character data to cluster cloud storage.
|
||||
title: Prevent Upload Survivors
|
||||
type: boolean
|
||||
RCONEnabled:
|
||||
category: Security & Access
|
||||
default: true
|
||||
description: Enables remote console (RCON) access for external server administration tools.
|
||||
title: Enable RCON
|
||||
type: boolean
|
||||
RCONPort:
|
||||
category: System & General
|
||||
default: 27020
|
||||
description: TCP port for remote console management and server administration.
|
||||
title: RCON Port
|
||||
type: integer
|
||||
ServerAdminPassword:
|
||||
category: Security & Access
|
||||
default: ""
|
||||
description: Password for admin commands in-game and for GBR actions over RCON (kick, ban, save, broadcast). Leave blank and GBR generates an easy one for your server.
|
||||
showOnDeploy: true
|
||||
title: Admin Password
|
||||
type: string
|
||||
x-savedValue:
|
||||
key: GAME_ADMIN_PASSWORD
|
||||
label: Game admin password
|
||||
secret: true
|
||||
x-generate:
|
||||
type: password
|
||||
replace:
|
||||
- AdminPassword123
|
||||
ServerCrosshair:
|
||||
category: Gameplay & Rules
|
||||
default: true
|
||||
description: Enables an on-screen targeting crosshair for all players.
|
||||
title: Enable Crosshair
|
||||
type: boolean
|
||||
ServerHardcore:
|
||||
category: Security & Access
|
||||
default: false
|
||||
description: When enabled, player death permanently deletes the character and resets progression.
|
||||
title: Hardcore Mode
|
||||
type: boolean
|
||||
ServerMap:
|
||||
category: World & Environment
|
||||
default: TheIsland_WP
|
||||
description: Select the world map loaded by the dedicated server.
|
||||
enum:
|
||||
- TheIsland_WP
|
||||
- ScorchedEarth_WP
|
||||
- TheCenter_WP
|
||||
- Aberration_WP
|
||||
- Extinction_WP
|
||||
showOnDeploy: true
|
||||
title: Active World Map
|
||||
type: string
|
||||
ServerPVE:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Disables player-versus-player combat and structure damage, enabling cooperative PvE mode.
|
||||
title: PvE Mode
|
||||
type: boolean
|
||||
ServerPassword:
|
||||
category: Security & Access
|
||||
default: ""
|
||||
description: Password required for players to join the server. Leave blank to keep the server public.
|
||||
showOnDeploy: true
|
||||
title: Server Password
|
||||
type: string
|
||||
x-savedValue:
|
||||
key: GAME_JOIN_PASSWORD
|
||||
label: Game join password
|
||||
secret: true
|
||||
ShowFloatingDamageText:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Displays floating damage numbers overhead when inflicting damage on targets.
|
||||
title: Show Floating Damage Text
|
||||
type: boolean
|
||||
ShowMapPlayerLocation:
|
||||
category: Gameplay & Rules
|
||||
default: true
|
||||
description: Displays the player's current position pin on the in-game map.
|
||||
title: Show Player On Map
|
||||
type: boolean
|
||||
bDisableStructurePlacementCollision:
|
||||
category: Gameplay & Rules
|
||||
default: false
|
||||
description: Removes terrain and building clipping restrictions, allowing structures to clip into world geometry.
|
||||
title: Disable Structure Placement Collision
|
||||
type: boolean
|
||||
required: []
|
||||
type: object
|
||||
configFilePath: ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini
|
||||
configFileFormat: STANDARD
|
||||
configFormatOptions:
|
||||
assignment: =
|
||||
falseValue: "False"
|
||||
floatKeys: []
|
||||
footer: null
|
||||
header: '[ServerSettings]'
|
||||
quoteStrings: false
|
||||
separator: ""
|
||||
trueValue: "True"
|
||||
unquotedKeys: []
|
||||
uppercaseKeys: false
|
||||
agnosticCommandConfig:
|
||||
actions:
|
||||
Ban:
|
||||
command: BanPlayer {target}
|
||||
passwordKey: ServerAdminPassword
|
||||
portKey: RCONPort
|
||||
type: RCON
|
||||
Broadcast:
|
||||
command: Broadcast {message}
|
||||
passwordKey: ServerAdminPassword
|
||||
portKey: RCONPort
|
||||
type: RCON
|
||||
Kick:
|
||||
command: KickPlayer {target}
|
||||
passwordKey: ServerAdminPassword
|
||||
portKey: RCONPort
|
||||
type: RCON
|
||||
Save:
|
||||
command: SaveWorld
|
||||
passwordKey: ServerAdminPassword
|
||||
portKey: RCONPort
|
||||
type: RCON
|
||||
pingPort: null
|
||||
pingPortKey: null
|
||||
playerJoinRegex: (?:^.*?:\s+)?(.+?)\s+(?:has\s+)?joined this [Aa][Rr][Kk]!?
|
||||
playerLeaveRegex: (?:^.*?:\s+)?(.+?)\s+(?:has\s+)?left this [Aa][Rr][Kk]!?
|
||||
playersCommand: ListPlayers
|
||||
playersFormat: REGEX
|
||||
playersRegex: ^\d+\.\s+([^,]+)
|
||||
queryPortKey: null
|
||||
queryType: RCON
|
||||
rconPasswordKey: ServerAdminPassword
|
||||
rconPortKey: RCONPort
|
||||
restEndpoint: null
|
||||
restPasswordKey: null
|
||||
restPortKey: null
|
||||
restUser: null
|
||||
logFilePath: ShooterGame/Saved/Logs/ShooterGame.log
|
||||
backupPaths:
|
||||
- ShooterGame/Saved
|
||||
maxBackupSizeMb: 4096
|
||||
maxPlayersConfigKey: MaxPlayers
|
||||
mapConfigKey: ServerMap
|
||||
aiCoverPrompt: A cinematic, photorealistic vista of a primeval tropical island built in Unreal Engine 5, featuring lush ancient rainforests, colossal waterfalls pouring into azure lagoons, and futuristic floating obelisks beaming energy into the sky. A massive Tyrannosaurus Rex roars on a cliffside overlooking prehistoric valleys while Pteranodons glide across a vivid sunset horizon.
|
||||
@@ -0,0 +1,3 @@
|
||||
# yaml-language-server: $schema=../../schema/test.schema.json
|
||||
# Values CI uses to boot-test this game. Never put real credentials here: map them under 'secrets'.
|
||||
timeoutSec: 900
|
||||
Reference in new issue
Block a user