GPC Library

Ultimate Universal Destiny 2 Script (ALL BUTTON LAYOUT EDITION)

Simple Script for ALL BUTTON LAYOUTS (with built in toggle)

- Start & Up = Bumper Jumper
- Start & Down = Default
- Start & Left = Puppeteer
- Start & Right = Puppeteer & Trigger Swap


FEATURES FOR ALL CONTROLLERS:

Support for all button layouts

Adjustable Rapid-Fire

Adjustable Anti-Recoil (toggled on/off with double click of dpad up)

ADS Sensitivity (toggled on/off with double click of dpad right - also has option for delay)

Auto Crouch on Shot (toggle on/off w/ double tap dpad down)

Auto-Revive (double tap reload)

Auto Sprint option

Auto-Strafe when ADS (toggled on/off w/ double tap dpad left)

Hair Triggers

Rapid Fire (ADS & up)

Rapid Fire ADS only (shoot & up)

Rapid Fire EZ (weapon swap & up)

Rapid Melee (hold melee)

Rapid Teabag/Crouch (hold crouch)

Shadestep Glitch (toggled on/off w/ double tap start - hold crouch to activate)

Slide Shoot Shoulder Charge Combo (hold sprint & press melee while continuing to hold sprint)

Turn Off ALL Shooting Scripts (ADS & down) (double rumble notification)

All double tap scripts have own timer - default for all is 300ms. Change time in the script for what best suits your needs.

All toggle on/off scripts have rumble notification - single rumble for on, double rumble for off.



BONUS EASE OF USE FEATURE FOR XBOX CONTROLLER ON PS4 ONLY:

PS4 Touchpad Button = (VIEW button)

PS4 Share Button = (ADS & VIEW button)



If you enjoy using my scripts, perhaps consider buying me a drink, every little helps - https://www.paypal.me/waltee
Version 1.5
Author Waltee
Publish Date 2017-07-21 18:31:28
Update Date 2017-09-05 14:15:21
Downloads 2548
Forum Link Click Here
RATE


7

0

Release Notes: 1,5:
1. Code clean-up for future updates - Removed now patched Destiny 2 beta glitches (e.g. infinite voidwalker grenades)
Code:Select all
/*---------------------------------------
     |                             |     
                DESTINY 2                        
     |                             |     
-----------------------------------------


              
      ULTIMATE UNIVERSAL DESTINY 2    
                GAMEPACK   
   
       ALL BUTTON LAYOUTS WELCOME     

           CREATED BY WALTEE     


-----------------------------------------

    ------------FEATURES:------------     

-----------------------------------------

SUPPORT FOR ALL BUTTON LAYOUTS

ADJUSTABLE ANTI-RECOIL

ADJUSTABLE RAPID-FIRE

ADS SENSITIVITY CHANGE

AUTO CROUCH ON SHOT

AUTO REVIVE 

AUTO SPRINT 

AUTO STRAFE/SIDESTEP

HAIR TRIGGERS

RAPID FIRE

RAPID FIRE ADS ONLY

RAPID FIRE EZ WEAPON SWITCH

RAPID MELEE

RAPID TEABAG

SHADESTEP GLITCH

SLIDE SHOOT SHOULDER CHARGE COMBO



-----------------------------------------

  ---INSTRUCTIONS (ALL CONTROLLERS):--- 

-----------------------------------------

BUTTON LAYOUTS (must toggle on activation of script)=   (START & UP = Bumper Jumper // START & DOWN = Default // START & LEFT = Puppeteer // START & RIGHT = Puppeteer & Trigger Swap)


ADS SENSITIVITY                                     =	(double tap RIGHT to toggle on/off) (rumble notification)

                                                        (double tap UP to toggle on/off) (rumble notification)
ADJUSTABLE ANTI-RECOIL                              =   (hold CROUCH and adjust recoil with DPAD UP, DOWN, LEFT, or RIGHT) (rumble to notify value has changed)
                                                        (save by pressing MELEE while still holding CROUCH) (rumble to notify of values saved)
						   								
ADJUSTABLE RAPID-FIRE                               =	(hold RELOAD and adjust recoil with DPAD UP & DOWN) (rumble to notify value has changed)
                                                        (save by pressing MELEE while still holding RELOAD) (rumble to notify of values saved)

AUTO CROUCH ON SHOT                                 =   (double tap DOWN to toggle on/off) (rumble notification)


AUTO REVIVE                                         =   (double tap RELOAD)


AUTO SRINT                                          =   (hold forward)


AUTO STRAFE/SIDESTEP                                =   (double tap LEFT to toggle on/off) (rumble notification)


RAPID FIRE                                          =   (hold ADS & UP) (rumble notification)
                                                        

RAPID FIRE ADS ONLY                                 =   (hold FIRE & UP for Rapidfire when ADS only) (rumble notification)


RAPID FIRE EZ WEAPON SWITCH                         =   (hold ADS & RELOAD) (rumble notification) (press UP when active to change which weapon has rapid fire)


RAPID MELEE                                         =   (hold MELEE)


RAPID TEABAG                                        =   (hold CROUCH)


SHADESTEP GLITCH                                    =   (double tap START to toggle on/off - hold CROUCH to activate)


SLIDE SHOOT SHOULDER CHARGE                         =   (hold SPRINT and press MELEE)


TURN OFF ALL SHOOTING SCRIPTS (RAPID FIRE/SUROS/NLB)=   (hold ADS & DOWN) (double rumble notification)



-----------------------------------------
  ----(XBOX CONTROLLER ON PS4 ONLY)----
-----------------------------------------

PS4 TOUCHPAD BUTTON                                 =   (VIEW button)

PS4 SHARE BUTTON                                    =   (ADS & VIEW button)



-----------------------------------------
-----------------------------------------
---------------------------------------*/



