COD Advanced Warfare (AW) v2.5.2

This is an updated to my version 2.4 script. Version 2.5.1 added change to make the main loop 1mS vs the default 10mS. Refined reload when using auto sprint by allowing more time to reload. This one is based upon PS4 and TACTICAL FLIPPED button layout, and it can be easily tailored to meet your console and button layouts. The following MODS can be turned ON/OFF while in game play using the ADS and DPAD buttons: Rapid Fire, Jitter, Auto-Dash and Quick Scope. IMR Quick Reload can be turned on/off with the Rapid Fire. Anti-Recoil, Double Jump, Akimbo Single shot & Akimbo Rapid Fire can be turned on with CROUCH and DPAD. Auto Sprint, Drop Shot and Quick Melee can be turned on/off within the script are set to ON by default. The script also includes ADS & SHOOTING button sensitivity increase along with increased look around times. See the script comments for credits. See the forum link “Announcement Topic” for more information.
Version2.5.2
AuthorUK_Wildcats_Fans
Publish DateWed, 8 Jul 2015 - 17:58
Last UpdateTue, 8 Sep 2015 - 22:35
Downloads2564
ForumAnnouncement Topic
RATE


9

0

Release Notes: Version 2.5.2 notes: Auto Dash is disabled while using ADS button. Look inversion is FALSE by default. Please be sure that you review the entire script especially the comments on Auto Sprint and Reloading. You can tailor this to your specific needs & console. This jitter is for the TAC 19, and you must use GUNG HO with it.
Code: Select all
/*
GPC Online Library
COD Advanced Warfare(AW) Script
=============================================================================
Device:        Titan One
Arthur:        Terry (aka UK_Wildcats_Fans)
Game:          Call of Duty Advanced Warfare
System:        Playstation 4 or Playstation 3
Controller:    Dualshock 4 or Dualshock 3
Game Settings: Tactial Flipped Button Layout
Website:       www.consoletuner.com
Forum Post:    http://www.consoletuner.com/forum/viewtopic.php?f=6&t=1054
Credit:        Kniightermaare's codaw_simply_devastating_2.gpc & deadeye quickscope; J2Kbr's IMR Quick Reload and Quick Melee; forum members for their help
=============================================================================               
COPYRIGHT:
2015 Terry (UK_Wildcats_Fans) from www.consoletuner.com. This Script was made and intended for www.Consoletuner.com & Titan 0ne ONLY,
UNLESS written premission is given by the creator and/or copywritee. 
All rights reserved. This material may not be reproduced, displayed, modified or distributed without the express prior written permission
of the copyright holder. For permission, contact UK_Wildcats_Fans via the www.consoletuner.com/forum website   
=============================================================================
CHANGELOG:
Version 1.1: ADS and DPAD are needed to turn mods ON and OFF, removed Superman, Anti-Recoil can be turned ON and OFF
Version 1.2: Added in Quick Melee and IMR Quick Reload from J2Kbr.  IMR quick reload ON/OFF with rapid fire and Quick Melee ON/OFF
Version 1.3: Cleaned up variables, toggle RapidFire when switching weapons (SWAP_WEAPONS)
Version 1.4: Set QuickMelee to always on with time variable for when not in game play, add quick scope and use previous QuickMelee DPAD toggle, set time parameter for IMR Quick Reload to allow getting care packages
Version 1.5: Add AutoSprint with toggle ON/OFF, set Drop Shot to always ON, swap SPRINT_EXO and MELEE, changed the TOGGLE to ADS
Version 1.6: Code clean up, fix bugs and fine tuning of adjustable parameters
Version 1.7: Added IMRQuickReloadON so I could toggle on/off when running the ARX instead of IMR; Added condition to temporarily stop Auto Sprint if RELOAD is pressed
Version 1.8: Set Auto Sprint to always ON; Replace Auto Sprint on DPAD with Jitter for TAC 19; ensure some MODS are off while others are ON.  Commented out TRIANGLE swap weapon section for non-burst play
Version 1.9: Setup for PS4 (take out PS3 LED functions)
Version 2.0: Add in auto dash (left, right, back) and replace anti-recoil with autodash on D PAD.  Fixed issue with dash functions (SPRINT button not working)
Version 2.1: Made adjustments to Auto Sprint to ensure proper reloading
Version 2.2: Added in long press X for double jump
Version 2.3: Fixed code error with ADS & DISABLE_WITH_SCOPE.  It did not work if you wanted to drop shot with ADS. 
Version 2.4: Added Akimbo Single Shot & Akimbo Rapid Fire mods
Version 2.5: Added change to make the main loop 1mS vs the default 10mS.  Refined reload when using auto sprint by allowing more time to reload
Version 2.5.1: Somehow I accidentally deleted the double jump section. 
Version 2.5.2: Auto Dash is disabled while using ADS button.  Look inversion is FALSE by default.
=============================================================================
TOGGLES:
Press ADS in addtion with any of the below.  Using ADS helps to prevent accidental turn ON and OFF when operating killstreaks and/or other times that requires the D PAD
Press LEFT  on the D PAD to activate/deactivate "RAPID FIRE"    LED 4
Press UP    on the D PAD to activate/deactivate "JITTER"        LED 3  [GUNG HO REQUIRED]
Press RIGHT on the D PAD to activate/deactivate "AUTO-DASH"     LED 2  CAUTION:  This can cause problems with reloading
Press DOWN  on the D PAD to activate/deactivate "QUICK SCOPE"   LED 1
 
Press CROUCH in addtion with any of the below.  Using CROUCH helps to prevent accidental turn ON and OFF when operating killstreaks and/or other times that requires the D PAD
Press RIGHT on the D PAD to activate/deactivate "ANTI-RECOIL" 
Press UP    on the D PAD to activate/deactivate "DOUBLE JUMP"
Press LEFT  on the D PAD to activate/deactivate "AKIMBO SINGLE SHOT"
Press DOWN  on the D PAD to activate/deactivate "AKIMBO RAPID FIRE" 
=============================================================================
GAMEPLAY COMMENTS
 
My Favorites: Drop Shot, Auto Sprint, Double Jump, Quick Melee
 
Akimbo Single Fire Mode: 
Pressing SHOOT or ADS will cause both guns to fire at once.
Pressing SHOOT will also activate drop shot.  Pressing ADS will NOT activate drop shot.
 
Auto Sprint & Reloading: 
Reload times vary with weapons and auto sprint can cause problems.  You sometimes have to let off the joystick, hold the RELOAD button or hold ADS to reload fully
If it does not start sprinting right away, you can press the SPRINT button to start it.
 
Double Jump:
You must hold the JUMP button to get the double jump. 
You can play with the wait time in the combo to adjust if necessary to your liking.
 
Anti-Recoil:
There is no one right value.  See this thread for more information.  http://www.consoletuner.com/forum/viewtopic.php?f=17&t=1155
 
Auto Dash:
This can be very helpful, but I have found that it interferes more than helps. Auto Dash is disabled when using ADS.
It can be easily toggled on/off, so give it a try yourself to see if you like it or not.
 
Quick Scoping:
There are variables to play around with to meet your specific needs.
I am absolutely terrible at quick scoping, so I don't really use this and haven't tested it that much.
=============================================================================
DEFINES
*/

