Turbo Overkill

Turbo Overkill

26 ratings
Quick & Dirty: Creating Custom Maps
By wadaholic
This guide is designed to give you a basic rundown of how to create custom maps for Turbo Overkill!
Please note, the current tools are in heavy Alpha, a lot of features are still coming and there are a ton of bugs that need to be resolved.
   
Award
Favorite
Favorited
Unfavorite
Introduction
Custom maps have finally arrived for Turbo Overkill!

This guide will go over the basics on how to create a basic map.

Tools needed
  • Unity 3D, this is used for creating the custom map geometry
  • Turbo Overkill running under the BETA branch

IMPORTANT NOTICE
The current implementation is in very early access, there are a lot of bugs and Quality of Life tweaks still to come, along with additional triggers and props.

This guide is currently incomplete, please check back every now and then for more bits of information. I will make sure this document is updated every time a new feature is added to the editor.
Unity 3D
First, create a new project. The name doesn't really matter. The only thing you will need to do is download and install the assets package into your /Assets/ folder.

This package contains a modified version of the popular plugin RealtimeCSG, a tool we use to create the base game maps for Turbo Overkill. The package also contains base textures and materials, and an OBJ Exporter, for getting maps into Turbo Overkill.

You can download the package from our official Discord[t.co] server under the #modding-toolinfo channel...

Once you have downloaded the ZIP, extract its contents into your /Assets/ folder.

Realtime CSG

There is a sample scene provided where you can start. I recommend checking out some RealtimeCSG tutorials on how to use the tool, as it can be a very in-depth tool.

The version provided in the ZIP has a few modifications from the standard version of RealtimeCSG. There is a texture browser that can be accessed by clicking on the 'Library' button while in Surface mode (and having at least one surface selected). Clicking on Library will take you to the Material Browser, where you can apply materials to your mesh.

Before you export

Before you export your geometry out, you will need to create a mod directory in Turbo Overkill, explained in the next section...
Creating your first TurboEd project
Make sure your Turbo Overkill is set to the BETA branch, by right clicking and going to Properties > Betas and setting it to the 'beta' branch.


Once you have done this, launch the game and you will see a 'Custom Mods' option in the main menu.

Click it to be taken to the Custom Mods menu, from here, you can either browse user created maps, or open the level editor. Click 'Level Editor'.

Once inside, you will be prompted to create a new project. It will ask you for...
  • A name (the directory name in which the file is stored on your local machine),
  • A nice name, which is used when uploading to Steam Workshop
  • An author name... this is to be deprecated so it can be ignored for now.
  • A description, also used for Steam Workshop

It will also ask you for a Template to use. We are going to want to use 'Custom Geo' for now (Flat Map is just a flat ground, but this can get in the way of our custom geo).

Once inside, you will be taken to the editor screen, but you will also have your project directory created. We can now export our OBJ data into this folder.

Back in Unity

Once you have created the geo you want to use with RealtimeCSG, you can go to GameObject > Turbo Overkill Modding > Export to OBJ.

A window will pop up with a button asking you to Export Generated Render Meshes. This will find the meshes generated with RealtimeCSG and will export them. Once clicking on the button, a prompt will pop up on where to save. You will need to save the obj file in your mods directory, which can be found at....

C:/User/[yourname]/LocalLow/Trigger Happy Interactive/Turbo Overkill/ModContent/[the name of your mod file]..

You will need to save the obj file in this directory as 'wgeo.obj', otherwise it will not be read from the editor.

It should export without any issue, but if you have trouble getting the OBJ file to write, try turning on Show Meshes in the 'Mesh (advanced)' section of your Realtime CSG model component.

Back in TurboEd
Now if you go back to Turbo Overkill, you can click the File button on the toolbar to open the File menu. In here, there is a button that will allow you to reload your custom geometry, clicking this should load in the OBJ file you exported from Unity into your level!.

Don't worry, you won't have to click this every time, it is only when you want to refresh the editor to the latest geometry.

You can now start placing objects in your level!
Working inside TurboEd
This section explains what the separate categories in TurboEd are and what you will need to get your map up and running.


The very basic needs of a map

There are several components you need to make your map playable and valid:
  • A Player Start
  • A Purge Switch (otherwise you cannot exit the level)

First things first, go to the Players & Level Info category. You will see a Player Spawn object. Drag and drop this from the toolbar into the level.


Click on the newly placed Player Spawn. You will notice the Inspector window on the right has come to life with some Properties


Each object has a different set of properties. Monster spawners for example have things like Use Teleport Effects or Start Spawned in.

If you want to modify a property, you can simply type in it (or hold click on the Chainsaw icon to the left to scrub it back and forth). Just keep in mind, you will have to hit Enter on the property to register the changes (not when using the scrubber however).

Now go to the Interactive toolbar category.
You will notice a larger selection of items you can drop in here, like doors, jumppads and ladders. We want to drop a Purge Switch into the level. This is an object players can interact with to finish the level.

Handy shortcuts

CTRL+C - Copy properties from a selected object
CTRL+V - Paste properties onto a selected object
SHIFT+D - Duplicate selection to the mouse cursor
SHIFT+R - Toggle relationship lines between triggers
Triggers
Triggers are one of the main ways a player will interact with a Turbo Overkill map. They can do many things from spawning in monsters, activating force fields to starting music tracks.

The one way triggers will interact with other objects is with the Tag system. Tags are numbers that are used to connect triggers and objects together.

Lets make a trap for our player, when they pick up the Boomer shotgun, we want to spawn in a bunch of enemies for them to fight.

First, goto the Items category and drag a Weapon Boomer into the level.


