top of page
Search

Build Your Own VR Maps in Iron Rebellion

  • alyssa3124
  • Jan 13
  • 4 min read

Community Map Creation

Grid of colorful game maps, each labeled with names like Abandoned Sector and Magma Fields. Some marked "Work in Progress."
The Abandoned Sector community map was made an official game map in our December 2025 update.

All of the above maps were made by our community members.


Iron Rebellion supports community-made maps, and while the current workflow is still an early proof of concept, it’s designed with one major goal in mind: a low barrier to entry for building maps in VR. If you’ve ever wanted to learn level design, experiment with game spaces, or understand how VR shooters are built, this is a rare opportunity to do that inside a live VR game.


Think of this as hands-on VR game design without needing to build an engine, handle multiplayer infrastructure, or write gameplay code.


The Basic Workflow

  1. Design and model your level in Blender (or another 3D tool)

  2. Export your map file

  3. Load it into Iron Rebellion using the custom level loader

  4. Iterate and playtest

  5. Once you're a couple iterations in, and are happy with it, pass it to devs to implement the map in the community section.



Testing Custom Levels

We currently support loading custom levels through .glb format. This format has better support for real time loading, empty locators and it can even pack textures (and to an extent materials) into the file. Once you model and texture your scene, export out the .glb file and place it in the game’s directory following the instructions below:


For PCVR / Linked:

Place your .glb file under the game's directory: “Assets/Levels/Custom/Level.glb

PCVR and Linked file placement

FOR ANDROID / QUEST:

Place your .glb file into:

"\Internal shared storage\Android\data\com.Black_Beach_Studio.Iron_Rebellion_VR\files\Level.glb

Android and Quest file placement

Important

Make sure the glb file is placed in the exact folder and named correctly.


A 3D render shows a metal device with a small white square and yellow arrows on a blue surface with a Discord logo in the corner.

When in game, hit L on your keyboard or click the small gray button in the bottom right corner of the mech bay main monitor to launch a custom level, if the button doesn’t appear, the game didn’t find the file due to some reason, most likely wrong directory or file name.

This starts a custom marked server and places your file into the scene.



Naming Convention and Auto Population

Custom level loader will also populate certain things if there’s objects whose names contain the following text:


“HealthPickup”

Spawns health pickups

"AmmoPickup"

Spawns ammo pickups

"AIPatrolPoint"

Gives pointers to the AI, without these bots will not work

"SpawnPointRed"

Red team players spawn

"SpawnPointBlue"

Blue team players spawn

"SpawnPointAIRed"

Red AI bots spawn

"SpawnPointAIBlue"

Blue AI bots spawn

"ConquestObjective"

Spawns a conquest objective, currently mostly broken, only HUD works


Important

The above names are case sensitive, adding a space, underscore, changing capitalization or anything else will cause it to not work.




Aerial view of a scrapyard with stacked metal piles, industrial structures, colorful pipes, and a molten lava trench on dirt ground.
Junk Yard template .blend file (link below) imported via custom level loader in game

Textures

.glb file format is really flexible with materials, all the referenced textures get packed inside the file. Feel free to mess with light baking, various atlassing, trim sheet methods.


Testing with Others

Custom servers can be joined with anyone who has a “Level.glb” file in the right directory. If you send your .glb file to a friend or other Discord members, they will be able to join your server and you can test things out together. This is one of the fastest ways to validate flow, scale, and combat readability.


Making Your Map Official

Once you’re happy with your level:

  • Follow all naming conventions

  • Ensure the custom level loader works correctly

  • Clearly organize your scene


This makes it far easier for the devs to integrate your map into the community section.


-----


Custom Level Preparation Guidelines

  • Mech spawns in 0,0,0 coordinates.

  • Medium mech height is about 6-7 units.

  • Max walkable slope is about 30~ degrees.

  • Jump + hover allows players to reach about ~3x mech height


Geometry

  • Triangulate your mesh

    • If you have some complex geometry, especially ngons, please triangulate your mesh before exporting

    • You can do this very easily by adding a triangulate modifier in blender and linking it to all objects.

  • Check your normals orientation, this can result in objects rendering inwards / backface culling in game.

    • You can check this easily by enabling “Face orientation” overlay option in Blender

  • All meshes will receive mesh colliders


Final Delivery Checklist (For Dev Integration)

  • Playtest your level as much as possible

  • Check normal orientation, make sure there are no inverse / flipped normal geometry

  • Ensure that movement is smooth and predictable, mechs can go through all the spaces they need to

  • Keep polycount below 100k triangles for the final level

  • Keep your object count below 150

  • Be sure that your objects’ scale is applied, or at least uniform.

    • Created lightmaps will be stretched and inefficient, and negative scale will flip normals in game.

  • Deliver a .blend file for developer integration.

  • Please name and organize (use collections) as much as possible, follow naming conventions for gameplay objects and make sure those are grouped in collections.



Helpful Links

Join the Discord


CUSTOM LEVEL FUNCTIONALITY IS CURRENTLY BEING TESTED

 
 
Yellow Background
corner piece black
corner piece black
  • TikTok
  • Instagram
  • YouTube
  • Reddit
  • Facebook

Subscribe to Our Newsletter

bottom of page