define ADS                       = PS4_L1;          // R1 & L1 can be changed to R2 and L2
define EXO                       = PS4_L2;          // R1 & L1 can be changed to R2 and L2
define SPRINT_EXO                = PS4_L3;
define LX                        = PS4_LX;
define LY                        = PS4_LY;
define SHOOT                     = PS4_R1;          // R1 & L1 can be changed to R2 AND L2
define GRENADE                   = PS4_R2;          // R1 & L1 can be changed to R2 AND L2
define CROUCH                    = PS4_R3;          // "Default" button layout is PS4_CIRCLE. "Tactical" button layout is PS4_R3.
define RX                        = PS4_RX;
define RY                        = PS4_RY;
define JUMP                      = PS4_CROSS;
define RELOAD                    = PS4_SQUARE;
define MELEE                     = PS4_CIRCLE;      // "Default" button layout is PS4_R3. "Tactical button layout is PS4_CIRCLE.
define SWAP_WEAPONS              = PS4_TRIANGLE;
define UP                        = PS4_UP;
define DOWN                      = PS4_DOWN;
define LEFT                      = PS4_LEFT;
define RIGHT                     = PS4_RIGHT;
 
define INSTA_FIRE                = 95;   // The % at which it boosts the SHOOT button when pressed - i.e. 95% means when pressed 5%
define INSTA_AIM                 = 95;   // The % at which it boosts the ADS button when pressed - i.e. 95% means when pressed 5%
define INSTA_OTHER               = 95;   // The % at which it boosts the other button when pressed - i.e. 95% means when pressed 5%
define DROPSHOT_QUICKNESS        = 95;   // The % at which it boosts the CROUCH button when pressed - i.e. 95% means when pressed 5%     
define ADS_SPEED                 = 20;   // The % at which it boosts your aiming speed when using ADS         
define RATE_OF_FIRE              = 50;   // Range: 1 to 50 RPS (rounds per second), this varies for each weapon and configuration (i.e type, variant, attachments)
define RATE_OF_FIRE2             = 50;   // See above.  This is for Akimbo Rapid Fire
define DISABLE_WITH_SCOPE        = TRUE; // Will not drop shot if ADS is on
define ANTI_RECOIL               = 20;   // Change this value to compensate to the vertical recoil  ASM1 with rapidfire = 40, BAL no grip = 20; Bal with grp = 0;
define ANTI_RECOIL_LEFT          = 0;    // Change this value to compensate to the left
define ANTI_RECOIL_RIGHT         = 0;    // Change this value to compensate to the right
define ONLY_WITH_SCOPE           = TRUE; // Anti-recoil will only be applied with ADS
define DASH_WAIT1                = 350// Auto-dash first wait duration.  This may differ between systems (i.e. PS3, PS4, Xbox 360, XB1)
define DASH_WAIT2                = 80;   // Auto-dash first wait duration.  This may differ between systems (i.e. PS3, PS4, Xbox 360, XB1)
define QUICK_SCOPE_WAIT          = 500// Increase this time for a longer ADS time.  Decrease this time for a shorter ADS time
define RELOAD_WAIT1              = 160// Reload combo wait 1.  Adjust for more or less to allow for full reload
define RELOAD_WAIT2              = 2000; // Reload combo wait 2.  Adjust for more or less to allow for full reload
define RELOAD_WAIT3              = 2000; // Wait time after stopping auto sprint to allow reloading.  Adjust as necessary
define SHOOT_WAIT                = 300// Wait time after stopping auto sprint to allow shooting
 
