KA Mapping

If you ever want to build new maps for Korax Arena and want to know how the new stuff works, you have stopped in the right place, this is the official documentation for mappers and modders.

If you want to create new maps for Korax Arena, this is the documentation available for Korax Arena, we are still working on the documents and some things might change in future versions of Korax Arena.

General Information

Before you ever commenced planning your future maps for Korax Arena, you should know several facts.

At the moment, Korax Arena supports the following gameplay modes: Deathmatch, Team Deathmatch, Kill The Heresiarch, Survival, Domination, Capture The Flag, Castle Sweep, Team Castle Sweep, Football and XMas Havoc.

Korax Arena allows you to use the same map for any number of game modes, assuming that it was made compatible for them.

There is a number of new things that can be put on maps made for Korax Arena, some of them are common gameplay items (health, ammo, power-ups), others provide compatibility for certain game modes. Notice that some of these new things use the same thing Ids as some of the original Hexen things, thus substituting them, so maps made for original Hexen won’t be compatible with Korax Arena without proper customization.

A number of original Hexen items are considered obsolete in Korax Arena and their usage is not recommended; putting them on maps may lead to player’s confusion or, in some cases, to game errors and crashes.

There are new ACS commands available in Korax Arena that allow to use some optional in-game features for different gameplay modes.

Map Customization

Map naming conventions

Map naming conventions used in KA is not a rule, but recommendation. Sticking to these conventions will help to recognise different kinds of maps.
It is suggested that a name of a map should consist of 2 letter prefix dependent on game mode which this map is supposed to support primarily, and a numeric index preceded by ‘_’ sign. Following is a table of prefixes corresponding to each game mode.

Primary supported game mode

Map name prefix

Deathmatch, Team Deathmatch and Kill the Heresiarch

DM

Kill the Heresiarch (map intentionally made for KTH in particular)

KH

Survival

SU

Domination

DO

Capture The Flag

CF

Castle Sweep, Team Castle Sweep

CS

Xmas Havoc

XM

Multimode (Map made intentionally for multiple game modes)

MM

Thus, for example, a map made primarily for Deathmatch modes should be named like DM_05.

Adding MAPINFO Entry

Since powered by Vavoom engine, Korax Arena can only detect maps that are registered in MAPINFO script. When your map is ready for playing or testing, a corresponding entry must be added to MAPINFO to make game aware of its presence.

Main KA MAPINFO script is located in the ”’data.pk3”’ package and may be edited with any text editor. Optionally you may create additional MAPINFO script and supply it with your map, put inside same WAD file.

Korax Arena MAPINFO script has absolutely same syntax as common Vavoom games.

It is strongly recommended that you use unique map names and map titles, or your new map may substitute an original one in game.

Adding map to the game mode lists

If you have already added your new map to MAPINFO, there is yet one thing to be done. You must make sure that your map will be available for certain game modes.

Korax Arena uses special scripts to define a map lists for each game mode separately. These scripts are stored in ”’basepak.pk3”’ package and have following file names:

File name

Corresponds to game mode

gm_ctf.txt

Capture The Flag

gm_dm.txt

Deathmatch

gm_dom.txt

Domination

gm_ftb.txt

Football

gm_kth.txt

Kill The Heresiarch

gm_srv.txt

Survival

gm_swp.txt

Castle Sweep

gm_tdm.txt

Team Deathmatch

gm_tswp.txt

Team Castle Sweep

gm_xmas.txt

Xmas Havoc

Check these to know if your map match wanted game modes’ conditions, and if it doesn’t, then edit script(s) manually.
Map list script syntax is very simple and allows two ways of defining an enlisted map name.

1. Typing in actual map name. This entry will make only that one sole map be added to game mode.
Example:

CS_02
CS_03

2. Typing in a map name filter: a certain prefix followed by asterix sign (*). This entry will make all maps which names start with given prefix be added to game mode.
Example:

DM_*
CF_*
FB_*

Things

Thing Flags

Korax Arena introduces Thing Flags different from the original Hexen ones. If you are using the Doom Builder map editor there should not be much problem with that, since DB allows to customize Thing Flags in game configuration file (and Korax Arena has such a configuration file). If you’re using any map editors (like WadAuthor) that do not have such a possibility, you’ll have to use below’s flag correspondence table.

Thing Flags Table for Doom Builder

Flag

Value

Meaning

Easy (skill)

0x0001 (1)