//BUTTON DEFINITIONS (Change the buttons here if needed to avoid breaking anything)
// define FIRE          = 4             // PS4_R2;       // XB1_RT;               =   4    //
// define ADS           = 7             // PS4_L2;       // XB1_LT;               =   7    //
define SPRINT           = 8             // PS4_L3;       // XB1_LS;               =   8    //
// define JUMP          = 6             // PS4_L1;       // XB1_LB;               =   6    //
define A_X              = 19            // PS4_CROSS;    // XB1_A;                =   19   //
// define CROUCH        = 18            // PS4_CIRCLE;   // XB1_B;                =   18   //
define SWITCH           = 17            // PS4_TRIANGLE; // XB1_Y;                =   17   //
define RELOAD           = 20            // PS4_SQUARE;   // XB1_X;                =   20   //
// define MELEE         = 5             // PS4_R3;       // XB1_RS;               =   5    //
// define GRENADE       = 3             // PS4_R1;       // XB1_RB;               =   3    //
define UP               = 13            // PS4_UP;       // XB1_UP;               =   13   //
define RIGHT            = 16            // PS4_RIGHT;    // XB1_RIGHT;            =   16   //       DO NOT UNCOMMENT THE DEFINES IN THIS SECTION
define DOWN             = 14            // PS4_DOWN;     // XB1_DOWN;             =   14   //     THEY HAVE BEEN REPLACED BY VARIABLES TO HAVE ONE
define LEFT             = 15            // PS4_LEFT;     // XB1_LEFT;             =   15   //         SCRIPT AVAILABLE FOR ALL BUTTON LAYOUTS
define R_X              = 9             // PS4_RX;       // XB1_RX;  // RS H AXIS =   9    //
define R_Y              = 10            // PS4_RY;       // XB1_RY;  // RS V AXIS =   10   //
define L_X              = 11            // PS4_LX;       // XB1_LX;  // LS H AXIS =   11   //
define L_Y              = 12            // PS4_LY;       // XB1_LY;  // LS V AXIS =   12   //
define SHARE            = 0             // PS4_SHARE;    // XB1_XBOX;             =   0    //
define START            = 2             // PS4_OPTIONS;  // XB1_MENU;             =   2    //
define SELECT           = 1             // PS4_SHARE;    // XB1_VIEW;             =   1    //
define TOUCH            = 27            // PS4_TOUCH;    // XB1_PL2;              =   27   //
define RELOAD_PDL       = 26            // PS4_GYROZ;    // XB1_PL1; // TOP LEFT  =   26   //
define CROUCH_PDL       = 27            // PS4_TOUCH;    // XB1_PL2; // BTM LEFT  =   27   //
define MELEE_PDL        = 24            // PS4_GYROX;    // XB1_PR1; // TOP RIGHT =   24   //
define OTHER_PDL        = 25            // PS4_GYROY;    // XB1_PR2; // BTM RIGHT =   25   //
define UNDEFINED        = 35


//COLOUR DEFINITIONS
define Off              = 0;
define Dim_Blue         = 1;
define Dim_Red          = 2;
define Dim_Green        = 3;
define Dim_Pink         = 4;
define Dim_Cyan         = 5;
define Dim_Yellow       = 6;
define Dim_White        = 7;
define Blue             = 8;
define Red              = 9;
define Green            = 10;
define Pink             = 11;
define Cyan             = 12;
define Yellow           = 13;
define White            = 14;
define Bright_Blue      = 15;
define Bright_Red       = 16;
define Bright_Green     = 17;
define Bright_Pink      = 18;
define Bright_Cyan      = 19;
define Bright_Yellow    = 20;
define Bright_White     = 21;

// OTHER  DEFINITIONS
//  Hair Trigger
define trigger          = TRUE;                 // Set to TRUE for HAIR TRIGGERS = ON // Set to FALSE for HAIR TRIGGERS = OFF
												//
												//
