Structure
To make a map, you will need to structure it in a certain way so that TT3 can understand how to load it. In general, you should have something like this:
- MapScript (ModuleScript)
- Static (Folder)
- Dynamic (Folder)
- PlayerSpawns (Folder)
- Terrain (TerrainRegion)
- Lighting (Folder)
- MaterialVariants (Folder)
Beyond this, there are no hard requirements on how your map is structured. So lets take a look at what each of these does:
-
Static
: This contains the static geometry of the map. This folder will not be reloaded when the map reloads, so it is important that nothing here changes or moves. In general, this means all parts should be anchored, and any scripts should not have an effect on theStatic
folder. -
Dynamic
: This is the opposite of theStatic
folder. This folder is reloaded each time the map is loaded, and should contain everything that does change or move, like doors, props, weapon spawns, or scripted parts. Your map must have aDynamic
folder, even if it is empty. -
PlayerSpawns
: This folder contains the spawns for players. When a player joins the round, they will spawn at one of these. Spawns must beParts
. Your map may not work correctly if this folder contains anything other thanParts
. -
Terrain
: This instance is loaded when the map first loads - it defines terrain created with the Studio terrain tools. Your (as-yet non-existant) map-making plugin contains a button to generate this instance from your map's terrain. You can omit this instance if your map doesn't have terrain. -
Lighting
: Instances in this folder are copied to theLighting
service when the map first loads. You can use this if your map uses any lighting effects, likeColorCorrection
orSky
. You can omit this folder if you don't need it. -
MaterialVariants
: This folder will be copied intoMaterialService
when the map first loads. It should contain MaterialVariant instances. You can omit this folder if your map doesn't need it.
You will also have noticed the MapScript
ModuleScript
. This defines certain properties of your map, which we will cover in the next section.