This will be edited intermittently over time. The number of features is large enough that documentation will take a while. So this is a living document.
Entities
item_readable
item_vehicle (suffix determines land or air, existence of single or dual exhaust effect)
misc_model (Solid: spawnflag 2)
misc_mdl_entity
misc_mdl_illusionary
misc_mdl_train (model as a train)
func_door_rotating
trigger_attention (causes play to look at something with message/sound)
info_bulk_teledest (bulk teleportation of several entities)
ambient_sound (with volume and (fade distance ...) attentuation available)
trigger_dialog
explode_mine
trigger_hurt (with custom death messages)
sigils (with netname customization ... "you got the crown")
keypad_security
keypad_key
keypad_light
keypad_mechanical
vending_machine_automed
misc_mdl_entity_rotator
func_wall_rotating
func_ladder
func_train (curved train paths)
func_group
emitter_particles (particle emitter that can be customized via effectinfo.txt, toggles)
func_text
func_floor_fragile
func_mechanical
func_elevator (multi-stage elevator: moving doors, inner/outerdoors, internal/external controlpads, level displays)
elevator_button
elevator_call_button
item_exit
item_radio (up to 3 different music files, toggles)
item_barrier (barriers with feedback, optional 'health', suffix determines material)
func_program_screen (interactive client-side program)
func_video_screen (plays video)
Worldspawn
gravity
If specified, gravity is different than the Quake 1 normal gravity of 800. Ziggurat Vertigo, for instance, is 100 (like the moon).
fog
An example of traditional fog would be RGBA "0.2 1.0 1.0 0.5" which is 20% red, 100% blue, 100% green and 50% alpha. This would be a cyan-ish fog.
message
Title of the map like "The Dark Zone"
worldhints
These are special directives for QuakeC. An example is [r_water] indicating that the map would prefer to have r_water enabled or [dark] where the map would prefer to have no minimum lighting on entities.
worldtype
The traditional Quake 1 world types are here:
0 : "0 - Medieval"
1 : "1 - Runic (metal)"
2 : "2 - Base"
Plus ...
10 : "10 - Modern" - uses a different key model, rocket boxes and cell boxes are flashier and potentially some other small differences. Uses very colorful models for sci-fi.
Worldspawn (Q3)
color (Q3)
gridsize (Q3)
_ambient (Q3)
_blocksize (Q3)
_minlight (Q3)
_minvertexlight (Q3)
_mingridlight (Q3)
_keeplights (Q3)
_farplanedist (Q3)
_lightmapscale (Q3)
General Features
scale
Scale can be applied to most entities. This can make an item like a health box larger or smaller. Valid scale range is 1/16 to 15 15/16.
attach_to
Causes an object to be attached to another object. An example would be attaching a skull model to a door. "attach_to" "door1". The physics of the object is known as MOVETYPE_FOLLOW.
Notes: for best results the pitch, yaw, roll (angles) of the entity using this should be '0 0 0' and should be a later entity in the entity list than the "attach_to" otherwise the movement will be jerky and off by 1 physics frame.
Quake3_Quake1 will do a warning on map load if it detects an entity order problem.
colormod
Colormod allows colorization of an entity. This is in RGB percents, a colormod of '1.0 0.5 0.5' instance would be 100% red 50% green 50% blue. Values exceeding are full bright/overbright with a limit of '8.0 8.0 8.0' which is fullbright/overbright white. '8 8 8' can be useful for func_text to make the text glow in the dark white.
nodroptofloor
'nodroptofloor 1' can be applied to most entities to suspend them in the air.
make_static
'make_static 1' can be applied to most entities. They will droptofloor (if applicable) and then afterwards become a static entity which is an illusionary entity that cannot be interacted with even in QuakeC. This can be useful to place trash around a map. Static entities in DarkPlaces do not appear to honor scale.
SPAWNFLAGS_NON_SOLID_262144
Most entities can receive spawnflag 262144, they will become non-solid (untouchable) but not static. Static entities use less resources, but since DarkPlaces does not seem to honor scale for static entities, this flag will make the entity non-solid after droptofloor (if applicable). The main reason to do this is to make non-solid entities that uses a scale.
SPAWNFLAGS_THIN_TOUCH_BOX_524288
Items can receive spawnflag 524288. These items will have a touch boundary barely larger than the item itself. And such health or weapons can be grabbed with the "use key". This allows putting healthboxes in cabinents and such.
model (overrride)
Items generally allow overriding the model. For instance, you can make a healthbox use a model like "models/props/bottle_02.md3" which is a bottle of pills or "models/props/carrot.md3". There are many models available in the models folder.
peaceful
This make a monster not attack and will not be added to total_monsters nor be a monster kill if killed. 'peaceful 1' means the entity will not attack without provocation. 'peaceful 4' means the monster will slowly turn towards a player looking at it if at a close distance.
Customizations
trigger_changlevel :: finale_text
Finale text like what is printed on-screen on E1M7 after killing the Chthon can manually be set for any trigger_changelevel. If the finale_text ends with ".txt" it will read it from an external file, otherwise it will use the supplied text. [p] indicates a newline.
It can and usually should specify an external .txt file like "maps/map_yourmap_finale.txt" which might contain "As the Chthon sinks, ..." 40 characters per line is the standard.
It can also be set inline like "finale_text" "You managed to escape the prison.[p]You are not sure what to expect outside ..."
monster_any :: talkdialog
monster_any :: talkpic
Talkdialog will generate a graphical 2D dialog. If talkdialog ends with ".txt" it will read it from an external file, otherwise it will use the supplied text. [p] indicates a newline.
Talkpic specifies a .png to show as a character in the talk dialog.
A talk dialog supports topics, triggers, killtarget and the ability to start a fight.
item_readable :: readtext
Books or other readables display the contents of the book on-screen and can have multiple pages, specify font and have pictures in the book. If readtext ends with ".txt" it will read it from an external file, otherwise it will use the supplied text. [p] indicates a newline.
(to do: there are several markup tags ... document them)
func_button :: target (comma delimited multitarget)
func_button can specify multiple targets like "target" "door1,plat1,plat2"
func_button :: (manual use flag)
func_door :: (manual use flag)
func_door_rotating :: (manual use flag)
Doors and buttons can be marked "manual use" with spawnflag 8192. These doors and buttons will not respond to touch and instead looking at them at close distance will display "Press <key> to use" on-screen for manual use.
This can be used to create cabinets or control boxes that may contain controls like buttons that are revealed when the control box is opened.
(estimate completion percent: 1%)
abab