//  Auto Revive	Time					        //
define revive_time      = 4000;                 // 4000ms = 4 seconds - This is slightly longer than is needed to revive in D2, but is kept at this length as taking damage restarts rez time.
                                                //
                                                //
//  Auto Strafe/Sidestep                        //
define sidestep_time    = 300;                  // 500ms = 0.5 seconds - Decrease for a faster or increase for a slower side to side strafe/Sidestep 
                                                //
                                                //
//  ADS Sensitivity                             //
define ADS_sensitivity  = 18;                   // Change this to determine how slow ADS Sensitivity is when ADS Sensitivity is active
define ADS_delay        = 0;                    // 300ms = 0.3 seconds - Timer delay for ADS Sensitivity change to kick in once ADS
                                                //
                                                //
//  Anti-Recoil                                 //
define ADSRec_only      = TRUE;                 // Set to TRUE if anti-recoil is ADS only // Set to FALSE for anti-recoil ALWAYS
define recoil_up        = UP;                   //
define recoil_down      = DOWN;                 //           Change these definitions           
define recoil_left      = LEFT;                 // For different buttons to control Anti-Recoil
define recoil_right     = RIGHT;                //                  direction                 
                                                
                                                
// INT
//	Auto Sprint                                 //
int sprint_onoff        = FALSE;                // Set to TRUE for AUTO SPRINT = ON // Set to FALSE for AUTO SPRINT = OFF
                                                //
                                                //
//  Auto Revive                                 //
int revive_onoff        = FALSE;                // Set to TRUE for AUTO REVIVE = ON // Set to FALSE for AUTO REVIVE = OFF
                                                //
                                                //
//  Auto Strafe/Sidestep                        //
int sidestep_onoff      = FALSE;                // Set to TRUE for AUTO-STRAFE/SIDESTEP = ON by default // Set to FALSE for AUTO-STRAFE/SIDESTEP = OFF by default
int strafe_positive     = 70;                   //
int strafe_minus        =-70;                   //
                                                //
                                                //
//  Auto Crouch Shot                            //
int crouchshot_onoff    = FALSE;                // Set to TRUE for AUTO CROUCH SHOT = ON by default // Set to FALSE for AUTO CROUCH SHOT = OFF by default
                                                //
                                                //
//  ADS Sensitivity                             //
int ADS_onoff           = FALSE;                // Set to TRUE for ADS SENSITIVITY = ON by default // Set to FALSE for ADS SENSITIVITY = OFF by default
                                                //
                                                //												
//  Anti Recoil                                 //
int recoil_onoff        = FALSE;                // Set to TRUE for ANTI-RECOIL = ON by default // Set to FALSE for ANTI-RECOIL = OFF by default
int ANTI_RECOIL_V, ANTI_RECOIL_H;               //
int anti_recoil_V       = 0;                    //
int anti_recoil_H       = 0;                    //
int inverted            = FALSE;                // Set to TRUE if using INVERTED aim // Set to FALSE if using DEFAULT aim
                                                //
                                                //
//  Block Buttons                               //
int block_buttons       = 0;                    //
                                                //
                                                //
//  Button Layout                               //
int default             = FALSE;                // Set to TRUE if you use DEFAULT controller layout           // otherwise set to FALSE // You can change to this layout in-game by pressing START and DPAD DOWN
int bumper              = FALSE;                // Set to TRUE if you use BUMPER JUMPER controller layout     // otherwise set to FALSE // You can change to this layout in-game by pressing START and DPAD UP
int puppet              = FALSE;                // Set to TRUE if you use PUPPETEER layout                    // otherwise set to FALSE // You can change to this layout in-game by pressing START and DPAD LEFT
int puppetswap          = FALSE;                // Set to TRUE if you use PUPPETEER with TRIGGER SWAP layout  // otherwise set to FALSE // You can change to this layout in-game by pressing START and DPAD RIGHT
int FIRE, ADS, MELEE, GRENADE, JUMP, CROUCH;    //
                                                //
                                                //
//  Double Click                                //
int tap;                                        //
                                                // 
                                                //
//  Infinite Grenade Glitch (Voidwalker Only)   //
//int grenade_onoff       = FALSE;              // Set to TRUE for INFINITE GRENADE GLITCH = ON by default // Set to FALSE for INFINITE GRENADE GLITCH = OFF by default
                                                //
                                                //
//  Rapid Fire                                  //
int ADSrapid_onoff      = FALSE;                // Set to TRUE for ADS RAPIDFIRE = ON by default // Set to FALSE for ADS RAPIDFIRE = OFF by default //   DON'T HAVE BOTH OF THESE
int rapid_onoff         = FALSE;                // Set to TRUE for ALL RAPIDFIRE = ON by default // Set to FALSE for ALL RAPIDFIRE = OFF by default //  SET TO TRUE SIMULTANEOUSLY
int hold_time           = 25;                   //
int rest_time           = 15;                   //
int rounds_per_second   = 13;                   // Range: 1 to 25 RPS (rounds per second) 
                                                //
                                                //
