Entity Basics

[ 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. This should only be a concern to you if you've loaded the level so much that you reach the maximum number of entities. If you're at a point at level editing where you need this page, you better not be making maps that big. :-)

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.

The player's direction is not set with the 360 degrees, like some items. Select the player, then select Rotate from the menu. From the right or front view, click and drag to the left or right and you'll see the wireframe character turn on his axis. This determines which way he faces.

This also works for monsters and teleporters.

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 in the Start menu in Quake that shoot up from the lava pit you have to jump to reach the Hard level start teleporter. You make them shoot high or low (no direction needs to be set) by changing the speed property. It defaults to 300. 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. Could be used for other amusing floating entities in a level.

2.3.3 Trap_ Entities:

Triggerable Nail-firing trap

This is the standard spike shooter. You place it with the Entity tool directly in front of the brushes representing your nail sources (always source your nails so people have some idea of what to expect). E1M2 has three tiny openings in the walls that act as a warning to the player. Then set the angle for the direction you want the shots to come out, as per the overhead view. angle -1 shoots up, -2 shoots down. You also need to set the Wait, which is the delay between shots. Default is 1 second, which can be made as low as 0.2.

Trigger your trap with a trigger_multiple entity. If you use trigger_once, it will only fire after activated once. Once you walk out of range, it will stop and can't be reactivated, which defeats the point. Set the delay by putting the number of seconds in between shots in the Wait menu item. 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.

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-emitting entity has spawnflags to control their behavior. They are, by and large, consistent from one light to the next. You change the properties by selecting the entity from the 3D window. That entity's info will be displayed in the Entities window screen.

The properties break down as follows. Yahn has included all of this info in the Editor, BTW.

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).

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 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. Ritual 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 set it with the info_intermission.

How Do I Make An Info_Intermission Camera?

NOTE: I will rewrite this section when I develop a step-by-step procedure for Qoole. In the meantime, here is general info about info_intermissions...

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.