unused (? need to be checked)

Normal (skill)

0x0002 (2)

unused (? need to be checked)

Hard (skill)

0x0004 (4)

unused (? need to be checked)

Deaf (aka Ambush)

0x0008 (8)

Monster is deaf

Dormant

0x0010 (16)

Thing is initially inactive

Game mode flags (determine in which game modes this Thing will appear)

Flag

Value

Meaning

Always

0x0100 (256)

Any game mode (overrides all the other game mode flags)

Deathmatch

0x0200 (512)

Deathmatch, Team Deathmatch and Kill The Heresiarch

Capture The Flag

0x0400 (1024)

Capture The Flag

Domination

0x0800 (2048)

Domination

Castle Sweep

0x1000 (4096)

Castle Sweep and Team Castle Sweep

Football

0x2000 (8192)

Football

Xmas Havoc

0x4000 (16384)

Xmas Havoc

Thing Flags Correspondence Table for other map editors

Korax Arena Thing Flag

Original Hexen Thing Flag with corresponding value

Easy (skill)

Easy (skill)

Normal (skill)

Normal (skill)

Hard (skill)

Hard (skill)

Deaf (aka Ambush)

Deaf (aka Ambush)

Dormant

Dormant

Always

Singleplayer

Deathmatch

Cooperative

Capture The Flag

Deathmatch

All other flags

none 🙁

Obsolete Thing Types

This list is missing.

New Thing Types for placing on maps

This is a basic list of the new thing types you can use when building maps for Korax Arena, some of the things listed here are specific to certain gameplay modes (which is noted, and a link to the correct gameplay mode is supplied with it). This will be updated as new thing types are added to the game, also, some of the descriptions aren’t complete yet, this will get worked on newer documentation revisions:

Note: This list is incomplete, it comes from the Korax Arena beta release, some things may change or be removed if needed.

Player starts

Player starts are spots at which the player is spawned when the game begins and where the player respawns after being killed. The following types of player starts are in use in Korax Arena: Player Deathmatch Start, Blue Netmatch Start and Red Netmatch Start. Other original types like Player 1 Start, Player 2 Start, etc. are counted obsolete in Korax Arena.

Player Deathmatch start (type 11)

Most common player start.

Blue and Red Netmatch starts (types 15040 and 15041)

These two types of player spawning locations are in use only two-teams game modes: ”Capture The Flag” and ”Football”. They make it possible to separate spots where players of different teams are being spawned, thus allowing to make sure players won’t appear at their opponent’s base.

Common Things

Weapons and Ammo

KA allows 8 weapon types for each player class, two of them are given to player initially, the other 6 can be collected during the game. While each class has different weapons, they are all represented by the same 6 pickups on maps. They are things named 3rd Class Weapon, 4th Class Weapon etc. A mapper should not bother deciding what exact weapon the player will receive by gathering these; this is handled automatically by the game depending on the selected player class.

Ammo for all weapons is Mana. There are 3 kinds of it:

Blue Mana

Green Mana

Red Mana

Here is a quick reference showing which weapon uses which mana type:

Weapon Slot Number

Used Mana Type(s)

1st Class Weapon

Does not require mana

2nd Class Weapon

Blue mana

3rd Class Weapon

Green mana

4th Class Weapon

Red mana

5th Class Weapon

Blue mana

6th Class Weapon

Green mana

7th Class Weapon

Red mana

8th Class Weapon

All three types of mana (at once)

Each Mana kind comes in two different versions, Small and Big, Small type gives 20 of its Mana kind, while Big type gives 30 of its Mana kind. Finally, there are special pickups like Combined Mana and Krater Of Might that give all three types at once. Combined Mana gives 40 of all types, while Krater Of Might gives 50.

There are 2 types of Alternative Weapons in Korax Arena: Flechettes and Discs of Repulsion. They are gathered like ammunition and can be used same way regardless of player class, each of them give 20 units of ammunition.

Health and Armor

There’s not much special in them. All items of these two groups are picked up and used instantly, effect is equal to all player classes.

Health items are:

Crystal Vial (10 health)

Quartz Flask (25 health)

Mystic Urn (100 health)

Armor items work like they worked in Doom and Heretic, they are accumulated to provide up to 200 armor points, which will ‘absorb’ damage made from projectiles to the player:

Mesh Armor (20 armor points)

Falcon Shield (15 armor points)

Platinum Helmet (10 armor points)