//  Rapid Fire EZ                               //
int ezrapid_onoff       = FALSE;                //
int master_ez           = FALSE;                //
                                                //
                                                //
//  Rapid Fire Reset                            //
int reset               = TRUE;                 //
                                                //
                                                //
//  Shadestep Glitch                            //
int shadeglitch_onoff   = FALSE;                // Set to TRUE for SHADESTEP GLITCH = ON by default // Set to FALSE for SHADESTEP GLITCH = OFF by default
                                                //
                                                //
//  Timer                                       //
int timer;                                      //
                                                // 
                                                //
//  PS4 Led Colour                              //
int Col_ind;                                    //
int Colour              = 1;                    //
int ledtimer            = 10;                   //
int OnOff               = 0;                    //
                                                //
                                                //
//	Rumble                                      //
int rumble_type         = RUMBLE_A;             //
int rumble_time         = 200;                  //


// UNMAP
unmap PS4_GYROX, PS4_GYROY, PS4_GYROZ, PS4_ACCX, PS4_ACCY, PS4_ACCZ, XB1_PL1, XB1_PR1, XB1_PR2; 

// DATA
data (1,
//0,0,0,0, // Off
1,0,0,0, // 1.  Dim Blue
0,1,0,0, // 2.  Dim Red
0,0,1,0, // 3.  Dim Green
0,0,0,1, // 4.  Dim Pink
1,0,1,0, // 5.  Dim SkyBlue
0,1,1,0, // 6.  Dim Yellow
1,1,1,1, // 7.  Dim White
2,0,0,0, // 8.  Blue
0,2,0,0, // 9.  Red
0,0,2,0, // 10. Green
0,0,0,2, // 11. Pink
2,0,2,0, // 12. SkyBlue
0,2,2,0, // 13. Yellow
2,2,2,2, // 14. White
3,0,0,0, // 15. Bright Blue
0,3,0,0, // 16. Bright Red
0,0,3,0, // 17. Bright Green
0,0,0,3, // 18. Bright Pink
3,0,3,0, // 19. Bright SkyBlue
0,3,3,0, // 20. Bright Yellow
3,3,3,3  // 21. Bright white
 
); 
 
 
init{
 
 
    ANTI_RECOIL_V       = get_pvar(SPVAR_1,-100,+100,0);
    ANTI_RECOIL_H       = get_pvar(SPVAR_2,-100,+100,0);
    rounds_per_second   = get_pvar(SPVAR_3, 1, 25, 13);        

 
}


