Battlefield 4 horizontal recoil

Titan One general support. Questions, firmware update, feature request.

Battlefield 4 horizontal recoil

Postby tothehawks » Sun Jan 31, 2016 8:54 pm

Hi, all.

I'm a recent convert to the Titan One and loving it so far on BF4.

The vertical anti-recoil setting has worked perfectly, but I was wondering if it was possible to get rid of horizontal recoil, at least in part. I'm not sure of the logistics of this, which is why I am asking. I'm not even sure if it's possible (I'm an Xbox One player).

I'm aware that you have two horizontal recoil values and the game selects a value at random whenever you first shoot to act as your horizontal recoil. At least that's what I've garnered from the game. I appreciate it's probably not possible to completely eliminate horizontal recoil from a weapon -- unlike vertical recoil, there is no set value for horizontal.

However, I was wondering if we could remove a certain amount of recoil from each side. For example, say a weapon has left recoil of 0.25 and right recoil of 0.45, could we remove 0.1 from each side every time we shoot? The weapon probabilistically is going to go right most times, so removing 0.1 won't do too much.

Hopefully you all get what I'm trying to say. I have no idea if this is possible with a script. Any feedback is appreciated.
User avatar
tothehawks
Private
Private
 
Posts: 1
Joined: Sun Jan 31, 2016 8:47 pm

Re: Battlefield 4 horizontal recoil

Postby J2Kbr » Mon Feb 01, 2016 10:24 pm

The Gamepack is maxed out, no more room to add more code (unless we remove something). Just recently I received similar request and I did a custom script for the user, it may be helpful for you:

Code: Select all
    // -----------------------------------------------------------------------------
    //  YOU CAN CUSTOMIZE THIS SCRIPT CHANGING THE FOLLOWING DEFINE VALUES
    // -----------------------------------------------------------------------------

    // BUTTON LAYOUT
    // Make the same as you have configurared on the game
    define FIRE_BUTTON              = PS4_R2;
    define SCOPE_BUTTON             = PS4_L2;
    define SPOT_BUTTON              = PS4_R1;

    // RAPIDFIRE
    define RAPIDFIRE_ENABLED        = TRUE;     // TRUE or FALSE
    define RAPIDFIRE_HOLDTIME       = 40;       // Hold time in ms
    define RAPIDFIRE_RELEASETIME    = 30;       // Release time in ms

    // RAPIDFIRE MODE (excluse option, just enable one at time)
    define MODE_SCOPE_ENABLE        = TRUE;     // TRUE or FALSE
    define MODE_SCOPE_DISABLE       = FALSE;    // TRUE or FALSE
    define MODE_PRESS_SENSITIVY     = FALSE;    // TRUE or FALSE

    // SECONDARY RAPIDFIRE
    define SRAPIDFIRE_ENABLED       = TRUE;     // TRUE or FALSE
    define SRAPIDFIRE_HOLDTIME      = 40;       // Hold time in ms
    define SRAPIDFIRE_RELEASETIME   = 30;       // Release time in ms

    // AUTO SPOT
    define AUTOSPOT_ENABLED         = TRUE;     // TRUE or FALSE
    define AUTOSPOT_SCOPEONLY       = TRUE;     // TRUE or FALSE
    define AUTOSPOT_TIME            = 980;      // Cicle time in ms

    // ANTI RECOIL
    define ANTIRECOIL_ENABLED       = TRUE;     // TRUE or FALSE
    define ANTIRECOIL_SCOPEONLY     = TRUE;     // TRUE or FALSE
    define ANTIRECOIL_FORCE         = 35;       // Anti recoil force: from 0 to 100

    // -----------------------------------------------------------------------------
    //  NO CHANGES ARE NEEDED FROM HERE
    // -----------------------------------------------------------------------------

    int modz_activated = TRUE;
    int cFire_right, cFire_press, cFire_release;
    int ar_tmp;

    main {
        if(get_val(PS4_L3) && event_press(PS4_CROSS)) {
            modz_activated = !modz_activated;
        }
        if(modz_activated) {
            // AUTO SPOT
            if(AUTOSPOT_ENABLED) {
                if(!AUTOSPOT_SCOPEONLY || get_val(SCOPE_BUTTON)) {
                    combo_run(AutoSpot);
                }
            }
            // ANTI-RECOIL
            if(ANTIRECOIL_ENABLED && get_val(FIRE_BUTTON)) {
                if(!ANTIRECOIL_SCOPEONLY || get_val(SCOPE_BUTTON)) {
                    combo_run(AntiRecoil);
                }
            }
            // FIREMODES
            if(!(MODE_SCOPE_ENABLE + MODE_SCOPE_DISABLE + MODE_PRESS_SENSITIVY)
            || MODE_SCOPE_ENABLE && get_val(SCOPE_BUTTON)
            || MODE_SCOPE_DISABLE && get_val(SCOPE_BUTTON)
            || MODE_PRESS_SENSITIVY && get_val(FIRE_BUTTON) == 100) {
                if(get_val(FIRE_BUTTON)) {
                    if(!cFire_right) {
                        combo_stop(Fire);
                        cFire_right = TRUE;
                    }
                } else if(cFire_right) {
                    combo_stop(Fire);
                    cFire_right = FALSE;
                }
            } else if(cFire_right) {
                combo_stop(Fire);
                cFire_right = FALSE;
            }
            if(cFire_right) {
                // RAPIDFIRE
                if(RAPIDFIRE_ENABLED) {
                    cFire_press = RAPIDFIRE_HOLDTIME;
                    cFire_release = RAPIDFIRE_RELEASETIME;
                    combo_run(Fire);
                }
            } else if(SRAPIDFIRE_ENABLED) { // SECONDARY RAPID FIRE
                if(get_val(FIRE_BUTTON)) {
                    cFire_press = SRAPIDFIRE_HOLDTIME;
                    cFire_release = SRAPIDFIRE_RELEASETIME;
                    combo_run(Fire);
                }
            }
        }
    }

    combo Fire {
        set_val(FIRE_BUTTON, 100);
        wait(cFire_press);
        set_val(FIRE_BUTTON, 0);
        wait(cFire_release);
        set_val(FIRE_BUTTON, 0);
    }

    combo AutoSpot {
        set_val(SPOT_BUTTON, 100);
        wait(40); wait(AUTOSPOT_TIME);
    }

    combo AntiRecoil {
        ar_tmp = get_val(PS4_RY) + ANTIRECOIL_FORCE;
        if(ar_tmp > 100) ar_tmp = 100;
        else if(ar_tmp < -100) ar_tmp = -100;
        set_val(PS4_RY, ar_tmp);
    }

ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: Battlefield 4 horizontal recoil

