From 1b92db0c33608ce953d99dd29ccbd25946c46a26 Mon Sep 17 00:00:00 2001 From: Will Castro <39478251+VITALISED@users.noreply.github.com> Date: Mon, 27 Dec 2021 20:21:25 +1100 Subject: Scaffold modding section, add modding getting-started and note installing-northstar basic-setup flaw --- modding/getting-started.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 modding/getting-started.md (limited to 'modding/getting-started.md') diff --git a/modding/getting-started.md b/modding/getting-started.md new file mode 100644 index 0000000..b9ee1f5 --- /dev/null +++ b/modding/getting-started.md @@ -0,0 +1,63 @@ +# Getting Started with Modding + +## 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="modding/getting-started-with-modding"} +[modding-tutorials](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](#)) as an expression, and `"ClientCallback"` and `"ServerCallback"` specify a function call that can be `"Before"` and/or `"After"` map-spawn. \ No newline at end of file -- cgit v1.2.3