{"id":133,"date":"2021-07-23T11:18:11","date_gmt":"2021-07-23T16:18:11","guid":{"rendered":"https:\/\/chronocrash.com\/obor\/wiki\/?p=133"},"modified":"2024-01-12T23:19:46","modified_gmt":"2024-01-13T04:19:46","slug":"system-variables","status":"publish","type":"post","link":"https:\/\/chronocrash.com\/obor\/wiki\/system-variables\/","title":{"rendered":"System Variables"},"content":{"rendered":"\n<p>System variables are global variables within the engine that OpenBOR relies upon to conduct its various operations. OpenBOR script allows access to several of these through the <code>openborvariant()<\/code> and <code>setopenborvariant()<\/code> functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Use Cases<\/h2>\n\n\n\n<p>Get a system value. Most system variables are integers. See the list of available variants for exceptions.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nmixed x = openborvariant(&lt;string identifier&gt;);\n<\/pre><\/div>\n\n\n<p>Modify a system value. Some OpenBOR variants are read only. See the list of available variants for details.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nmixed x = &lt;value&gt;;\n\nsetopenborvariant(&lt;string identifier&gt;, x);\n<\/pre><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Unless otherwise noted, any list of items in OpenBOR is 0 indexed. That means the first item is 0, the next is 1, and so on.<\/li>\n\n\n\n<li>Unless otherwise noted, all binary flags are 0 = False, 1 = True.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">List<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes has-small-font-size\"><table><thead><tr><th>Name<\/th><th><a href=\"https:\/\/chronocrash.com\/obor\/wiki\/variables#type\" data-type=\"post\">Type<\/a><\/th><th>Read Only<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>background<\/code><\/td><td>Pointer<\/td><td><\/td><td>Current background screen. By creating a new screen and accessing its pointer, you can replace the current background in real time.<\/td><\/tr><tr><td><code>blockade<\/code><\/td><td>Float<\/td><td><\/td><td>Scroll position mark where the player can no longer move.<\/td><\/tr><tr><td><code>branchname<\/code><\/td><td>String<\/td><td>X<\/td><td>When a branch item is activated, this will indicate name of the level. Not recommended for most cases &#8211; use current_branch instead.<\/td><\/tr><tr><td><code>cheats<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Indicates if cheats have been enabled from the OpenBOR menu.<\/td><\/tr><tr><td><code>count_enemies<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current number of enemy type entities in play.<\/td><\/tr><tr><td><code>count_entities<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current number of entities in play.<\/td><\/tr><tr><td><code>count_npcs<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current number of NPC type entities in play.<\/td><\/tr><tr><td><code>count_players<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current number of player type entities in play.<\/td><\/tr><tr><td><code>current_branch<\/code><\/td><td>String<\/td><td>X<\/td><td>Name of the current level branch.<\/td><\/tr><tr><td><code>current_level<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Level index of the current set.<\/td><\/tr><tr><td><code>current_palette<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Index of the current global palette in use. See level palettes for details on this feature.<\/td><\/tr><tr><td><code>current_scene<\/code><\/td><td>String<\/td><td>X<\/td><td>File name of current scene.<\/td><\/tr><tr><td><code>current_set<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Index of the current set.<\/td><\/tr><tr><td><code>current_stage<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current stage within a level.<\/td><\/tr><tr><td><code>effectvol<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current menu setting for sound effect volume.<\/td><\/tr><tr><td><code>elapsed_time<\/code><\/td><td>Integer<\/td><td><\/td><td>Global chronograph OpenBOR uses to track timing for virtually every engine operation. Note that is it not a perfect representation of real world time. Rather, the timer is a counter incremented on each engine update (~200 per second depending on hardware and conditions). Also note the timer is reset by certain events, such as a new level starting.<\/td><\/tr><tr><td><code>ent_max<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Maximum number of entities allowed in play.<\/td><\/tr><tr><td><code>fps<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current engine update rate. Under optimal conditions, OpenBOR runs at 200FPS. ~60FPS is required for smooth game play.<\/td><\/tr><tr><td><code>freeram<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Available memory. As a 32bit application OpenBOR can &#8220;see&#8221; ~2GB of RAM according to the limits of your hardware and operating system.<\/td><\/tr><tr><td><code>front_panel_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Default position of front panel layer. Internally, it is a calculated offset from <code>player_max_z<\/code>.<\/td><\/tr><tr><td><code>game_paused<\/code><\/td><td><\/td><td><\/td><td><code>0<\/code> = Unpaused<br><code>1<\/code> = Paused.<\/td><\/tr><tr><td><code>game_speed<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>game_time<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>gfx_x_offset<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>gfx_y_offset<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>gfx_y_offset_adj<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>global_config<\/code><\/td><td>Pointer<\/td><td>X<\/td><td>Pointer to the global configuration structure. See Global Config below.<\/td><\/tr><tr><td><code>hresolution<\/code><\/td><td><\/td><td><\/td><td>Horizontal screen size.<\/td><\/tr><tr><td><code>hole_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Base layer position of Hole graphic. Internally, it is a calculated offset from <code>player_min_z<\/code>.<\/td><\/tr><tr><td><code>hud_common_load<\/code><\/td><td>Pointer<\/td><td>X<\/td><td>Pointer to <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/heads-up-display-hud\/\" data-type=\"post\" data-id=\"720\">Dial properties<\/a> for loading HUD.<\/td><\/tr><tr><td><code>hud_common_main<\/code><\/td><td>Pointer<\/td><td>X<\/td><td>Pointer to <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/heads-up-display-hud\/\" data-type=\"post\" data-id=\"720\">Dial properties<\/a> for default HUD.<\/td><\/tr><tr><td><code>hud_common_mp<\/code><\/td><td>Pointer<\/td><td>X<\/td><td>Pointer to <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/heads-up-display-hud\/\" data-type=\"post\" data-id=\"720\">Dial properties<\/a> for HUD mp display.<\/td><\/tr><tr><td><code>hud_common_opponent<\/code><\/td><td>Pointer<\/td><td>X<\/td><td>Pointer to <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/heads-up-display-hud\/\" data-type=\"post\" data-id=\"720\">Dial properties<\/a> for HUD opponent display.<\/td><\/tr><tr><td><code>hud_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Base layer position of the heads up display (player\/enemy life, score, etc.) . Internally, it is a calculated offset from <code>player_max_z<\/code>.<\/td><\/tr><tr><td><code>in_cheat_options<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_control_options<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_enginecreditsscreen<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_gameoverscreen<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_halloffamescreen<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_level<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>in_load_game<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_menuscreen<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_new_game<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_options<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_selectscreen<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_showcomplete<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_sound_options<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_start_game<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_system_options<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_titlescreen<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>in_video_options<\/code><\/td><td><\/td><td><\/td><td>Legacy. Use <code>screen_status<\/code> instead.<\/td><\/tr><tr><td><code>lasthita<\/code><\/td><td><\/td><td><\/td><td>Legacy. See <code>lasthity<\/code>.<\/td><\/tr><tr><td><code>lasthitc<\/code><\/td><td><\/td><td><\/td><td>Last hit confirm. Set true when engine detects a collision, then checked immediately before the hit reaction logic. You can set this to false during a doattack script to cancel a hit as if it never happened.<\/td><\/tr><tr><td><code>lasthitt<\/code><\/td><td><\/td><td><\/td><td>Elapsed time when last hit occurred.<\/td><\/tr><tr><td><code>lasthitx<\/code><\/td><td><\/td><td><\/td><td>X position (horizontal intersection between attack and body box) of last hit.<\/td><\/tr><tr><td><code>lasthity<\/code><\/td><td><\/td><td><\/td><td>Y position (vertical intersection between attack and body box) of last hit.<\/td><\/tr><tr><td><code>lasthitz<\/code><\/td><td><\/td><td><\/td><td>Z position (lateral intersection between attack and body box) of last hit.<\/td><\/tr><tr><td><code>levelheight<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>levelpos<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>levelwidth<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>lightx<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>lightz<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>max_wall_height<\/code><\/td><td>Integer<\/td><td><\/td><td>Highest wall entity may spawn on top of. Default = 1000.<\/td><\/tr><tr><td><code>maxanimations<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxattacktypes<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxentityvars<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxglobalvars<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxindexedvars<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxplayers<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxscriptvars<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>maxsoundchannels<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>mirror_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Base layer position of mirror effect panel. Internally, it is a calculated offset from <code>player_min_z<\/code>.<\/td><\/tr><tr><td><code>models_cached<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>models_loaded<\/code><\/td><td>Integer<\/td><td>X<\/td><td><\/td><\/tr><tr><td><code>musicvol<\/code><\/td><td>Integer<\/td><td><\/td><td><\/td><\/tr><tr><td><code>neon_panel_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Base layer position of neon effect panel. Internally, it is a calculated offset from <code>player_min_z<\/code>.<\/td><\/tr><tr><td><code>nofadeout<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>nogameover<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>nohof<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>nojoin<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>nopause<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>nosave<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>noscreenshot<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>noshowcomplete<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>numbasemaps<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>numholes<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>numlayers<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>numpalettes<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>numwalls<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>pakname<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>panel_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Base layer position of main panel. Internally, it is a calculated offset from <code>player_min_z<\/code>.<\/td><\/tr><tr><td><code>pause<\/code><\/td><td>Integer<\/td><td><\/td><td>See <code>game_paused<\/code>.<\/td><\/tr><tr><td><code>pixelformat<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>player<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>player_max_z<\/code><\/td><td>Integer<\/td><td><\/td><td>Highest allowed point on <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/axis\/\" data-type=\"post\" data-id=\"59\">Z Axis<\/a> game field for active entities.<\/td><\/tr><tr><td><code>player_min_z<\/code><\/td><td>Integer<\/td><td><\/td><td>Lowest allowed point on <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/axis\/\" data-type=\"post\" data-id=\"59\">Z Axis<\/a> game field for active entities.<\/td><\/tr><tr><td><code>player1<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>player2<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>player3<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>player4<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>porting<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>sample_play_id<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>screen_status<\/code><\/td><td>Integer<\/td><td><\/td><td>Current screen type. Bitwise with following constants. Note that some flags are not updated until reset at title screen:<br><br>* <code>openborconstant(\"IN_SCREEN_BUTTON_CONFIG_MENU\")<\/code> &#8211; In player button configuration menu. <br>* <code>openborconstant(\"IN_SCREEN_CONTROL_OPTIONS_MENU\")<\/code> &#8211; In player control options.<br>* <code>openborconstant(\"IN_SCREEN_ENGINE_CREDIT\")<\/code> &#8211; Showing engine credits.<br>* <code>openborconstant(\"IN_SCREEN_GAME_OVER\")<\/code> &#8211; In game over screen.<br>* <code>openborconstant(\"IN_SCREEN_GAME_START_MENU\")<\/code> &#8211; In any game start menu.<br>* <code>openborconstant(\"IN_SCREEN_HALL_OF_FAME\")<\/code> &#8211; In Hall of Fame (high score listing).<br>* <code>openborconstant(\"IN_SCREEN_LOAD_GAME_MENU\")<\/code> &#8211; In load game menu.<br>* <code>openborconstant(\"IN_SCREEN_MENU\")<\/code> &#8211; In any menu.<br>* <code>openborconstant(\"IN_SCREEN_NEW_GAME_MENU\")<\/code> &#8211; In new game menu.<br>* <code>openborconstant(\"IN_SCREEN_OPTIONS_MENU\")<\/code> &#8211; Not in player screen.<br>* <code>openborconstant(\"IN_SCREEN_SELECT\")<\/code> &#8211; In select player screen.<br>* <code>openborconstant(\"IN_SCREEN_SHOW_COMPLETE\")<\/code> &#8211; In stage complete screen..<br>* <code>openborconstant(\"IN_SCREEN_SOUND_OPTIONS_MENU\")<\/code> &#8211; In sound settings menu.<br>* <code>openborconstant(\"IN_SCREEN_SYSTEM_OPTIONS_MENU\")<\/code> &#8211; In any options menu.<br>* <code>openborconstant(\"IN_SCREEN_TITLE\")<\/code> &#8211; Title screen.<br>* <code>openborconstant(\"IN_SCREEN_VIDEO_OPTIONS_MENU\")<\/code> &#8211; Setting video options.<\/td><\/tr><tr><td><code>scrollmaxx<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>scrollmaxz<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>scrollminx<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>scrollminz<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>self<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>sets_count<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Current number of level sets (practice, easy, hard, etc.) loaded.<\/td><\/tr><tr><td><code>shadow_z<\/code><\/td><td>Integer<\/td><td>X<\/td><td>Base layer position of shadow graphic. Internally, it is a calculated offset from <code>player_min_z<\/code>.<\/td><\/tr><tr><td><code>shadowalpha<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>shadowcolor<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>shadowopacity<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>skiptoset<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>slowmotion<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>slowmotion_duration<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>smartbomber<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>soundvol<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>textbox<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>ticks<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>totalram<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>usedram<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>viewporth<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>viewportw<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>viewportx<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>viewporty<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>vresolution<\/code><\/td><td>Integer<\/td><td><\/td><td>Vertical screen size.<\/td><\/tr><tr><td><code>vscreen<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>waiting<\/code><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td><code>xpos<\/code><\/td><td>Integer<\/td><td><\/td><td>Current horizontal scroll position in a level.<\/td><\/tr><tr><td><code>ypos<\/code><\/td><td><\/td><td><\/td><td>Current vertical scroll position in a level.<\/td><\/tr><\/tbody><tfoot><tr><td>Name<\/td><td><a href=\"https:\/\/chronocrash.com\/obor\/wiki\/variables#type\" data-type=\"post\">Type<\/a><\/td><td>Read Only<\/td><td>Description<\/td><\/tr><\/tfoot><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"global_config\">Global Config<\/h2>\n\n\n\n<p>Global config is an ongoing effort to consolidate some of the unwieldy number of global system variables into a more manageable structure. Global config properties are accessible with the <code>get_global_config_property()<\/code> and <code>set_global_config_property()<\/code> functions. You will first need to acquire the global config pointer using <code>openborvariant(\"global_config\")<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Name<\/th><th><a href=\"https:\/\/chronocrash.com\/obor\/wiki\/variables#type\" data-type=\"post\">Type<\/a><\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>openborconstant(\"GLOBAL_CONFIG_PROPERTY_AJSPECIAL\")<\/code><\/td><td>Integer<\/td><td>Button map for activating a player&#8217;s breakout special or smartbomb. See <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/ajspecial\/\" data-type=\"post\" data-id=\"507\">ajspecial<\/a>.<\/td><\/tr><tr><td><code>openborconstant(\"GLOBAL_CONFIG_PROPERTY_BLOCK_RATIO\")<\/code><\/td><td>Integer<\/td><td>Models.txt <a rel=\"noreferrer noopener\" href=\"https:\/\/chronocrash.com\/obor\/wiki\/damage-mitigation#mpblock\" data-type=\"URL\" data-id=\"https:\/\/chronocrash.com\/obor\/wiki\/damage-mitigation#mpblock\" target=\"_blank\">blockratio<\/a>.<\/td><\/tr><tr><td><code>openborconstant(\"GLOBAL_CONFIG_PROPERTY_BLOCK_TYPE\")<\/code><\/td><td>Integer<\/td><td>Models.txt <a rel=\"noreferrer noopener\" href=\"https:\/\/chronocrash.com\/obor\/wiki\/damage-mitigation#mpblock\" data-type=\"URL\" data-id=\"https:\/\/chronocrash.com\/obor\/wiki\/damage-mitigation#mpblock\" target=\"_blank\">mpblock<\/a>.<\/td><\/tr><tr><td><code>openborconstant(\"GLOBAL_CONFIG_PROPERTY_CHEATS\")<\/code><\/td><td>Integer<\/td><td>Cheat menu and active cheat setup. See <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/cheats\/\">Cheats<\/a>.<\/td><\/tr><tr><td><code>openborconstant(\"GLOBAL_CONFIG_PROPERTY_FLASH\")<\/code><\/td><td>Integer<\/td><td>Pointer to the global set of flash properties. See <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/hit-effects-flash\/#Flash_Layer_Adjustment\" data-type=\"URL\" data-id=\"https:\/\/chronocrash.com\/obor\/wiki\/hit-effects-flash\/#Flash_Layer_Adjustment\">Hit Effects<\/a>.<\/td><\/tr><tr><td><code>openborconstant(\"GLOBAL_CONFIG_PROPERTY_SHOW_GO\")<\/code><\/td><td>Integer<\/td><td>When 1, the go arrow is currently displayed.<\/td><\/tr><\/tbody><tfoot><tr><td>Name<\/td><td><a href=\"https:\/\/chronocrash.com\/obor\/wiki\/variables#type\" data-type=\"post\">Type<\/a><\/td><td>Description<\/td><\/tr><\/tfoot><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Accessing engine&#8217;s internal variables.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[328,2],"tags":[126,127,5,4,257,3],"class_list":["post-133","post","type-post","status-publish","format-standard","hentry","category-openbor","category-script","tag-obor_func_openborvariant","tag-obor_func_setopenborvariant","tag-manual","tag-openbor-script","tag-systemvariant","tag-variables"],"revision_note":"","jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts\/133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/comments?post=133"}],"version-history":[{"count":5,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts\/133\/revisions"}],"predecessor-version":[{"id":1393,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts\/133\/revisions\/1393"}],"wp:attachment":[{"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/media?parent=133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/categories?post=133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/tags?post=133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}