An Instance can be seen as a level inside your level. They are very useful if you need to build or script the same thing multiple times. A good example would be a door that can be opened by AI or a power box that can appear in random locations.
Since an Instance is basically it's own level, editing it will also affect each spawned-in instance of it, they are 100% identical.
In gameplay, you won’t notice any difference between Instance and regular Units in your level.
You can either use vanilla instances, or make your own custom ones, in both cases you can find them in the “Instance” tab in the Spawn Menu.
Create A Custom Instance
To create your own Instance, simply open your Map in the Project Manager, add a new module, select “Instance” and give it a unique name.
Alternatively you can also clone a vanilla instance and edit it.
You can now open your new Instance like any regular level and edit it, or open it from inside your level with the Edit Instance button.
While scripting your Instance, you can set up InstanceInput and InstanceOutput elements to send signals between the instance and your level.
After spawning the Instance in your level, you can send signals to it using the InstanceInputEvent Element in your level, and receive signals from the Instance with InstanceOutputEvent Element.
Keep the amount of elements below the Instance Index size, which is 250 by default. It can be increased if necessary, though it’s better to keep your instance size as small as possible.
The Index size is basically the amount of element IDs in your level's script that are reserved for the Instance.
While editing your Instance, you can build navigation and place PlayerSpawner Elements to playtest it. However, the generated navigation will not carry over to the main level, and all PlayerSpawner should be disabled when finished editing.
Additionally Instances can only have the default world continent and default script.
Instance Point Element
Instead of spawning an Instance multiple times, you can move one using the InstancePoint Element. This is especially handy for randomizations, as you won't have to deal with linking multiple Instances, you simply spawn it once and move it where it's needed.
InstancePoint Elements can only link to Instances that have the "Mission Placed" option toggled on.
Now you simply have to execute the element and the Instance will appear at the exact position and rotation of the element.