main{
// DOUBLE TAP FUNCTION
        if(tap) tap = tap - get_rtime();
    
    
// LED TOGGLE INDICATORS
    if(rapid_onoff   &&  recoil_onoff) colourled(Red); 
    if(rapid_onoff   && !recoil_onoff) colourled(Green); 
    if(recoil_onoff  && !rapid_onoff ) colourled(Pink);  
    if(!recoil_onoff && !rapid_onoff ) colourled(Blue);  
    if(ezrapid_onoff) colourled(Cyan); 


// CONSOLE/CONTROLLER SCRIPTS
//  PS4/XBOX ONE // (XBOX VIEW BUTTON = TOUCHPAD PRESS // LT & VIEW BUTTON = SHARE)
    if(get_console() == PIO_PS4 && get_controller() != PIO_PS4){
        if(get_val(PS4_SHARE)) {
            if(!get_val(PS4_L2)) {
                set_val(PS4_TOUCH, 100);
                set_val(PS4_SHARE, 0);
            }
            set_val(PS4_L2, 0);
        }
    }
 

// BUTTON LAYOUT
//  DEFAULT
        if(get_val(START)) {
            if (event_press(DOWN)){
                button_layout ( TRUE , 0 , 0 , 0 );
                    { FIRE =4; ADS =7; MELEE =3; GRENADE =6; JUMP =19; CROUCH =18; }
                rumble_if_true(default);
    }


//  BUMPER JUMPER
            if (event_press(UP)){
                button_layout ( 0 , TRUE , 0 , 0 );
                    { FIRE =4; ADS =7; MELEE =5; GRENADE =3; JUMP =6; CROUCH =18; }
                rumble_if_true(bumper);
    }


//  PUPPETEER
            if (event_press(LEFT)){
                button_layout ( 0 , 0 , TRUE , 0 );
                    { FIRE =4; ADS =7; MELEE =3; GRENADE =6; JUMP =19; CROUCH =5; }
                rumble_if_true(puppet);
    }


//  PUPPETEER & TRIGGER SWAP
            if (event_press(RIGHT)){
                button_layout ( 0 , 0 , 0 , TRUE );
                    { FIRE =3; ADS =6; MELEE =4; GRENADE =7; JUMP =19; CROUCH =5; }
                rumble_if_true(puppetswap);
    }
}


// GAME SCRIPTS
//	AUTO SPRINT
    if (sprint_onoff) {
        if(get_val(L_Y) < -99) {set_val(SPRINT,100)}       // 99 by default - Left stick position before AUTO-SPRINT enables
}

 
//  AUTO STRAFE/SIDESTEP (double click LEFT to toggle on/off AUTO STRAFE)
        if(event_press(LEFT) && tap <= 0) {
            tap = 300;	                                   // 300ms = 0.3 seconds - 120ms is my personal sweet spot for not accidetnally activating everything while sending messages
            }
            else if(event_press(LEFT) && tap > 0) {
                sidestep_onoff = !sidestep_onoff;  
                    rumble_if_true(sidestep_onoff);
        }
 
        if(sidestep_onoff && get_val(ADS) >1) {
            combo_run(STRAFE);     
    }
        if ((get_val(L_Y) <strafe_minus) || (get_val(L_Y) > strafe_positive) || (get_val(L_X) <strafe_minus) || (get_val(L_X) > strafe_positive)) {
             combo_stop(STRAFE);
	}

 
//  AUTO REVIVE (double tap RELOAD)
     if (revive_onoff) {
         if(event_press(RELOAD) && tap <= 0) {
             tap = 300;	                                   // 300ms = 0.3 seconds - 120ms is my personal sweet spot for not accidetnally activating everything while sending messages
             }
             else if(event_press(RELOAD) && tap > 0) {
        	     combo_run(REVIVE);
        }
    }


//  CROUCH SHOT/TEABAG SHOT (double click DOWN to toggle on/off CROUCH SHOT)
        if(event_press(DOWN) && tap <= 0) {
            tap = 300;	                                   // 300ms = 0.3 seconds - 120ms is my personal sweet spot for not accidetnally activating everything while sending messages
            }
            else if(event_press(DOWN) && tap > 0) {
                crouchshot_onoff = !crouchshot_onoff; 
                    rumble_if_true(crouchshot_onoff);
            }
        if(crouchshot_onoff && get_val(FIRE) >1) {
            set_val(CROUCH, 100);
    }
 
 
//  HAIR TRIGGERS (always active)
    if (trigger)
        if (get_val(ADS))
            set_val(ADS, 100);
        if (get_val(FIRE))
            set_val(FIRE, 100); 
 

//  RAPID MELEE (hold MELEE for RAPID MELEE)
    if(get_val(MELEE) && get_ptime(MELEE) > 300) {
        combo_run(PUNCH);
    } 


//  RAPID TEABAG (hold CROUCH for RAPID TEABAG/CROUCH SHOT)
        if(event_press(START) && tap <= 0) {
            tap = 300;	                                   // 300ms = 0.3 seconds - 120ms is my personal sweet spot for not accidetnally activating everything while sending messages
            }
            else if(event_press(START) && tap > 0) {
                shadeglitch_onoff = !shadeglitch_onoff; 
                    rumble_if_true(shadeglitch_onoff);
            }
    if (!shadeglitch_onoff) {
        if(get_val(CROUCH) && get_ptime(CROUCH) > 350) { // (Change "CROUCH" here to another BUTTON DEFINITION if needed/wanted) 
            combo_run(TEABAG); 
        } 
    }
    
        
//  SHADESTEP GLITCH (toggle on/off with double tap START - hold CROUCH for SHADESTEP GLITCH)        
    if (shadeglitch_onoff) {
        if(get_val(CROUCH) && get_ptime(CROUCH) > 220) { // (Change "CROUCH" here to another BUTTON DEFINITION if needed/wanted) 
            combo_run(SHADEGLITCH); 
        }else if(combo_running(SHADEGLITCH)) {             
            combo_stop(SHADEGLITCH);  
            }
        }    


//  SLIDE SHOT SHOULDER CHARGE (hold CROUCH while holding SPRINT (when shoulder charge is ready) for SLIDE SHOT SHOULDER CHARGE)
        if((get_val(SPRINT)) && (get_val(MELEE))) {
            block_buttons = 100;
                set_val(MELEE,0);  
                    combo_run(SSSC);     
    }
    
    
// WEAPON ADS SENSITIVITY, ADS AIM ASSIST, & ANTI-RECOIL MODS
//  ADS SENSITIVITY (double click RIGHT to toggle on/off ADS SENSITIVITY)
        if(event_press(RIGHT) && tap <= 0) {
            tap = 300;	                                   // 300ms = 0.3 seconds - 120ms is my personal sweet spot for not accidetnally activating everything while sending messages
            }
            else if(event_press(RIGHT) && tap > 0) {
                ADS_onoff = !ADS_onoff;
                    rumble_if_true(ADS_onoff);
        }
 
 
        if(ADS_onoff && get_val(ADS) >1) {
                    timer = timer + get_rtime();
                    if( timer >= ADS_delay ){
                            sensitivity(R_X, NOT_USE, 100 - ADS_sensitivity);        
                            sensitivity(R_Y, NOT_USE, 100 - ADS_sensitivity);        
                        }
                }else{
                        timer = 0;
    }
	

//  ADJUSTABLE ANTI-RECOIL TOGGLE (double click UP to toggle on/off ANTI RECOIL)
        if(event_press(UP) && tap <= 0) {
            tap = 300;	                                   // 300ms = 0.3 seconds - 120ms is my personal sweet spot for not accidetnally activating everything while sending messages
            }
            else if(event_press(UP) && tap > 0) {
                recoil_onoff = !recoil_onoff;
                    rumble_if_true(recoil_onoff);
            }



// WEAPON SCRIPTS - RAPIDFIRE & WEAPON SPECIFIC MODS
/*  EASY SWAP RAPIDFIRE TOGGLE (press SWITCH WEAPON & UP to activate rapid fire for only currently equipped weapon)
                               (while active press UP to change which weapon has rapid fire - helpful if you die and spawn with wrong weapon or wrong weapon gets rapid fire upon activation)*/
    if(get_val(SWITCH)) {
        if (event_press(UP)){
            weapon_options ( 0 , 0 , 0 , TRUE );
 
            rumble_if_true(master_ez);
    }
}


//  ADS RAPIDFIRE TOGGLE (press FIRE & UP to activate rapid fire for ALL weapons)
    if(get_val(FIRE)) {
        if(event_press(UP)) {
            weapon_options ( 0 , TRUE , 0 , 0 );
 
            rumble_if_true(ADSrapid_onoff);
    }
}  

//  RAPIDFIRE TOGGLE (press ADS & UP to activate rapid fire for ALL weapons)
    if(get_val(ADS)) {
        if(event_press(UP)) {
            weapon_options ( 0 , 0 , TRUE , 0 );
 
            rumble_if_true(rapid_onoff);
    }


//  RAPIDFIRE RESET (press ADS & DOWN to deactivate all shooting scripts)
       	if(event_press(DOWN)) {
            weapon_options( TRUE , 0 , 0 , 0 );
 
            rumble_if_true(rapid_onoff); 
 
    }
}
 
 
//	ADS RAPIDFIRE 
    if(ADSrapid_onoff) {
        if(get_val(ADS) && get_val(FIRE)) {
            combo_run(RAPIDFIRE); 
        }else if(combo_running(RAPIDFIRE)){ 
            combo_stop(RAPIDFIRE); 
        } 
    }


//	FULL RAPIDFIRE 
    if(rapid_onoff) {
        if(get_val(FIRE)) {
            combo_run(RAPIDFIRE); 
        }else if(combo_running(RAPIDFIRE)){ 
            combo_stop(RAPIDFIRE); 
        } 
    }
    {
            hold_time = 500 / rounds_per_second;
            rest_time = hold_time - 20;
            if(rest_time < 0) rest_time = 0;
    } 
    if(get_val(RELOAD)) {  
        if(event_press(UP)) {
            rounds_per_second = rounds_per_second + 1;
                rumble_if_true(rounds_per_second);
        }                                                         
        if(event_press(DOWN)) {                                   
            rounds_per_second = rounds_per_second - 1;
                rumble_if_true(rounds_per_second);
        }
            set_val(UP,0); set_val(DOWN,0);
                
//        if(event_press(MELEE)){                  // If you DON'T want changes saved automatically and would rather save them with the push of a button then uncomment this line 
            set_pvar(SPVAR_3, rounds_per_second);  //
            set_val (TRACE_3, rounds_per_second);  //
//        }                                        // If you DON'T want changes saved automatically and would rather save them with the push of a button then uncomment this line 
    }
 
 
//  EASY SWAP RAPIDFIRE
    if(event_press(SWITCH)) {
        ezrapid_onoff = !ezrapid_onoff; 
    }
        if(master_ez){                                          
        if(ezrapid_onoff){
            if(get_val(FIRE)>0 ) {      
                combo_run(RAPIDFIRE);
          }else if(combo_running(RAPIDFIRE)) {             
                combo_stop(RAPIDFIRE);                       
        }                                                
    }
} 
    if(event_press(UP)) {
        ezrapid_onoff = !ezrapid_onoff; 
    } 
    if(get_val(SWITCH) && get_ptime(SWITCH) > 250) {
        ezrapid_onoff = FALSE
    }  
       
       
/*  ADJUSTABLE ANTI-RECOIL (hold CROUCH and adjust recoil with DPAD UP, DOWN, LEFT, or RIGHT)
                           (save by pressing MELEE while still holding CROUCH)*/
    if(get_val(CROUCH)) {
        if(event_press(recoil_up))   
            { ANTI_RECOIL_H = ANTI_RECOIL_H - 1; 
                rumble_if_true(ANTI_RECOIL_H);     // Single vibrate on value change // Double vibrate when value is on 0 (no anti-recoil on axis)
    }
        if(event_press(recoil_down)) 
            { ANTI_RECOIL_H = ANTI_RECOIL_H + 1; 
                rumble_if_true(ANTI_RECOIL_H); 
    }
            if(anti_recoil_H > 100)  anti_recoil_H = 100;
            if(anti_recoil_H < -100) anti_recoil_H = -100;
            set_val(recoil_up,0);    
            set_val(recoil_down,0);
 
        if(event_press(recoil_left))  
            { ANTI_RECOIL_V = ANTI_RECOIL_V - 1; 
                rumble_if_true(ANTI_RECOIL_V); 
    }  
        if(event_press(recoil_right)) 
            { ANTI_RECOIL_V = ANTI_RECOIL_V + 1; 
                rumble_if_true(ANTI_RECOIL_V);     // Single vibrate on value change // Double vibrate when value is on 0 (no anti-recoil on axis)
    }
            if(anti_recoil_V > 100)  anti_recoil_V = 100;
            if(anti_recoil_V < -100) anti_recoil_V = -100;
            set_val(recoil_left,0);  
            set_val(recoil_right,0);
 
//        if(event_press(MELEE)){                  // If you DON'T want changes saved automatically and would rather save them with the push of a button then uncomment this line 
            set_pvar(SPVAR_1, ANTI_RECOIL_V);      //                                                          
            set_val (TRACE_1, ANTI_RECOIL_V);      //                                                          
            set_pvar(SPVAR_2, ANTI_RECOIL_H);      //                                                          &
            set_val (TRACE_2, ANTI_RECOIL_H);      //                                                          
                                                   //                                                          
//    }                                            // If you DON'T want changes saved automatically and would rather save them with the push of a button then uncomment this line 
}                                                
	
 	
 	if(recoil_onoff)
        if(!ADSRec_only || get_val(ADS) && get_val(FIRE)) {
            AntiRecoil(ANTI_RECOIL_V, ANTI_RECOIL_H)
    }
 




} // main block end
 
 

 
 
