[ Info_Entities | Lights | Misc. | Ambient Sounds | Trap Entities | Intermission Cameras ]

2.3.1 Info_ Entities:

info_null 		: Used as a placeholder (removes itself) 
info_notnull		: Used as a placeholder (does not remove itself)

Info_null is used as an empty placeholder for a targetname For example, if you want to aim a light in a particular direction, taking advantage of the shadowing capabilities of Quake's engine, then you would use an info_null where you want the light aimed, then give it a targetname that corresponds with the light's target name.

info_notnull is the same as info_null in functionality, but info_null is removed from the .bsp after light.exe is run, where info_notnull is left in the entity lump.

info_player_start 	: Main player starting point (only one allowed) 
info_player_deathmatch 	: A deathmatch start (more than one allowed)
info_player_coop 	: A coop player start (more than one allowed) 
info_player_start2	: Return point from episode

All of these entities are totally straightforward. You can't substitute or duplicate these placements. If you want a single-player map to also be useable in deathmatch, you must add at least six info_player_deathmatch starting points as well. Ditto for the info_player_coop points. As I said in 2.2.2, you use the Properties selection to change the direction your character faces from the overhead view.

info_player_start2 is used for players coming back to a map but retaining their runes. id used it in Quake so your character returns to the Start map without having to go through the difficulty setting teleporters. They also remove all of your weapons and armor in code. The entity itself won't do it. Use this only in a similar situation to Quake itself: restarting a map you've been to, with Runes in hand.

2.3.2 Misc_ Entities:

misc_fireball	: Small fireball (gives off light, harms player)

These are the fireballs you see shooting up from the lava pit you have to jump to reach the Hard level start teleporter in the Quake opener. They have two properties: origin and speed. They are placed as an entity, no brush needed, and speed is adjusted in SmartEdit. You can change the speed property to make them shoot higher. Right-click on the fireball after you place it, and enter "speed" in the "Key" entry, and add the speed value in "Value." The default speed is 200. The higher you set it, the higher it shoots up. This requires experimenting.

misc_explobox	: Large Nuclear Container
misc_explobox2	: Small Nuclear Container

Placed as entities. You see these in E1M1 and other Base-oriented levels. They explode when shot, gibbing any monsters in the area and you if you're stupid (or unlucky) enough to stand next to it when you shoot it.

misc_teleporttrain : Spiked ball needed to telefrag monster_oldone

Used in the last level of Quake to kill Shub-Niggurath. It needs to use path_corner to move around. Could be used for other amusing floating entities in a level.

2.3.3 Trap_ Entities:

trap_spikeshooter : Shoots spikes (nails)
trap_shooter : Fires nails without needing to be triggered.

Triggerable Nail-firing trap

The standard "if you stand in the wrong place you're gonna get shot" spike shooter is set with trap_spikeshooter. Place the entity inside the box or hole of your choice and set the angle for the direction you want the shots to come out, as per the overhead view. Use "Up" and "Dn" to shoot up or down.

