{"id":913,"date":"2026-06-08T20:09:20","date_gmt":"2026-06-08T20:09:20","guid":{"rendered":"https:\/\/rivals2.com\/workshop-dev\/?post_type=knowledgebase&#038;p=913"},"modified":"2026-06-17T16:38:13","modified_gmt":"2026-06-17T16:38:13","slug":"setting-up-a-throw","status":"publish","type":"knowledgebase","link":"https:\/\/rivals2.com\/workshop\/knowledge-base\/character-creation\/setting-up-a-throw\/","title":{"rendered":"Setting Up A Throw"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Setting up throw data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This setup applies to any attacks that move the opponent before throwing them.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open up the throw&#8217;s attack data.<\/li>\n\n\n\n<li>In the &#8220;Throw Data&#8221; section of the attack data, you&#8217;ll need to fill out the following fields:\n<ul class=\"wp-block-list\">\n<li>Release Offset &#8211; Determines the location that the opponent will be teleported to when released.<\/li>\n\n\n\n<li>Release Window String Table Key &#8211; The opponent will be released from the throw on the first frame of this window.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>There are two types of throws: hitbox throws and non-hitbox throws. Hitbox throws spawn a hitbox when the opponent gets released, applying hitpause like a normal hitbox. Non-hitbox throws instantly release the opponent with no hitpause.\n<ul class=\"wp-block-list\">\n<li>For hitbox throws, you can leave the &#8220;Throw Knockback Data&#8221; section empty. Instead, you will add a hitbox to the release window like a normal attack.<\/li>\n\n\n\n<li>For non-hitbox throws, fill out the &#8220;Throw Knockback Data&#8221; section with the desired knockback properties.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Add an entry to the &#8220;Thrown Animation Data&#8221; array.\n<ul class=\"wp-block-list\">\n<li>Note: Without thrown animation data, the opponent will not be moved by the attack.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>The first entry in the thrown animation data should have the &#8220;Anim Start Window String Table Key&#8221; set to the first window that the opponent will be grabbed in, and the &#8220;Anim Start Window Frame&#8221; should be zero.\n<ul class=\"wp-block-list\">\n<li>For normal throws, it should be the first startup window name.<\/li>\n\n\n\n<li>For command grabs, it should be the name of the window that the character transitions into on a successful grab.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Set the &#8220;Thrown Animation&#8221; field according to the animation you want the opponent to play when the throw first starts.\n<ul class=\"wp-block-list\">\n<li>Descriptions of each option can be viewed by hovering over them.<\/li>\n\n\n\n<li>Thrown animations play at 60 frames per second and do not loop.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Optional: Add  more entries into the &#8220;Thrown Animation Data&#8221; array.\n<ul class=\"wp-block-list\">\n<li>When your character reaches the &#8220;Anim Start Window Frame&#8221; in the window specified by the &#8220;Anim Start Window String Table Key&#8221;, the opponent&#8217;s animation will instantly change to the newly specified animation.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Authoring a throw animation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading is-style-default\">Consider the Existing Thrown Reactions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When concepting throw animations for your character, consider creating throws that can work with the existing library of thrown reaction animations. See what reactions are available and create your throw with those reactions in mind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Creating the Throw<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the game, the opponent will follow the Grab_M bone. This bone is highly recommended to be left alone at first as any changes to the throwing animation would result in Grab_M needing adjustments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the recommended workflow:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Animate the throwing character\n<ul class=\"wp-block-list\">\n<li>Animate and adjust posing and timing as needed.<\/li>\n\n\n\n<li>Test the animation in the game and repeat the step above if needed until the throwing characters looks good.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Animate the Grab_M bone\n<ul class=\"wp-block-list\">\n<li>This bone is often animated frame by frame to achieve the desired opponent movement.<\/li>\n\n\n\n<li>It is common for this bone to make big jumps over a frame in order to move the opponent correctly when switching between thrown states. For example, Wrastor&#8217;s BThrow jumps from Grounded Resist, to Back First, to Slam Front.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Set up the proper reactions and timing in the throw&#8217;s attack data\n<ul class=\"wp-block-list\">\n<li>Find &#8220;Thrown Animation Data&#8221; in the throw&#8217;s attack data and add an element using the + sign.<\/li>\n\n\n\n<li>Specify which attack window needs to play a Thrown Animation and on which frame the animation should start.<\/li>\n\n\n\n<li>Add as many elements and reactions as needed.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Did everything work perfectly?\n<ul class=\"wp-block-list\">\n<li>Probably not! That&#8217;s ok. This is a meticulous process.<\/li>\n\n\n\n<li>Make adjustments following the previous steps while going frame by frame to ensure the opponent is reacting as desired.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setting up throw data This setup applies to any attacks that move the opponent before throwing them. Authoring a throw animation Consider the Existing Thrown Reactions When concepting throw animations for your character, consider creating throws that can work with the existing library of thrown reaction animations. See what reactions are available and create your [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","knowledgebase_cat":[4],"knowledgebase_tag":[],"class_list":["post-913","knowledgebase","type-knowledgebase","status-publish","hentry","knowledgebase_cat-character-creation"],"_links":{"self":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase"}],"about":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/types\/knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/comments?post=913"}],"version-history":[{"count":10,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/913\/revisions"}],"predecessor-version":[{"id":1490,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase\/913\/revisions\/1490"}],"wp:attachment":[{"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/media?parent=913"}],"wp:term":[{"taxonomy":"knowledgebase_cat","embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase_cat?post=913"},{"taxonomy":"knowledgebase_tag","embeddable":true,"href":"https:\/\/rivals2.com\/workshop\/wp-json\/wp\/v2\/knowledgebase_tag?post=913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}