Designing Desperados III Levels with Cheats

The last update of Desperados III enabled players to modify and design custom levels using the built-in cheats. This page serves as a short introduction on how to do this. For more information see also the official tutorial which includes a small video series on how to get started with the level editing cheats. You can also find levels created and shared by other people on desperados.mod.io.

Note that level editing cheats are only available in the PC version of the game.

## Setup

To start modifying and designing custom levels you first need to enable in-game or developer cheats. To enable in-game cheats open the options menu and type out `honorless`. There is no text box to type this in so you just need to press the keys in the right order. On success you should see a confirmation message which also notifies you that badges will now be disabled temporarily. To disable the cheats again you can simply retype the code or restart the game. Since cheats are reset on every game restart you have to enable the cheats again every time after launching the game.

## Basics

After that you're now ready to start modifying a level. First, simply load into a level as usual. Before placing your own enemies and obstacles you probably want to start by clearing out any existing ones. To remove enemies, hover over them with your mouse and press `Right Shift`+`Delete`. This will trigger their dying animation, after which they will vanish completely.

Before you start modifying the level further, make sure to crate a hard save file. It is a good idea to regularly create such saves since many of the changes produced by the level editing cheats can not be reversed. You can always remove enemies and civilians again using `Right Shift`+`Delete` but you can not remove other entities like oxen, campfires or ammo crates this way so if you forget to save you will need to redo everything since the last save or live with the result. In addition to hard saves you can use quick-saves to quickly try things out and rewind if you don't like them.

Now you can start with placing your own enemies. The basic guard types can be placed by hovering your mouse at the desired location, holding `Insert` and pressing a number between `6` and `0` which spawns a simple guard, a poncho, a long coat, a gurad dog, or a civilian respectively. You can also hold down `Right Shift` to place a female version and `Right Alt` to place a guard holding a lamp (although note that civilians and dogs can't be spawned with lamps and dogs and long coats don't have a female version).

Spawned entities will always start out facing the camera so you can adjust their orientation by rotating the camera before spawning them.

## Spawning Player Characters

The easiest way to add additional player characters is to launch the level in bounty mode before starting to modify it. You can then simply select the characters you want.

Alternatively, you can spawn additional player characters by again holding down `Insert` but this time pressing a number between `1` and `5`. This will spawn the character corresponding to that number i.e. `1` will spawn Cooper, `2` will spawn McCoy, and so on.

If you want to spawn more exotic characters like the animals from the baron mission or specific character designs from certain levels like the wounded Cooper from DeVitt Goldmine or the dressed up version from Casa DeVitt use the techniques described in the next section instead.

With the spawn codes explained below it is even possible to have the same character multiple times but this doesn't work perfectly. The number hotkeys will always select the latest spawned character but the portrait on the left side will always select the original or first spawned character. However, you can always select the exact character you want using the mouse, either by right-clicking them or by holding right-click and drawing a box around them.

## Spawning other Entities

