Browse docs
Custom maps & IPLs
Custom maps are supported for paintball, lasertag and kart racing. The Activities editor places gameplay information on your map; it does not export a building, YMAP, YTYP or collision mesh.
Build the physical map
Author the venue using your GTA mapping workflow, such as Blender/Sollumz and CodeWalker, or install an existing compatible map. A usable venue needs visible geometry, textures, collision and safe entry/exit paths. An MLO additionally needs correctly authored rooms and portals. Check sightlines, doors, floor height and kart clearance in FiveM before configuring the game.
Give custom assets unique names. Include the exported YDR/YTD/YBN files, YTYP definitions, YMAP placements and any streaming manifest your export requires. Keep source files separately so the map can be rebuilt. The official FiveM asset guides cover the asset-authoring workflow.
Package your map separately
For example, a custom arena resource could contain:
my_activity_arena/
fxmanifest.lua
stream/
my_activity_arena.ymap
my_activity_arena.ytyp
my_activity_arena.ydr
my_activity_arena.ytd
my_activity_arena.ybn
Use your actual exported filenames. A minimal manifest for this example is:
fx_version "cerulean"
game "gta5"
this_is_a_map "yes"
files { "stream/my_activity_arena.ytyp" }
data_file "DLC_ITYP_REQUEST" "stream/my_activity_arena.ytyp"
Keep any additional declarations required by your particular map or its author. See the FiveM resource manifest reference for map and data-file declarations.
Start the map before Activities:
ensure my_activity_arena
ensure sky_activities
Choose the IPL field correctly
| How the map loads | Activities editor → Maps → IPL |
|---|---|
| Permanently loaded by its map resource | Leave empty |
| Explicitly requestable IPL | Enter its actual IPL identifier |
The IPL identifier is not automatically the resource folder name or an MLO model name. Use the identifier supplied by your map's author/export. The field accepts up to 80 letters, digits, underscores or hyphens.
Activities uses the configured map bounds for loading custom locations. It requests an IPL when needed and only releases one it requested itself. An IPL that was already active remains under its existing loader's ownership. Keep the map resource started while its activities are available.
Connect the gameplay
Create a paintball, lasertag or karting definition in /activitiesconfig. Set the public interaction, entry/exit, map bounds and sport-specific points using the Activity editor. All positions must match the installed map's world coordinates.
For an open-air map, bounds still define the playable area. For an interior, use bounds that cover the actual rooms and floors. Test every team spawn and return point, objective route, checkpoint and reset position. A successful save validates gameplay data; it does not prove the map has usable collision or correct MLO visibility.
Additional cover props
Add approved model names and suitable radii to the global ArenaProps setting before placing extra cover. In Lua mode the setting is Config.ArenaProps; in editor mode change the allowlist under General settings. A model name alone does not supply the asset: the corresponding resource must stream it. Update the anticheat model permissions for any added props.
Bowling, minigolf and table sports
- Bowling: use the venue contract in Bowling MLOs. The lane dimensions, pins, racks and displays drive the bowling simulation.
- Minigolf: the supplied courses include matching server-side ball collision. A new course needs that authored integration; entering an arbitrary IPL is insufficient.
- Table sports: place a supported device profile with the editor, or use the supported existing GTA devices. Check player and camera clearance in your MLO.