Adding a teleport to a SOF2 map: all the key-value pairs

The process of modding old games is mostly dead links. Some of these dead links are behind logins or paywalls. For an upcoming lanparty, we needed teleports in our map for Soldier of Fortune 2. After some googling and reading documentation, this post summarizes how we did it.

SOF2 runs the Quake 3 engine, meaning it can be modded using GTKradiant. Radiant’s file format is .map.

Here’s what we needed to add to our .map-file. Replace the two occurrences of 487 655 30, with the x y z coordinates of the target of your teleport. The other lines (after brush 0) are the six planes of the triggering area (the source of the teleport). It’s probably easier to move this area around using GTKradiant.

The three entities are numbered. The syntax may suggest that this is a comment, but I think it couldn’t hurt to make it a logical sequence with the rest of your file.

// entity 199
{
"classname" "target_teleporter"
"origin" "487 655 30"
"target" "1"
"targetname" "teleport"
}
// entity 200
{
"classname" "target_location"
"origin" "487 655 30"
"targetname" "1"
}
// entity 201
{
"classname" "trigger_multiple"
"target" "teleport"
// brush 0
{
( -728 504 56 ) ( -728 472 56 ) ( -728 472 48 ) tools/_trigger 0 0 0 0.125000 0.125000 0 7 0
( -672 504 56 ) ( -728 504 56 ) ( -728 504 48 ) tools/_trigger 0 0 0 0.125000 0.125000 0 7 0
( -672 472 56 ) ( -672 504 56 ) ( -672 504 48 ) tools/_trigger 0 0 0 0.125000 0.125000 0 7 0
( -728 472 56 ) ( -672 472 56 ) ( -672 472 48 ) tools/_trigger 0 0 0 0.125000 0.125000 0 7 0
( -728 472 56 ) ( -728 504 56 ) ( -672 504 56 ) tools/_trigger 0 0 0 0.125000 0.125000 0 7 0
( -672 504 48 ) ( -728 504 48 ) ( -728 472 48 ) tools/_trigger 0 0 0 0.125000 0.125000 0 7 0
}
}

Of course, it’s not necessary to edit the map in a text editor. You could add the same key-value pairs using the entities menu. This can be opened by pressing N in GTKradiant, while having an object selected in the interface.

For the source of the teleport, it’s important to use the _trigger texture. Give this the following key-value pairs:

"classname" "trigger_multiple"
"target" "teleport"

After compiling your map, with these lines added, you should have a working teleport.