To spawn more specific guards and player characters, or other entities like horses, boss characters, or even gattling guns or dynamite barrels you need to use the numeric spawn cheats. Start out by holding `Insert`+`Right Alt`+`0` as if trying to spawn a civilian with a lamp (which of course isn't possible). Then, keep holding `Insert`+`Right Alt` and type in another four digits. This four digit number determines which entity is spawned. For example, try out `0000` to spawn a horse. You can find a complete categorized list with images of all spawnable entities and their corresponding number here.

Generally the numbers follow a pattern where the first two digits specify the type of entity to spawn (e.g. ox, guard, civilian, character) and the last two digits specify the exact version or look. For example `0400` spawns a female civilian, `0401` spawns a male civilian and `407` spawns a civilian prostitute. On the other hand the codes from `1200` to `1203` spawn in thugs with various tools and codes starting with `16xx` spawn different kinds of ponchos and boss characters based on them.

The most important spawn categories are `0000` to `03xx` for animals, `04xx` for unfriendly civilians, `05xx` for friendly civilians, `0800` to `18xx` for enemies, `1900` to `2700` for the usual playable characters and `61xx` for special entities like ammo chests, a gatling gun, different sizes of campfires, two possible mission objectives, and various others.

As mentioned before, spawned entities will always start out facing the camera. This also applies to inanimate objects like chests. If you want to rotate them, simply rotate your camera before spawning them but be careful since you can't remove these objects easily. So always make sure to save regularly to avoid any issues.

## Setting patrols

Enemies so far only stand around which is not very interesting. To make enemies move around we need to spawn them on a patrol path which is created by spawning multiple patrol waypoints.

Waypoints are spawned like any other entity using the number cheats described above i.e. by placing your mouse at the target location, holding down `Insert`+`Right Alt`, pressing `0` and then the correct four digit number. The four types of waypoints are:

* `6000` Walk Waypoint
* `6001` Run Waypoint
* `6002` Walk Ping Pong Waypoint
* `6003` Run Ping Pong Waypoint

To place an enemy onto a patrol you first need to spawn in the waypoints in the correct order. Then, the next enemy you spawn will get assigned to those waypoints and start patrolling along them.

Waypoints assigned to the same enemy must all be of the same type i.e. either all normal waypoints or all ping pong waypoints. For the most part the game enforces this by itself but it is possible to mix them in certain circumstances which will create broken patrols. But you can freely mix walk and run waypoints.

You can spawn an unlimited number of normal waypoints. An assigned enemy will then simply walk towards each waypoint in order until the end and then start again from the beginning.

On the other hand you can only place two ping pong waypoints. The enemy will then walk between these two waypoints.

At first glance this seems very similar to simply placing two regular waypoints which will also cause the enemy to walk between these to but is a small differences. When using ping pong waypoints the enemy always waits for a short fixed and period on both waypoints during which he will face his original orientation i.e. towards where the camera was when the enemy was spawned. On the contrast enemies on normal waypoints will always only turn towards the next waypoint and start going as soon as they face the right direction.

Lastly, when mixing walk and run waypoints, the walking speed is always determined by the current target waypoint. This means when going towards a walk waypoint the enemy will walk and going towards a run waypoint they will run.

And finally, if you have mistakenly placed a waypoint, there seems to be no easy way to remove it again but you can simply spawn in a random enemy (e.g. using `Insert`+`6`) and then immediately remove them again using `Right Shift`+`Delete`.

## Mission Goals

To create a proper mission you of course also need a target that the player can reach. One option is to simply reuse the existing level objectives in the level you are modifying. Alternatively, you can also spawn in two types of additional mission objective.

The first mission goal is a simple level end trigger which can be spawned with `6118`. This will place something that looks like a dynamite igniter. The level then ends as soon as any character activates the trigger.

Alternatively, you can spawn in a Regroup-Trigger-Volume with code `6119`. This will require all characters to regroup at that location without an active alarm. If those conditions are met the level again ends immediately. However, this method only works when the level was started in bounty mode or already contains all five characters. Otherwise the regroup point will require more characters than you have and not end the level. But when you start a level in bounty mode the number of required characters gets set correctly. If you don't want any additional characters in your level you can simply launch the level in bounty mode without selecting additional characters.

After you have set up a custom objective you can also block off the original one, effectively making the newely created mission objective the only one that matters.

## Additional useful Cheats

Besides the spawning cheats there are still a numbre of other cheats that are useful for level editing. You can find an overview of all cheats here but the main important ones are `F10` to teleport all selected characters and `Page Down` to make a character invisible. This makes it easier to move the characters to your desired starting position and fulfill setup tasks that require a character like igniting a fire. But make sure you make the character visible again before sharing your level by using `Page Up`. Other useful cheats also allow you to damage or kill enemies without removing them which can be useful to create a certain scenery and tell a better story, or switch Hector's trap between the killing and stunning version.

## Sharing a level

At some point you will have created a complete level and may want to share it with other people. First make sure that your characters are not set to be immortal or invisible. Then place them and the camera at the desired starting position and create a hard save. Now, navigate to the directory in which your Desperados III save games are stored. On Windows this path is `%localappdata%\Desperados III\user_steam_<some random number>\gameState_00\manualSave` for most versions of the game which is equivalent to `C:\Users\<your username>\AppData\Local\Desperados III\user_steam_<some random number>\gameState_00\manualSave`. For the GamePass version the save games are stored at `%localappdata%\Packages\NordicGames.DesperadosIII_46xc33nm0q0f8\LocalCache\Local\Desperados III\user_steam_<some random numer>` instead. In this directory you will find all your save games. Search for the one you just created which should be the one with the newest modification date. The file you are looking for should have a `.save` extension. You can ignore any files with different extensions.

To share your level you can now simply copy this file and send it to somebody else. You can also upload it to the official level sharing site desperados.mod.io. The site contains a guide on how to do this. Other players can then move the save game into their save game directory and load it from the main menu like any other save game.

If you want to present your level a bit nicer, you can open the save game file with a zip extractor. In practice a save game is nothing more than a differently named zip file. After opening or extracting it you will now see a `screenshot.png` image. If you want you can modify that image and then rezip your save game or add the image back into the zip archive. This image will then be shown to users in the loading screen which allows you to make a custom thumbnail for them.