// VARIABLES =============================================================================
 
int AkimboSingleON               = FALSE; // Akimbo mode for regular single shot mode
int AkimboRapidON                = FALSE; // Akimbo mode with rapid fire mode
int DoubleJumpON                 = TRUE;
int AutoSprintON                 = TRUE// Always turned on now
int AutoDashON                   = FALSE;
int QuickMelee_ON                = TRUE// Always turned on now
int RapidFireON                  = FALSE
int DropShotON                   = TRUE// Always turned on now
int InversionON                  = FALSE// Set this to FALSE if not using look inversion enabled in the game setting.  Most people are NOT using look inversion
int JitterON                     = FALSE;
int AntiRecoilON                 = FALSE;
int QuickScopeON                 = FALSE;
int IMRQuickReloadON             = TRUE// RapidFireON and IMRQuickReloadON must be TRUE for IMR quick reload, FALSE when playing with ARX or other burst             
int HoldTime;
int RestTime;
int HoldTime2;
int RestTime2;
int anti_recoil;
int anti_recoil_left;
int anti_recoil_right;
 
init {
    HoldTime = 500 / RATE_OF_FIRE;
    RestTime = HoldTime - 20;
    if(RestTime < 0) RestTime = 0;
 
    HoldTime2 = 500 / RATE_OF_FIRE2;
    RestTime2 = HoldTime2 - 20;
    if(RestTime2 < 0) RestTime2 = 0;
}
 
