A small collection of test map showing how map variables in Arcane Dimensions 1.8+ work. These maps are aimed at level designers who want working examples of how map variables could be used.
The zip file contains working (BSP/LIT) examples of each map and source files. These maps are designed to work with 1.8 ONLY. They don't work in vanilla Quake or other mods. Textures used are from the AD prototype texture set that is included in this zip fle. WAD file = ad_prototype.wad
Installation
* Copy this Zip file into your NEW AD 1.8 directory
* Extract the contents of this zip file
* Load your preferred Quake engine and start the AD mod
* If you don't have the AD menu then the mod did not load
* Open the console, type "map test_" and press tab to autocomplete
Test Map(s) Description
test_mapvar : How to set or query map variables
test_mapvar_hubsetup : Ideal for start jam/hub map setups
test_mapvar_portals : Unlocks a portal based on progress
Example Map(s) Description
test_mapvar_prism : light beam/mirror puzzle setup (Created for Heresy Egyptian map)
test_mapvar_rotate : A rotating puzzle lock for a door
Level Designer Documentation
When saving map progress there are some global variables called parm1-16 which are used for storing the inventory (ammo/weapons) and the top 6 (parm11-16) are not used for anything.
AD turns the top 'parm' variables into 132 binary (0/1) switches that can be used in any map for internal logic or variables which can be passed between multiple maps.
Level designers can access any of the map variables with new entities that can query, toggle or change values. This is useful for creating programmer like logic (if/else) in maps that can change the environment dynamically.
The player can also interact with map variables via a touch trigger that fires different targets based on the values of specific map variable. This allows the level designer to create different setups based on players actions.
All of the map variables are reset everytime a map is loaded from the console, however the variable values are kept if the map is loaded with the change level trigger/command.
Map variables can be changed when a map is loaded or finished by adding new options to either the worldspawn entity or any change level trigger. This is useful for hub setups to keep track of the players progress.
There is a developer only impulse command to display all of the map variables in a table on the console. Impulse 225 - Display ALL map variables to console
List of new map variable entities
trigger_mapvar_query
Trigger target(s) based on mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
target : Map variable == 0 fire these target(s)
target2 : Map variable == 1 fire these target(s)
noise : aframe switchable object
wait : -1 = trigger once
trigger_mapvar_update
Update the value of mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
cnt : Value (0/1)
target : Map variable == 1 fire these target(s)
target2 : Map variable == 0 fire these target(s)
noise : aframe switchable object
wait : -1 = trigger once
trigger_mapvar_toggle
Toggle the value of mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
target : Map variable == 1 fire these target(s)
target2 : Map variable == 0 fire these target(s)
noise : aframe switchable object
wait : -1 = trigger once
trigger_mapvar_multiple
Touch trigger target(s) based on mapvar
------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
target : Map variable == 1 fire these target(s)
message : Map variable == 1 message to display
target2 : Map variable == 0 fire these target(s)
message2: Map variable == 0 message to display
health : Can be damaged instead of touched
wait : time between re-triggering
delay : delay before firing (after being triggered)
angle : Facing Direction for trigger to work, use "360" for angle 0.
sounds : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise : custom sound to play when triggered
-------- SPAWNFLAGS --------
MONSTER : can be touched/triggered by monsters
STARTOFF : Requires trigger to activate
trigger_changelevel
Finish current map, show intermission screen and loads next
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target : name of target(s) to trigger before intermission
map : The name of next map (e.g. e1m1) default=same map
mapvar_update : Map Variable range to trigger on use (start, finish, value)
-------- SPAWNFLAGS --------
NO_INTERMIS : No Intermission screen
RESETINV : Reset player inventory to default (Shotgun+Shells)
STARTOFF : Starts off and waits for trigger
The zip file contains working (BSP/LIT) examples of each map and source files. These maps are designed to work with 1.8 ONLY. They don't work in vanilla Quake or other mods. Textures used are from the AD prototype texture set that is included in this zip fle. WAD file = ad_prototype.wad
Installation
* Copy this Zip file into your NEW AD 1.8 directory
* Extract the contents of this zip file
* Load your preferred Quake engine and start the AD mod
* If you don't have the AD menu then the mod did not load
* Open the console, type "map test_" and press tab to autocomplete
Test Map(s) Description
test_mapvar : How to set or query map variables
test_mapvar_hubsetup : Ideal for start jam/hub map setups
test_mapvar_portals : Unlocks a portal based on progress
Example Map(s) Description
test_mapvar_prism : light beam/mirror puzzle setup (Created for Heresy Egyptian map)
test_mapvar_rotate : A rotating puzzle lock for a door
Level Designer Documentation
When saving map progress there are some global variables called parm1-16 which are used for storing the inventory (ammo/weapons) and the top 6 (parm11-16) are not used for anything.
AD turns the top 'parm' variables into 132 binary (0/1) switches that can be used in any map for internal logic or variables which can be passed between multiple maps.
Level designers can access any of the map variables with new entities that can query, toggle or change values. This is useful for creating programmer like logic (if/else) in maps that can change the environment dynamically.
The player can also interact with map variables via a touch trigger that fires different targets based on the values of specific map variable. This allows the level designer to create different setups based on players actions.
All of the map variables are reset everytime a map is loaded from the console, however the variable values are kept if the map is loaded with the change level trigger/command.
Map variables can be changed when a map is loaded or finished by adding new options to either the worldspawn entity or any change level trigger. This is useful for hub setups to keep track of the players progress.
There is a developer only impulse command to display all of the map variables in a table on the console. Impulse 225 - Display ALL map variables to console
List of new map variable entities
trigger_mapvar_query
Trigger target(s) based on mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
target : Map variable == 0 fire these target(s)
target2 : Map variable == 1 fire these target(s)
noise : aframe switchable object
wait : -1 = trigger once
trigger_mapvar_update
Update the value of mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
cnt : Value (0/1)
target : Map variable == 1 fire these target(s)
target2 : Map variable == 0 fire these target(s)
noise : aframe switchable object
wait : -1 = trigger once
trigger_mapvar_toggle
Toggle the value of mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
target : Map variable == 1 fire these target(s)
target2 : Map variable == 0 fire these target(s)
noise : aframe switchable object
wait : -1 = trigger once
trigger_mapvar_multiple
Touch trigger target(s) based on mapvar
------- KEYS --------
targetname : trigger entity (works with entity state system)
count : Map Variable to check (range checks)
target : Map variable == 1 fire these target(s)
message : Map variable == 1 message to display
target2 : Map variable == 0 fire these target(s)
message2: Map variable == 0 message to display
health : Can be damaged instead of touched
wait : time between re-triggering
delay : delay before firing (after being triggered)
angle : Facing Direction for trigger to work, use "360" for angle 0.
sounds : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise : custom sound to play when triggered
-------- SPAWNFLAGS --------
MONSTER : can be touched/triggered by monsters
STARTOFF : Requires trigger to activate
trigger_changelevel
Finish current map, show intermission screen and loads next
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target : name of target(s) to trigger before intermission
map : The name of next map (e.g. e1m1) default=same map
mapvar_update : Map Variable range to trigger on use (start, finish, value)
-------- SPAWNFLAGS --------
NO_INTERMIS : No Intermission screen
RESETINV : Reset player inventory to default (Shotgun+Shells)
STARTOFF : Starts off and waits for trigger