Stream your map as a FiveM resource

Build a clean resource, register custom YTYPs, start it on a development server, and verify the delivered files.

In this guide

A named resource with explicit custom archetype registration and a repeatable startup test.

Before you startExported game-format assets · Access to a development FiveM server

Treat the resource folder as a release artifact, not as your working directory. It should contain the game-ready files your map needs and a clear manifest. Blender backups, editor projects and unconverted interchange exports belong elsewhere.

Start with a clean directory

For a small custom interior, use a structure like this:

cw_workshop/
  fxmanifest.lua
  stream/
    cw_workshop.ymap
    cw_workshop.ytyp
    cw_workshop_shell.ydr
    cw_workshop_col.ybn

This is an example inventory, not an exhaustive list for every project. Add the textures and other actual dependencies your exports require. The names must match your assets and references, not merely resemble this example.

Write the resource manifest

For the example’s single YTYP:

fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

files {
    'stream/cw_workshop.ytyp'
}

data_file 'DLC_ITYP_REQUEST' 'stream/cw_workshop.ytyp'

Cfx.re documents the resource directives in its manifest reference and the YTYP registration type in its data-file reference.

For multiple custom YTYPs, enumerate the relevant files and registrations consistently or use the documented globbing support deliberately. Do not add registrations for files you are not shipping. A map that only places existing game archetypes can have a smaller manifest, as shown in the first YMAP tutorial.

The manifest helper generates this small example in your browser. It does not inspect your assets or validate an entire MLO.

Do not confuse manifests

A CodeWalker-generated game map manifest is not fxmanifest.lua. Likewise, a .cwproj is not a game map and cannot be streamed in place of its exports.

Use native game-format outputs produced through your chosen toolchain. Changing a filename suffix is not conversion. Keep the interchange folder out of the release directory so accidental copies are easier to notice.

Start it on a development server

Place the resource under your server’s resources directory. Resource category folders such as [maps] can organize projects; the resource name in the command must still match the actual resource folder.

From the server console:

refresh
ensure cw_workshop

Persist the appropriate ensure line in your server configuration for future starts. Check the server output rather than assuming that typing a command proves successful loading. The server command documentation is the authority for command behavior.

Visit your recorded test coordinates. A resource can start without placing its content where you expected, so inspect placement independently from startup.

Public server-list metadata belongs in Cfx Portal

The 14 October 2026 Cfx announcement moves FiveM and RedM public server-list metadata to the Cfx Portal. Existing server.cfg metadata remains displayed during the transition until 21 October 2026. From that date, manage the server name, tagline, description, tags, language, banner and icon in the Portal, not through sv_hostname, sv_projectName, sv_projectDesc, tags, locale, banner_detail, banner_connecting or load_server_icon in a configuration file.

Before advertising a public test server, review its Portal record and fill any fields that were not backfilled. A missing listing name or image is not evidence that your map failed to load. Check the public listing separately from resource startup and in-game placement.

This change does not move ensure lines, resource manifests, YTYP registration, game-build selection or map assets into the Portal. Keep those in the server/resource setup described here. Cfx Portal is also unrelated to the room/portal geometry inside an MLO.

Test the delivered package, not your workspace

Copy only the candidate release folder into a clean test location. Keep a list of its filenames and compare that list with the intended exports. If the map works only when another experimental resource is running, identify the missing dependency rather than leaving the dependency implicit.

Use rpCrate's FiveM MLO compatibility guide as an additional deployment review for edition, streamed assets, coordinates and map conflicts.

Test reconnecting, approaching from outside the area and starting the server with the resource configured from the beginning. For an MLO, also repeat the room, portal and collision routes from the relevant lessons.

Keep Legacy and Enhanced release outputs distinct. The edition note explains why an older successful Legacy test is not a compatibility statement for Enhanced.

Make updates reversible

Give the release folder or external archive a version and retain the previous working package. Record the exact changes and the test route used. When updating a shared server, use the server operator’s maintenance process rather than experimenting on connected players.

After a failed deployment, restore a known working set of files together. Mixing an older YMAP with a newer YTYP or collision file makes rollback harder to reason about. A repeatable release is one you can identify, reproduce and replace as a unit.

Install a YMAP that uses only game-provided props

Use a new resource folder, for example cw_three_props, with fxmanifest.lua at its root and the native YMAP inside stream/. Keep project JSON and interchange XML outside the delivered stream directory. For the simple example, a manifest can be:

fx_version 'cerulean'
game 'gta5'

this_is_a_map 'yes'

This assumes every archetype is already supplied by the target game/DLC context. A custom model may need its own definition and dependencies even if your YMAP has only one placement. Use the generator with the custom option disabled only when that assumption is true.

Register a custom YTYP by its actual filename

If you supply stream/cw_workshop_types.ytyp, the resource must declare that actual file. The resource folder name does not force the YTYP to use the same stem:

files {
    'stream/cw_workshop_types.ytyp'
}

data_file 'DLC_ITYP_REQUEST' 'stream/cw_workshop_types.ytyp'

Add this to the map manifest, not to the YMAP XML. The Cfx.re data-file reference identifies this registration type. Multiple custom definitions need corresponding declarations; cross-resource assets also need a documented dependency/startup plan. The small generator handles one optional YTYP, not a whole dependency graph.

Isolate resource-start failures

Run refresh after adding a new resource folder, then ensure cw_three_props using your actual folder name. Check the server console before looking at the map. An unrecognized resource calls for checking directory nesting and the manifest filename; a Lua parse error calls for checking the manifest syntax. Save files without a hidden .txt suffix.

An “ensure succeeded” message proves startup, not asset validity. Reconnect, visit the exact coordinates and check all placements. For invisible content or doorway-dependent flicker, continue with the symptom-led diagnostics. Keep the source examples outside production until their separate native and in-game steps have been performed.

Check your work.

Checklist progress stays in this browser when JavaScript is enabled.

Sources & further reading

Tool behavior follows the linked primary documentation. Exercises, example names and test plans are editorial guidance, not a claim of in-game verification.

Save your place. No account needed.
Optimize an MLO without guessing

Search the field guide

Start typing to find a tool or guide.

    Searches tools, titles and article text. Queries stay in your browser.esc to close