// MAIN SCRIPT =============================================================================
 
main {   
 
    vm_tctrl(-5)// sets main loop to 1mS vs the default 10mS
 
    if(get_val(CROUCH)){sensitivity(CROUCH, NOT_USE, 100 + DROPSHOT_QUICKNESS);} // Allows for quicker crouch if barely pressed       
 
    if(event_press(LEFT) && get_val(ADS)) {  // Turn ON and OFF Rapid Fire and IMR Quick Reload
        RapidFireON = !RapidFireON;
        if(RapidFireON) {
             combo_run(RapidFireNotifier);
//             set_led(LED_4, 2);
             JitterON = FALSE;               // Turn OFF Jitter if using Rapid Fire
//             set_led(LED_3, 0);
             QuickScopeON = FALSE;           // Turn OFF QuickScope if using Rapid Fire
//             set_led(LED_1, 0);
        }
        if(!RapidFireON) {
            //BLUE for PS4
            set_led(LED_1, 1);
            set_led(LED_2, 0);
            set_led(LED_3, 0);
            set_led(LED_4, 0);           
        }
//        else set_led(LED_4, 0);
    }
 
/* Commenting this out while using full auto
    if(event_press(SWAP_WEAPONS)) {          // Turn ON and OFF Rapid Fire and IMR Quick Reload using SWAP_WEAPONS - i.e. burst weapon as primary and full auto as secondary weapon
        RapidFireON = !RapidFireON;
        if(RapidFireON) {
             set_led(LED_4, 2);
             JitterON = FALSE;               // Turn OFF Jitter if using Rapid Fire
             set_led(LED_3, 0);
             QuickScopeON = FALSE;           // Turn OFF QuickScope if using Rapid Fire
             set_led(LED_1, 0);}
        else set_led(LED_4, 0);
    }
*/

 
    if(event_press(UP) && get_val(ADS)) {    // Turns ON and OFF Drop shot
        JitterON = !JitterON;
        if(JitterON) {
//           set_led(LED_3, 2);
           RapidFireON = FALSE;              // Turn OFF Rapid Fire if using Jitter
//           set_led(LED_4, 0);
           AntiRecoilON = FALSE;             // Turn OFF Anti Recoil if using Jitter
//           set_led(LED_2, 0);
           QuickScopeON = FALSE;             // Turn OFF QuickScope if using Jitter
//           set_led(LED_1, 0);
        }
//        else set_led(LED_3, 0);
    }
 
    if(event_press(RIGHT) && get_val(ADS)) { // Turns ON and OFF Auto-Dash
        AutoDashON = !AutoDashON;
//        if(AutoDashON) set_led(LED_2, 2);
//        else set_led(LED_2, 0);
    }
 
    if(event_press(RIGHT) && get_val(CROUCH)) { // Turns ON and OFF Anti-Recoil
        AntiRecoilON = !AntiRecoilON;
        if(AntiRecoilON) {combo_run(RapidFireNotifier);} 
        else if(!AntiRecoilON){
             //BLUE for PS4
            set_led(LED_1, 1);
            set_led(LED_2, 0);
            set_led(LED_3, 0);
            set_led(LED_4, 0);           
        }       
//        if(AntiRecoilON) set_led(LED_2, 2);
//        else set_led(LED_2, 0);
    }
 
    if(event_press(UP) && get_val(CROUCH)) { // Turns ON and OFF Double Jump
        DoubleJumpON = !DoubleJumpON;
    }
 
    if(event_press(DOWN) && get_val(ADS)) {  // Turns ON and OFF Quick Scope
        QuickScopeON = !QuickScopeON;
        if(QuickScopeON) {
//           set_led(LED_1, 2);
           JitterON = FALSE;                 // Turn OFF Jitter if using Quick Scope
//           set_led(LED_3, 0);
           RapidFireON = FALSE;              // Turn OFF Rapid Fire if using Quick Scope
//           set_led(LED_4, 0);
           AntiRecoilON = FALSE;             // Turn OFF Anti Recoil if using Quick Scope
//           set_led(LED_2, 0);
        }
//        else set_led(LED_1, 0);
    }
 
  // Makes the button 100% pressed even if barely pressed - aka more sensitive and quicker reaction
  if(get_val(ADS)){sensitivity(ADS, 10, 100 + INSTA_AIM);}     
  if(get_val(SHOOT)){sensitivity(SHOOT, 10, 100 + INSTA_FIRE);}
  if(get_val(SPRINT_EXO)){sensitivity(SPRINT_EXO, 10, 100 + INSTA_OTHER);}
  if(get_val(GRENADE)){sensitivity(GRENADE, 10, 100 + INSTA_OTHER);}
 
  // Drop Shot
  if(event_press(SHOOT) && DropShotON){
        combo_stop(AutoSprint)
        combo_run(DropShot);
  }
  if(DISABLE_WITH_SCOPE && get_val(ADS)) {combo_stop(DropShot);}
 
 
  // Akimbo Single Shot
  if(event_press(LEFT) && get_val(CROUCH)) { // Turns ON and OFF Akimbo Single button mod
       AkimboSingleON = !AkimboSingleON;
       if (AkimboSingleON){
           AkimboRapidON = FALSE;            // Turn OFF Akimbo Rapid if using Akimbo
           JitterON = FALSE;                 // Turn OFF Jitter if using Akimbo
           RapidFireON = FALSE;              // Turn OFF Rapid Fire if using Akimbo
           QuickScopeON = FALSE;             // Turn OFF QuickScope if using Akimbo
       }
  }
  if(AkimboSingleON && get_val(SHOOT)) {set_val(ADS,100);}
  if(AkimboSingleON && get_val(ADS)) {set_val(SHOOT,100);}
 
  // Akimbo Rapid Fire
  if(event_press(DOWN) && get_val(CROUCH)) { // Turns ON and OFF Akimbo Rapid Fire mod
       AkimboRapidON = !AkimboRapidON;
       if (AkimboRapidON){
           AkimboSingleON = FALSE;           // Turn OFF Akimbo Single if using Akimbo
           JitterON = FALSE;                 // Turn OFF Jitter if using Akimbo
           RapidFireON = FALSE;              // Turn OFF Rapid Fire if using Akimbo
           QuickScopeON = FALSE;             // Turn OFF QuickScope if using Akimbo
    }
  }
  if( AkimboRapidON && get_val(ADS) ) {combo_run(AkimboRapidFire);}
  if( AkimboRapidON && get_val(SHOOT) ) {combo_run(AkimboRapidFireDropShoot);}
 
  // QUICK MELEE  using on/off for testing purposes. Added time variable to see if it helps with the normal "back" when not in actual game play
  if(event_press(MELEE) && QuickMelee_ON && get_ptime(RELOAD) < 250) {combo_restart(QuickMelee);}
 
  // FAST RELOAD IMR -- I am only using RapidFireON for IMR right now, so set ON with rapidfire
  if(event_release(RELOAD) && RapidFireON && IMRQuickReloadON && get_ptime(RELOAD) < 250) {combo_run(FastReloadIMR);set_val(RELOAD,0);} // time variable needed to allow for getting care packages
 
  // Rapid Fire
  if(get_val(SHOOT) && RapidFireON) {combo_run(RapidFire);}
    else if(combo_running(RapidFire)) {combo_stop(RapidFire);}
 
/* Commenting this out to see if it helps
  // Faster movement while aiming with ADS
  if(get_val(ADS)){
     sensitivity(RX, NOT_USE, 100 + ADS_SPEED);
     sensitivity(RY, NOT_USE, 100 + ADS_SPEED);
  }                                                       
*/

 
  // Anti-recoil
  if(!ONLY_WITH_SCOPE || get_val(ADS)) {combo_run(AntiRecoil);}
 
  // Quick Scope -- CANNOT ADS (aka regular scope) while using Quick Scope -- for regular ADS you must toggle off QuickScopeON  -- see "Toggles" section at the top of this script
  if(QuickScopeON && event_press(ADS) ) {combo_run(QuickScope);}
 
  // AutoSprint -- Try different values (i.e. -90, -95); toggle ON/OFF
  if(get_val(LY) < -99 && AutoSprintON && !combo_running(AllowReloading)) { combo_run(AutoSprint); }
  else if((get_val(LY) > -99 && AutoSprintON)) {combo_stop(AutoSprint); } // Reload will also stop
  if(event_press(RELOAD)) {combo_stop(AutoSprint); combo_run(AllowReloading);}  // Stop auto sprint to allow reloading
  if(event_press(SHOOT)) {combo_stop(AutoSprint); combo_run(AllowShooting);}    // Stop auto spring to allow shooting
 
  // Double Jump
  if(event_press(JUMP) && DoubleJumpON) {
       combo_run(DoubleJump);
  } else if(!get_val(JUMP)) {   // Holding JUMP will let the combo run, and a quick press will work like a normal JUMP or select
       combo_stop(DoubleJump);
  }
 
  // AutoDash
  if(get_val(LY) > 99 && AutoDashON && !get_val(ADS)) { combo_run(DashBack); } 
  if(get_val(LX) < -99 && AutoDashON && !get_val(ADS)) { combo_run(DashLeft); }
  if(get_val(LX) > 99 && AutoDashON && !get_val(ADS)) { combo_run(DashRight); }
 
} // End of MAIN
 
