Steam workshop UPDATE

This commit is contained in:
Frank Harris 2026-01-17 09:12:06 -06:00
parent 49600d1cfd
commit fcc1b18e4c
23 changed files with 1290 additions and 335 deletions

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<adapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd"
key="ark"
name="ARK: Survival Ascended"
supportsHotReload="false">
<steamAppId>346110</steamAppId>
<modsDir>%SERVER_ROOT%/ShooterGame/Content/Mods</modsDir>
<activation type="config_writer">
<template>GameUserSettings.ini:[ServerSettings].ActiveMods={modlist(',')}</template>
</activation>
<postCopyRules>
<copyPattern source="*.mod" destination="%SERVER_ROOT%/ShooterGame/Content/Mods" />
</postCopyRules>
<notes>Copies .mod stubs alongside mod folders and rewrites ActiveMods inside GameUserSettings.ini.</notes>
</adapter>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<adapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd"
key="arma3"
name="Arma 3"
supportsHotReload="false">
<steamAppId>107410</steamAppId>
<modsDir>%SERVER_ROOT%/arma3server/mods</modsDir>
<keysDir>%SERVER_ROOT%/keys</keysDir>
<activation type="launch_parameter">
<template>-mod=@{modlist(';')}</template>
</activation>
<postCopyRules>
<copyPattern source="*.bikey" destination="%SERVER_ROOT%/keys" />
</postCopyRules>
<notes>Matches Bohemia best practices: copy .bikey files and keep @Mod folders under the server root.</notes>
</adapter>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<adapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd"
key="cs2"
name="Counter-Strike 2"
supportsHotReload="true">
<steamAppId>730</steamAppId>
<modsDir>%SERVER_ROOT%/game/csgo/workshop</modsDir>
<activation type="console_command">
<template>host_workshop_map {id}</template>
</activation>
<hotReloadCommand>host_workshop_map {id}</hotReloadCommand>
<notes>Focuses on map workshop IDs and can hot-reload via `host_workshop_map` when the server allows it.</notes>
</adapter>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<adapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd"
key="dayz"
name="DayZ"
supportsHotReload="false">
<steamAppId>221100</steamAppId>
<modsDir>%SERVER_ROOT%/WorkshopMods</modsDir>
<keysDir>%SERVER_ROOT%/keys</keysDir>
<activation type="launch_parameter">
<template>-mod=@{modlist(';')}</template>
</activation>
<postCopyRules>
<copyPattern source="*.bikey" destination="%SERVER_ROOT%/keys" />
</postCopyRules>
<notes>Copies .bikey files into the server keys directory and builds a classic -mod parameter string.</notes>
</adapter>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<adapter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="schema.xsd"
key="gmod"
name="Garry's Mod"
supportsHotReload="false">
<steamAppId>4000</steamAppId>
<modsDir>%SERVER_ROOT%/garrysmod/addons</modsDir>
<activation type="launch_parameter">
<template>+host_workshop_collection {collectionId}</template>
</activation>
<notes>Relies on a Steam Workshop collection. Files stay in the Steam library and only the host_workshop_collection parameter changes.</notes>
</adapter>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="adapter">
<xs:complexType>
<xs:sequence>
<xs:element name="steamAppId" type="xs:string" />
<xs:element name="modsDir" type="xs:string" />
<xs:element name="keysDir" type="xs:string" minOccurs="0" />
<xs:element name="activation" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="template" type="xs:string" />
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="postCopyRules" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="copyPattern" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="source" type="xs:string" use="required" />
<xs:attribute name="destination" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="hotReloadCommand" type="xs:string" minOccurs="0" />
<xs:element name="notes" type="xs:string" minOccurs="0" />
</xs:sequence>
<xs:attribute name="key" type="xs:string" use="required" />
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="supportsHotReload" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>