{"id":507,"date":"2022-05-10T18:16:08","date_gmt":"2022-05-10T23:16:08","guid":{"rendered":"https:\/\/chronocrash.com\/obor\/wiki\/?p=507"},"modified":"2023-12-27T08:26:46","modified_gmt":"2023-12-27T13:26:46","slug":"control_commands","status":"publish","type":"post","link":"https:\/\/chronocrash.com\/obor\/wiki\/control_commands\/","title":{"rendered":"Controls"},"content":{"rendered":"\n<p>OpenBOR&#8217;s native control scheme is designed to be intuitive as possible and conform to established standards for side scrolling action games. Through various native options and scripting techniques (see below), creators can map these controls to perform any desired action. You can even rename or remove commands entirely to create a unique control scheme specific to your game. In turn, players may map available commands to desired keys or buttons via Control Options in the main menu. Default commands and actions are as follows: <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Default<\/h2>\n\n\n\n<p>The following is a is list of OpenBOR&#8217;s default key mappings. <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Left<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Move player left on screen. <\/li>\n\n\n\n<li>Cycle to previous column or option on current row in menus. <\/li>\n\n\n\n<li>Cycle to previous character during player select.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Right<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Move player right on screen.<\/li>\n\n\n\n<li>Cycle to next column or option on current row in menus.<\/li>\n\n\n\n<li>Cycle to next character during player select.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Up<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Moves player up on screen (along Z axis) in pseudo 3D stages.<\/li>\n\n\n\n<li>Cycle upward through rows in menus.<\/li>\n\n\n\n<li>Cycle to previous color palette during player select.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Down<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Moves player down on screen (along Z axis) in pseudo 3D stages.<\/li>\n\n\n\n<li>Crouch\/Duck in 2D stages.<\/li>\n\n\n\n<li>Cycle downward through rows in menus.<\/li>\n\n\n\n<li>Cycle to next color palette during player select.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Special<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Player Special.<\/li>\n\n\n\n<li>Blocking if enabled (see <a href=\"#ajspecial\" data-type=\"internal\" data-id=\"#ajspecial\">ajspecial<\/a> below).<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Jump<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/chronocrash.com\/obor\/wiki\/jumping\/\" data-type=\"post\" data-id=\"255\">Player Jumping<\/a>.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Attack 1<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/attack-animation\" data-type=\"URL\" data-id=\"attack-animation\">Basic attack<\/a>.<\/li>\n\n\n\n<li>Confirm a selection.<\/li>\n\n\n\n<li>Pick up items.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Attack 2<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Unused.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Attack 3<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Unused.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Attack 4<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Unused.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Start<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Begin or continue a game.<\/li>\n\n\n\n<li>Join multiplayer game in progress (if not an active player).<\/li>\n\n\n\n<li>Pause\/resume game in progress (if an active player).<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p><strong>Screenshot<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>Send a screen capture to Screenshots folder.<\/li>\n\n\n\n<li>Access main menu during game pause.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p>In addition, there is a universal <strong>Escape<\/strong> key:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cycle to previous page in menu.<\/li>\n\n\n\n<li>Exit player select and return to main menu.<\/li>\n\n\n\n<li>Shut down engine when not in game or in a menu.<\/li>\n\n\n\n<li>Resume a paused game.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Renaming Keys<\/h2>\n\n\n\n<p>You can rename keys by adding a file to the data folder named <code>menu.txt<\/code>. Use the following commands in the menu.txt file to customize or remove keys.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>renamekey {target command} {new name}<\/code><\/li>\n\n\n\n<li><code>disablekey {target command}<\/code><\/li>\n<\/ul>\n\n\n\n<p>Accepted keys for rename or removal:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>moveup<\/code><\/li>\n\n\n\n<li><code>movedown<\/code><\/li>\n\n\n\n<li><code>moveright<\/code><\/li>\n\n\n\n<li><code>moveleft<\/code><\/li>\n\n\n\n<li><code>attack<\/code><\/li>\n\n\n\n<li><code>attack2<\/code><\/li>\n\n\n\n<li><code>attack3<\/code><\/li>\n\n\n\n<li><code>attack4<\/code><\/li>\n\n\n\n<li><code>jump<\/code><\/li>\n\n\n\n<li><code>special<\/code><\/li>\n\n\n\n<li><code>start<\/code><\/li>\n\n\n\n<li><code>screenshot<\/code><\/li>\n<\/ul>\n\n\n\n<p>In this example, <code>menu.txt<\/code> renames Special to Defend and Attack 2 to Magic, while removing unused commands Attack 3 and Attack 4. This presents the player with a more polished set of controls that match actual in game functionality.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nrenamekey\tattack\tAttack\nrenamekey\tattack2 Magic\nrenamekey\tspecial\tDefend\n\ndisablekey\tattack3\ndisablekey\tattack4\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"272\" src=\"https:\/\/i0.wp.com\/chronocrash.com\/obor\/wiki\/wp-content\/uploads\/2022\/05\/bor-0042.png?resize=480%2C272&#038;ssl=1\" alt=\"\" class=\"wp-image-547\" srcset=\"https:\/\/i0.wp.com\/chronocrash.com\/obor\/wiki\/wp-content\/uploads\/2022\/05\/bor-0042.png?w=480&amp;ssl=1 480w, https:\/\/i0.wp.com\/chronocrash.com\/obor\/wiki\/wp-content\/uploads\/2022\/05\/bor-0042.png?resize=300%2C170&amp;ssl=1 300w, https:\/\/i0.wp.com\/chronocrash.com\/obor\/wiki\/wp-content\/uploads\/2022\/05\/bor-0042.png?resize=150%2C85&amp;ssl=1 150w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/figure>\n\n\n\n<p>Note renaming commands only affects the labels that a player sees. Internal constants and command sequence inputs (see below) are unchanged.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Alternate Command Functions<\/h2>\n\n\n\n<p>You can add to or change the existing functionality of commands entirely. Common examples include adding additional attacks mapped to the normally unused Attack 2+ commands, remapping the player special, or special move sequences. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Command<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ncom &amp;lt;sequence&gt; &amp;lt;freespecial#&gt;\n<\/pre><\/div>\n\n\n<p>Enables mapping single button or command sequences to trigger a desired  Freespecial animation. Place com into a model\u2019s text header. You may add multiple commands and cancels, up to the limit defined by the global Maximum Freespecials setting.<\/p>\n\n\n\n<p><code>Sequence<\/code> is the input or sequence of inputs to trigger the command. You may use up to twelve inputs in one sequence from the following list:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>f<\/code> &#8211; Left\/right (same direction character is facing).<\/li>\n\n\n\n<li><code>b<\/code> &#8211; Left\/Right (opposite direction character is facing).<\/li>\n\n\n\n<li><code>u<\/code> &#8211; Up.<\/li>\n\n\n\n<li><code>d<\/code> &#8211; Down.<\/li>\n\n\n\n<li><code>a<\/code> &#8211; Attack 1.<\/li>\n\n\n\n<li><code>a2<\/code> &#8211; Attack 2.<\/li>\n\n\n\n<li><code>a3<\/code> &#8211; Attack 3.<\/li>\n\n\n\n<li><code>a4<\/code> &#8211; Attack 4.<\/li>\n\n\n\n<li> <code>j<\/code> &#8211; Jump.<\/li>\n\n\n\n<li><code>s<\/code> &#8211; Special.<\/li>\n\n\n\n<li><code>+<\/code> &#8211; Simultaneous input (ex. <code>a + s<\/code> means press Attack and Special together). <\/li>\n\n\n\n<li><code>-&gt;<\/code> &#8211; Delimiter. Optional, and does not count as one of the twelve inputs.<\/li>\n<\/ul>\n\n\n\n<p><code>Freespecial#<\/code> is the animation that plays in response to the command, assuming other conditions are met (i.e. having enough energy if the animation has an energy cost). In game leeway for command sequences is <code>0.5<\/code> seconds allowed between each input.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Example Sequences<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>com a + a2 freespecial2<\/code> &#8211; Pres Attack and Special together to activate Freespecial 1 animation.<\/li>\n\n\n\n<li><code>com u + f -&gt; a freespecial3<\/code> &#8211; Diagonally up and forward, then press Attack to activate Freespecial 3 animation.<\/li>\n\n\n\n<li><code>com f -&gt; d -&gt; b -&gt; u -&gt; f -&gt; s freespecial5<\/code>  &#8211; 360&#8242; rotate from forward to forward, then press Special to activate Freespecial 5.<\/li>\n<\/ul>\n\n\n\n<p><strong>Tips:<\/strong> <\/p>\n\n\n\n<p>Don&#8217;t let the name &#8220;freespecial&#8221; confuse you. Freesepcials are not inherently &#8220;special&#8221;. You can use them to create any sort of animation you like, from a simple punch or kick, evasive movement, taunt, or whatever else.<\/p>\n\n\n\n<p>Overly exact commands in a side scrolling environment are not necessary and may make your game more spastic to control instead of more precise. For example, to create the classic Hadouken input you should use <code>d -> f -> a<\/code> rather than <code>d -> d + f -> f -> a<\/code>. <\/p>\n\n\n\n<p>If two or more sequences overlap, the more complex input from the player &#8220;wins&#8221;. This is the same command scheme seen in most fighting games. Again using the Haouken example, you could create a command for the normal Hadouken <code>d -> f -> a<\/code>, and another for Shinku Hadouken as <code>d -> f -> d -> f -> a<\/code>. OpenBOR will recognize if a player uses the Shinku Hadouken input even though the last portion of it is identical to the Hadouken input.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cancel<\/h3>\n\n\n\n<p><code>cancel {start frame} {end frame} {hits} {sequence} {freespecial#}<\/code><\/p>\n\n\n\n<p>Cancel is similar to <a href=\"#Com\">Command<\/a>, in that it maps command sequences to activate a Freespeical. However, cancels are unique to a single animation and can interrupt the animation on a successful input. This allows &#8220;canceling&#8221; from one animation to another for customized chains and combos.<\/p>\n\n\n\n<p>Place cancels into the animation header of any Jump, Attack, Freespecial, or Follow animation. You may add as many cancels as you like to an animation to give it multiple cancel options. The animation you cancel into may of course have its own cancels to create an entire series of combo branch points.<\/p>\n\n\n\n<p><code>Start frame<\/code> and <code>end frame<\/code> are the first and last frames in the animation the cancel is usable. Remember frames are 0 indexed.<\/p>\n\n\n\n<p><code>Hits<\/code> is the required number of combo hits (if any) before the cancel is usable. <\/p>\n\n\n\n<p>Cancel is otherwise identical to <a href=\"#Com\">Command<\/a> and follows the same rules (input sequence, energy cost, etc.). <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Maximum Freespecials<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nmaxfreespecials {int}\n\n#default\nmaxfreespecials 8\n<\/pre><\/div>\n\n\n<p>Number of allocated special commands (Command and Cancel) per model (not freespecial# animations). If the total number of Cancels and Commands for a given model exceeds the number allotted, you will likely get a nonsensical error or crash.<\/p>\n\n\n\n<p><strong>Tip:<\/strong> Don&#8217;t allocate some silly number like 100 when you only need a few more command slots. This wastes memory. Figure out what you actually need and allocate accordingly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Attack and Jump Special<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\najspecial {flags}\n\n#default\najspecial special\n<\/pre><\/div>\n\n\n<p>Controls mapping of the native breakaway special attack and enables blocking for players. Accepts one of the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>special<\/code> (default) &#8211; Special attack mapped to Special key. <\/li>\n\n\n\n<li><code>double<\/code> &#8211; Special attacks mapped to Attack + Jump. Blocking enabled (if entity has a Block animation) and mapped to Special key.<\/li>\n\n\n\n<li><code>attack2<\/code> &#8211;  Special attack mapped to Attack 2 key. <\/li>\n\n\n\n<li><code>attack3<\/code> &#8211;  Special attack mapped to Attack 3 key. <\/li>\n\n\n\n<li><code>attack4<\/code> &#8211;  Special attack mapped to Attack 4 key.  <\/li>\n<\/ul>\n\n\n\n<p><code>Ajspecial<\/code> is exposed to script as a <a href=\"https:\/\/chronocrash.com\/obor\/wiki\/system-variables#global_config\">global_config property<\/a>. Use the following constants:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>openborconstant(\"AJSPECIAL_KEY_SPECIAL\")<\/code><\/li>\n\n\n\n<li><code>openborconstant(\"AJSPECIAL_KEY_DOUBLE\")<\/code><\/li>\n\n\n\n<li><code>openborconstant(\"AJSPECIAL_KEY_ATTACK2\")<\/code><\/li>\n\n\n\n<li><code>openborconstant(\"AJSPECIAL_KEY_ATTACK3\")<\/code><\/li>\n\n\n\n<li><code>openborconstant(\"AJSPECIAL_KEY_ATTACK4\")<\/code><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nvoid config = openborvariant(&quot;global_config&quot;);\n\nint value = get_global_config(config, &quot;ajspecial&quot;);\n\nvalue = openborconstant(&quot;AJSPECIAL_KEY_ATTACK3&quot;);\nset_global_config(config, &quot;ajspecial&quot;, value);\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Legacy<\/h4>\n\n\n\n<p>Prior to OpenBOR 4.0, ajspecial accepted only the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>0<\/code> (default) &#8211; Special attack mapped to Special key.<\/li>\n\n\n\n<li><code>1<\/code> &#8211; Special attacks mapped to Attack + Jump. Blocking enabled (if entity has a Block animation) and mapped to Special key.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Key Events<\/h2>\n\n\n\n<p>When native options aren&#8217;t enough, OpenBOR provides several layers of key events. These allow you to capture an incoming key or command, and insert your own scripts to perform any action you can imagine. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Status<\/h3>\n\n\n\n<p>OpenBOR maintains three key status values for each player. Each value is an integer you can apply bitwise logic to obtain an individual on\/off flag for each key.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hold &#8211; An engine update begins. If a ey is on, the key is held.<\/li>\n\n\n\n<li>Press &#8211; Player presses a key<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>InputAll &#8211; Runs on initial player input before before any engine key handling or key scripts take place. Use this event if you want to change the command input itself. Examples include reversing player controls or creating shortcut keys for muti-button presses.<\/li>\n\n\n\n<li>Level keyscript#<\/li>\n\n\n\n<li>Entity keyscript<\/li>\n\n\n\n<li>Global key#.c<\/li>\n\n\n\n<li>Global keyall.c<\/li>\n\n\n\n<li>Default key action.<\/li>\n<\/ol>\n\n\n\n<p class=\"has-vivid-red-color has-text-color\">Additional documentation in progress.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Control scheme layout and options.<\/p>\n","protected":false},"author":1,"featured_media":1268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[254,328,2],"tags":[23,256,5,336,4],"class_list":["post-507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-global-configuration","category-openbor","category-script","tag-ajspecial","tag-keyscript","tag-manual","tag-maxfreespecials","tag-openbor-script"],"revision_note":"","jetpack_featured_media_url":"https:\/\/i0.wp.com\/chronocrash.com\/obor\/wiki\/wp-content\/uploads\/2022\/05\/arcade_buttons_0.webp?fit=917%2C611&ssl=1&wsr","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts\/507","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=507"}],"version-history":[{"count":5,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"predecessor-version":[{"id":1271,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/posts\/507\/revisions\/1271"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/media\/1268"}],"wp:attachment":[{"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chronocrash.com\/obor\/wiki\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}