// COMBOS =============================================================================
 
combo DoubleJump {
    set_val(JUMP, 100)// 1st jump
    wait(40);
    set_val(JUMP, 0);
    wait(150);           // timing can be adjusted here
    set_val(JUMP, 100)// 2nd jump
    wait(40);
}
 
combo AllowShooting {
    set_val(SPRINT_EXO, 0);
    wait(SHOOT_WAIT); // can adjust to ensure enough time to reload
}
 
combo AllowReloading {
    set_val(SPRINT_EXO, 0);
    wait(RELOAD_WAIT3); // can adjust to ensure enough time to reload
}
 
 
combo RapidFire {
    set_val(SHOOT, 100);
    wait(HoldTime);
    set_val(SHOOT, 0);
    wait(RestTime);
    set_val(SHOOT, 0);
}
 
combo AkimboRapidFire {
    set_val(SHOOT, 100);
    set_val(ADS,100);
    wait(HoldTime2);
    set_val(SHOOT, 0);
    set_val(ADS,0);
    wait(RestTime2);
    set_val(SHOOT, 0);
    set_val(ADS,0);
}
 
combo AkimboRapidFireDropShoot {
    set_val(SPRINT_EXO,0);
    set_val(SHOOT, 100);
    set_val(ADS,100);
    wait(HoldTime2);
    set_val(SHOOT, 0);
    set_val(ADS,0);
    set_val(CROUCH, 100);
    wait(RestTime2);
    set_val(SHOOT, 0);
    set_val(ADS,0);
    set_val(CROUCH, 100);
}
 
