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.

cc

*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 mod.io service.

Mod Descriptor File

capture5

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.

capture6

"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!

capture9


Setup Your Map for Official GameModes

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

sublevel2

sublevel

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

"Control": control

"Competitive Control": comp_control

"Domination": domination

"Team Death Match": tdm

"Gun Game": tdm

"Bounty Hunter": tdm

"Bomb Defusal": defusal

"Extration": extration


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

Important: Please notice "Team Death Match", "Gun Game" and "Bounty Hunter" all share the save "tdm" sub-level

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.

capture12

About Spawn Points (Player Start)


You mush use the PlayerStart come with the Mod Kit. There are three types of player starts in Contractors Mod Kit: PreGamePlayerStart, DynamicPlayerStart and TeamedPlayerStart

They could be found at /Blueprints/PlayerStart/

capture16


Setup Map GameModes

"Control"

1. Create a Level named "control" and add it as a sub-level to your main level. And make sure you have "control" sub-level selected. (Double click on it, to make it highlighted)

2. Now, we can start placing "Control" mode objectives markers to set the objective zones.

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

sublevel control 1

You can edit objective zone's transform by clicking on "Zone Transform" handle on screen.

3. Place PreGamePlayerStart for each team. (8 for each team). This is the PlayerStart player will spawn on the first time they enter the game. * Don't forget to set the team number property

capture17 capture18

4. Then place many DynamicPlayerStart (About 16 of them in a mid sized map) in some hidden/enclosed places in your map. (make sure they are not too close to the objective zone)


capture19 capture20

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

*These 3 shares the same "tdm" sub-level.


1. Create a Level named "tdm" and add it as a sub-level to your main level. And make sure you have "tdm" sub-level selected. (Double click on it, to make it highlighted)

2. Place PreGamePlayerStart for each team. (8 for each team). This is the PlayerStart player will spawn on the first time they enter the game.

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

"Domination"

1. Create a Level named "domination" and add it as a sub-level to your main level. And make sure you have "domination" sub-level selected. (Double click on it, to make it highlighted)

2. Now, we can start placing "Domination" mode objectives markers to set the objective zones.

"Domination" Mode objective marker can be found at /Game/Blueprints/GameModes/Domination/ObjectiveMarker/DominationObjectiveMarker We recommend place 3 to 4 objectives at different locations in your map.

dominationobjectiveedit

* You need to set the "FlagLetter" value under "Custom Tags" sections to A, B, C, D, etc, so each objective can have a letter assigned to them on UI.

3. Place PreGamePlayerStart for each team. (8 for each team). This is the PlayerStart player will spawn on the first time they enter the game. * Don't forget to set the team number property

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

"Competitive Control"

1. Create a Level named "comp_control" and add it as a sub-level to your main level. And make sure you have "comp_control" sub-level selected. (Double click on it, to make it highlighted)

2. Setup Objective zone as you do when setting up for "control" gamemode.

3. Place "TeamProtectionZone" actor for each team, It can be found at /Game/Blueprints/GameModes/TeamProtectionZone. "TeamProtectionZone" 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.

capture21

4. Place PreGamePlayerStart for each team. (8for each team) inside each team's "TeamProtectionZone"

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


"Bomb Defusal"

1. setup lobby area for your map.

To make BombDefusal mode work, you will need to setup lobby areas in your main level.

- double click on "Persistent Level" to select it (Double click on it, to make it highlighted)

- Place two CS_Spectator_Hub actors (you can find it here: Blueprint'/Game/Blueprints/GameModes/CS_Spectator_Hub) into your main level, place them at somewhere won't bee seen by player while they are in your map.

- Set team numbers for the CS_Spectator_Hub lobby areas you just added, team numbers need to be 1 and 2.lobbyzoneteam

- Wrap both team 1 and team 2 lobby areas with "Distance Cull Volume" and set the parameters for "Distance Cull Volume" as following picture

lobbyzone


2. Create a Level named "defusal" and add it as a sub-level to your main level. And make sure you have "defusal" sub-level selected. (Double click on it, to make it highlighted)


3.Now, we can start placing "Bomb Defusal" mode objectives markers to set the bomb sites.

"Bomb Defusal" Mode objective marker can be found at /Game/Blueprints/GameModes/BombDefusal/Marker/BombSiteMarker. You must put two of these in your sub-level.

defusalobjectiveedit

4. Place attachker playerstart and defender playerstarts into your level (8 for each team)

defusalplayerstart

"Extration"

TBA

Testing Your Map

Testing In VR

To test your map and check if it's set up correctly for GameModes it targets to support, first you need to check the "Run Dedicated Server" setting in your editor.

playtestsetup

then you can select GameModes from "World Settings" panel and click on "VR Preview" in editor and hit play button.
capture24

GameModes are named as following:

"Control": CS_ControlGamemode

"Competitive Control": CS_CompControlGameMode

"Domination": CS_DominationGameMode

"Team Death Match": CS_TeamDeatMatchGameMode

"Gun Game": CS_GunGameMode

"Bounty Hunter": CS_BountyHunterGameMode_FFA

"Bomb Defusal": CS_BombDefusalGameMode

"Extration": PackageExtrationGameMode

Add Map Info Screen

capture25

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

capture26

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

capture27

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


capture28

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

capture29

*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.

capture30

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

capture32

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.

Comments

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