Steamroller Arma 3 Road Converter

Steamroller automatically converts Arma 2 road networks to shapefiles for use with Arma 3’s new road technology. It was originally written in 2014, and has since been used by the authors of many popular Arma 2 maps to update their road networks for Arma 3 map releases.

You can download it from here:

Using Steamroller

Steamroller works by:

Conversion Examples

After conversion, the shapefiles can be loaded into Terrain Builder or a GIS package and viewed and edited.

This is an example of Chernarus’ roads after conversion, with each of the layers shown in a different colour:

Chernarus Roads as a Shapefile

And this is an example of Takistan’s roads after conversion:

Chernarus Roads as a Shapefile

Note that any shapefiles or other data derived from materials released under Bohemia Interactive’s Public Data licences would also almost certainly be subject to the same licence conditions.

Example Configuration

The following is an example job file for upgrading Chernarus roads:

search_path "P:\\"

snap_threshold 1.1
simplification_threshold 0.5
coincident_point_threshold 1.1

source "P:\\CA\\Chernarus\\chernarus.wrp"
destination "P:\\new\\new_chernarus\\data\\"

#include "ca.jobinclude"

To specify the shapefile layers that roads should be placed on, the following ca.jobinclude file is referenced in the above job file:

prefixes
{
    include "ca\\roads_e\\roads"
    include "ca\\roads_pmc"
    include "ca\\roads2"
}

glue
{
    include "^ca\\\\roads2\\\\kr_"
    include "^ca\\\\roads_e\\\\roads\\\\kr_"
}

layer "runway"
{
    include "^ca\\\\roads2\\\\runway_"
}

layer "invisible"
{
    include "^ca\\\\roads2\\\\road_invisible"
    include "^ca\\\\roads_e\\\\roads\\\\road_invisible"
}

layer "asf1"
{
    include "^ca\\\\roads2\\\\asf1_"
}

layer "asf2"
{
    include "^ca\\\\roads2\\\\asf2_"
    include "^ca\\\\roads_e\\\\roads\\\\asf2_"
}

layer "asf3"
{
    include "^ca\\\\roads2\\\\asf3_"
}

layer "city"
{
    include "^ca\\\\roads2\\\\city_"
}

layer "grav"
{
    include "^ca\\\\roads2\\\\grav_"
}

layer "mud"
{
    include "^ca\\\\roads2\\\\mud_"
}

layer "path"
{
    include "^ca\\\\roads2\\\\path_"
    include "^ca\\\\roads_e\\\\roads\\\\path_"
}

layer "bridge"
{
    include "^ca\\\\roads2\\\\bridge\\\\"
}

layer "asf10"
{
    include "^ca\\\\roads_e\\\\roads\\\\asf10_w10_"
}

layer "asf12"
{
    include "^ca\\\\roads_e\\\\roads\\\\asf12_w12_"
}

layer "dirt12"
{
    include "^ca\\\\roads_e\\\\roads\\\\dirt10_w10_"
}

layer "dirt7"
{
    include "^ca\\\\roads_e\\\\roads\\\\dirt7_w7_"
}

layer "dirt2"
{
    include "^ca\\\\roads_e\\\\roads\\\\dirt2"
}

layer "dirtrunway"
{
    include "^ca\\\\roads2\\\\runwayold_80_dirt"
}