combo DropShot {
   set_val(SPRINT_EXO,0);
   wait(15)
   set_val(CROUCH, 100);
   wait(15)
   set_val(CROUCH, 100);
   wait(1000)// Changed from 1200 to 1000 for testing
}
 
combo Jitter {
    set_val(LY, -100);
    set_val(RELOAD, 100);
    wait(30);
    set_val(LY, -100);
    set_val(SPRINT_EXO, 100);
    wait(30);
    set_val(LY, -100);
    wait(20);
    set_val(LY, -100);
}
 
combo FastReloadIMR {
    set_val(RELOAD, 100);
    wait(40);
    set_val(RELOAD, 0);
    wait(1250); // << Adjustable timing; good values test are: 1250.  Lower than this, the quick reload will not work
    set_val(RELOAD, 0);
    set_val(LX, 0);
    set_val(LY, -100);
    set_val(SPRINT_EXO, 100);
    wait(40);
}
 
combo QuickMelee {
    set_val(MELEE, 100);
    wait(40);
    set_val(MELEE, 0);
    wait(250); // << Adjustable timing -- If too low the melee is stopped too quickly and does not fully hit -- If too long it becomes a normal melee.  300 seems good.  Trying at 250
    set_val(MELEE, 0);
    set_val(LX, 100);
    set_val(LY, 0);
    set_val(SPRINT_EXO, 100);
    wait(40);
}
 