// COMBO SECTION
//	Auto-Strafe/Sidestep
combo STRAFE {
    wait(100);
    set_val(L_X, 85);
    wait(sidestep_time);
    wait(100);
    set_val(L_X, -85);
    wait(sidestep_time);
} 


//	Auto-Melee
combo PUNCH {
    MELEE();
    wait(40);
    NOMELEE();
    wait(40);
    NOMELEE();
}


//	Auto-Revive
combo REVIVE {
    RELOAD();
    wait(revive_time);
    NORELOAD();
}


//	Notification (Rumble Once = Actived - Rumble Twice = Deactivated)
combo NOTIFY {
    set_rumble(rumble_type,100);
    wait(rumble_time);
    reset_rumble();
    wait(100); 
    if(rumble_type) set_rumble(rumble_type,100);
    wait(rumble_time);
    reset_rumble();
}


//	Rapidfire 
combo RAPIDFIRE { 
    FIRE();
    wait(hold_time); 
    NOFIRE(); 
    wait(rest_time); 
    NOFIRE(); 
    wait(rest_time); 
}
 
 
//	Rapid Crouch/Teabag
combo TEABAG { 
    CROUCH();
    wait(100);
    NOCROUCH();
    wait(100);
    NOCROUCH();
}


//  Shadestep Glitch
combo SHADEGLITCH {
    NOCROUCH();
    wait(30)
    CROUCH();
    wait(30)
    NOCROUCH();
    wait(30);
    CROUCH();
    wait(150);
    NOCROUCH();
    wait(30);
    set_val(SELECT,100);
    wait(30);
    set_val(SELECT,0);
    wait(80);
    JUMP();
    wait(30);
    NOJUMP();
    wait(1000);
}


