BSL:Variables: Difference between revisions

noted that wp_hypostrength definitely doesn't do anything
(updated general notions)
(noted that wp_hypostrength definitely doesn't do anything)
 
(52 intermediate revisions by 9 users not shown)
Line 1: Line 1:
'''Variables''' in BSL are very similar to variables in other programming languages. Here's a brief explanation of what a variable is:
To learn how to declare and use variables, read the BSL manual's [[BSL:Manual#Variables|Variables]] section. This page documents Oni's built-in (or "native") scripting variables. The other half of the available scripting commands are in [[BSL:Functions]].
 
When writing logical programs, one often needs the program to remember some information (a number, a piece of text, the ON/OFF state of a switch, etc) so that the information can be used at a later time.
 
The usual thing to do in this situation is to store the needed data in a '''variable''': an elementary data container.
 
 
==General notions==
===Type and value===
A variable (data container) has three important attributes: the ''name'', the ''type'' and the ''value''.
 
The ''value'' or the variable is just the contents it currently stores. It can be read and written.
 
Also, a given variable can store only a specific ''type'' of data (floating-point number or integer or text string or boolean), and that is what we call the variable's type.
 
Finally, the ''name'' of a variable is a unique text string that is used to identify the data container within the script. Like [[BSL:Functions|function]] names, variable names are case-sensitive (NOTE: [[BSL:Preset|preset]] variables and functions are all lower-case). Valid characters are: ''please fill me in''
 
An easy way to get the ''type'' and ''value'' of an existing BSL variable is to enter its ''name'' at the console in [[Developer Mode]]: you typically get console output like "bool: 1" or "int32: 42" or "float: 3.14" or "string: hello"
 
 
----
===Declaration and assignment===
If you want to use a new variable (data container), you must set it up (''declare'' it) first, with the '''var''' keyword. A declaration statement can look a bit like this:
var int my_superduper_integer;
var bool my_totally_awesome_boolean;
var string my_incredible_text_string;
var float my_cool_floating_point_number;
The first word is the keyword "var", next comes the type (keyword), then the name of the variable. The final ";" is required. The name can be any valid name (i.e., not a keyword and not containing invalid characters)
 
A declaration is usually seen at "global scope" (i.e., outside all functions). It is recommended to group declarations at the beginning of a BSL file (for readability), but it's not necessary. It is also not necessary (but strongly recommended) to declare a variable ''before'' the context where it is used for the first time.
 
On some occasions you may want to declare a ''local'' variable (i.e., to embed a declaration statement into a [[BSL:Functions|function]]). This feature will be detailed elsewhere.
 
 
----
===Assignment===
You can assign a new value to an existing variable with the assignment operator "=". The name of the variable you want to modify is on the left-hand-side (LHS) of the "=", and on the right-hand-side (RHS) you can have any valid [[BSL:Expressions|expression]] that evaluates/converts into the variable's type.
 
An assignment can be combined with a declaration (see above). That means the variable will have a definite value right after it is created. If you don't specify/define such a starting value, you should not, generally speaking, assume anything about the value.
 
However, apparently there ''are'' "default" values assigned to every variable even if it hasn't been defined yet. Those values are 0 (i.e., false) for bool, 0 for int and float, and "" (empty string) for string.
 
 
----
===More===
Later.
 
 
----
----
==Preset variables==
;All the preset OSL variables are listed here, in alphabetical order.
;Please fill in with [http://www6.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm ssg's stuff] (descriptions + OK if variable works).
;Type and default value (from console) if you're motivated enough.
;It may be a little less tedious to expand specific subpages of [[OSL:Preset|Preset]]
;(mini-tutorials of sorts) [[User:Geyser|geyser]]
 


==Legend==
;Color
;Color
:White : available on all versions
:White: available in all versions
:Gray : available only on PC retail and Mac beta 4
:Blue: command only exists in Mac Intel build
:Red : Mac beta 4 exclusive
:Green: command only exists in Windows build
:Green : PC retail exclusive
;Default value
;Default value
:''Italic'' : reset by engine at level load (not checked yet for '''chr_buffer_size''' and beyond, unless specified)
:'''[#] !!!''': reset to this number on level-load
{|border=1 cellspacing=0 cellpadding=1
:'''$ !!!''': set based on [[persist.dat]] at game/level-load
;Works
:"OK": both platforms can use this command
:"OK-D": both platforms can use this command, but Windows Oni requires the Daodan DLL
:"OK-M": the command only works on Intel Macs
:"OK?": confirmation/refinement required
:"OK!": apparently works but makes the game crash/hang/etc. Use with caution if at all.
:"??": command may not work
:"NO": command is proven not to work
 
==Built-in variables==
{|border=1 cellspacing=0 cellpadding=2
!Type!!Name!!Default value!!Comment!!Works
!Type!!Name!!Default value!!Comment!!Works
|-
|-
|bool||[[ai2_barabbas_run]]||1
|bool||[[ai2_barabbas_run]]||1
|all AI can apparently run with the WMC...||??
|"lets Barabbas run while carrying his gun"||OK
|-
|-
|bool||[[ai2_blind]]||''0''
|bool||[[ai2_blind]]||'''0 !!!'''
|turns off the AI's visual sensing system||OK
|"turns off the AI's visual sensing system"||OK
|-
|-
|bool||[[ai2_boss_battle]]||''0''
|bool||[[ai2_boss_battle]]||'''0 !!!'''
|enables AI boss-battle target selection||??
|"enables AI boss-battle target selection"<br>used in '''compound''': apparently makes Muro's friends focus on yours rather than on you. Only seems to  have effect on ''Boss'' flagged characters at BINACJBOCharacter file. It seems that makes other characters try to ignore the ''Boss'' flagged character and make the ''Boss'' flagged character focus on the player rather the other characters.||OK
|-
|-
|bool||[[ai2_chump_stop]]||''0''
|bool||[[ai2_chump_stop]]||'''0 !!!'''
|disables the pathfinding behaviour of chump(s)||OK
|"stops the chump"<br>disables the pathfinding behaviour of chump(s)||OK
|-
|-
|bool||[[ai2_deaf]]||''0''
|bool||[[ai2_deaf]]||'''0 !!!'''
|turns off the AI's sound sensing system||OK
|"turns off the AI's sound sensing system"||OK
|-bgcolor="lime"
|int32||[[ai2_debug_localmove_lines]]||20
|"number of lines to cast to debug local-movement code"||OK
|-
|-
|int32||[[ai2_debug_localmove_lines]]||20
|number of lines to cast to debug local-movement code||OK
|-bgcolor="lime"
|bool||[[ai2_debug_localmovement]]||0
|bool||[[ai2_debug_localmovement]]||0
|debug local-movement code from player's position||OK
|"debug local-movement code from player's position"||OK
|-
|-
|bool||[[ai2_debug_localpathfinding]]||0
|bool||[[ai2_debug_localpathfinding]]||0
|debug local-path code from player's position and facing||OK
|"debug local-path code from player's position and facing"||OK
|-
|-
|bool||[[ai2_debug_showsettingIDs]]||0
|bool||[[ai2_debug_showsettingIDs]]||0
|shows ID numbers for combat, melee and neutral settings||??
|"shows ID numbers for combat, melee and neutral settings"||??
|-
|-
|bool||[[ai2_ignore_player]]||''0''
|bool||[[ai2_ignore_player]]||'''0 !!!'''
|makes all AI ignore the player||OK
|"makes all AI ignore the player"||OK
|-
|-
|bool||[[ai2_melee_weightcorrection]]||1
|bool||[[ai2_melee_weightcorrection]]||1
|weights down non-attack techniques so they are never more than attacks||??
|"weights down non-attack techniques so they are never more than attacks"||??
|-
|-
|bool||[[ai2_printspawn]]||0
|bool||[[ai2_printspawn]]||0
|prints information about each AI spawn||??
|"prints information about each AI spawn"||OK
|-
|-
|bool||[[ai2_showactivationpaths]]||0
|bool||[[ai2_showactivationpaths]]||0
|shows the initial pathfinding (upon activation) of all AI||OK
|"turns on inactive ==> active pathfinding rendering"||OK
|-
|-
|bool||[[ai2_showastar]]||0
|bool||[[ai2_showastar]]||0
|shows something about the A* pathfinding||??
|"shows grid squares that are evaluated by the A* pathfinding"||bgcolor=#ccccff|OK-M
|-
|-
|bool||[[ai2_showcombatranges]]||0
|bool||[[ai2_showcombatranges]]||0
|shows near and far combat range of all AI||OK
|"shows circles that represent the combat ranges of each AI"||OK
|-
|-
|bool||[[ai2_showconnections]]||0
|bool||[[ai2_showconnections]]||0
|shows the result of [[ai2_findconnections]]||OK  
|"turns on pathfinding connection rendering"<br>(result of a call to [[ai2_findconnections]])||OK  
|-
|-
|bool||[[ai2_showdynamicgrids]]||0
|bool||[[ai2_showdynamicgrids]]||0
|shows dynamic grids (moving obstacles) if '''ai2_showgrids''' is ON||OK
|"turns on pathfinding dynamic grid display"<br>(moving obstacles; needs '''ai2_showgrids''')||OK
|-
|-
|bool||[[ai2_showfights]]||0
|bool||[[ai2_showfights]]||0
| ||  
|"shows fights in progress"||OK?
|-
|-
|bool||[[ai2_showfiringspreads]]||0
|bool||[[ai2_showfiringspreads]]||0
|shows the firing spread of all active weapons||OK
|"shows AI firing spread knowledge"||OK
|-
|-
|bool||[[ai2_showgrids]]||0
|bool||[[ai2_showgrids]]||0
|shows static grids (see [[AKVA]])||OK
|"turns on pathfinding grid rendering"<br>(static grids; see [[OBD:AKVA|AKVA]])||OK
|-
|-
|bool||[[ai2_showhealth]]||0
|bool||[[ai2_showhealth]]||0
|shows health and healthbar above every AI]]||OK
|"draws a health bar for every AI above their head"||OK
|-
|-
|bool||[[ai2_showintersections]]||0
|bool||[[ai2_showintersections]]||0
| ||  
|"debug AI's melee intersections"||??
|-
|-
|bool||[[ai2_showjoblocations]]||0
|bool||[[ai2_showjoblocations]]||0
| ||  
|"draws a green cross at each AI's job location"||OK?
|-
|-
|bool||[[ai2_showlasers]]||0
|bool||[[ai2_showlasers]]||0
| ||??
|"turns on laser sights for AI2 characters"||??
|-
|-
|bool||[[ai2_showlinetochar]]||0
|bool||[[ai2_showlinetochar]]||0
|draws a line from the player to every char||OK
|"draws a line from the player to every AI"<br>(to be precise, it draws a line from the player to every spawned AI character, be it via [[ai2_spawn]] or via [[chr_create]])
<ul>
<li><span style="color: Green">green</span> line: AI character is active and drawn</li>
<li><span style="color: Blue">blue</span> line: AI character is active, but not drawn</li>
<li><span style="color: Red">red</span> line: AI character is inactive</li>
</ul>
Related BSL functions: [[chr_draw_all_characters]], [[chr_lock_active]], [[chr_unlock_active]]<br>
Related BSL variables: [[chr_all_active]]
||OK
|-
|-
|bool||[[ai2_showlocalmelee]]||0
|bool||[[ai2_showlocalmelee]]||0
| ||  
|"shows local-environment melee awareness"||OK?
|-
|-
|bool||[[ai2_showlos]]||0
|bool||[[ai2_showlos]]||0
|the LOS of all aiming enemies leaves a permanent trace||
|"shows AI line-of-sight checking"<br>(LOS of all aiming AI leaves a permanent trace)|| OK
|-
|-
|bool||[[ai2_shownames]]||0
|bool||[[ai2_shownames]]||0
| ||  
|"draws the name of every AI above their head"||OK
|-
|-
|bool||[[ai2_showpathfindingerrors]]||0
|bool||[[ai2_showpathfindingerrors]]||0
| ||  
|"enables visual display of pathfinding errors"||OK?
|-
|-
|bool||[[ai2_showpaths]]||0
|bool||[[ai2_showpaths]]||0
| ||  
|"shows the path each AI is following"||OK
|-
|-
|bool||[[ai2_showprediction]]||0
|bool||[[ai2_showprediction]]||0
| ||  
|"shows prediction info for AI2 characters"<br>(player's "predicted" position is shown etc)||OK
|-
|-
|bool||[[ai2_showprojectiles]]||0
|bool||[[ai2_showprojectiles]]||0
| ||  
|"shows AI projectile knowledge"||OK
|-
|-
|bool||[[ai2_showsounds]]||0
|bool||[[ai2_showsounds]]||0
| ||  
|"shows AI sounds as they are generated"||OK
|-
|-
|bool||[[ai2_showtargeting]]||0
|bool||[[ai2_showtargeting]]||0
| ||  
|"shows targeting info for AI2 characters"||OK
|-
|-
|bool||[[ai2_showvision]]||0
|bool||[[ai2_showvision]]||0
| ||  
|"shows each AI's vision cones (central and peripheral)"||OK
|-
|-
|int32||[[ai2_spacing_cookies]]||2
|int32||[[ai2_spacing_cookies]]||2
| ||  
|"number of cookies per fight"<br>the more cookies, the more attacks: 0 means nothing but maneuver||OK
|-
|-
|bool||[[ai2_spacing_enable]]||1
|bool||[[ai2_spacing_enable]]||1
| ||  
|"master enable switch for spacing behavior"||OK?
|-
|-
|bool||[[ai2_spacingweights]]||1
|bool||[[ai2_spacing_weights]]||1
| ||  
|"enables position-sensitive weighting of spacing behaviors"||OK?
|-
|-
|int32||[[ai2_stopignoring_count]]||6
|int32||[[ai2_stopignoring_count]]||6
|number of events before the AI will stop ignoring||??
|"set the number of events before the AI will stop ignoring"||??
|-
|-
|int32||[[ai2_stopignoring_time]]||240
|int32||[[ai2_stopignoring_time]]||240
|time before the AI forgets about ignored events, in frames||??
|"set the delay timer before the AI forgets about ignored events"||??
|-bgcolor="silver"
|-
|bool||am_hit_everything||0
|bool||[[am_hit_everything]]||0
|makes the laser pointer hit all objects||??
|"makes the laser pointer hit all objects"<br>(determines whether the gun's aiming laser stops at quads marked with non-object-collision)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||am_invert||''??''
|bool||[[am_invert]]||'''$ !!!'''
|inverts aiming||OK
|"inverts aiming" This is set from [[persist.dat]] at game load (in the absence of '''persist.dat''' the default is 0).
|-bgcolor="silver"
:The value 0 means normal aiming (mouse up to look up). The value 1 means inverted aiming (mouse down to look up). Unlike the backwards "Invert Mouse" checkbox on the Options screen (fixed in the [[AE]]), this variable does not work the opposite of how you would expect.
|bool||am_show_axes||0
|OK
| ||
|-
|-bgcolor="silver"
|bool||[[am_show_axes]]||0
|bool||am_show_closest||0
|"shows world axes"
| ||
:This attaches a giant 3D axis to Konoko which claims to show the direction of positive x, y, and z in the world coordinate system, however it is '''wrong'''. Oni uses a ''Y-up coordinate system''; do not let the world axis model showing Z-up mislead you.
|-bgcolor="silver"
|bgcolor=#ccccff|OK-M
|bool||am_show_filenames||0
|-
|displays debug box||
|bool||[[am_show_closest]]||0
|-bgcolor="silver"
|"dumps the closest GQ index to console"<br>(continuously prints to console the nearest gunk quad's number followed by two other unhelpful pieces of info)||OK
|float||character_name_distance||150.
|-
|AFAIK, names are always drawn||
|bool||[[am_show_filenames]]||0
|-bgcolor="silver"
|"dumps the closest GQ index file/obj name to console"<br>(displays lots of info on-screen, not in console, about quad you are aiming weapon at, but no file names)||bgcolor=#ccccff|OK-M
|bool||chr_active||1
|-bgcolor=#ccccff
|if OFF, all characters are inactive||OK
|bool||[[am_show_texturenames]]||0
|-bgcolor="silver"
|"Shows Texture name"<br>(displays name of texture you are aiming weapon at, as well as coordinates of reticle)||OK
|float||chr_aim_width||70.
|-
|width of the aiming arc, in degrees||OK
|float||[[character_name_distance]]||150.
|-bgcolor="silver"
|"specifies the distance from the camera that character names no longer draw"<br>(probably needs show_characters)||bgcolor=#ccccff|OK-M
|bool||chr_all_active||0
|-
|forces offscreen characters to remain active||OK
|bool||[[chr_active]]||1
|-bgcolor="silver"
|"enables character activity"<br>(0 freezes animation etc)||OK
|float||chr_auto_aim_arc||90.
|-
|width of the auto aiming arc, in degrees||OK
|float||[[chr_aim_width]]||70.
|-bgcolor="silver"
|"number of degress of aiming width"<br>width of the aiming arc, in degrees||OK
|float||chr_auto_aim_dist||40.
|-
|threshold distance for auto aiming, in world units||OK
|bool||[[chr_all_active]]||0
|"forces all characters to be active"||OK
|-
|float||[[chr_auto_aim_arc]]||90.
|"number of degress of auto aiming arc"<br>width of the auto aiming arc, in degrees||OK
|-
|float||[[chr_auto_aim_dist]]||40.
|"distance for auto aiming"<br>upper threshold, in world units||OK
|-
|bool||[[chr_big_head]]||'''0 !!!'''
|"draws everyone with a big head"<br>(head size set by chr_big_head_amount)||OK
|-
|float||[[chr_big_head_amount]]||4.
|"Controls the size of the big head"||OK
|-
|float||[[chr_block_angle]]||20.
|"controls the angle at which the characters can block"||OK
|-
|int32||[[chr_buffer_size]]||8
|"0 = normal buffer, otherwise buffer duration"||??
|-
|bool||[[chr_collision_box]]||1
|"toggles character bounding box / bounding sphere collision"||??
|-
|float||[[chr_collision_grow]]||0.
|"sets character bounding box collision grow amount"||??
|-
|bool||[[chr_corpse_fade_offscreen]]||1
|"makes corpses fade when they are offscreen"||??
|-
|int32||[[chr_death_fade_frames]]||180
|"the number of game ticks until charaters fade over"||??
|-
|int32||[[chr_death_fade_start]]||7200
|"the number of game ticks until charaters begin to fade"||??
|-
|bool||[[chr_debug_aiming_screen]]||0
|"turns on aiming screen debugging"<br>(dumps AS changes to console)||OK
|-
|bool||[[chr_debug_characters]]||0
|"enables debugging information for characters"<br>(shows currently playing animation)||OK
|-
|bool||[[chr_debug_collision]]||0
|"turns on/off debugging of collision"<br>(melee collision info written to console)||OK
|-
|bool||[[chr_debug_fall]]||0
|"controls debugging falling"<br>(dumps events to console)||OK
|-
|bool||[[chr_debug_footsteps]]||0
|"footstep debugging mode"<br>(dumps events to console)||OK
|-
|bool||[[chr_debug_footsteps_verbose]]||0
|"verbose footstep debugging mode"<br>(dumps anim/type/frame to console)||OK
|-
|bool||[[chr_debug_handle]]||0
|"turns on debugging for the handle code"<br>(dumps events to console)||OK
|-
|bool||[[chr_debug_impacts]]||0
|"prints debugging info about character melee impacts"<br>(to console)||OK
|-
|bool||[[chr_debug_overlay]]||0
|"enables debugging information for overlays"||OK
|-
|bool||[[chr_debug_pathfinding]]||0
|"control pathfinding debugging"||OK
|-
|bool||[[chr_debug_sphere]]||0
|"enables sphere tree debugging for characters"<br>(draws collision spheres for every character)||OK
|-
|int32||[[chr_debug_target]]||0
|"selects the character debugging target"<br>(used by all debugging routines)||OK
|-
|bool||[[chr_debug_trigger_quad]]||0
|"controls trigger quad debugging"<br>(draws characters as vertical lines)||OK
|-
|bool||[[chr_disable_melee]]||0
|"turns off all melee damage"<br>(also disables knockdowns; does NOT disable throws)||OK
|-
|bool||[[chr_disable_visactive]]||0
|"disables visibility activation"||OK
|-
|bool||[[chr_draw_aiming_vector]]||0
|"enables drawing of the aiming vector"||OK
|-
|bool||[[chr_draw_all_characters]]||0
|"forces the drawing of all characters"<br>(also keeps them active)||OK
|-
|bool||[[chr_draw_facing_vector]]||0
|"enables drawing of the facing vector"||OK
|-
|bool||[[chr_draw_weapon]]||1
|"controls drawing of weapons"||OK
|-
|bool||[[chr_enable_collision]]||1
|"enables character collision"<br>(does NOT prevent throws if disabled)||OK
|-
|int32||[[chr_lod]]||-1
|"forces a given lod if it is between 0 and 4"<br>(uses automatic LOD otherwise)||OK
|-
|bool||[[chr_mini_me]]||0
|"decreases the size of the main character"<br>(Actually, this command allows the character to be made smaller <u>or</u> larger. The custom size is set by '''chr_mini_me_amount''' below.)||OK
|-
|float||[[chr_mini_me_amount]]||0.5
|"controls the size of the main character"<br>(effective only if '''chr_mini_me''' is enabled)<br>''"1" represents "100% of normal size", so numbers between 0 and 1 scale the character down, and numbers above one scale the character up. If you supply "0", the character becomes invisible. If "-1", the character walks on the underside of the floor. With a very low number like -1000, the character will still walk below the floor but will be enormous (they will not be visible, however, as long as the camera remains above the floor); they will also lose collision with other characters, and sounds made by the character will not be heard.''||OK
|-
|bool||[[chr_pin_character]]||0
|"pins a character to the ground"<br>(freezes the coordinates of ''all'' characters)||OK
|-
|bool||[[chr_print_sound]]||0
|"turns on printing of the sound effect"||??
|-
|bool||[[chr_show_bnv]]||0
|"shows the bnv of the main character"<br>(pathfinding volume; see [[OBD:AKVA|AKVA]])||OK
|-
|bool||[[chr_show_lod]]||0
|"shows the current lod of the main character"||OK
|-
|int32||[[chr_show_movement]]||0
|"enables movement debugging information for characters"<br>(dumps XZ velocity to console every # frames)||OK
|-bgcolor=#ccccff
|int32||[[chr_show_weaponid]]||0
|"Shows weapon ID"||OK
|-bgcolor=#ccccff
|bool||[[chr_showextent_globals]]||0
|"shows the global parts of an attack animation's extent"||OK
|-
|bool||[[chr_weapon_auto_aim]]||1
|"enables auto aiming"<br>(melee auto aiming not affected)||OK
|-
|float||[[cinematic_xoffse]]t||20.
|"offset from the vertical edge of the screen for the cinematic insert"||??
|-
|float||[[cinematic_yoffset]]||65.
|"offset from the horizontal edge of the screen for the cinematic insert"||??
|-
|float||[[cm_canter_unarmed]]||8.
|"camera canter"<br>(when not aiming; in degrees)||OK
|-
|float||[[cm_canter_weapon]]||7.
|"camera canter"<br>(when aiming, in degrees)||OK
|-
|float||[[cm_distance]]||33.
|"camera distance"<br>(to target, in world units)||OK
|-
|float||[[cm_height]]||15.
|"camera target"<br>(target height to feet of target character, in world units)||OK
|-
|int32||[[cm_jello_amt]]||20
|"sets the transparency of walls"<br>(for [[Jello-cam]] mode, in % )||OK
|-
|float||[[cm_jello_radius]]||12.
|radius of effect of [[Jello-cam]] mode||OK
|-
|float||[[cm_lookspring_percent]]||0.5
|"at what percent of lookspring fight mode turns off"||??
|-
|bool||[[cm_plane_test]]||1
|"jello camera plane test"||OK
|-
|bool||[[co_display]]||1
|"enables console display"<br>(console output only)||OK
|-
|int32||[[co_fade_time]]||600
|"the fade time of the console"||OK
|-
|bool||[[co_message_display]]||1
|"enables text message display"<br>(dmsg and prompts)||OK
|-
|int32||[[co_priority]]||0
|"changes the priority of messages to display on the console"<br>not sure what messages have priority >0||OK
|-
|bool||[[debug_consoles]]||0
|"prints debugging information about console usage"<br>(information about ''in-game'' consoles; prints to ''dev mode'' console ^^)||OK
|-bgcolor=#ccccff
|bool||[[debug_font_cache]]||0
|"displays font cache texture"||??
|-
|bool||[[debug_gun_behavior]]||0
|"enable AI gun behavior debugging"<br>(dumps events to console)||OK
|-
|bool||[[debug_impacts]]||0
|"prints impacts as they occur"<br>(to console; footsteps, melee, projectiles...)||OK
|-
|bool||[[debug_scripts]]||0
|"enable script debugging"<br>(dumps events to console)||OK
|-
|bool||[[debug_triggers]]||0
|"enable trigger volume debugging"<br>(dumps events to console)||OK
|-
|bool||[[debug_weapons]]||0
|"prints debugging info about weapon particle events"||OK
|-
|bool||[[door_drawframes]]||0
|"draws doorframes for all unplaced doors"||??
|-
|bool||[[door_ignore_locks]]||0
|"disables all door locks"||OK
|-
|bool||[[door_pop_lighting]]||0
|"uses bad door lighting"||??
|-
|bool||[[door_show_activation]]||0
|"draws a circle where door activates"||??
|-
|bool||[[door_show_debug]]||0
|"shows debug geometry"<br>(dumps events to console)||OK
|-
|-
|bool||chr_big_head||''0''
|enables custom head size factor for all characters||OK
|-bgcolor="silver"
|float||chr_big_head_amount||4.
|custom head size factor for all characters||OK
|-bgcolor="silver"
|float||chr_block_angle||20.
|width of the blocking angle, in degrees||OK
|-bgcolor="silver"
|int32||chr_buffer_size||8
| ||
|-bgcolor="silver"
|bool||chr_collision_box||1
| ||
|-bgcolor="silver"
|float||chr_collision_grow||0.
| ||
|-bgcolor="silver"
|bool||chr_corpse_fade_offscreen||1
|makes characters fade to corpses when offscreen||??
|-bgcolor="silver"
|int32||chr_death_fade_frames||180
|time over which characters fade to corpses, in frames||??
|-bgcolor="silver"
|int32||chr_death_fade_start||7200
|time until characters fade to corpses, in frames||??
|-bgcolor="silver"
|bool||chr_debug_aiming_screen||0
|enables dumping of aiming screen events to '''console'''||OK
|-bgcolor="silver"
| ||chr_debug_characters||
| ||
|-bgcolor="silver"
| ||chr_debug_collision|| || ||
|-bgcolor="silver"
| ||chr_debug_fall|| || ||
|-bgcolor="silver"
| ||chr_debug_footsteps|| || ||
|-bgcolor="silver"
| ||chr_debug_footsteps_verbose|| || ||
|-bgcolor="silver"
| ||chr_debug_handle|| || ||
|-bgcolor="silver"
| ||chr_debug_impacts|| || ||
|-bgcolor="silver"
| ||chr_debug_overlay|| || ||
|-bgcolor="silver"
| ||chr_debug_pathfinding|| || ||
|-bgcolor="silver"
|bool||chr_debug_sphere||0
|displays collision sphere(s) around characters||
|-bgcolor="silver"
|bool||chr_debug_target||0
| ||
|-bgcolor="silver"
|bool||chr_debug_trigger_quad||0
| ||
|-bgcolor="silver"
|bool||chr_disable_melee||0||turns off all melee damage||??
|-bgcolor="silver"
|bool||chr_disable_visactive||0||disables visibility activation||OK
|-bgcolor="silver"
|bool||chr_draw_aiming_vector||0
|enables drawing of the aiming vector||OK
|-bgcolor="silver"
|bool||chr_draw_all_characters||0
|forces the drawing of all characters (also keeps them active)||OK
|-bgcolor="silver"
| ||chr_draw_facing_vector|| || ||
|-bgcolor="silver"
| ||chr_draw_weapon|| || ||
|-bgcolor="silver"
|bool||chr_enable_collision||1||enables character collision||OK
|-bgcolor="silver"
|int32||chr_lod||-1||character LOD (-1 = AUTO, 0 = xlow, ..., 4 = xhigh)||OK
|-bgcolor="silver"
|bool||chr_mini_me||0||enables custom size factor for the main character||OK
|-bgcolor="silver"
|float||chr_mini_me_amount||0.5||custom size factor for the main character||OK
|-bgcolor="silver"
|bool||chr_pin_character||0||pins all characters (freezes coordinates)||OK
|-bgcolor="silver"
| ||chr_print_sound|| || ||
|-bgcolor="silver"
| ||chr_show_bnv|| || ||
|-bgcolor="silver"
| ||chr_show_lod|| || ||
|-bgcolor="silver"
| ||chr_show_movement|| || ||
|-bgcolor="silver"
|bool||chr_weapon_auto_aim||1||enables auto aiming||OK
|-bgcolor="silver"
|float||cinematic_xoffset||20.||offset from the vertical edge of the screen for the cinematic insert||??
|-bgcolor="silver"
|float||cinematic_yoffset||65.||offset from the horizontal edge of the screen for the cinematic insert||??
|-bgcolor="silver"
|float||cm_canter_unarmed||7.||camera canter in melee, in degrees||OK
|-bgcolor="silver"
|float||cm_canter_weapon||8.||camera canter when aiming, in degrees||OK
|-bgcolor="silver"
|float||cm_distance||33.||camera distance to target, in world units||OK
|-bgcolor="silver"
|float||cm_height||15.||camera target height to feet, in world units||OK
|-bgcolor="silver"
|int32||cm_jello_amt||20||percentage of wall transparency in [[Jello]] mode||OK
|-bgcolor="silver"
|float||cm_jello_radius||12.||radius of effect of [[Jello]] mode||OK
|-bgcolor="silver"
|float||cm_lookspring_percent||0.5||percentage of lookspring at which fight mode turns off||??
|-bgcolor="silver"
|bool||cm_plane_test||1||enables plane test for [[Jello]] camera||??
|-bgcolor="silver"
| ||co_display|| || ||
|-bgcolor="silver"
| ||co_fade_time|| || ||
|-bgcolor="silver"
| ||co_message_display|| || ||
|-bgcolor="silver"
| ||co_priority|| || ||
|-bgcolor="silver"
| ||debug_consoles|| || ||
|-bgcolor="red"
| ||debug_font_cache|| || ||
|-bgcolor="silver"
| ||debug_gun_behavior|| || ||
|-bgcolor="silver"
| ||debug_impacts|| || ||
|-bgcolor="silver"
| ||debug_scripts|| || ||
|-bgcolor="silver"
| ||debug_triggers|| || ||
|-bgcolor="silver"
| ||debug_weapons|| || ||
|-bgcolor="silver"
| ||door_drawframes|| || ||
|-bgcolor="silver"
|bool||door_ignore_locks||0
|ignores locked state for all doors||OK
|-bgcolor="silver"
| ||door_pop_lighting|| || ||
|-bgcolor="silver"
| ||door_show_activation|| || ||
|-bgcolor="silver"
| ||door_show_debug|| || ||
|-bgcolor="silver"
|bool||[[draw_every_frame]]||0
|bool||[[draw_every_frame]]||0
|forces the drawing of every Nth frame||OK
|"forces drawing of every frame"<br>(every '''draw_every_frame_multiple'''th frame; takes precedence over '''fast_mode''')||OK
|-bgcolor="silver"
|-
|int32||[[draw_every_frame_multiple]]||1  
|int32||[[draw_every_frame_multiple]]||1  
||sets the drawing frequency if '''draw_every_frame''' is ON||OK
||"draw every frame multiple"<br>set drawing frequency if '''draw_every_frame''' is ON||OK
|-bgcolor="silver"
|-
|bool||env_collision||1
|bool||[[env_collision]]||1
|enables environment collision||??
|"enables environment collision"||??
|-bgcolor="silver"
|-
|bool||env_drawallgqs||0
|bool||[[env_drawallgqs]]||0
| ||??
|"draw all the GQs"||??
|-bgcolor="silver"
|-
|bool||env_drawfrustum||0
|bool||[[env_drawfrustum]]||0
| ||??
|"draw the frustum around the environment camera"||??
|-bgcolor="silver"
|-
|bool||env_drawvisonly||0
|bool||[[env_drawvisonly]]||0
| ||??
|"draw only the GQs used for visibility"||??
|-bgcolor="silver"
|-
|int32||[[env_highlight_gq]]||-1
|int32||[[env_highlight_gq]]||-1
|points out the quad with that ID (-1 means none)||OK
|"highlights a particular gq"<br>(-1 means none)||OK
|-bgcolor="silver"
|-
|int32||[[env_ray_number]]||20
|int32||[[env_ray_number]]||20
|number or rays cast per frame||
|"sets the number of rays to cast" (per frame). Bigger values than 20 may be ineffective (cause the console message "allocated too many akira rays")||OK
|-bgcolor="silver"
|-
|bool||env_show_ghostgqs||0
|bool||[[env_show_ghostgqs]]||0
| ||??
|"when true show ghost GQs" (PC&Mac: Works only for self-made GQs via onisplit v0.9.93.0 -create:level in '''-debug''' out/*.xml; )||OK
|-bgcolor="silver"
|-
|bool||env_show_leafnodes||0
|bool||[[env_show_leafnodes]]||0
| ||??
|"enables display of environment octtree leaf nodes"||??
|-bgcolor="silver"
|-
|bool||env_show_octnode_gqs||0
|bool||[[env_show_octnode_gqs]]||0
| ||  
|"when true the environment only renders triangles in the octnode that contains the manual camera"||??
|-bgcolor="silver"
|-
|bool||env_show_octtree||0
|bool||[[env_show_octtree]]||0
| ||  
|"enables display of environment octtree traversal"||??
|-bgcolor="silver"
|-
|bool||[[env_show_quad_count]]||0|| ||  
|bool||[[env_show_quad_count]]||0
|-bgcolor="silver"
|"shows the count of visable environment quads"||??
|bool||env_show_rays||0|| ||  
|-
|-bgcolor="silver"
|bool||[[env_show_rays]]||0
|bool||env_show_stairflagged||0|| ||
|"draw the rays"||??
|-bgcolor="silver"
|-
| ||fast_lookup|| || ||  
|bool||[[env_show_stairflagged]]||0
|-bgcolor="silver"
|"show specially flagged noncollision quads"<br>(not sure what this was supposed to do, but the dev keys for "Character collision" (Ctrl-Shift-T) and "Invisible quads" (Ctrl-Shift-I) will show stair collision ramps)||??
| ||fast_mode|| || ||  
|-
|-bgcolor="silver"
|bool||[[fast_lookup]]||1
| ||flag_name_distance|| || ||  
|"enables fast lookup"||??
|-bgcolor="silver"
|-
| ||flag_new_id|| || ||  
|bool||[[fast_mode]]||0
|-bgcolor="silver"
|"makes the game run fast" (only if '''draw_every_frame''' is disabled)||OK
| ||footstep_flash|| || ||  
|-
|-bgcolor="silver"
|float||[[flag_name_distance]]||150.0
| ||fx_laser_width|| || ||  
|"specifies the distance from the camera that flag names no longer draw"<br>(probably needs show_flags)||??
|-bgcolor="silver"
|-
|bool||gl_disable_depth_reads||0||disables depth reads||??
|int32||[[flag_new_id]]||'''$ !!!'''
|-bgcolor="red"
|"specifies the id for a new flag"<br>(equal to the last flag added at level load)||??
| ||gl_disable_dxt1|| || ||  
|-
|-bgcolor="red"
|bool||[[footstep_flash]]||0
| ||gl_disable_packed_pixels|| || ||  
|"footstep flash mode"||OK
|-
|float||[[fx_laser_width]]||0.2
|width of lasers (weapons and triggers)||OK
|-
|bool||[[gl_disable_depth_reads]]||0
|"disable_depth_reads"||??
|-bgcolor=#ccccff
|bool||[[gl_disable_dxt1]]||0
|"lets you disable use of DXT1"||??
|-bgcolor=#ccccff
|bool||[[gl_disable_packed_pixels]]||0
|"lets you disable packed-pixels support"||??
|-
|float||[[gl_fog_blue]]||'''0.25 !!!'''
|"fog blue"<br>(amount: 0 to 1)||OK
|-
|float||[[gl_fog_end]]||'''1. !!!'''
|"fog end" in frustum space||OK
|-
|float||[[gl_fog_green]]||'''0.25 !!!'''
|"fog green"<br>(amount: 0 to 1)||OK
|-
|float||[[gl_fog_red]]||'''0.25 !!!'''
|"fog red"<br>(amount: 0 to 1)||OK
|-
|float||[[gl_fog_start]]||'''0.975 !!!'''
|"fog start" in frustum space||OK
|-bgcolor=#ccccff
|int32||[[gl_mipmap_offset]]||0
|"lets you disable miplevels (-ve = disable big, +ve = disable small)"||??
|-
|float||[[gs_input_accel]]||5.0
|"use this to control the input sensitivity" (affects the camera movement keys for the free-roaming camera in [[Dev Mode]])||OK
|-
|int32||[[gs_screen_shot_reduce]]||0
|"2^n amount of reduction"||OK
|-
|bool||[[gs_show_characters]]||1
|"turns on the drawing of characters"||OK
|-
|bool||[[gs_show_corpses]]||1
|"show corpses"||OK
|-
|bool||[[gs_show_environment]]||1
|"turns on doing the environment"||OK
|-
|bool||[[gs_show_object_count]]||0
|"shows the count of objects"||??
|-
|bool||[[gs_show_objects]]||1
|"turns on the drawing of objects"||OK
|-
|bool||[[gs_show_particles]]||1
|"turns on the drawing of particles"||OK
|-
|bool||[[gs_show_physics_count]]||0
|"shows the count of physics"||??
|-
|bool||[[gs_show_scripting_count]]||0
|"shows the count of active scripting contexts"||??
|-
|bool||[[gs_show_shadows]]||1
|"enables character shadows"||OK
|-
|-
|float||gl_fog_blue||'''0.25'''||amount of blue fog (0 - 1)||OK
|bool||[[gs_show_sky]]||1
|"turns on the sky"||??
|-
|-
|float||gl_fog_end||'''1.'''||fog end||OK
|bool||[[gs_show_ui]]||1
|"turns on the ui" (aka HUD)||OK
|-
|-
|float||gl_fog_green||'''0.25'''||amount of green fog (0 - 1)||OK
|bool||[[gs_sleep]]||0
|"turns on a call to sleep to make debugging easier"||??
|-
|-
|float||gl_fog_red||'''0.25'''||amount of red fog (0 - 1)||OK
|bool||[[gs_stable_ear]]||1
|"makes the ear stable"||??
|-
|-
|float||gl_fog_start||'''0.975'''||fog start||OK
|bool||[[invincible]]||'''0 !!!'''
|-bgcolor="red"
|"makes player invincible"||OK
| ||gl_mipmap_offset|| || ||
|-bgcolor="silver"
| ||gs_input_accel|| || ||
|-bgcolor="silver"
| ||gs_screen_shot_reduce|| || ||
|-bgcolor="silver"
| ||gs_show_characters|| || ||
|-bgcolor="silver"
|bool||gs_show_corpses||1||enables drawing of corpses||OK
|-bgcolor="silver"
| ||gs_show_environment|| || ||
|-bgcolor="silver"
| ||gs_show_object_count|| || ||
|-bgcolor="silver"
| ||gs_show_objects|| || ||
|-bgcolor="silver"
| ||gs_show_particles|| || ||
|-bgcolor="silver"
| ||gs_show_physics_count|| || ||
|-bgcolor="silver"
| ||gs_show_scripting_count|| || ||
|-bgcolor="silver"
| ||gs_show_shadows|| || ||
|-bgcolor="silver"
| ||gs_show_sky|| || ||
|-bgcolor="silver"
|bool||gs_show_ui||1||enables Head-Up Display||OK
|-bgcolor="silver"
| ||gs_sleep|| || ||
|-bgcolor="silver"
| ||gs_stable_ear|| || ||
|-
|-
|bool||[[invincible]]||''0''||makes player invincible||OK
|bool||[[laser_alpha]]||0
|-bgcolor="silver"
|WTF? lasers are always transparent (As I can see in SRC, this variable changes laser texture from '''non-transparent''' BGR555 <u>with</u> AdditiveBlend parameter to '''transparent''' ABGR4444 <u>without</u> AdditiveBlend.)||??
| ||laser_alpha|| || ||
|-bgcolor="lime"
|-bgcolor="lime"
| ||li_center_cursor|| || ||
|bool||[[li_center_cursor]]||1
|-bgcolor="silver"
|"should we center the cursor"||OK
| ||m3_buffer_clear|| || ||
|-
|-bgcolor="silver"
|bool||[[m3_buffer_clear]]||1
| ||m3_clear_color|| || ||
|"toggles buffer clear"||OK
|-bgcolor="silver"
|-
| ||m3_double_buffer|| || ||  
|int32||[[m3_clear_color]]||0
|-bgcolor="silver"
|"color to clear the back buffer to" (color behind skybox)<br>(actually a 32-bit RGB integer; can calculate it with [http://www.shodor.org/stella2java/rgbint.html this site])||OK
| ||m3_fill_solid|| || ||  
|-
|-bgcolor="silver"
|bool||[[m3_double_buffer]]||1
| ||m3_shade_vertex|| || ||  
|"toggles double buffer mode" (may interrupt rendering if disabled! use with caution)||OK!
|-bgcolor="silver"
|-
| ||m3_texture|| || ||  
|bool||[[m3_fill_solid]]||1
|-bgcolor="silver"
|"toggles wireframe/solid"||OK
| ||m3_zcompareon|| || ||  
|-
|-
|bool||marketing_line_off||0||turns the laser sight off||OK
|bool||[[m3_shade_vertex]]||1
|-bgcolor="silver"
|"vertex shader on/off"||OK
| ||ob_show_debug|| || ||  
|-
|-
|bool||[[omnipotent]]||''0''||makes player omnipotent||OK
|bool||[[m3_texture]]||1
|0 >> crash ^^||OK!
|-
|-
| ||p3_debug_collision|| || ||  
|bool||[[m3_zcompareon]]||1
|"true if zcompare is on"||OK
|-
|-
| ||p3_everything_breakable|| || ||  
|bool||[[marketing_line_off]]||'''0 !!!'''
|"turns the laser line off"||OK
|-bgcolor=#ccccff
|float||[[mouse_acceleration]]||0.75
|"sets the mouse acceleration value"||OK
|-
|-
| ||p3_furniture_breakable|| || ||  
|bool||[[ob_show_debug]]||0
|"enable physics debugging visuals"<br>(shows spheres for doors etc)||OK
|-
|-
| ||p3_glass_breakable|| || ||  
|bool||[[omnipotent]]||'''0 !!!'''
|"makes player omnipotent"||OK
|-
|-
| ||p3_show_env_collision|| || ||  
|int32||[[p3_debug_collision]]||256
|-bgcolor="silver"
|"enables collision debugging display"<br>(actually a boolean; only the low bit counts)||OK
| ||patrolpath_name_distance|| || ||  
|-
|-
| ||ph_active|| || ||  
|bool||[[p3_everything_breakable]]||0
|"makes every quad breakable"||OK
|-
|-
| ||ph_debug_keyforces|| || ||  
|bool||[[p3_furniture_breakable]]||0
|"makes all furniture breakable"||OK
|-
|-
| ||ph_show_collisions|| || ||
|bool||[[p3_glass_breakable]]||1
|-bgcolor="silver"
|"enables breakable glass"||OK
| ||recoil_base|| || ||
|-bgcolor="silver"
| ||recoil_edit|| || ||
|-bgcolor="silver"
| ||recoil_factor|| || ||
|-bgcolor="silver"
| ||recoil_max|| || ||  
|-bgcolor="silver"
| ||recoil_return_speed|| || ||  
|-
|-
|int32||save_point||''??''||which save point we are on||OK
|bool||[[p3_show_env_collision]]||0
|-bgcolor="silver"
|"draws particle / environment collisions"||OK
|int32||saved_film_character_offset||1
|-
| ||  
|float||[[patrolpath_name_distance]]||150.0
|-bgcolor="silver"
|"specifies the distance from the camera that patrol point names no longer draw"<br>(probably needs show_patrolpaths)||bgcolor=#ccccff|OK-M
|bool||saved_film_loop||0
|-
|bool||[[ph_active]]||1
|"enable physics"||OK
|-
|bool||[[ph_debug_keyforces]]||0
|"toggle keyboard applied forces"||??
|-
|bool||[[ph_show_collisions]]||0
|"toggle display of colliding quads"<br>(also see show_chr_env_collision)||OK
|-
|float||[[recoil_base]]||0.0
|"base" (for current ONWC; needs recoil_edit)||OK
|-
|bool||[[recoil_edit]]||0
|"enables editable recoil"<br>||OK
|-
|float||[[recoil_factor]]||0.0
|"factor" (for current ONWC; needs recoil_edit)||OK
|-
|float||[[recoil_max]]||0.0
|"factor" (for current ONWC; needs recoil_edit)||OK
|-
|float||[[recoil_return_speed]]||0.0
|"factor" (for current ONWC; needs recoil_edit)||OK
|-
|int32||[[save_point]]||'''$ !!!'''
|"which save point we are on"<br>(gets the current save point, which is set by Oni based on the player's choice of Save Point on the Load Game screen)||OK
|-
|int32||[[saved_film_character_offset]]||1
|"dumps the filmed animation data of the player to file"||OK?
|-
|bool||[[saved_film_loop]]||0
|enables looping when '''play_record'''ing||OK
|enables looping when '''play_record'''ing||OK
|-bgcolor="silver"
|-
|string||sc_bind_f2||""
|string||[[sc_bind_f2]]||""
|animation bound to '''cutscene1'''||OK
|name of animation bound to '''cutscene1'''||OK
|-bgcolor="silver"
|-
|string||sc_bind_f3||""
|string||[[sc_bind_f3]]||""
|animation bound to '''cutscene2'''||OK
|name of animation bound to '''cutscene2'''||OK
|-bgcolor="silver"
|-
|bool||show_characters||1
|bool||[[show_characters]]||0
|toggles the display of characters||OK
|"enables the display of character starting positions"<br>(see BINA/OBJC/CHAR)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||show_chr_env_collision||0
|bool||[[show_chr_env_collision]]||0
| ||??
|"draws character / environment collisions"<br>(shows all quads that character touches, unlike ph_show_collisions which only shows quad you are standing on)||OK
|-bgcolor="silver"
|-
|bool||show_flags||0
|bool||[[show_flags]]||0
|show flags?||??
|"enables the display of flags"<br>(see BINA/OBJC/FLAG)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||show_laser_env_collision||0
|bool||[[show_laser_env_collision]]||0
| ||??
|"draws laser / environment collisions"<br>(works with any loaded gun)||OK
|-bgcolor="silver"
|-
|bool||show_patrolpaths||0
|bool||[[show_patrolpaths]]||0
| ||??
|"enables the display of AI patrol path objects"<br>(see BINA/OBJC/PATR)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||show_performance||0
|bool||[[show_performance]]||0
| ||OK
|"enables performance display"<br>(shows FPS counter)||OK
|-bgcolor="silver"
|-
|bool||show_performance_gsd||0
|bool||[[show_performance_gsd]]||0
| ||  
|??||??
|-bgcolor="silver"
|-
|bool||show_performance_gsu||0
|bool||[[show_performance_gsu]]||0
| ||  
|??||??
|-bgcolor="silver"
|-
|bool||show_sound_all||0
|bool||[[show_sound_all]]||0
| ||  
|"sound rings will always be drawn, not just when a sound is selected"<br>(environment sounds, see BINA/OBJC/SNDG)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||show_sound_rectangles||0
|bool||[[show_sound_rectangles]]||0
| ||  
|"sound rectangles will always be drawn, not just when a sound Rectangle is selected"<br>(environment sounds, see BINA/OBJC/SNDG)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||show_sound_spheres||0
|bool||[[show_sound_spheres]]||0
| ||  
|"sound spheres will always be drawn, not just when a sound sphere is selected"<br>(environment sounds, see BINA/OBJC/SNDG)||bgcolor=#ccccff|OK-M
|-bgcolor="silver"
|-
|bool||show_triggers||0
|bool||[[show_triggers]]||1
| ||  
|"enables the display of triggers"<br>(see BINA/OBJC/TRIG)||OK
|-bgcolor="silver"
|-
|bool||show_turrets||0
|bool||[[show_triggervolumes]]||0
| ||  
|"Display trigger volumes"||OK-D
|-bgcolor="silver"
|-
|bool||single_step||0
|bool||[[show_turrets]]||1
|enables single step mode||OK  
|"enables the display of turrets"<br>(see BINA/OBJC/TURR)||OK
|-bgcolor="silver"
|-
|float||sky_height||0.
|bool||[[single_step]]||0
|"puts the game in single step mode" (see [[Developer_Mode#Features]] for single-step control)||OK!
|-
|float||[[sky_height]]||'''0. !!!'''
|Y offset of skybox?||??  
|Y offset of skybox?||??  
|-bgcolor="silver"
|-
|bool||sky_show_clouds||1
|bool||[[sky_show_clouds]]||1
|shows clouds?||??
|"toggles display of the clouds"||??
|-bgcolor="silver"
|-
|bool||[[sky_show_planet]]||1
|bool||[[sky_show_planet]]||1
|shows planet(s) (sun in levels 2 and 3)||OK  
|"toggles display of the planet (sun/moon)"<br>(sun present only in levels 2 and 3)||OK  
|-bgcolor="silver"
|-
|bool||sky_show_sky||1
|bool||[[sky_show_sky]]||1
|show sky (main switch)||OK  
|"toggles display of the sky" (master switch)||OK  
|-bgcolor="silver"
|-
|bool||sky_show_skybox||1
|bool||[[sky_show_skybox]]||1
|show skybox||OK
|"toggles display of the skybox"||OK
|-bgcolor="silver"
|-
|bool||sky_show_stars||1
|bool||[[sky_show_stars]]||1
|show stars? (no stars in any level)||??
|"toggles display of the stars"<br>(no stars in any level)||??
|-
|bool||[[sound_show_debug]]||0
|"displays sound debugging info"<br>(shows a HUD with info on currently playing sounds; on Macs, sound spheres are also displayed)||OK
|-bgcolor=#ccccff
|bool||[[sound_show_occlusions]]||0
|"enables debugging display of sound occlusions"<br>(shows lines from sound sources to listeners)||OK
|-
|bool||[[spatial_footsteps]]||1
|"spatial footsteps"||??
|-
|bool||[[sync_debug]]||0
|"enables sync debugging"<br>(prints a message to screen with how many frames were dropped during a cutscene; see function <tt>cutscene_sync</tt>)||NO
|-
|-
|bool||sound_show_debug||0
|debugs sound channels||OK
|-bgcolor="silver"
|bool||spatial_footsteps||1
| ||OK
|-bgcolor="silver"
|bool||sync_debug||0
| ||
|-bgcolor="silver"
|float||[[target_max_distance]]||75000.
|float||[[target_max_distance]]||75000.
|distance to objective over which the radar arc changes size, in world units||OK
|"Sets the distance at which the radar will start to change from its minimum"||OK
|-bgcolor="silver"
|bool||turret_show_debug||0
|no visible difference||??
|-
|-
|bool||[[ui_suppress_prompt]]||0
|bool||[[turret_show_debug]]||0
|suppresses prompt about new objectives or moves||OK
|"enables the display of turret debug lines"||bgcolor=#ccccff|OK-M
|-
|-
|bool||[[unstoppable]]||''0''
|bool||[[ui_suppress_prompt]]||'''0 !!!'''
|"suppresses UI prompting about new objectives or moves"<br>(and saved games and training tips and such)||OK
|-
|bool||[[unstoppable]]||'''0 !!!'''
|makes player unstoppable||OK
|makes player unstoppable||OK
|-bgcolor="silver"
|-
|bool||[[wait_for_key]]||0
|bool||[[wait_for_key]]||0
|makes the game wait for a key before level load||OK
|"makes the game wait for a key before level load"||OK
|-
|-
|bool||[[wp_disable_fade]]||0
|bool||[[wp_disable_fade]]||0
|disables weapon fading||OK
|"disables weapon fading"||OK
|-bgcolor="silver"
|-
|int32||wp_fadetime||360
|int32||[[wp_fadetime]]||360
|free time for powerups||??
|"sets free time for powerups"||OK-D
|-bgcolor="silver"
|-
|bool||[[wp_force_half_scale]]||0
|bool||[[wp_force_half_scale]]||0
|crosshairs scale with distance, pow_adjustment redundant||OK
|crosshairs scale with distance, pow_adjustment redundant||OK
|-bgcolor="silver"
|-
|bool||[[wp_force_no_scale]]||0
|bool||[[wp_force_no_scale]]||0
|crosshairs don't scale with distance, pow_adjustment ineffective||OK
|crosshairs don't scale with distance, pow_adjustment ineffective||OK
|-bgcolor="silver"
|-
|bool||[[wp_force_scale]]||0
|bool||[[wp_force_scale]]||0
|crosshairs scale with distance, pow_adjustment ineffective||OK
|crosshairs scale with distance, pow_adjustment ineffective||OK
|-bgcolor="silver"
|-
|int32||wp_hypostrength||25
|int32||[[wp_hypostrength]]||25
|apparently in % of full health, seems hard-coded||??
|"sets strength of hypo spray"<br>(development relic; changes variable which is unused)||NO
|-bgcolor="silver"
|-
|bool||[[wp_kickable]]||0
|bool||[[wp_kickable]]||0
|lets NPCs collide with weapons||OK
|"lets the player kick weapons"<br>(actually lets everyone ''but'' the player collide with guns)||OK
|-bgcolor="silver"
|-
|float||[[wp_pow_adjustment]]||0.3
|float||[[wp_pow_adjustment]]||0.3
|scales crosshair separately (or not, depending on "force" flags)||OK
|scales crosshair separately (or not, depending on "force" flags)||OK
|-bgcolor="silver"
|-
|float||[[wp_scale_adjustment]]||1.
|float||[[wp_scale_adjustment]]||1.
|adjusts scales||OK
|adjusts scales||OK
|}
|}
[[Category:BSL docs]]