Skip to content
Zypres edited this page Apr 21, 2024 · 158 revisions

OpenRA comes with an easy to understand in-game map editor. You can access it from the main menu: -> Extras -> Map Editor. With this tool you can create new maps, or edit maps that already exist.

Screenshot

It has a drag and drop interface which should be intuitive. You can middle mouse drag to move and use the mouse wheel to zoom in and out.

Converting maps for the original games to the OpenRA map format

The OpenRA.Utility.exe command can be used to convert TD, RA and D2k maps to the OpenRA .oramap format. The syntax is as follows:

OpenRA.Utility.exe cnc --import-td-map filename.ini
OpenRA.Utility.exe ra --import-ra-map filename.ini
OpenRA.Utility.exe d2k --import-d2k-map filename.map TILESET

where TILESET is something like BLOXBASE.R8 (also see D2k Mission Map Tilesets).

The converted map will be saved in the current working directory as filename.oramap.

Note: When you are porting a mission of the original games to OpenRA, make sure to import the original map via the utility command. This is necessary to ensure that the ported map is accurate to the original which is a requirement for approving the mission in the review process. Please report any issues with the utility import commands and don't recreate the map in the map editor instead.

File Format

Maps are created with the .oramap extension by default. These files basically work as a ZIP archive with a custom file ending. You can open these files with an archive program. At minimum each map contains a map.bin containing the terrain and resource information in binary format as well as map.yaml which describes actor placement, weapon definitions, even override default game rules using all Traits. For missions you can use Map scripting powered by Lua.

As creating extremely customized maps is error-prone there are some additional checks in place. You can use OpenRA.Utility.exe --check-yaml to run automated tests on them. If these fail, the game will not allow you to play the map to prevent crashes. While the engine progresses your map may become incompatible with the next release. Check the Upgrading Guide as OpenRA.Utility.exe provides a helper command to automate the porting as much as possible.

The map boundaries have to stay divisible by 8 and require an outer boundary that is inaccessible by the players (cordons). The size has no limits though extremely large maps degrade game performance and may make no sense gameplay wise.

Sharing

http://resource.openra.net/ is the central repository to upload and showcase custom maps. It is tied to the client and allows everyone who joins the game to download maps that have been shared there. Every time you make changes to a map, the numerical hash to uniquely identify it, will also be different to prevent desyncs.

Location

Custom maps are stored in the user directories with sub-directories per mod. The default location is as follows, but one can choose to move it to an arbitrary location by passing an Engine.SupportDir argument to the Game.exe

Windows: %AppData%\OpenRA\maps\

macOS: /Users/<username>/Library/Application Support/OpenRA/maps/

GNU/Linux: ~/.config/openra/maps/

Older releases (before playtest-20190825) used different locations, which newer versions may continue to use in some circumstances:

Windows: %USERPROFILE%\Documents\OpenRA\maps\

GNU/Linux: ~/.openra/maps/

An unzipped folder containing the necessary files will also work which is useful when the terrain editing is done and the text files are tweaked manually. When contributing maps to be distributed with the main game, only zip regular maps without custom rules. Otherwise the changes won't be visible in the revision control system. It is also suggested to avoid spaces in the map filename.

Singleplayer missions

Singleplayer missions will appear in the missions menu if they are specified in a mission group in one of the mission files referenced from mod.yaml and have the following set

Visibility: MissionSelector

Categories: Campaign

in their map.yaml.

Custom (third-party) missions in standard mods are currently included in the unsorted catch-all "Missions" group. Support for custom campaigns will be added in a future release.

Singleplayer missions should include a custom map preview by including a 360 x 200px map.png file in the map package. Generic Allied and Soviet mission previews are included in the mods/ra/maps/allies-* and mods/ra/maps/soviet-* directories, respectively.

Creating previews from the TD campaign maps

  1. Use XCC Mixer to find and convert the wsa animation to a set of png files. They are located inside general.mix.
  2. Find the frames that correspond to the full map with and without the mission arrow, and open them in your image editor of choice.
  3. Select and erase black background from both images, and then copy the two layers into one image. Don't forget the two-px black region between Denmark and Germany!
  4. Correct the image's aspect ratio by rescaling the image to 267 x 200px, and then increase the canvas width to 360px.
  • Extract the arrow images from the original (non-resized) image, copy to the resized image, and use the stretched-arrow layer as a guide to position the non-stretched arrows. Delete the stretched-arrow layer.
  • Export the preview to png, and save the source file (with layers for the background and arrows) in the artsrc directory.

See also

Players ๐ŸŽฒ

Modders โœ๏ธ

Developers ๐Ÿ”ง

Clone this wiki locally