//  Slide Shot Shoulder Charge
combo SSSC {
    NLY();
    wait(50);
    FIRE();
    NLY();
	wait(240);
	FIRE();
	NLY();
	MELEE();
	wait(100);
}    
    
    
    
// FUNCTION
//	Weapon Options
function weapon_options( reset , ADSRF , RF , EZ ) {
 
	reset			 = reset;
	ADSrapid_onoff   = ADSRF;
    rapid_onoff      = RF;
    master_ez        = EZ; 
}


//	Button Layouts
function button_layout( default , bumper , puppet , puppetswap) {
 
	default			 = default;
	bumper           = bumper;
    puppet           = puppet;
    puppetswap       = puppetswap;
}


//	Rumble Notification
function rumble_if_true(var){
    if(var) {
        rumble_type = RUMBLE_A;
        rumble_time= 200;
    }
    else{
        rumble_type = RUMBLE_B;
        rumble_time = 200;
    }
    combo_run(NOTIFY);
} 


//  Button Functions
function FIRE(){set_val(FIRE, 100);}
function NOFIRE(){set_val(FIRE, 0);}
function JUMP(){set_val(JUMP, 100);}
function NOJUMP(){set_val(JUMP, 0);}
function RELOAD(){set_val(RELOAD, 100);}
function NORELOAD(){set_val(RELOAD, 0);}
function CROUCH(){set_val(CROUCH, 100);}
function NOCROUCH(){set_val(CROUCH, 0);}
function MELEE(){set_val(MELEE, 100);}
function NOMELEE(){set_val(MELEE, 0);}
function NLY(){set_val(L_Y, -100);}


