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.
===========================================================
Title : Map Variable Test Maps
Date : May 2021
Author : Simon OCallaghan
Filename : test_mapvar1.zip
Audience : These test maps are designed for LEVEL DESIGNERS
who want to understand how to use map variables
Summary : 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 : Uses the 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