Amulet of Warding (5 armor points)

Dragonskin Bracers (200 armor points)

Power-Ups

In Korax Arena players do not have an inventory to keep artifacts for future use, thus there are no pure ‘artifacts’ in game, but there are ‘power-ups’ instead, that are used instantly when picked up. Things in this group are:

Porkalator (transforms nearby enemies into pigs)

Icon Of The Defender (temporary invulnerability)

Dark Servant (spawns Maulotaur servant in one of the predefined in map positions)

Boots Of Speed (temporarily boosts player speed)

Shadow Sphere (temporary invisibility, also certain projectiles can’t harm the player while invisible)

PI Damage (temporarily increase player damage; all the damage is multiplied by 3.14)

Special Things

Maulotaur Spawn Spot

Maulotaur Spawn Spot is used to define possible locations for spawning Maulotaur-dark servant. When a player pickups a Dark Servant artifact, a Maulotaur appears at one of those Spawn Spots, chosen at random.

This means that if you want a Dark Servant powerup to be usable in your maps, you must place at least one Maulotaur Spawn Spot on your map.

Heresiarch Spawn Spot

Heresiarch Spawn Spot is an optional location at which a Heresiarch should be spawned during Kill The Heresiarch game mode. For more information see the chapter “How to make a Kill The Heresiarch Map”.

HSSs are useless in amy other game modes instead of KTH, and they will be removed from the map unless you play KTH regardless of their Thing Flags.

CTF Banner

A CTF Banner is an object that must be captured by opposing teams during a ”Capture The Flag” game match. For more information on this topic see the chapter “How to make a Capture The Flag Map”.

”CTF Banners” are useless in any other game modes than CTF, and they will be removed from the map unless you play CTF regardless of their Thing Flags.

Domination Sigils

Domination Sigils are magical “signs” floating above the ground, that have to be captured in Domination game mode. Fore more information on this topic see the chapter “How to make a Domination Map”.

Domination Sigils are useless in any other game modes than Domination, and they will be removed from the map unless you play Domination regardless of their Thing Flags.

Football Things

Special things for Football game mode are: Soccer Ball, Soccer Ball Spot and Soccer Kick-Off Spot. For more information on them see the chapter “How to make a Football Map for Korax Arena”.

All of those thing types are useless in any other game modes than Football, and they will be removed from the map unless you play Football regardless of their Thing Flags.

Xmas Havoc Tree

Xmas Havoc Trees are burnable trees that have to be destroyed during Xmas Havoc game match. Fore more information on them see the chapter “How to make a Xmas Havoc Map”.

In any other game modes these trees won’t grant score at all, but they are not removed and act as destroyable decorations.

Team Colored Decorations

This entry is missing.

Bot Path Nodes

Bot Path Nodes are simple things similar to Map Spot that help Bots wander around the map and perform actions necessary for scoring. Path nodes are invisible in game by default, their visibility can be toggled on by setting ‘ShowPathNodes’ console variable to 1 anytime ”’except”’ during the match.

Regardless of node type, there are some common rules about them:

Bots aim the node only if it can see it and reach it from its current position. That means that if you want to make bot be able to walk between two nodes, you must make sure that there’s a straight clear passageway between them. This passage may include any number of sectors with different floor heights, but bot will only take this route if it is possible for him to run all the way to next node along the straight line (assuming he may jump up and drop down from safe heights as well).

Bot remembers about the last 256 nodes he visited, which makes it possible for him to run a logical path. This “memory” is erased, however, as soon as bot engages in fight or performs some important action like capturing the enemy flag.

When Bot reaches the node and wants to continue running somewhere (and not doing something else like gathering nearby items and attacking enemies), he chooses the closest reachable node; there’s a small chance however that he will choose some other.

Common Path Nodes

There’s absolutely nothing special about common path nodes, they are usefull in any game mode; in such games as Domination, CTF and Football (that have their own specific path nodes) they serve as auxilary paths, for example ones that lead to ammo stash or similar places.

Priority Path Nodes

As comes from their name, priority path nodes are more attractive for bots; they should be used to create main movement paths around the map, between some important places and so on.<br>
While useful in all the game modes, they are especially important for Domination, where bots must know how to get to nearest uncaptured Domination Sigil if there is such urgent need.

Offense Nodes

Offense nodes are only needed for CTF and Football game modes and should be used to make a offensive path to enemy base (or gates).

Defense Nodes

