Scripting Introduction: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
Scripting in Soldat 2 is done in a Unity/C# environment. For a script to be usable in-game, the script file must be placed under <code>Soldat2/Scripts/</code> and there needs to be a ruleset that specifies that script in the <i>GameScript</i> object in its json - for example, see <code>Soldat2/Rules/Standard/Climb.json</code>. The script can be tested by starting a game that uses that ruleset. | Scripting in Soldat 2 is done in a Unity/C# environment. For a script to be usable in-game, the script file must be placed under <code>Soldat2/Scripts/</code> and there needs to be a ruleset that specifies that script in the <i>GameScript</i> object in its json - for example, see <code>Soldat2/Rules/Standard/Climb.json</code>. The script can be tested by starting a game that uses that ruleset. | ||
[[Category:Scripting]] | |||
== Scripting Resources == | == Scripting Resources == | ||
Line 8: | Line 11: | ||
Some examples of scripts can be found in your Soldat 2 game directory under the path <code>Soldat2/Scripts/Standard/</code>. | Some examples of scripts can be found in your Soldat 2 game directory under the path <code>Soldat2/Scripts/Standard/</code>. | ||
[[Category:Scripting]] | More documentation is added to this wiki under [[:Category:Scripting]]. | ||
== Using Scripts == | == Using Scripts == |
Revision as of 11:48, 19 January 2023
Scripting in Soldat 2 is done in a Unity/C# environment. For a script to be usable in-game, the script file must be placed under Soldat2/Scripts/
and there needs to be a ruleset that specifies that script in the GameScript object in its json - for example, see Soldat2/Rules/Standard/Climb.json
. The script can be tested by starting a game that uses that ruleset.
Scripting Resources
The Soldat 2 engine uses Unity, so it may be useful to familiarise yourself with the Unity Manual.
There is some preliminary documentation for the Soldat 2 engine, however it is currently rather limited.
Some examples of scripts can be found in your Soldat 2 game directory under the path Soldat2/Scripts/Standard/
.
More documentation is added to this wiki under Category:Scripting.
Using Scripts
A script can be applied to a match via Modifiers or via a Game Mode ("Rules").
In a modifier
Example of a modifier Modifiers/Custom/FlagIsPoison.json
applying the Scripts/Custom/FlagIsPoison.cs
script:
{ "Objects": { "Rules": { "FlagIsPoison": { "FlagDamagePerSecond": 3.0 } } }, "Meta": { "Description": "(applies the FlagIsPoison script)", "Author": "noerw", "Version": 1.0 } }
A script can be parametrized, where the parameters are defined in the modifier or rule definition. In the above example the FlagDamagePerSecond
parameter is applied when the script class contains a JsonProperty
with a default value:
[JsonProperty("FlagDamagePerSecond")] public float flagDPS = 5.0;
In a rule / game mode
Add the script name to the GameRules
section of the rule definition in Rules/Custom/YourGameMode.json
:
{ "Objects": { "YourGameMode": { "GameScript": { "Scripts": [ ... potentially other scripts ..., "YourScriptName" ] } } } }
- TODO: check if parameters can be passed in this syntax too (eg
"Scripts": [{ "YourScriptName": { MyParam: false } }]