Trigger your trap with a trigger_multiple entity, and set the Delay before reset by entering "delay" in the Key menu item and the time (in seconds) in the Value entry to space the timing of the spikes. You can enter any decimal value, such as 1 or 0.2 or whatever. I think 0.2 is about the fastest it will actually fire. It is important that you place the trap_spikeshooter in a large enough space that the shots can exit - treat an 8x8 box as the bare minimum (you may have problems centering it so it works in that size box. Under the trap_spikeshooter's flags you can select 'laser' or 'superspike' (more damage).

Constant Nail-firing trap

The trap_shooter runs constantly at about a 1-shot-per-second rate unless you set a different value in the 'wait' keyvalue. The wait sets time between shots. The other keyvalues work the same as for the trap_spikeshooter. Note that you can get an interesting effect by assigning a targetname value to a trap_shooter and then triggering it with a trigger_multiple - the trap will shoot at the rate you selected with the 'wait' until you trigger it, then it 'adds' shots according to the wait value on the trigger_multiple. If you set wait=0 on the trigger, the shooter will run 'full blast' when triggered.

2.3.4 Lights

Every light and light-emmitting entity has spawnflags to control their behavior. They are, by and large, consistent from one light to the next and all are set via the "Class" menu in "Properties"

The light entities are as follows:

Regular Light:

You set these settings in the "Key" and "Value" entries. They break down as follows:

For all of the other light entities, there are only three options: "Target" has been removed since these lights remain on at all times and are not switchable (I have to admit, a switchable torch sounds intriguing) nor can they be targetted.

Bonus: Tips on lighting from Paradox

Tom Mustaine, aka Paradox, had this to say in his .plan about lights. It's definitely worth putting here.
Blinking lights are the #1 slowdown for the Quake engine. If you do 
an R_SPEEDS 1 on your level, and the last number ( xx surf ) is over 50 
for any constant time, your level is going to be WAY too slow. What that 
means is that the engine is redrawing xx surfaces every cycle. Even though 
Quake's surface cache is the fastest out there, its not that fast. 

In english: 

*Don't make every light and torch in yourlevel flicker/blink/or fade!! 

*If you have a big complex room with lots of surfaces, don't even put *1* 
blinking light in there. That single light will affect every surface in 
that room (if its bright enough) making the surface redraw jump extremly 
high, and slowing down performance greatly.

*If you do use a blinking light, do it in places where there will be low
traffic, or where players wouldn't be firing rockets at any given time.
A rocket dynamic light act's upon the surface cache just like a blinking
light, and if you have two or three players in there firing rockets at
each other, ON TOP OF blinking lights in the level, the players will get
tremendous slowdown. 

*This dosen't mean that you can't use blinking lights in places, just use 
them right. Many levels I look at would play very well if they were not 
ridden with blinking lights.

2.3.5 Ambient Sounds:

air_bubbles		: Rising bubbles

Use these around water. Don't go too crazy with them because they do have to be redrawn.

ambient_drip 		: Dripping sound
ambient_drone 		: Engine/machinery sound
ambient_comp_hum 	: Computer background sounds
ambient_flouro_buzz 	: Flourescent buzzing sound
ambient_light_buzz 	: Buzzing sound from light
ambient_suck_wind 	: Wind sound
ambient_swamp1 		: Frogs croaking
ambient_swamp2 		: Slightly different sounding frogs croaking
ambient_thunder 	: Thunder sound

This is fairly straightforward. The volume or area covered by these sounds can't be adjusted, unfortunately, so if you want the sound to stick around you have to space them out. I place them about 256 units (in a WC map) apart. Use the sounds appropriately. ambient_flouro_buzz would look ridiculous in a medieval-flavored level.

ambient_thunder is messed up in the PAK from id. The WAV file has to be looped. Hipno fixed it in theirs. Apparently there is a fixed WAV file that is looped, but you have to do a lot of futzing with your system, and I don't want to be responsible for anyone fucking up their Quake config. :-)


2.3.6 Intermission Cameras

Cameras for the intermission screen:

Quake will take its own shots from the level when you finish. You can place if you want a specific area to be shown when the level ends, like an area where there's a lot of carnage. You place it with the info_intermission entity

How Do I Make An Info_Intermission Camera?

NOTE: I will rewrite this section when I can get a 'step by step' procedure for BSP. In the meantime, here is some general info...

Determining the Mangle Values

This is the most confusing part of setting the info_intermission. The values of 'mangle' determine a viewing angle in x, y, and z planes. I have illustrated below how the X, Y, and Z values are determined.

Think of the X value as a 'tilt-up or tilt-down' adjustment in your view. A positive value of X will tilt the viewpoint down, and a negative value will point the camera up. 90 degrees positive would point the camera straight down.

The Y value sets the rotation about the Z axis. The easiest way to visualize this is to use the XY 2D view (the 'overhead' view). A 0 value for Y will make your view point in the +X direction (to the right), and a 180 value would make your view point to the -X direction (to the left), and a +90 value would make your view point in the +Y direction (towards the top of the XY view).

Finally, the Z value sets a rotation about the XY plane. I can't imagine too many cases where I would set this to anything other than 0 - it will tilt your viewing angle clockwise for a positive value of Z (for example, when you get gibbed, your viewpoint changes in this fashion, changing 90 degrees in the Z direction plus or minus). I would suggest leaving this at 0 for most cases.




Portions Copyright ©1996-97 Niklata and Thomas Winzig.