NEBULOUS: Fleet Command

NEBULOUS: Fleet Command

Not enough ratings
Guide to Creating your own Spacecraft (Small craft, fighter, bomber, etc...)
By NCC-1701
   
Award
Favorite
Favorited
Unfavorite
Getting Started
To get started you'll need 3 things: a unity project setup for modding Nebulous, a 3d model of your fighter, and finally an understanding that this guide is not EVERYTHING, you'll need some basic modding skills and this is more of an outline than a guide....
Creating the prefab:
First you need to create a prefab for your fighter. After you've done that you'll need to add these scripts to the prefab root:

Also, drag FighterMovement/SkiffMovement, SpacecraftMissileManager, Animator(optional), VisibleObject, SensorTrackableObject, IntelligenceTargetObject, and CraftDecoyLauncher into the section of the Spacecraft script labeled "Required Functional Scripts". At this point you can add the stats that you want into all of these scripts. The movement script is, as the name suggests, used to configure all the movement stats. For the CraftDecoyLauncher script you'll need to add a decoy prefab. This is something I'm still working on so I can't give you any info here. The missile manager script is where you can configure the missile release parameters, I haven't experimented with this yet so you'll be mostly on your own there.
Adding the avoider, selector, signatures, and model
To add the avoider all you have to do is create a child empty and add a box collider and Avoider script. Then you're going to want to drag the avoider script into whichever movement script you chose.

To add the selector you're going to want to add a box collider (configured to the approximate size of your craft or a little bigger) and a DynamicVisibleHierarchy script. When you're done with that set the layer to "PostProcessing". Then drag that onto the Select Volume property in the Spacecraft script.

To add any signatures you want create another child empty and add any DynamicPassiveSignatures or DynamicActiveSignatures you want on your craft and drag them into the Sensors array in the Spacecraft script.

To add your model all you need to do is drag the model into your prefab and add a collider, an LOD Group, and a DynamicVisibleLODGroup script. Then drag those scripts and the MeshRenderer into the Visuals/LODS section of the Spacecraft script under Lod Group and Base LOD Inputs and drag the collider into the physics colliders array in the Spacecraft script.
Adding the thrusters
Create a child empty in your root prefab and name it "Thrusters" (for organization purposes). In that Thrusters GameObject create child empties for all your thrusters.

In each main thruster empty add CraftMainThruster and DynamicVisibleParticles scripts. Add your vfx into the VisualEffect component that should be added when you add the DynamicVisibleParticles script and configure all your parameters.

In each maneuver thruster empty add CraftManeuverThruster and DynamicVisibleParticles scripts. Add your vfx into the VisualEffect component that should be added when you add the DynamicVisibleParticles script and configure all your parameters.

After you've added all your thrusters drag each main thruster and each maneuvering thruster into your movement script arrays respectively.
Adding sockets
For each socket (a socket set in the fleet editor but not in loadouts) create an empty, set the position and rotation of the empty and add the StaticSpacecraftSocket. Drag the Spacecraft script into the Parent Craft option in the inspector and set the socket key to anything you want as long as it's unique. You'll then have to add any weapons/components you want to be mountable on the socket to the Component Option Prefabs. After you've setup your socket GameObjects add them to the Sockets array in the Spacecraft script. For each socket that needs a loadout slot you should add a Loadout Slot to the Loadout Slots array. To do this simply add what you want your slot to be called into the slot name option, and add the socket key into the Associated Socket option.
Adding to manifest
In your manifest.xml file add a SpacecraftComponents tag with entries for all your fighters like this:
<SpacecraftComponents>
<Entry Name="Arrowhead Drone" Address="Prefabs/Munitions/ArrowheadDrone.prefab" /></SpacecraftComponents>
Suggestions
If you have any suggestions for this guide or anything I forgot please let me know in the comments.