int press_r2_time = 75; //if this is too short the rapid fire may not be detected
int OnOFF = TRUE;
int fire_rate = 45;
int rapid_fire_when_ads = FALSE; //set this to true if you want to only rapid fire while aiming
int flip_trigger = FALSE; //set to true to swap triggers with bumpers.
//to adjust fire rate hold options (pause button) and press up and down on dpad
//to save changes hold L1 + R1 then tap pause
//to turn on or off hold l2 and tap pause
init {
set_led(0, 0);
set_led(1, 0);
set_led(2, 1);
set_led(3, 0);
fire_rate = get_pvar(SPVAR_1, 45, 995, 45);
}
main {
if (flip_trigger == TRUE) {
swap(PS4_R2, PS4_R1);
swap(PS4_L2, PS4_L1);
}
if (rapid_fire_when_ads == FALSE) {
if (get_val(PS4_R2) > 15) {
if (OnOFF == TRUE) {
combo_run(rapid_fire);
}
}
} else {
if (get_val(PS4_L2) && (get_val(PS4_R2) > 15)) {
if (OnOFF == TRUE) {
combo_run(rapid_fire);
}
}
}
if (get_val(PS4_L2)) {
if (event_release(PS4_OPTIONS)) {
OnOFF = !OnOFF;
combo_run(SET_LED);
} else if (get_val(PS4_OPTIONS)) {
set_val(PS4_OPTIONS, 0);
}
}
if (get_val(PS4_OPTIONS) && event_press(PS4_DOWN)) {
if ((fire_rate + 45) <= 995) {
fire_rate = fire_rate + 45;
}
} else if (get_val(PS4_OPTIONS) && event_press(PS4_UP)) {
if ((fire_rate - 45) >= 45) {
fire_rate = fire_rate - 45;
}
}
if (get_val(PS4_R1) && get_val(PS4_L1) && event_press(PS4_OPTIONS)) {
set_pvar(SPVAR_1, fire_rate);
combo_run(SAVING_LED);
}
}
combo rapid_fire {
wait(press_r2_time);
set_val(PS4_R2, 0);
wait(fire_rate);
}
combo SET_LED {
if (OnOFF == TRUE) {
combo_run(vibrate2);
set_led(0, 0);
set_led(1, 0);
set_led(2, 1);
set_led(3, 0);
} else {
combo_run(vibrate1);
set_led(0, 0);
set_led(1, 1);
set_led(2, 0);
set_led(3, 0);
}
}
combo SAVING_LED {
set_led(0, 0);
set_led(1, 1);
set_led(2, 0);
set_led(3, 0);
wait(500):
set_led(0, 0);
set_led(1, 0);
set_led(2, 1);
set_led(3, 0);
wait(500);
set_led(0, 0);
set_led(1, 1);
set_led(2, 0);
set_led(3, 0);
wait(500):
set_led(0, 0);
set_led(1, 0);
set_led(2, 1);
set_led(3, 0);
wait(500);
combo_run(SET_LED);
}
combo vibrate1 {
set_rumble(RUMBLE_A, 100);
wait(300);
reset_rumble();
}
combo vibrate2 {
set_rumble(RUMBLE_B, 100);
wait(300);
reset_rumble();
}