//  Smarter Anti-Recoil
function AntiRecoil (AntiRecoil_H, AntiRecoil_V) 
{
    //  Anti-recoil parameters
    if (get_val(FIRE) && isqrt(pow(get_val(R_X), 2) + pow(get_val(R_Y), 2)) <= abs(AntiRecoil_V))
    {
        if (abs(R_Y) <= abs(AntiRecoil_V))
        {
            // Horizontal anti-recoil
            anti_recoil_H = (get_val(R_X) + (AntiRecoil_H*(100-abs(get_val(R_X))))/100);
            set_val(R_X, anti_recoil_H);
 
            // Vertical anti-recoil
            if (inverted)
                 { anti_recoil_V = (get_val(R_Y) - (AntiRecoil_V*(100-abs(get_val(R_Y))))/100); } // Y-axis invert
            else { anti_recoil_V = (get_val(R_Y) + (AntiRecoil_V*(100-abs(get_val(R_Y))))/100); }
            if (anti_recoil_V >  (AntiRecoil_V)) {anti_recoil_V = (AntiRecoil_V) ;}
            set_val(R_Y, anti_recoil_V);
        }
    }
}

 
//  Colour LED Function for PS4
function colourled(Colour) {
Col_ind=(Colour*4)- 3;
set_led(LED_1,dbyte(Col_ind  ));
set_led(LED_2,dbyte(Col_ind+ 1));
set_led(LED_3,dbyte(Col_ind+ 2));
set_led(LED_4,dbyte(Col_ind+ 3));
}
  • Rating

    10 / 10 here !

    If you own a ps3 and prefer an xbox controller, or even use a keyboard and mouse, this is a must to remap your keyboard to a controller. Go buy it now you won't be disappointed !

  • Rating

    Amazing device

    If you're like me and love your PS4 controller but want to use an Xbox One GET THIS you won't be sorry.

  • Rating

    Worth every penny

    The controller feels and performs as it does on the xbox right there on my ps3, awesome job guys, and worth every penny !!!

  • Rating

    Amazing Macro combos

    tested Super Street Fighter IV Arcade Edition. I was able to perform normal & FADC combos with some characters like Ryu and Ken with a single click. Amazing.

  • Rating

    As good as a XIM

    If you are a pc gamer, that needs a pc solution for console, get yourself a ControllerMAX you will not regret it.

  • Rating

    KB & Mouse RULES!

    All I can say playing 10 minutes with ControllerMAX properly configured it felt better then PC....YES I said it even better then PC, it's that smooth.

  • Rating

    Six-Axis 360!

    WOW! I can finally get that six-axis awesomeness on my Xbox 360. The best money I ever spent.

  • Rating

    Beats all rapidfire mods

    I've tried the Intensafire, Godfather even the new Wolf controller. The ControllerMAX beats them hands down and no wires or soldering too. 5 Stars!

  • Rating

    Just perfect!

    I can't believe how much this can do for the price tag - it blew me away. Best controller upgrade ever.

  • Rating

    Hugh Thanks!

    Without your help I couldn't be playing Xbox, thanks guys.

  • Rating

    Wow!

    I have to say after reading the forums for Destiny Mouse and Keyboard setup I was flying into getting it set up in 20 minutes. It works outstanding! I'm more then satisfied and its worth every penny!

  • Rating

    Achievement Unlocked!

    Idle boosting Complete 150 Multiplayer games, James Cameron's Avatar. My friend said it would be hard, I laughed then linked him.

  • Rating

    A++!

    Now this is a company you can count on and trust...keep up the great work guys!

  • Rating

    What Disability?

    I would like to thank you for making the CronusMax. I have this problem hitting L3 and R3, and today that problem was fixed. I love the remap feature on the Cronus max. You made my life easier.

  • Rating

    Awesome stuff guys!

    Playing Forza 5 with my original MS 360 wireless wheel makes the XB1 complete for me, thanks to the CronusMax. Thumbs up!