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,117 @@
|
||||
# yaml-language-server: $schema=../../schema/game.schema.json
|
||||
id: runescape-dragonwilds-native-linux
|
||||
name: 'RuneScape: Dragonwilds (Native Linux Server)'
|
||||
defaultDockerImage: cm2network/steamcmd:root
|
||||
defaultStartupCommand: ./RSDragonwildsServer.sh -log -Port=7777
|
||||
requiredMemoryMb: 10240
|
||||
requiredDiskMb: 20480
|
||||
defaultPorts:
|
||||
- 7777/udp
|
||||
- 8888/udp
|
||||
installMethod: STEAMCMD
|
||||
installConfig:
|
||||
appId: "4019830"
|
||||
defaultConfig:
|
||||
AdminPassword: ""
|
||||
DefaultWorldName: '{SERVER_NAME}'
|
||||
OwnerId: ""
|
||||
PlatformPolicy: Crossplay
|
||||
ServerName: GBRHosting - {SERVER_NAME}
|
||||
WorldPassword: ""
|
||||
configSchema:
|
||||
$schema: http://json-schema.org/draft-07/schema#
|
||||
properties:
|
||||
AdminPassword:
|
||||
category: Security & Access
|
||||
default: ""
|
||||
description: Password required to access the Server Management screen in-game.
|
||||
showOnDeploy: true
|
||||
title: Admin Password
|
||||
type: string
|
||||
x-savedValue:
|
||||
key: GAME_ADMIN_PASSWORD
|
||||
label: Game admin password
|
||||
secret: true
|
||||
DefaultWorldName:
|
||||
category: World & Environment
|
||||
default: '{SERVER_NAME}'
|
||||
description: Players find your server in Dragonwilds under Worlds → Public by searching this name. Defaults to your server's name in GBR; type any short name to change it.
|
||||
showOnDeploy: true
|
||||
title: World Name (what players search for)
|
||||
type: string
|
||||
OwnerId:
|
||||
category: Security & Access
|
||||
default: ""
|
||||
description: 'Your RuneScape: DragonWilds Player ID (bottom of in-game Settings). Required for server to boot.'
|
||||
showOnDeploy: true
|
||||
title: Owner Player ID
|
||||
type: string
|
||||
x-savedValue:
|
||||
key: DRAGONWILDS_PLAYER_ID
|
||||
label: Dragonwilds Player ID
|
||||
PlatformPolicy:
|
||||
category: Security & Access
|
||||
default: Crossplay
|
||||
description: Controls platform authorization and crossplay access policies.
|
||||
enum:
|
||||
- Crossplay
|
||||
- PC
|
||||
- PlayStation
|
||||
- Xbox
|
||||
- Nintendo
|
||||
title: Platform Policy
|
||||
type: string
|
||||
ServerName:
|
||||
category: System & General
|
||||
default: GBRHosting - {SERVER_NAME}
|
||||
description: Display name of the dedicated server. Defaults to "GBRHosting - <your server name>".
|
||||
showOnDeploy: true
|
||||
title: Server Name
|
||||
type: string
|
||||
WorldPassword:
|
||||
category: Security & Access
|
||||
default: ""
|
||||
description: Optional password for players to join. Leave empty for public access.
|
||||
showOnDeploy: true
|
||||
title: World Password
|
||||
type: string
|
||||
x-savedValue:
|
||||
key: GAME_JOIN_PASSWORD
|
||||
label: Game join password
|
||||
secret: true
|
||||
required:
|
||||
- OwnerId
|
||||
- AdminPassword
|
||||
type: object
|
||||
configFilePath: RSDragonwilds/Saved/Config/LinuxServer/DedicatedServer.ini
|
||||
configFileFormat: STANDARD
|
||||
configFormatOptions:
|
||||
assignment: =
|
||||
falseValue: "False"
|
||||
footer: ""
|
||||
header: |
|
||||
[/Script/Dominion.DedicatedServerSettings]
|
||||
quoteStrings: false
|
||||
separator: ""
|
||||
trueValue: "True"
|
||||
uppercaseKeys: false
|
||||
agnosticCommandConfig:
|
||||
actions:
|
||||
Ban:
|
||||
type: UNSUPPORTED
|
||||
Broadcast:
|
||||
type: UNSUPPORTED
|
||||
Kick:
|
||||
type: UNSUPPORTED
|
||||
Save:
|
||||
type: UNSUPPORTED
|
||||
playerJoinRegex: 'LogNet: Join succeeded: ([^\r\n]+)'
|
||||
playerLeaveRegex: 'LogNet: UNetConnection::.*Player(?: name)?:\s*([^,\r\n]+)'
|
||||
queryType: LOG_ONLY
|
||||
logFilePath: RSDragonwilds/Saved/Logs/RSDragonwilds.log
|
||||
backupPaths:
|
||||
- RSDragonwilds/Saved
|
||||
maxBackupSizeMb: 5000
|
||||
publicIpConfigKey: MULTIHOME
|
||||
maxPlayersConfigKey: MaxPlayers
|
||||
aiCoverPrompt: 'A cinematic wide shot of Ashenfall in the fantasy world of Gielinor from RuneScape: Dragonwilds. Ancient stone spires and forgotten fortresses rise amidst untamed wilderness. Colossal ancient dragons circle through stormy twilight skies illuminated by magical embers, while adventurers gather around a runic encampment wielding enchanted sorcery and survival gear.'
|
||||
Reference in new issue
Block a user