Postby Rodah » Tue Feb 02, 2016 3:49 am

I am so much interested to learn this things as this is new to me, Can I possibly asked some information on how to operate this one and what is the best weapon to use?

_______________________
wooden practice swords
Last edited by Rodah on Sat Feb 20, 2016 9:03 pm, edited 1 time in total.
User avatar
Rodah
Private
Private
 
Posts: 1
Joined: Tue Feb 02, 2016 3:40 am

Re: Battlefield 4 horizontal recoil

Postby J2Kbr » Tue Feb 02, 2016 8:02 am

sure, we are here for help!! :)
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: Battlefield 4 horizontal recoil

Postby Antihawk » Wed Feb 03, 2016 12:56 pm

J2Kbr wrote:The Gamepack is maxed out, no more room to add more code (unless we remove something). Just recently I received similar request and I did a custom script for the user, it may be helpful for you:

Code: Select all
    // -----------------------------------------------------------------------------
    //  YOU CAN CUSTOMIZE THIS SCRIPT CHANGING THE FOLLOWING DEFINE VALUES
    // -----------------------------------------------------------------------------

    // BUTTON LAYOUT
    // Make the same as you have configurared on the game
    define FIRE_BUTTON              = PS4_R2;
    define SCOPE_BUTTON             = PS4_L2;
    define SPOT_BUTTON              = PS4_R1;

    // RAPIDFIRE
    define RAPIDFIRE_ENABLED        = TRUE;     // TRUE or FALSE
    define RAPIDFIRE_HOLDTIME       = 40;       // Hold time in ms
    define RAPIDFIRE_RELEASETIME    = 30;       // Release time in ms

    // RAPIDFIRE MODE (excluse option, just enable one at time)
    define MODE_SCOPE_ENABLE        = TRUE;     // TRUE or FALSE
    define MODE_SCOPE_DISABLE       = FALSE;    // TRUE or FALSE
    define MODE_PRESS_SENSITIVY     = FALSE;    // TRUE or FALSE

    // SECONDARY RAPIDFIRE
    define SRAPIDFIRE_ENABLED       = TRUE;     // TRUE or FALSE
    define SRAPIDFIRE_HOLDTIME      = 40;       // Hold time in ms
    define SRAPIDFIRE_RELEASETIME   = 30;       // Release time in ms

    // AUTO SPOT
    define AUTOSPOT_ENABLED         = TRUE;     // TRUE or FALSE
    define AUTOSPOT_SCOPEONLY       = TRUE;     // TRUE or FALSE
    define AUTOSPOT_TIME            = 980;      // Cicle time in ms

    // ANTI RECOIL
    define ANTIRECOIL_ENABLED       = TRUE;     // TRUE or FALSE
    define ANTIRECOIL_SCOPEONLY     = TRUE;     // TRUE or FALSE
    define ANTIRECOIL_FORCE         = 35;       // Anti recoil force: from 0 to 100

    // -----------------------------------------------------------------------------
    //  NO CHANGES ARE NEEDED FROM HERE
    // -----------------------------------------------------------------------------

    int modz_activated = TRUE;
    int cFire_right, cFire_press, cFire_release;
    int ar_tmp;

    main {
        if(get_val(PS4_L3) && event_press(PS4_CROSS)) {
            modz_activated = !modz_activated;
        }
        if(modz_activated) {
            // AUTO SPOT
            if(AUTOSPOT_ENABLED) {
                if(!AUTOSPOT_SCOPEONLY || get_val(SCOPE_BUTTON)) {
                    combo_run(AutoSpot);
                }
            }
            // ANTI-RECOIL
            if(ANTIRECOIL_ENABLED && get_val(FIRE_BUTTON)) {
                if(!ANTIRECOIL_SCOPEONLY || get_val(SCOPE_BUTTON)) {
                    combo_run(AntiRecoil);
                }
            }
            // FIREMODES
            if(!(MODE_SCOPE_ENABLE + MODE_SCOPE_DISABLE + MODE_PRESS_SENSITIVY)
            || MODE_SCOPE_ENABLE && get_val(SCOPE_BUTTON)
            || MODE_SCOPE_DISABLE && get_val(SCOPE_BUTTON)
            || MODE_PRESS_SENSITIVY && get_val(FIRE_BUTTON) == 100) {
                if(get_val(FIRE_BUTTON)) {
                    if(!cFire_right) {
                        combo_stop(Fire);
                        cFire_right = TRUE;
                    }
                } else if(cFire_right) {
                    combo_stop(Fire);
                    cFire_right = FALSE;
                }
            } else if(cFire_right) {
                combo_stop(Fire);
                cFire_right = FALSE;
            }
            if(cFire_right) {
                // RAPIDFIRE
                if(RAPIDFIRE_ENABLED) {
                    cFire_press = RAPIDFIRE_HOLDTIME;
                    cFire_release = RAPIDFIRE_RELEASETIME;
                    combo_run(Fire);
                }
            } else if(SRAPIDFIRE_ENABLED) { // SECONDARY RAPID FIRE
                if(get_val(FIRE_BUTTON)) {
                    cFire_press = SRAPIDFIRE_HOLDTIME;
                    cFire_release = SRAPIDFIRE_RELEASETIME;
                    combo_run(Fire);
                }
            }
        }
    }

    combo Fire {
        set_val(FIRE_BUTTON, 100);
        wait(cFire_press);
        set_val(FIRE_BUTTON, 0);
        wait(cFire_release);
        set_val(FIRE_BUTTON, 0);
    }

    combo AutoSpot {
        set_val(SPOT_BUTTON, 100);
        wait(40); wait(AUTOSPOT_TIME);
    }

    combo AntiRecoil {
        ar_tmp = get_val(PS4_RY) + ANTIRECOIL_FORCE;
        if(ar_tmp > 100) ar_tmp = 100;
        else if(ar_tmp < -100) ar_tmp = -100;
        set_val(PS4_RY, ar_tmp);
    }