combo QuickScope {
    set_val(ADS, 100);
    wait(QUICK_SCOPE_WAIT)            //Increase this time for a longer ADS time.  Decrease this time for a shorter ADS time.
    set_val(ADS, 0);
    wait(10)
    set_val(SHOOT, 100);
    wait(20)
    set_val(SHOOT, 0);
    wait(60)
    set_val(SHOOT, 0);
}
 
combo AutoSprint {
    set_val(SPRINT_EXO, 100);
    wait(10);
    set_val(SPRINT_EXO, 100)
}
 
combo AntiRecoil {                                           
// Look Inversion Enabled
    if(get_val(SHOOT) && AntiRecoilON && InversionON) { // Using AntiRecoilON toggle for testing and when using multiple weapons
      anti_recoil = get_val(RY) - ANTI_RECOIL;            // SUBTRACT anti_recoil when LOOK INVERSION is ENABLED
      if(anti_recoil > 100) anti_recoil = 100;
      set_val(RY, anti_recoil);
      anti_recoil_left = get_val(RX) - ANTI_RECOIL_LEFT;
      if(anti_recoil_left > 100) anti_recoil_left = 100;
      set_val(RX, anti_recoil_left);
      anti_recoil_right = get_val(RX) + ANTI_RECOIL_RIGHT;
      if(anti_recoil_right > 100) anti_recoil_right = 100;
      set_val(RX, anti_recoil_right);
    }
// Normal Look Inversion - look inversion disabled
    if(get_val(SHOOT) && AntiRecoilON && !InversionON) { // Using AntiRecoilON toggle for testing and when using multiple weapons
      anti_recoil = get_val(RY) + ANTI_RECOIL;             // ADD anti_recoil for normal
      if(anti_recoil > 100) anti_recoil = 100;
      set_val(RY, anti_recoil);
      anti_recoil_left = get_val(RX) - ANTI_RECOIL_LEFT;
      if(anti_recoil_left > 100) anti_recoil_left = 100;
      set_val(RX, anti_recoil_left);
      anti_recoil_right = get_val(RX) + ANTI_RECOIL_RIGHT;
      if(anti_recoil_right > 100) anti_recoil_right = 100;
      set_val(RX, anti_recoil_right);
    }
}
 
combo DashRight {
    set_val(LX, 100);
    set_val(SPRINT_EXO, 100);
    wait(DASH_WAIT1);
    set_val(LX, 100);
    set_val(SPRINT_EXO, 0);
    wait(DASH_WAIT2);
    set_val(LX, 100);
    set_val(SPRINT_EXO, 0);
}
 
combo DashLeft {
    set_val(LX, -100);
    set_val(SPRINT_EXO, 100);
    wait(DASH_WAIT1);
    set_val(LX, -100);
    set_val(SPRINT_EXO, 0);
    wait(DASH_WAIT2);
    set_val(LX, -100);
    set_val(SPRINT_EXO, 0);
}
 
combo DashBack {
    set_val(LY, 100);
    set_val(SPRINT_EXO, 100);
    wait(DASH_WAIT1);
    set_val(LY, 100);
    set_val(SPRINT_EXO, 0);
    wait(DASH_WAIT2);
    set_val(LY, 100);
    set_val(SPRINT_EXO, 0);
}
 
combo DodgeNotifier {
    set_rumble(RUMBLE_B, 100);
    wait(200);
    set_rumble(RUMBLE_B, 0);
    wait(4000);
}
 
combo RapidFireNotifier {
    // GREEN
    set_led(LED_1, 0);
    set_led(LED_2, 0);
    set_led(LED_3, 1);
    set_led(LED_4, 0);
    set_rumble(RUMBLE_A, 100);
    wait(250);
    set_rumble(RUMBLE_A, 0);
    wait(50);
    set_rumble(RUMBLE_A, 100);
    wait(250);
    set_rumble(RUMBLE_A, 0);
    wait(20);
}