Contractors VR

Contractors VR

Create and play mods in VR for this shooter.

Learn more and find the game on Steam, Oculus.

How to make a Map Mod

This is a tutorial about how to create a Map Mod for Contractors VR

Posted by on (updated ago)

Getting Started!

To get started, you will need to create a Map Mod in Contractors Mod Editor, you could do so by clicking on "Create Mod" button, select "New Map" and fill in the name for the Mod.


*Very Important!!! Your mod name must only contains alphabet characters ,numbers and ASCII special characters. Otherwise you mod will not allowed to be uploaded to service.

Mod Descriptor File


After your mod have been created, you should find a content folder for your mod will be created along with some files.

XXXXX_MapModData is the descriptor file for your map, you should fill in information for your map here.


"Mod Map": the map you want to use for this mod.

"Compatible Game Modes": The game modes your map is compatible with.

*Important: "Custom" option in "Compatible Game Modes" is for a map that uses it's exclusive GameMode which only works for this map (ie. "TTT" maps should use option)

"Display Name": This map's display name in game.

"Thumbnail": The thumbnail used for map collection UI, commanded image size is: 1024 * 512.

*Important: MapModData file will not get created if you forgot select "New Map" when you were creating you Mod. Don't worry! you can always create a MapModData by right clicking in your Mod's Content browser, select miscellaneous/Data Asset, then select ContractorsMapMod.

capture7 capture8

*Notice: You can put multiple maps in a single mod, each map mush have it's own MapModData descriptor.

Mod Content Management

All the assets your mod uses mush reside in your Mod's Content Folder or the Mod project's Main Content Folder. Using assets from another mod or plugin is not allowed!


Setup Your Map for Official GameModes

To support official GameModes, your map must contains sub-levels corresponding to each GameMode your map is supporting.

capture10 capture11

Sub-Level name for each Official GameMode must following the following naming convention:

"Control": control

"Team Death Match": tdm

"Gun Game": gungame

"Bounty Hunter": bhffa

"Extration": extration

Each sub-level should contains spawn points and actor needed by it's GameMode.

Common Pitfall!!!! : When you setup spawn points and actors for GameModes, make sure the corresponding sub-level is selected (hightlighed), otherwise you will be pacing actors in main level instead of GameMode's sub-level.


About Spawn Points (Player Start)

There are three types of player starts in Contractors Mod Kit: PreGamePlayerStart, DynamicPlayerStart and TeamedPlayerStart

They could be found at /Blueprints/PlayerStart/


PreGamePlayerStart is used as initial player start when player first entered the map. You need to assign the a team number to it (team 1 or team 2, default is team 1)

DynamicPlayerStart is the common player start type to spawn players during a match. When player try to respawn, GameMode will find a safest one among them. DynamicPlayerStart is mostly used in "TDM", "GunGame" an "Bounty Hunter".

TeamedPlayerStart have a team number property in addition to DynamicPlayerStart. It has only been used in "Control" GameMode so far. You need to put 5 of them in a cluster to let teammates spawn together in save area. You need to assign the a team number to it (team 1 or team 2, default is team 1)

Setup Map GameModes

"Team Death Match", "Gun Game", "Bounty Hunter"

Create a Level named "tdm", "gungame" or "bhffa" and add it as a sub-level to your main level.

Place PreGamePlayerStart for each team. (5 for each team)

capture17 capture18

Then place many DynamicPlayerStart (About 16 of them in a mid sized map) in some hidden/enclosed places in your map.

capture19 capture20


1. Create a Level named "control" and add it as a sub-level to your main level.

2. Place "ControlKillZone" actor for each team, It can be found at /Blueprints/GameModes/Control/ControlKillZone. "ControlKillZone" will act as a protection zone for each team. You need to assign the "Team Number" property to 1 or 2 to define which team this zone is protecting. Players from opposing team will be warned and killed by this zone if they didn't leave on the zone in time.


3. Place PreGamePlayerStart for each team. (5 for each team) inside each team's "ControlKillZone" * Don't forget to set the team number property

4. Place multiple clusters of TeamedPlayerStart (Cluster of 5) inside each team's "ControlKillZone" * Don't forget to set the team number propertycapture22

5. Finally, we can start placing "Control" mode objectives.

"Control" Mode objective marker can be found at /Blueprints/GameModes/Control/ObjectiveMarker/ObjectiveMarker. We recommend place 3 objective at different locations in your map.


The white box is representing the com box, make sure it touches ground. You can also edit objective zone's transform by clicking on "Zone Transform" handle on screen.



Testing Your Map

Testing In VR

To test your map and check if it's set up correctly for GameModes it targets to support, you can just select GameModes from "World Settings" panel and click on "VR Preview" in editor

GameModes are named as following:

"Control": CS_ControlGamemode

"Team Death Match": CS_TeamDeatMatchGameMode

"Gun Game": CS_GunGameMode

"Bounty Hunter": CS_BountyHunterGameMode_FFA

"Extration": PackageExtrationGameMode

Add Map Info Screen


1. Create a child actor from "UI Map Info Actor"


2. Add a "UI Widget Component" to the actor you just created.


3. Create a "Widget" by clicking on plus sign in "UI Widget Component"'s detail panel.


4. Open the widget you just created, and start working on your Map Info UI.


*We recommend putting a size box of 1024*512 for your UI to make it just the right size for display.\

5. Assign this "Widget" you just created to "UI Widget Component"'s widget property.


6. Final step, drop a "CS_MapInfo" actor to your map, and assign the "UI Map Info Actor" you have created to it.


Testing In Non-VR

If you just want to run around and check collisions for your map, you can change GameMode to "FirstPersonMode" and click "Play" in editor.


Join the community or sign in with your gaming account to join the conversation: