[ Info_Entities | Lights | Misc. | Ambient Sounds | Trap Entities | Intermission Cameras ]
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.
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 ContainerPlaced 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_oldoneUsed 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:
Style: 0 - normal 1 - flicker (first variety) 2 - slow strong pulse 3 - candle (first variety) 4 - fast strobe 5 - gentle pulse 6 - flicker (second variety) 7 - candle (second variety) 8 - candle (third variety) 9 - slow strobe 10 - flourescent flicker 11 - slow pulse, not fading to black styles
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.
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. :-)
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 ValuesThis 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.