Thanks for the response.

I noticed there's a changeable anti-recoil part in that script. I assume that applies only to vertical recoil, right? What I am wondering about is if it's possible to reduce horizontal recoil. Is there any part in that script that applies to horizontal recoil, or is it impossible to do?
User avatar
Antihawk
Staff Sergeant
Staff Sergeant
 
Posts: 15
Joined: Wed May 13, 2015 10:58 pm

Re: Battlefield 4 horizontal recoil

Postby J2Kbr » Thu Feb 04, 2016 10:30 am

I am sorry. I posted a old version of this script, here it is with the vertical and horizontal recoil:

Code: Select all
// -----------------------------------------------------------------------------
//  YOU CAN CUSTOMIZE THIS SCRIPT CHANGING THE FOLLOWING DEFINE VALUES
// -----------------------------------------------------------------------------

// BUTTON LAYOUT
// Make the same as you have configurared on the game
define FIRE_BUTTON              = PS4_R2;
define SCOPE_BUTTON             = PS4_L2;
define SPOT_BUTTON              = PS4_R1;
define SPRINT_BUTTON            = PS4_L3;

// RAPIDFIRE
define RAPIDFIRE_ENABLED        = TRUE;     // TRUE or FALSE
define RAPIDFIRE_HOLDTIME       = 40;       // Hold time in ms
define RAPIDFIRE_RELEASETIME    = 30;       // Release time in ms

