Frag-Z maps are designed gameplay first. Maps should be designed around movement and how you want players to interact.
Maps should not rely on intricate indoor geometry. Tight rooms, tiny decorative corners, and highly detailed interior clutter usually fight the movement system and make combat worse.
You do not need to be a texture artist to make a valid map. Frag-Z supports raw .obj files as maps, so a simple untextured blockout should be the first phase of any map's development. Once it's been tested and you know it's right, then start adding textures.
If you've confirmed a map plays well and you want to start adding an aesthetic to your map, we support using PBR materials. We support these materials through .gltf files and we utilize albedo, normal, metallic, and roughness textures. Right now the only supported map/model formats are .obj and .gltf.
Lights are supported in .gltf maps through the KHR_lights_punctual extension. In Blender, make sure the lights export option is enabled when exporting your glTF file so the lights come through in-game.
You can use any 3D software to create Frag-Z maps as long as you can export to .obj or .gltf. If you have not used 3D modeling software before, Blender is recommended because it is free, widely used, and exports both formats.
Every map needs a model file: either .obj or .gltf. Any ordinary mesh object becomes static collision. Maps may also include trigger objects named as Jai-style struct literals:
Jump_Pad.{velocity = ...},
Teleporter.{pair_id = "...", outward_vector = ...},
King_Of_The_Hill_Point.{},
Capture_The_Flag_Team_A_Flag_Zone.{}, and
Capture_The_Flag_Team_B_Flag_Zone.{}.
| Game Mode | Valid Map Requirements |
|---|---|
| Timed Free For All | Map model plus spawns.txt with at least one Spawn. |
| Last One Standing | Map model plus spawns.txt with at least one Spawn. |
| King Of The Hill | Map model plus team_a_spawns.txt, team_b_spawns.txt, and exactly one King_Of_The_Hill_Point.{} trigger. |
| Capture The Flag | Map model plus team_a_spawns.txt, team_b_spawns.txt, exactly one Capture_The_Flag_Team_A_Flag_Zone.{} trigger, and exactly one Capture_The_Flag_Team_B_Flag_Zone.{} trigger. Each flag zone should be authored as a quad with four unique points. |
Spawn files are parsed as arrays of Spawn values. Each spawn has a position, yaw, and pitch. Spawn angles are measured in turns: 1.0 is one full rotation, 0.5 is half a rotation, and 0.25 is a quarter rotation. Free-for-all style modes use spawns.txt; team modes use team_a_spawns.txt and team_b_spawns.txt.
glTF/PBR maps can also include a skybox image in the same folder as the map. Name it skybox.png, skybox.jpg, skybox.jpeg, or skybox.tga. The renderer uses that image as a cubemap/reflection source when loading the map.