aboutsummaryrefslogtreecommitdiff
path: root/docs/modding/getting-started.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/modding/getting-started.md')
-rw-r--r--docs/modding/getting-started.md66
1 files changed, 66 insertions, 0 deletions
diff --git a/docs/modding/getting-started.md b/docs/modding/getting-started.md
new file mode 100644
index 0000000..17f50aa
--- /dev/null
+++ b/docs/modding/getting-started.md
@@ -0,0 +1,66 @@
+# Getting Started
+
+## Basics
+
+This guide assumes you have basic understanding with programming and know how to use developer environments. Listed below are tools useful for exporting file formats
+
+If you'd like a more lengthy set of tutorials covering many topics. Look at:
+
+{% content-ref url="tutorials/modding-tutorials.md" %}
+[modding-tutorials.md](tutorials/modding-tutorials.md)
+{% endcontent-ref %}
+
+> TODO: Actually link tools
+
+### Tools
+
+* RSPNVPK
+* Cra0 VPK Tool (Titanfall VPK Tool)
+* Legion by DZXTPorter
+
+## Quick start
+
+In order to get started with making your mod, create a folder in `R2Northstar/mods`. While it isn't required, it is best practise by mod authors to follow the naming scheme "Author.ModName", such as "Northstar.Client".
+
+After making this folder, inside it add a folder named `mod` and a file named `mod.json`.
+
+Provided is a template `mod.json`, for a detailed list of values read [Cheatsheet](cheatsheet.md)
+
+```json
+{
+ "Name": "My.Mod",
+ "Description": "Woo yeah wooo!",
+
+ "LoadPriority": 0,
+ "ConVars": [],
+ "Scripts": [],
+ "Localisation": []
+}
+```
+
+Inside the `mod` folder, existing files found in the engine's virtual file system will be overwritten and new files can be added. If you need to define new Squirrel files (.nut/.gnut) they _must_ be declared in the `"Scripts"` array in `mod.json`. An example for this might be:
+
+```json
+ "Scripts": [
+ {
+ "Path": "path/to/my.nut",
+ "RunOn": "( CLIENT || SERVER ) && MP"
+ },
+ {
+ "Path": "path/to/my_second.nut",
+ "RunOn": "( CLIENT || SERVER ) && MP",
+ "ClientCallback": {
+ "Before": "ClientPreMapspawnThing",
+ "After": "AfterMapspawnClientThing"
+ },
+ "ServerCallback": {
+ "Before": "ServerPreMapspawncrap",
+ "After": "ServerAfterMapspawnWoo"
+ }
+ }
+ ]
+```
+
+> TODO: Create and link Squirrel VM documentation
+
+`"Path"` indicates where the script is, `"RunOn"` is the Squirrel VM context (see [Squirrel VM](getting-started.md)) as an expression, and `"ClientCallback"` and `"ServerCallback"` specify a function call that can be `"Before"` and/or `"After"` map-spawn.