// RAPIDFIRE MODE (excluse option, just enable one at time)
define MODE_SCOPE_ENABLE        = TRUE;     // TRUE or FALSE
define MODE_SCOPE_DISABLE       = FALSE;    // TRUE or FALSE
define MODE_PRESS_SENSITIVY     = FALSE;    // TRUE or FALSE

// SECONDARY RAPIDFIRE
define SRAPIDFIRE_ENABLED       = TRUE;     // TRUE or FALSE
define SRAPIDFIRE_HOLDTIME      = 40;       // Hold time in ms
define SRAPIDFIRE_RELEASETIME   = 30;       // Release time in ms

// AUTO SPOT
define AUTOSPOT_ENABLED         = TRUE;     // TRUE or FALSE
define AUTOSPOT_SCOPEONLY       = TRUE;     // TRUE or FALSE
define AUTOSPOT_TIME            = 980;      // Cicle time in ms

// EASY SPRINT
define EASYSPRINT_ENABLED       = TRUE;     // TRUE or FALSE

// ANTI RECOIL
define ANTIRECOIL_ENABLED       = TRUE;     // TRUE or FALSE
define ANTIRECOIL_SCOPEONLY     = TRUE;     // TRUE or FALSE
define ANTIRECOIL_FORCE         = 35;       // Anti recoil force (vertical): from 0 to 100
define ANTIRECOIL_LEFT          = 0;        // Anti recoil force (left): from 0 to 100
define ANTIRECOIL_RIGHT         = 0;        // Anti recoil force (right): from 0 to 100

// -----------------------------------------------------------------------------
//  NO CHANGES ARE NEEDED FROM HERE
// -----------------------------------------------------------------------------

int modz_activated = TRUE;
int cFire_right, cFire_press, cFire_release;
int anti_recoil, anti_recoil_left, anti_recoil_right;

main {
    if(get_val(PS4_L3) && event_press(PS4_CROSS)) {
        modz_activated = !modz_activated;
    }
    if(modz_activated) {
        // AUTO SPOT
        if(AUTOSPOT_ENABLED) {
            if(!AUTOSPOT_SCOPEONLY || get_val(SCOPE_BUTTON)) {
                combo_run(AutoSpot);
            }
        }
        // EASY SPRINT
        if(EASYSPRINT_ENABLED && !get_val(SCOPE_BUTTON)) {
            if(get_val(PS4_LY) <= -35) {
                combo_run(EasySprint);
            }
        }
        // ANTI-RECOIL
        if(ANTIRECOIL_ENABLED && get_val(FIRE_BUTTON)) {
            if(!ANTIRECOIL_SCOPEONLY || get_val(SCOPE_BUTTON)) {
                combo_run(AntiRecoil);
            }
        }
        // FIREMODES
        if(!(MODE_SCOPE_ENABLE + MODE_SCOPE_DISABLE + MODE_PRESS_SENSITIVY)
        || MODE_SCOPE_ENABLE && get_val(SCOPE_BUTTON)
        || MODE_SCOPE_DISABLE && get_val(SCOPE_BUTTON)
        || MODE_PRESS_SENSITIVY && get_val(FIRE_BUTTON) == 100) {
            if(get_val(FIRE_BUTTON)) {
                if(!cFire_right) {
                    combo_stop(Fire);
                    cFire_right = TRUE;
                }
            } else if(cFire_right) {
                combo_stop(Fire);
                cFire_right = FALSE;
            }
        } else if(cFire_right) {
            combo_stop(Fire);
            cFire_right = FALSE;
        }
        if(cFire_right) {
            // RAPIDFIRE
            if(RAPIDFIRE_ENABLED) {
                cFire_press = RAPIDFIRE_HOLDTIME;
                cFire_release = RAPIDFIRE_RELEASETIME;
                combo_run(Fire);
            }
        } else if(SRAPIDFIRE_ENABLED) { // SECONDARY RAPID FIRE
            if(get_val(FIRE_BUTTON)) {
                cFire_press = SRAPIDFIRE_HOLDTIME;
                cFire_release = SRAPIDFIRE_RELEASETIME;
                combo_run(Fire);
            }
        }
    }
}

