Build a Map
Performance & safety
Flashing lights & epilepsy
Strobing, rapid flashing, or intense flicker must be stated in the Workshop title or description. VR Realms shows a FLASHING LIGHTS badge when it sees words like flashing, strobe, seizure, epilepsy, photosensitive. Unlabelled content may be removed; repeated failures can suspend access (User Agreement §6).
Performance tips
- Target 90 FPS on mid-range PC + Quest 3 Link
- Bake lighting: VR uses the forward renderer, so Lumen does not run. Static/Stationary lights + Lightmass Importance Volume
- Don’t enable Nanite: it does nothing on the forward renderer
- Sky: SkyAtmosphere + Directional with Atmosphere Sun Light; avoid HDRI sky-dome meshes
- Volumetric Cloud and a Sky Light with Real Time Capture both work in VR, but they are among the most costly parts of Unreal’s default outdoor level: the clouds are drawn again for each eye every frame, and the capture keeps redrawing the sky even when the sun never moves. If your frame rate is short, delete the Volumetric Cloud actor first, then untick Real Time Capture on the Sky Light (it then captures the sky once when the map loads)
- LODs on large meshes; minimize dynamic shadow casters
- Translucency and post-process volumes are expensive in VR
- Test packaged client, not only PIE
Approval
Review catches crashes, harassment/NSFW, copyright IP, single-digit FPS maps, unlabelled strobes. Usually 1–2 days in alpha.
Troubleshooting
| Symptom | Fix |
|---|---|
| Not in in-game browser | Steam still downloading, or missing Map tag |
| NOT under Community/Maps | Enter the Item name and hit Build. The tool moves the files |
| Map currently open | Open another level, then Build |
| Find/Replace rename warning | Click OK. It is a generic Unreal warning |
| Spawn in floor/wall | Raise PlayerStart; leave clear space |
| Walk through furniture (one-piece Blender map) | Collision Complexity → Use Complex Collision As Simple after clearing bad convex hull |
| Custom Blender collision ignored | Name UCX_ + mesh name; convex; same FBX; apply transforms |