Defense nodes are only needed for CTF and Football game modes and should be used to define guard spots for base/gate defenders.

Return Nodes

Return nodes are only needed for CTF to let bots know the best path back to their base after they captured enemy flag.

Soccer Goal Spot

Soccer Goal Spot is a special map spot thing for Football game. It makes bots know where kick ball to (i.e. where enemy gates are positioned). Several Goal Spots can be used per each gate to allow bot kick ball in different ways.

Map Scripting

About the new script compiler

In the Korax Arena and Korax RPG TCs new action specials are introduced. All of them have identifier values greater than 255 to ensure none of them duplicate common ones from Vavoom. Unfortunately the original script compiler (ACC) stores action special as single byte, which does not allow to use those with identifier >255. We solved this problem by modifying ACC. New ACC stores action special in two bytes instead, so action specials can have identifier values up to 65535.

If you are not going to use new action specials in your map(s) you may still use original ACC, otherwise you’ll have to get new ACC. Currently it is included in the Korax Arena Editing package (available for download from our SourceForge account).

New Constants and Definitions

This list is missing.

New Action Specials

Following new Action Specials are introduced in Korax Arena (please, remember that you have to use our new script compiler if you are going to use them in your map script):

AGame_BeginState

AGame_EndState

AGame_HandleEvent

AGame_SetACSNotifier

IsConditionTrue

RunACSConditional

Sector_SetBouncePad

Sector_SetFunnel

Thing3dThrust

Team Color Translations

Color Translation is a method to apply corresponding team colors to game objectives or decorations. This is done by changing pixels of blue color hue to target color hue.

At this point color translation is required only for CTF and Football game modes, and will not work for others.

Due to some reasons (which are too boring to explain here) the only real way to apply color translation to game objectives and team decor in this version of Korax Arena is to use ACS (map script). That means that you will have to manually add specific code to your map script.

Basically, when the game recognises that some object needs a team color translation applied, it tries to call a map script which should do the actual translation. To make game know exactly which script number to call in this situation, the map script must “register” that script number first. This is done using the specific KA script function AGame_SetACSNotifier. This function should bind script number with team color translation event, which is represented by agame_event_colourtranslation constant. If this is done, every time some thing on map needs team color translation the registered script will be called.

That script must take 2 arguments of integer type to work properly: 1st argument is the team index from teams table (TEAMINFO lump), 2nd argument is the thing tag (TID). Script should apply a translation to thing(s) with the tag specified according to specified team index.

Following is, perhaps, a simplest possible sample of a team color translation script.

Mapping for certain game modes

How to make a Deathmatch or Team Deathmatch Map

There is not much special about how deathmatch maps should be built. There should be enouph space for players to roam and fight with each other. There should be enouph weapons, ammo and other pickups lying around. The size of the map is usually a main factor which determines a number of players that may participate in the match without discomfort.

Player Starts

Each deathmatch map must have at least 8 common Player Deathmatch Starts, so that all 8 maximum players may enter the game and respawn without telefragging each other. Fullfilling this requirement is obligatory even if the map is intended for lesser number of players.

Player Metrics

All common player classes (Fighter, Cleric, Mage, Heretic, The Hero and Marine) have same body size:

Height is 64.0 units

Body radius is 16.0 units

When transmuted to a pig:

Height is 24.0 units

Body radius is 16.0 units

How to make a Kill The Heresiarch Map

In Kill The Heresiarch match the first fragger becomes a powerful Heresiarch monster and other players fight with him to destroy him and become a new Heresiarch. In other words, KTH is very similar to deathmatch and all the DM mapping recommedations fit KTH as well.

However, there are a couple of nuances. Firstly, Heresiarch is larger in size than common player, thus, if you are using original DM map for KTH mode keep in mind that Heresiarch won’t be able to enter narrow passages and those with low ceiling. Secondly, Heresiarch has all his weapons given at once from the beginning, thus he does not need to search the map for weapon pickups (he needs ammo though).

Heresiarch Spawn Spots

Heresiarch Spawn Spots allow to define exact location(s) at which Heresiarch should appear. Their usage is optional. When player is about to transform into Heresiarch, game checks if there are HSSs on the map. If there is one, Heresiarch will appear there all the time. If there are several HSSs, the one is chosen closest to last player position. If there are no HSSs on map, Heresiarch is spawned at the same location where player resided a moment before transformation.

