// Quake entity definitions // tested in Trenchbroom 2020.2 // some clutter is commented out // compiler-specific features are at the end @baseclass = Angle [ angle(integer) : "Angle" : 360 : "Yaw (-1 is up, -2 is down)" angles(string) : "Angle" : "0 360 0" : "Y Z X (Pitch Yaw Roll)" ] @baseclass = Flags [ spawnflags(flags) = [ 256: "Not on Easy" 512: "Not on Normal" 1024: "Not on Hard" 2048: "Not in Deathmatch" ] ] @baseclass = Target [ targetname(target_source) : "Name" target(target_destination) : "Target" killtarget(string) : "Target to remove" :: "Mutually exclusive with target" message(string) : "Message to print" delay(integer) : "Pause before activation" ] @solidclass base(LightWorld) = worldspawn [ message(string) : "Map title" :: "\b toggles red text" worldtype(choices) : "World type" : 0 = [ 0: "Medieval" 1: "Metal (runekeys)" 2: "Base (keycards)" ] sounds(integer) : "Music track" : 0 sky(string) : "Skybox" :: "File name without the last two letters" fog(string) : "Fog" : ".00 .0 .0 .0" : "Density R G B" skyfog(float) : "Sky fog" : "0.5" : "Partial fogging of the sky/skybox" wateralpha(string) : "Water opacity" :: "Defaults to player's r_wateralpha" lavaalpha(string) : "Lava opacity" :: "Defaults to player's r_lavaalpha" slimealpha(string) : "Slime opacity" :: "Defaults to player's r_slimealpha" telealpha(string) : "Portal opacity" :: "Defaults to player's r_telealpha" ] // SPAWN POINTS @baseclass base(Angle,Flags,Target) model("progs/player.mdl") size(-16 -16 -24, 16 16 32) = Player [] @pointclass base(Player) = info_player_start : "Start point" [] @pointclass base(Player) = testplayerstart : "Start point override" [] @pointclass base(Player) = info_player_start2 : "Return point" [] @pointclass base(Player) = info_player_coop : "Additional start" [] @pointclass base(Player) = info_player_deathmatch : "Spawn point" [] //@pointclass base(Player) model({"path":"progs/player.mdl", "frame":frame}) // = viewthing : "Player model" [ frame(integer) : "Frame (0-142)" : 0 ] @pointclass base(Angle,Flags,Target) size(-16 -16 -24, 16 16 32) color(0 90 50) = info_teleport_destination : "Teleport destination" [] // ENEMIES @baseclass base(Angle,Flags,Target) size(-16 -16 -24, 16 16 40) = Monster [ spawnflags(flags) = [1: "Ambush" : 0 : "Don't wake up indirectly"] ] @baseclass base(Monster) size(-32 -32 -24, 32 32 64) = MonsterBig [] @pointclass base(Monster) model("progs/soldier.mdl") = monster_army : "Grunt" [] @pointclass base(Monster) model("progs/enforcer.mdl") = monster_enforcer : "Enforcer" [] @pointclass base(Monster) model("progs/knight.mdl") = monster_knight : "Knight" [] @pointclass base(Monster) model("progs/hknight.mdl") = monster_hell_knight : "Death Knight" [] @pointclass base(Monster) model("progs/wizard.mdl") = monster_wizard : "Scrag" [] @pointclass base(Monster) model("progs/tarbaby.mdl") = monster_tarbaby : "Spawn" [] @pointclass base(Monster) model("progs/zombie.mdl") = monster_zombie : "Zombie" [ spawnflags(flags) = [1: "Crucified" 2: "Ambush"] ] @pointclass base(MonsterBig) model("progs/demon.mdl") = monster_demon1 : "Fiend" [] @pointclass base(MonsterBig) model("progs/ogre.mdl") = monster_ogre : "Ogre" [] @pointclass base(MonsterBig) model("progs/ogre.mdl") = monster_ogre_marksman : "Ogre (mute, infight)" [] @pointclass base(MonsterBig) model("progs/shambler.mdl") = monster_shambler : "Shambler" [] @pointclass base(MonsterBig) model("progs/shalrath.mdl") = monster_shalrath : "Vore" [] @pointclass base(Monster) size(-16 -16 -24, 16 16 24) model("progs/fish.mdl") = monster_fish : "Rotfish" [] @pointclass base(Monster) size(-32 -32 -24, 32 32 40) model("progs/dog.mdl") = monster_dog : "Rottweiler" [] @pointclass base(Monster) size(-128 -128 -24, 128 128 256) model("progs/boss.mdl") = monster_boss : "Chthon" [] @pointclass base(Monster) size(-160 -128 -24, 160 128 256) model("progs/oldone.mdl") = monster_oldone : "Shub-Niggurath" [] // PICKUPS @baseclass base(Angle,Flags,Target) size(0 0 0, 32 32 56) = ItemBase [ use(string) : "Map hack" :: "Set to SUB_regen, trigger to respawn"] @pointclass base(ItemBase) model({{spawnflags & 1 -> "maps/b_bh10.bsp", spawnflags & 2 -> "maps/b_bh100.bsp", "maps/b_bh25.bsp"}}) = item_health : "Medikit" [ spawnflags(flags) = [1 : "Rotten" 2 : "Mega"] ] @baseclass base(ItemBase) = Ammo [spawnflags(flags) = [1 : "Large" : 0]] @pointclass base(Ammo) model({{spawnflags & 1 -> "maps/b_shell1.bsp", "maps/b_shell0.bsp"}}) = item_shells : "Shells" [] @pointclass base(Ammo) model({{spawnflags & 1 -> "maps/b_nail1.bsp", "maps/b_nail0.bsp"}}) = item_spikes : "Nails" [] @pointclass base(Ammo) model({{spawnflags & 1 -> "maps/b_rock1.bsp", "maps/b_rock0.bsp"}}) = item_rockets : "Rockets" [] @pointclass base(Ammo) model({{spawnflags & 1 -> "maps/b_batt1.bsp", "maps/b_batt0.bsp"}}) = item_cells : "Cells" [] @baseclass base(ItemBase) size(-16 -16 -24, 16 16 32) = Item [] @pointclass base(Item) model("progs/w_s_key.mdl") = item_key1 : "Silver key" [] @pointclass base(Item) model("progs/w_g_key.mdl") = item_key2 : "Gold key" [] @pointclass base(Item) model({{ spawnflags & 2 -> "progs/end2.mdl", spawnflags & 4 -> "progs/end3.mdl", spawnflags & 8 -> "progs/end4.mdl", "progs/end1.mdl"}}) = item_sigil : "Rune" [ spawnflags(flags) = [ 1: "Earth Magic" 2: "Black Magic" 4: "Hell Magic" 8: "Elder Magic"] ] @pointclass base(Item) model("progs/suit.mdl") = item_artifact_envirosuit : "Biosuit" [] @pointclass base(Item) model("progs/quaddama.mdl") = item_artifact_super_damage : "Quad Damage" [] @pointclass base(Item) model("progs/invulner.mdl") = item_artifact_invulnerability : "Pentagram of Protection" [] @pointclass base(Item) model("progs/invisibl.mdl") = item_artifact_invisibility : "Ring of Shadows" [] @baseclass base(ItemBase) size(-16 -16 0, 16 16 56) = Item2 [] @pointclass base(Item2) model("progs/armor.mdl") = item_armor1 : "Green armor" [] @pointclass base(Item2) model({"path":"progs/armor.mdl", "skin":1}) = item_armor2 : "Yellow armor" [] @pointclass base(Item2) model({"path":"progs/armor.mdl", "skin":2}) = item_armorInv : "Red armor" [] @pointclass base(Item2) model("progs/g_shot.mdl") = weapon_supershotgun [] @pointclass base(Item2) model("progs/g_nail.mdl") = weapon_nailgun [] @pointclass base(Item2) model("progs/g_nail2.mdl") = weapon_supernailgun [] @pointclass base(Item2) model("progs/g_rock.mdl") = weapon_grenadelauncher [] @pointclass base(Item2) model("progs/g_rock2.mdl") = weapon_rocketlauncher [] @pointclass base(Item2) model("progs/g_light.mdl") = weapon_lightning [] // PROPS & TRAPS @baseclass size(8 8 8) color(50 255 50) = Dummy [] @baseclass base(Dummy,Angle,Flags,Target) color(200 0 0) = Trap [] @pointclass base(Dummy,Flags) color(200 0 0) = air_bubbles : "Air bubbles" [] @pointclass base(Flags) model("progs/lavaball.mdl") = misc_fireball : "Lava ball" [ speed(integer) : "Speed" : 1000 ] @pointclass base(Trap) = trap_spikeshooter : "Triggered shooter" [ spawnflags(flags) = [1: "Super" 2: "Laser"] ] @pointclass base(Trap) = trap_shooter : "Continuous shooter" [ spawnflags(flags) = [1: "Super" 2: "Laser"] nextthink(integer) : "Initial delay" wait(integer) : "Refire delay" : 1 ] @pointclass base(Flags,Target) model("progs/teleport.mdl") = misc_teleporttrain : "Moving teleporter" [speed(integer) : "Speed" : 100] @pointclass base(Angle,Flags,Target) size(0 0 0, 32 32 64) model("maps/b_explob.bsp") = misc_explobox : "Exploding box" [] @pointclass base(Angle,Flags,Target) size(0 0 0, 32 32 32) model("maps/b_exbox2.bsp") = misc_explobox2 : "Small exploding box" [] // HELPER OBJECTS @baseclass base(Dummy,Flags,Target) color(0 200 200) = Helper [] @pointclass base(Helper,Trigger) = trigger_relay : "Relay" [] @pointclass base(Helper,Trigger) = trigger_counter : "Counter" [ spawnflags(flags) = [1: "No Message"] count(integer) : "Number of inputs" : 2 ] @pointclass base(Dummy) = info_null : "Dummy (self-removing)" [ targetname(target_source) : "Name" ] @pointclass base(Dummy,Angle,Flags,Target) = info_notnull : "Dummy" [ use(string) : "Use function (spawn as)" touch(string) : "Touch function" think(string) : "Think function" nextthink(integer) : "Think interval" ] @pointclass base(Helper) color(0 90 50) = path_corner : "Waypoint" [ wait(integer) : "Pause" : 0 ] @pointclass base(Helper,Flags) = info_intermission : "Intermission camera" [ mangle(string) : "Y Z X (Pitch Yaw Roll)" ] //@pointclass base(Dummy,Flags,Target) = event_lightning: "Chthon lightning" [] // LIGHTS @pointclass base(LightSource) = light [] @pointclass base(LightSource) = light_fluoro : "Light with a sound" [] @pointclass base(LightSource) = light_fluorospark : "Light with a sound" [] @pointclass base(LightSource) size(24 24 24) = light_globe : "Globe light" [] @pointclass base(LightSource) model("progs/flame.mdl") size(-2 -2 -14, 2 2 20) = light_torch_small_walltorch : "Torch" [] @pointclass base(LightSource) model("progs/flame2.mdl") size(-4 -4 -12, 4 4 8) = light_flame_small_yellow : "Small flame" [] //@pointclass base(light_flame_small_yellow) = light_flame_small_white [] @pointclass base(LightSource) model({"path":"progs/flame2.mdl", "frame":1}) size(-6 -6 -12, 6 6 18) = light_flame_large_yellow : "Large flame" [] // SOUNDS @baseclass base(Flags) size(12 12 4) color(50 50 200) = Sound [] @pointclass base(Sound) = ambient_suck_wind : "Sound: wind" [] @pointclass base(Sound) = ambient_drone : "Sound: droning pulse" [] @pointclass base(Sound) = ambient_flouro_buzz : "Sound: sparking wires" [] @pointclass base(Sound) = ambient_drip : "Sound: dripping water" [] @pointclass base(Sound) = ambient_comp_hum : "Sound: computer beeps" [] //@pointclass base(Sound) = ambient_thunder : "Sound: thunder - not looped!" [] @pointclass base(Sound) = ambient_light_buzz : "Sound: continuous buzz" [] @pointclass base(Sound) = ambient_swamp1 : "Sound: swamp fauna" [] //@pointclass base(Sound) = ambient_swamp2 : "Basically ambient_swamp1" [] //@pointclass base(Sound) = misc_noisemaker : "Debug: spam sounds" [] // TRIGGERS @baseclass = Relay [spawnflags(flags) = [1: "No touch" : 0 : "Act as a relay"]] @baseclass base(Flags,Target) = Trigger [ sounds(choices) : "Sound" : 0 = [0: "None" 1: "Secret" 2: "Beep beep" 3: "Large switch" 4: "Custom"] noise(string) : "Custom sound (hack)" ] @solidclass base(Trigger,Relay) = trigger_once : "Trigger: single use" [ angles(string) : "Facing angle" : "0 360 0" : "Y Z X (Pitch Yaw Roll)" health(integer) : "Health (shootable)" : 0 ] @solidclass base(Trigger,Relay) = trigger_multiple : "Trigger: repeated" [ angles(string) : "Facing angle" : "0 360 0" : "Y Z X (Pitch Yaw Roll)" health(integer) : "Health (shootable)" : 0 wait(float) : "Reset delay" : "0.2" : "-1 = single use" ] @solidclass base(Trigger,Relay) = trigger_secret : "Trigger: secret found" [ sounds(choices) : "Sound" : 1 = [1: "Secret" 2: "Beep beep" 4: "Custom"] noise(string) : "Custom sound (hack)" ] @solidclass base(Trigger) = trigger_teleport : "Trigger: teleport" [ spawnflags(flags) = [1: "Player only" 2: "Silent"] ] @solidclass base(Trigger) = trigger_changelevel : "Trigger: change level" [ map(string) : "Destination" spawnflags(flags) = [1: "Skip intermission"] ] @solidclass base(Flags,Target) = trigger_push : "Trigger: push" [ angles(string) : "Push angle" : "0 360 0" : "Y Z X (Pitch Yaw Roll)" speed(integer) : "Speed" : 1000 spawnflags(flags) = [1: "Push once"] ] @solidclass base(Trigger) = trigger_hurt : "Trigger: hurt" [ dmg(integer) : "Damage per second" : 5 ] @solidclass base(Trigger) = trigger_setskill : "Trigger: set difficulty" [ message(choices) : "Difficulty" : 1 = [0: "Easy" 1: "Normal" 2: "Hard" 3: "Nightmare"] ] @solidclass base(Trigger) = trigger_onlyregistered : "Trigger: registered" [] @solidclass base(Trigger,Angle) = trigger_monsterjump : "Trigger: monster jump" [ speed(integer) : "Thrown forward" : 200 height(integer) : "Thrown upwards" : 200 ] // MOVERS @solidclass base(Angle,Flags,Target,LightBModels) = func_door : "Door" [ spawnflags(flags) = [1: "Start open" 4: "Don't link" 8: "Gold" 16: "Silver" 32: "Toggle"] health(integer) : "Health (shootable)" : 0 speed(integer) : "Speed" : 100 message(string) : "Locked message" wait(integer) : "Wait before returning (-1 = never return)" : 3 lip(integer) : "Lip remaining at end of move" : 8 dmg(integer) : "Damage when blocked" : 2 sounds(choices) : "Sound" : 0 = [0: "None" 1: "Stone" 2: "Hydro" 3: "Chain" 4: "Screechy" 9: "Custom"] noise1(string) : "Custom stop sound (hack)" noise2(string) : "Custom move sound (hack)" noise3(string) : "Custom try sound (hack)" noise4(string) : "Custom use sound (hack)" ] @solidclass base(Angle,Flags,Target,LightBModels) = func_button : "Button" [ speed(integer) : "Speed" : 40 wait(integer) : "Wait before returning (-1 = never return)" : 1 lip(integer) : "Lip" : 4 health(integer) : "Health (shootable)" : 0 sounds(choices) : "Sounds" = [0: "Steam" 1: "Wood" 2: "Metal" 3: "In-out" 9: "Custom"] noise(string) : "Custom sound (hack)" ] @solidclass base(Flags,Target,LightBModels) = func_door_secret : "Secret door" [ spawnflags(flags) = [ 1 : "Stay open" 2 : "Left first" 4 : "Down first" 8 : "Not shootable" 16 : "Force shootable" ] wait(integer) : "Wait before returning (-1 = never return)" : 5 angle(integer) : "Second move angle" angles(string) : "Second move angle" : "0 360 0" : "Y Z X (Pitch Yaw Roll)" t_width(integer) : "First move" t_length(integer) : "Second move" dmg(integer) : "Damage when blocked" : 2 sounds(choices) : "Sound" : 3 = [1: "Chain" 2: "Air" 3: "Base" 9: "Custom"] noise1(string) : "Custom start sound (hack)" noise2(string) : "Custom move sound (hack)" noise3(string) : "Custom stop sound (hack)" ] @solidclass base(Flags,Target,LightBModels) = func_train : "Train" [ speed(integer) : "Speed" : 100 target(target_source) : "First waypoint (min coords)" dmg(integer) : "Damage when blocked" : 2 sounds(choices) : "Sound" : 0 = [0: "Silent" 1: "Ratchet" 9: "Custom"] noise(string) : "Custom stop sound (hack)" noise1(string) : "Custom move sound (hack)" ] @solidclass base(Flags,Target,LightBModels) = func_plat : "Platform" [ spawnflags(flags) = [1: "No top trigger"] height(integer) : "Distance" :: "Default is to leave a lip of 8" speed(integer) : "Speed" : 150 sounds(choices) : "Sound" : 0 = [0: "Chain" 1: "Base" 2: "Chain" 9: "Custom"] noise(string) : "Custom move sound (hack)" noise1(string) : "Custom stop sound (hack)" ] @solidclass base(Flags,LightBModels) = func_bossgate : "Boss gate" [] @solidclass base(Flags,LightBModels) = func_episodegate : "Episode gate" [ spawnflags(flags) = [ 1: "Episode 1" : 1 2: "Episode 2" : 0 4: "Episode 3" : 0 8: "Episode 4" : 0 ] ] @solidclass base(Flags,Target,LightBModels) = func_wall : "Doesn't seal, block visibility, or split world faces, toggleable texture, killable" [] @solidclass base(LightBModels) = func_illusionary : "No collision, doesn't seal or block visibility" [ model(string) : "External model (hack): use as a point entity" frame(integer) : "External model animation frame (hack)" ] // QBSP (EricW-Tools 0.18.1) @solidclass base(LightBModels) = func_group : "Functionally identical to worldspawn, but doesn't inherit lighting settings" [] @solidclass base(LightBModels) = func_detail: "Doesn't seal or block visibility, but does split and clip away world faces" [] @solidclass base(LightBModels) = func_detail_wall : "Doesn't seal, block visibility, or split world faces, but does clip them away" [] @solidclass base(LightBModels) = func_detail_fence : "Doesn't seal, block visibility, split or clip away world faces" [] @solidclass base(LightBModels) = func_detail_illusionary : "No collision, doesn't seal, block visibility, or split world faces" [] @solidclass base(LightBModels) = func_illusionary_visblocker : "No collision, doesn't seal, but splits world faces and blocks visibility" [] @pointclass color(255 0 255) = misc_external_map : "Brush prefab" [ _external_map(string) : "Filename" :: "A .map file to import" _external_map_classname(string) : "Classname" :: "Import as this class" _external_map_angle(integer) : "Angle" :: "Yaw" _external_map_angles(string) : "Angle" :: "Y Z X (Pitch Yaw Roll)" _external_map_scale(string) : "Scale" :: "X Y Z" ] // LIGHT (EricW-Tools 0.18.1) @baseclass = LightBModels [ alpha(integer) : "Opacity" : 1 _mirrorinside(choices) : "Texture both sides" : 0 = [0: "Off" 1: "On"] _phong(choices) : "Smooth shading" : 0 = [0: "Off" 1: "On"] _phong_angle(integer) : "Phong threshold" : 89 _phong_angle_concave(integer) : "Concave angle" : 0 : "0 = same as convex" _dirt(choices) : "Ambient occlusion" : 0 = [0 : "Use global" 1 : "Force on" -1 : "Force off"] _minlight(integer) : "Minlight" : 0 _minlight_color(color255) : "Minlight color" : "255 255 255" // _lightignore(choices) : "Minlight only" : 0 = [0: "Off" 1: "On"] // _minlight_exclude(string) : "Exclude texture" :: "Faces with the given texture are excluded from receiving minlight" _shadow(choices) : "Cast shadows. Implies _selfshadow" : 0 = [0: "Default" 1: "Force on" -1: "Force off"] _selfshadow(choices) : "Self-shadowing" : 0 = [0: "Off" 1: "On"] // _shadowworldonly(choices) : "Don't cast shadow on other bmodels" : 0 = // [0: "Off" 1: "On"] // _switchableshadow(choices) : "Scriptable shadow" : 0 = // [0: "Off" 1: "On"] // _lmscale(integer) : "Lightmap scale" :: "Generates an LMSHIFT bspx lump for use by a light util. Note that both scaled and unscaled lighting will normally be used." ] @baseclass = LightWorld [// light(integer) : "Global minlight (use _minlight for clarity)" _minlight(integer) : "Global minlight" : 0 _minlight_color(color255) : "Minlight color" : "255 255 255" _sunlight(integer) : "Sunlight" _sunlight_color(color255) : "Sun color" : "255 255 255" _sun_mangle(string) : "Sun angle" : "0 -90 0" : "Z Y X (Yaw Pitch Roll)" _sunlight_penumbra(integer) : "Soft shadows" : 0 : "Penumbra, in degrees" // _anglescale(float) : "Sun angle scale" : "0.5" : "The influence of the angle of incidence with a surface" _bounce(choices) : "Bounce lighting" : 0 = [ 0 : "Off" 1 : "On" ] _bouncescale(integer) : "Bounce scale" : 1 : "Bounce contribution scale" _bouncecolorscale(choices) : "Bounce color" : 0 : "Surface textures color the bounced light" = [ 0 : "Off" 1 : "On" ] _bouncestyled(choices) : "Bounce styled" : 0 : "Bounce animated lights" = [ 0 : "Off" 1 : "On" ] _phong(choices) : "Smooth shading" : 0 = [ 0 : "Off" 1 : "On" ] _phong_angle(integer) : "Phong threshold" : 89 _phong_angle_concave(integer) : "Concave angle" : 0 : "0 = same as convex" _sunlight2(integer) : "Sky light" : 0 : "Upper hemisphere ambient light" _sunlight2_color(color255) : "Sky color" : "255 255 255" _sunlight3(integer) : "Sky light" : 0 : "Lower hemisphere ambient light" _sunlight3_color(color255) : "Sky color" : "255 255 255" _dirt(choices) : "Global ambient occlusion" : -1 : "Enables dirtmapping on all lights. Note that this is the opposite of how AO is 'supposed' to be used. For AO to be 'realistic' you would only apply it to minlight, ambient fill lights and to sunlight2 at most." = [ -1 : "Disabled" 1 : "Enabled" ] _minlight_dirt(choices) : "Minlight ambient occlusion" : 0 = [0 : "Use global" 1 : "Force on" -1 : "Force off"] _sunlight_dirt(choices) : "Sun ambient occlusion" : 0 = [0 : "Use global" 1 : "Force on" -1 : "Force off"] _sunlight2_dirt(choices) : "Upper sky ambient occlusion" : 0 = [0 : "Use global" 1 : "Force on" -1 : "Force off"] _sunlight3_dirt(choices) : "Lower sky ambient occlusion" : 0 = [0 : "Use global" 1 : "Force on" -1 : "Force off"] // _dirtmode(choices) : "AO mode" : 0 = [0: "Ordered" 1: "Randomized"] // _dirtscale(integer) : "AO scale" : 1 // _dirtgain(integer) : "AO contrast" : 1 // _dirtdepth(integer) : "AO depth" : 128 : "Maximum depth" // _dirtangle(integer) : "AO angle" : 88 : "Lower to avoid unwanted dirt" // _dist(integer) : "Global fade distance scale" : 1 _gamma(integer) : "Adjust brightness of final lightmap" : 1 _range(float) : "Global brightness range scale" : "0.5" // _lightmap_scale(integer) : "Forces all surfaces+submodels to use this specific lightmap scale. Removes LMSHIFT field." ] @baseclass size(8 8 8) color(200 200 0) = LightSource [ targetname(target_source) : "Name" spawnflags(flags) = [1: "Start off"] light(integer) : "Intensity" : 300 _color(color255) : "Color" : "255 255 255" delay(choices) : "Attenuation" : 0 = [ 0 : "Linear" 1 : "Inverse" 2 : "Inverse squared (hotspot)" 5 : "Inverse squared (sharp peak)" 3 : "No falloff" 4 : "No falloff minlight" ] style(choices) : "Animation" : 0 = [ 0 : "Normal" 1 : "Flicker 1" 6 : "Flicker 2" 2 : "Pulse (full)" 5 : "Pulse (bright)" 11: "Pulse (dim)" 10: "Fluoro 1" 3 : "Fluoro 2" 7 : "Fluoro 3" 8 : "Fluoro 4" 4 : "Strobe fast" 9 : "Strobe slow" ] target(target_destination) : "Spotlight target" :: "Point at an info_null to turn the light into a spotlight. The other way is to use mangle" mangle(string) : "Spotlight direction" :: "Z Y X (Yaw Pitch Roll). Turns the light into a spotlight. The other way is to use an info_null target" angle(integer) : "Spotlight cone angle" : 40 : "Set mangle first" _softangle(integer) : "Spotlight inner cone" :: "Angle of the inner cone, with fading intensity toward the outer cone" wait(integer) : "Attenuation multiplier" : 1 // _falloff(integer) : "Forced falloff" :: "Fade to zero at this distance. Only for 'delay 0', ignores 'wait'" _deviance(integer) : "Light size" :: "Split up the light into a sphere of randomly positioned lights within the specified radius for a softer penumbra" _samples(integer) : "Deviance sampling" : 16 : "Number of lights to use for _deviance" _dirt(choices) : "Ambient occlusion" : 0 = [0 : "Use global" 1 : "Force on" -1 : "Force off"] // _dirtscale(integer) : "AO scale" :: "Override the global _dirtscale" // _dirt_off_radius(integer) : "No dirt radius" :: "Start of the gradient" // _dirt_on_radius(integer) : "Full dirt radius" :: "End of the gradient" // _bouncescale(integer) : "Bounce scale" : 1 : "Scale or disable bounce contributions of this light" // _anglescale(float) : "Angle scale" : "0.5" : "The influence of the angle of incidence with a surface" // _surface(string) : "Surface light" :: "Attach this light to every surface with the specified texture name" // _surface_offset(integer) : "Surface light offset" : 2 : "Offset from the surface in map units" // _surface_spotlight(integer) : "Surface spotlight" :: "Turns every copy of this light into a spotlight pointed along the surface normal" // _project_texture(string) : "Project texture" :: "Project the specified texture. Must be used elsewhere in the map." // _project_mangle(string) : "Projection direction" :: "Z Y X (Yaw Pitch Roll). Overrides 'mangle'" // _project_fov(integer) : "Projection FOV" : 90 : "Specifies the field of view angle for a texture projection." // _sun(choices) : "Sun" :: "Turn the light into a sun proxy. Place anywhere, point at an info_null to set direction. Intensity, color, deviance, dirt and anglescale get inherited" = [0: "Off" 1: "On"] ]