Now, goto the Triggers category and drag a Trigger Point over the shotgun. You will notice the Trigger volume has a large green box around it. When a player walks into this green box, the trigger volume will activate. You can change the width, height and depth of the volume inside the Inspector panel.

While in the inspector panel for the Trigger Point, we're going to want to set its tag to a number. Lets set it to 1 for now. You will need to press ENTER once entering a value for it to save on the selected object.

You will notice, nothing has happened... yet.

Now goto the Monsters category and drop down a Techno Junkie. By default, he will start spawned in when we hit play. but we want him to spawn in when we hit the trigger. Inside the Inspector, set his 'Start Spawned' property off. Also tick 'Spawn Teleport FX', this will give him a blue ring effect when appearing.


Now, set his 'Tag' property to 1. You should now notice a line going from the Trigger Point to the Techno Junkie.


Now, we want some more junkies. If you select the Techno Junkie and press Left-Shift + D, it will duplicate the junkie to the position our mouse is hovering over. What's handy, is it will copy all the properties we just set on the Techno Junkie!

Publishing
Once you are happy with your map, you can upload it to Steam Workshop via the File menu.
Make sure you save your map and have a thumbnail snapshotted before you do so.

If you like, you can also manually edit the thumbnail with an external photo editor. Also, if you have a loadingscreen.png file provided in your mods content folder, it will use that when loading a level.

Once you have published your map, in a few minutes it will appear in the map browser that can be accessed via the main menu. It will also appear on Steam Workshop.

Keep in mind, your local working files are located under AppData/LocalLow. Downloaded mods are saved under the steamapps/workshop folder.
Full Breakdown
Toolbar: File
The top two text fields allow you to change the mods name and description. You must press ENTER for changes to become valid. There is also a thumbnail preview of what will be uploaded to Steam Workshop when you publish.
Reload Custom Geometry
Refreshes the world geo from disk
Publish to Steam Workshop
Opens the prompt to publish your mod to Steam Workshop (also updates if the mods already published)
Save
Saves the mod
Level Browser
Opens the level browser, also has the prompt to create new levels inside
Exit Editor
Exits TurboEd and returns to the main menu

Toolbar: Player & Level Info
Player Start
This is where the player spawns in
Starting Inventory
CURRENTLY NOT WORKING, but this will set the players starting inventory
Level Info
Sets ambient lighting and other details like rain fx

Toolbar: Triggers
Check out the Triggers section for more info on these
Checkpoint
When a player hits this, they will get a Checkpoint
Togglable Forcefield
Can be used to lock a player in an arena fight
Trigger Point
The main workhorse of logic events. If a player hits this, anything with the same TAG as the trigger point will activate
Trigger Text Box
When called by a Trigger, this will display text on screen

Toolbar: Music Triggers
Place one of these bad boys down and set its TAG to be the same as a nearby Trigger Point to start cranking out some tunes.

Toolbar: Monsters
This is used to place monsters in the level. There are several properties that can be set on monsters. By default, they will spawn in automatically, but you can set them to only spawn in from a trigger.

Toolbar: Items
Drops items, weapons and ammo into the level.

Toolbar: Interactive
Check out the Triggers section for more info on these
Big/Plaza/Shutter Door
Doors that divide the level. Can be locked and set to need a key to pass
Shop
Weapon shops, Slice machines galore
Jumppad
Currently comes in 3 flavors of height
Ladders
Used to climb things
Purge Switch
When players interact with this, the level is over!
Trigger Interactive Switch
Same as a Trigger Point, but players have to interact with this
Vehicle Bay
Used to spawn the hover car in

Toolbar: Lighting
Box Fog
A fog volume localized in a box
Height Fog
A fog volume that is localized by height, can be rotated to make the sky foggy
Point Light
A basic point light
Spotlight
A basic spotlight

Toolbar: Props
A category with assorted props that can be used to make the level prettier.

Toolbar: Shortcut Helper
A handy tab that displays all the current editor shortcuts

Toolbar: Snapshot
Takes a screenshot from the cameras current position for the Steam Workshop thumbnail

Toolbar: Toggle Inspector
Hides/Reveals the inspector

Toolbar: Save & Play
Saves the level and starts a playtest of it
5 Comments
Pax 3 Jan, 2024 @ 9:38am 
For friends who import files of 0 bits above, you need to check three things: 1. Have all brushes and wego been selected? 2. Select "" export generated render meshes "" when exporting. 3. Have they been placed in your map folder. Ensure the above three things, so you won't make a mistake?
Coren 9 Aug, 2023 @ 11:32am 
Is the Export to Obj function in unity still working? I have
created a simple model in unity using the provided RealtimeCSG from the discord,
turned on "Show Meshes",
and used the GameObject > Turbo Overkill Modding > Export to OBJ to export the Obj file to the correct location (C:/User/[yourname]/AppData/LocalLow/Trigger Happy Interactive/Turbo Overkill/ModContent/[the name of your mod file]) with the correct name (wgeo.obj).

It exports a wgeo.obj file but the file is showing as being 0 bites large?
wadaholic  [author] 27 Aug, 2022 @ 6:24am 
Currently you can import OBJ files from Blender, the only problem at the moment is I haven't setup the material importing correctly. At the moment, it will read the meshes name and attach a material to that mesh based on that. I haven't created a template file for Blender as of yet (I would like to get the materials working as intended before I set one up). There will also be support for custom materials soon.
Blindlight 21 Aug, 2022 @ 3:31pm 
thanks for the guide, i have the same question as ivy-- for example if I want to export something from blender and use the game textures or add new image textures what considerations would we need to take
iren_ivy 18 Aug, 2022 @ 6:07am 
Thank you very much for the guide.
I wonder if I can use any other program than Unity to make custom obj geometry and if so, what requirements such geometry might have.