combo Fire {
    set_val(FIRE_BUTTON, 100);
    wait(cFire_press);
    set_val(FIRE_BUTTON, 0);
    wait(cFire_release);
    set_val(FIRE_BUTTON, 0);
}

combo AutoSpot {
    set_val(SPOT_BUTTON, 100);
    wait(40); wait(AUTOSPOT_TIME);
}

combo EasySprint {
    set_val(SPRINT_BUTTON, 100);
    wait(100); wait(100);
}

/*
combo AntiRecoil {
    anti_recoil = get_val(PS4_RY) + ANTIRECOIL_FORCE;
    if(anti_recoil > 100) anti_recoil = 100;
    else if(anti_recoil < -100) anti_recoil = -100;
    set_val(PS4_RY, anti_recoil);
}
*/

combo AntiRecoil {
    if(get_val(FIRE_BUTTON)) {
        anti_recoil = get_val(10) + ANTIRECOIL_FORCE;
        if(anti_recoil > 100) anti_recoil = 100;
        set_val(10, anti_recoil);
        anti_recoil_left = get_val(9) -ANTIRECOIL_LEFT;
        if(anti_recoil_left > 100) anti_recoil_left = 100;
        set_val(9, anti_recoil_left);
        anti_recoil_right = get_val(9) +ANTIRECOIL_RIGHT;
        if(anti_recoil_right > 100) anti_recoil_right = 100;
        set_val(9, anti_recoil_right);
    }
}
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: Battlefield 4 horizontal recoil

Postby Antihawk » Thu Feb 04, 2016 7:51 pm

That's brilliant. It works like a charm. Thanks so much for the help.
User avatar
Antihawk
Staff Sergeant
Staff Sergeant
 
Posts: 15
Joined: Wed May 13, 2015 10:58 pm

Re: Battlefield 4 horizontal recoil

Postby Antihawk » Thu Feb 04, 2016 8:00 pm

Also, I am not sure of your specialist knowledge of Battlefield 4, but I had a query anyway.

I am aware that there are two horizontal recoil values for every gun -- left and right. From what I can gather, the game picks a random value from these every time you shoot. So if the value is higher on right recoil than left, probabilistically the gun is more likely to shoot up and to the right than left, but this leaves no guarantee that it won't pull left.

My point is: it wouldn't make sense to try to completely eliminate horizontal recoil with the Titan One, would it? If these values are truly random, such a task is impossible. The only sensible course of action would be to reasonably reduce each side of recoil by a minimal amount.

I assume the anti-recoil setting is equivalent to a pulling down/left/right of the right analog stick every time you shoot, thus there is no way to counteract the random horizontal recoil value that BF4 selects.
User avatar
Antihawk
Staff Sergeant
Staff Sergeant
 
Posts: 15
Joined: Wed May 13, 2015 10:58 pm

Re: Battlefield 4 horizontal recoil

Postby Antihawk » Thu Feb 04, 2016 8:05 pm

Also -- and probably the most unreasonable and hopeless request thus far -- can you think of any way to apply certain anti-recoil values to the first shot of your gun and then apply the others to the following shots?

I ask this, as I'm sure you know, because guns in BF4 have a certain First Shot Multiplier, whereby the gun's recoil multiplies to whatever the value is every first shot.

This has implications for burst firing and such. You can set a certain value for anti-recoil, sure, but the recoil still becomes troublesome when burst/tap firing, when the first shot multiplier applies frequently.

I have no doubt such a request is impossible, but I thought I might wonder anyway. Thanks.
User avatar
Antihawk
Staff Sergeant
Staff Sergeant
 
Posts: 15
Joined: Wed May 13, 2015 10:58 pm

Re: Battlefield 4 horizontal recoil

Postby J2Kbr » Fri Feb 05, 2016 8:23 am

Antihawk wrote:My point is: it wouldn't make sense to try to completely eliminate horizontal recoil with the Titan One, would it? If these values are truly random, such a task is impossible. The only sensible course of action would be to reasonably reduce each side of recoil by a minimal amount.

You are completely right. As it is not possible predict to where the horizontal recoil will happen for each bullet shot, the average horizontal recoil is predictable and - I believe- is how the script works. As a side note, it was not me that wrote this anti-recoil code.

Antihawk wrote:Apply certain anti-recoil values to the first shot of your gun and then apply the others to the following shots? I have no doubt such a request is impossible, but I thought I might wonder anyway. Thanks.

It is actually possible. We have something similar to that on the BO3 Gamepack. however, because of what we discussed above, this would only make sense for the vertical recoil.
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Next

Return to Titan One Device

Who is online

Users browsing this forum: No registered users and 115 guests