Build your own levels, import them and share them with others!

Find the game on Steam, Xbox, Discord.

Descenders Modding Guide

This is the Descenders Modding Guide made by the developers of Descenders.


Posted by on (updated ago)


1. Unity project

The first thing you will need to start working on your Descenders mod is the exact same Unity version that’s used to make Descenders.
You can download that Unity version here:

2. Importing packages

You will need to import the Descenders Mod Tools.unitypackage in your project to be able to export your Unity scene as a mod for Descenders. You can download this here:
Descenders Mod Tools.unitypackage

To get you started we have a few packages that may be interesting for you to download.

The Descenders CustomMap.unitypackage can get you started with some authentic Descenders ramps, checkpoints, starts and finishes. This will help you on your way.
If you want to create a BikeOut map, you should download and import the Descenders Bikeout Assets.unitypackage.

3. Scene management

First and foremost, make sure that when you export your mod there is no Main Camera active in your scene!
Apart from that there’s a couple things you will need to have in your scene to make sure your mod will work correctly in Descenders. I will list them for you here:

  • Start
  • Finish

‘Start’ should be an empty GameObject and should be positioned where you’d want the player to start in your map. Keep in mind that the Z-forward in Descenders means front. Also you will need to give your ‘Start’ the Tag: ‘Startline’ in Unity, as shown in the image below.


‘Finish’ should be an empty GameObject that has a Box Collider that has the Is Trigger checked. The Box Collider serves as a trigger for when to finish a player.


The ‘Finish’ object should have the Tag: ‘Finishline’ in Unity.

There are more Tags however you can use in your project to work with a Descenders mod.

  • ‘Checkpoint’
  • ‘Deathzone’
  • ‘Nobailzone’

These are also GameObjects with a Box Collider that serves as a trigger. ‘Checkpoints’ will have the player spawn from said ‘Checkpoint’ as the player passes through. A ‘Deathzone’ will bail the player, while a ‘Nobailzone’ will prevent the player from bailing.

Here’s an overview of the tags you can use in your Mod project:


Make sure to use the tags in this order otherwise they’ll get mixed up!

4. Scripts

It is possible to use scripting in your custom maps. However these scripts will need some additions to make sure they work with the Descenders mod implementation.

You’ll have to make sure your script has using ModTool.Interface; at the top.

And that your public class will be derived from ModBehaviour, not from Monobehaviour. Otherwise they will not be exported. Here’s an example:

<~INNERCODE~ class="lang-cs">using UnityEngine;
using System.Collections;
using ModTool.Interface;
public class YourClass : ModBehaviour


  • The player object in-game is called ‘Player_Human’. So you can use GameObject.Find("Player_Human") to find it.

5. Exporting your mod

Before this step make sure you have imported the Descenders Mod Tools.unitypackage

If you have any assetBundle scripts and files leftover from Mayhem’s Map importer be sure to delete those as they might mess up the ModTool exporting!
Make sure your scene is added in File > Build Settings… as well.

Another thing is make a backup of your scripts! If you close the Unity scene before the export is finished it might delete your scripts.

When you’ve finished your map it’s time to export it so it can be used in Descenders.

To export your mod in Unity go to Tools > ModTool > Export. The image below will popup.

export settings

Give your mod an appropriate name, author, version and description. Make sure the platforms Windows, Linux and OSX are selected. And make sure that from the Content dropdown menu Scenes, Assets and Code are selected.

Give your mod an output directory that you can find later to use in


Make sure you have an account at

Follow the steps in the Descenders game page to add your mod. Make sure you have your Mod compressed as a ZIP file.


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

Siro @siro1

Can anyone tell how to test the mod locally?
I saw that there is a folder called "Mod" inside the games directory but it doesn't work just putting the ZIP file in there.
Also, I uploaded the mod here and made it PRIVATE but then I can not find it in the collection, even if logged in?

Siro @siro1

Alright, seems to work if you unzip it and put it inside the "Mod" folder.
Have fun, Siro.

RosieRageSquid @roanalbers

You should be able to see your own mod in, it's private so only us admins and you can see it.

josef3009 @josef3009

I put my map in the mods folder but it doesn't show up in game, same for the mods folder in appdata

The_Taco_Tony @the-taco-tony

It also seems important to install unity with Andriod, Mac, and Linix build support.

curryhans @curryhans

I paint on the Terrain Layer but if I start the game the paint texture is gone. Can anyone help me

stoner_will @stoner-will

I need a crash course on scripts every map I make cannot be imported because of wrong scripts :(

ikatanwarrior @ikatanwarrior

Does every script need to be ModBehaviour? I have some scripts that derive from other classes that I cannot change to ModBehaviour.

GabRioBlu @gabrioblu

Really, REALLY late, but it should be able to derive from a class that derives from modbehaviour. Maybe, I don't know how it works under the hood. You could try something with interfaces, or you could just create an instance of the class you were inheriting from.

samtoplis @samtoplis

Whenever I try to open a mod in the game it gets stuck at unpacking mod. Not sure how to solve this?

Bromanji @bromanji

RageSquid, How do I get other peoples mods? I have Descenders on Xbox but I want to do custom maps and it says subscribe to install but doesn't work. Please help.

exZachtly @exzachtly

Xbox doesn't have any custom maps, just what is within the Bike Parks category. You need Descenders from Steam for computer to use mods.

GabRioBlu @gabrioblu

I'm making a map, and whenever I spawn, I get blasted into space, like when you hit the world border. Can't figure out what's happening.

TeeNikx @teenikx

Steam seems to not want me to be able to see my games or anything at all in it. I can't find the game in my files at all.

TeeNikx @teenikx

Gear/bike mods ??? How to get? Bike mods get? Mods bike download?

SmartyManz @babyfood1595492560

Spent hours making a map only to have it show up black once loaded, I notice too it sounds as if I'm falling and possible in a settings menu since every button i press both controller and keyboard makes a menu select sound.
I have also started a fresh project and followed this tutorial exactly to find the exact same result(black screen / falling / menu sounds on button press)
Any thoughts ?

EDIT : Figured it out, had another scene in my project...

Fastafboi @fastafboi

how do you solve the problem?

AdyStudios @adystudios

Probobly he deleted that scene

AdyStudios @adystudios

This is so cool to see that developers make modding easy, thank you RageSquid and NoMoreRobots!

AdyStudios @adystudios

Is it possible to test the mod in the editor? Like I think no cuz we would need the source code, but if there a way please tell me. ;)

AdyStudios @adystudios

How do I move the player or assign a script to the player?

AdyStudios @adystudios

How to put down multiple startlines so that you can cycle through all starts by pressing r?

Minesheap @nx577826

WHat da dog doin?

BlueInside @blueinside

How Do U Play?

Terryd33 @terryd33

i cant set it up could someone help me

S1RY @s1ry


gerardphilippe @gerardphilippe

Trying to use this on Linux, I can't export any mod because setting the output directory doesn't work. When trying to set an output directory the console shows

NullReferenceException: Object reference not set to an instance of an object
UnityEngine.GUILayout.Space (Single pixels) (at /home/builduser/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:271)
ModTool.Exporting.Editor.ExportSettingsEditor.OnInspectorGUI ()
ModTool.Exporting.Editor.ExporterEditorWindow.OnGUI ()
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at /home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:295)
UnityEditor.HostView.Invoke (System.String methodName) (at /home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:288)
UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at /home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:255)

And then of course clicking the "Export Mod" button errors with:

Verifying Project failed: No output directory set
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)