Heresiarch Spawn Spots can be used to design a map where Heresiarch is allowed to wander only in some particular area(s). They also could be very useful on maps with lots of places which are too narrow or have too low ceilings for Heresiarch, to avoid situations like when Heresiarch appears stuck in the wall or low ceiling and unable to move.

Heresiarch Player Metrics

Height is 96.0 units

Radius is 40.0 units

How to make a Capture The Flag Map

In Capture The Flag match players of one team should get another team’s flag and carry it back to their own base in order to join enemy flag with their own. To be compatible with CTF mode a map should have at least one flag per each of the two teams.

CTF Banner

CTF Banner thing is the flag that should be captured or defended. To determine which Team owns this flag set the thing’s Team parameter (Arg1) to 0 (“Blue” team) or 1 (“Red” team). Basically, there should be at least one flag thing with Arg1 set to0 and at least one flag thing with Arg1 set to 1 on the map.

Player Starts

It is strongly recommended that enouph team starts be provided on CTF map so that players (re)spawn on appropriate locations (e.g. not on other team’s base). Blue and Red Netmatch starts serve this purpose. Blue starts correspond to the flag with Arg1 set to 0, Red ones – to the flag with Arg1 set to 1 (These Blue and Red colours are conventional, actual team colours may differ in game).

If a player cannot find any netmatch start corresponding to his team, he will (re)spawn on a random Deathmatch start.

Team Decorations

Team Decorations can be useful to help human players orientate themselves on CTF map, especially symmetric one. For more information on this see the chapter “Team Colored Decorations”.

Color Translation

Color Translation is important for CTF as it is the simplest way to make flags and team decorations take color corresponding to the team they belong to. For more information about implementing color translation for CTF maps see the chapter “Team Color Translations”.

How to make a Domination Map

Domination is the team game mode, where 2 teams should capture so-called “bases” and keep them in posession, receiving score points as long as the ‘base’ is held captured. In Korax Arena “bases” are called “Domination Sigils”. To be compatible for Domination mode, a map should have at least one Domination Sigil.

Sigil Types

There are several types of Sigils availble:

Domination Sigil Common: Most common Domination “base”

Domination Sigil Fire: When kept in possession for a short time, it begins to shoot at enemies with fireballs, thus practically defending itself.

Domination Sigil Ice: Same as Fire Sigil, but shoots Ice Shards.

Domination Sigil Lightning: Same as Fire Sigil, but shoots lightnings.

Domination Sigil Poison: Spawns poisonous clouds around itself. Not that dangerous as previous three, but can weaken opponents for the defenders’ sake.

Regardless of type, all Sigils grant the same score to the owner team.

Sigil Action

A Sigil can have a Thing Action customized same way as for any other thing. The Action will be performed every time Sigil is (re)captured. This may be found useful for map scripting.

Sigil Location Name

When a Sigil is captured a game message announces that event in the form “Team 1 captured Team 2’s Sigil at X”, where X is the location name. Customizing location names is not obligatory, but strongly recommended for gameplay convenience. If no location name specified, real world coordinates of captured Sigil will be displayed (which can help distinguish Sigils from each other, at least).

To customize the location name you should edit string localization file(s) (e.g. ”’language.en”’) in ”’basepak.pk3”’ game package and add new string entries there. Entry name should be formed using following syntax:

<map_title_without_spaces>_sigil_<sigil TID>.

For instance, if your map title is “The Great Fortress”, then entry name for Sigil with TID = 0 will be

thegreatfortress_sigil_0'

Following is the simple example of a full entry:

thegreatfortress_sigil_0 = "the eastern tower";

Then, in game the message will look like following:

''Red Team captured Blue Sigil at the eastern tower''

How to make a Football Map

This entry is missing.

How to make a Xmas Havoc Map

In Xmas Havoc game mode players contest in burning down Xmas Havoc Trees. Each tree burnt down grants 1 score point to player. To be compatible with Xmas Havoc game mode the map should have at least one Xmas Havoc Tree, but to make a good map you will probably need dozens (if not hundreds) of them.

Since these trees can be burnt down only by weapons that deal fire damage, there should be ones available on the map for each possible player class.

Xmas Havoc Tree

Xmas Havoc Tree is a special tree that not only burns down when damaged by fire weapon, but spreads fire damage around itself damaging nearby trees of the same class, thus allowing to burn down a whole section of such trees with a single powerful shot. It also respawns automatically on the same spot in 1 minute after it was burnt.