I'm sharing with you this no-recoil script for Logitech mouse users
What's the main difference between this script and the others.
First of all, this script allows you to have your own configurations on guns, you can edit the recoil table.
Second, this is a real no-recoil script not a stup*d anti-recoil script which only makes your mouse go down. This script actually has the recoil tables and you are able to change it in case of an update on gun patterns.
Before posting the script I'm going to explain how to actually use it!
Tutorial If you already know how to install and utilize a script, scroll down to the tutorial in-game
1- Open the Logitech Software
2- On the first page make sure you select "Automatic Game Detection"
3- Now click on any of the buttons being highlighted by a fading blue color.
4- Go to where it says profiles (all the way on the top of the software), click on create a new profile (a cross)
5- In the name field, enter whatever you want idc dude.
6- You don't have to fill the description field just go to the "Games and Apps that utilizes this profile"
7- Click on the cross symbol again and bring it to ur Tslgame.exe , you can find it here( C:\Program Files (x86)\Steam\steamapps\common\PUBG\TslGame\Binaries \Win64\TslGame.exe).
8- Select TslGame.exe click on open
9- Now it created a new profile called Whatever name you created.
10- Right click on the profile, go to scripting -> Paste the source code below inside there and just f****** save it.
11- Now follow the f*****g tutorial in-game below.
In-Game Tutorial
1. Assigned button number for weapon
the button number can be find in log windows, when the mouse button click, log prompt event = MOUSE_BUTTON_RELEASED, arg = X, the X is the button number.
Weapon has 6 kinds, and different models of Logitech mouse function keys may be less than 6, for unnecessary weapons allocation nil value.
You should always assign a button to cancel the set recoil compensation. set_off_key
2. Set the fire key and the mode switch key.
the fire key button needs to be consistent with the game settings, and in the game to cancel the left mouse button binding.
When the mode switch key is pressed, recoil zoom 3-4x , easy to use quadruple mirror.
By default , fire key is pause , mode switch key is capslock.
**All weapons use the single-shot model, which converts the individual into a fully automated mode, including M16a1. **
3. Ignore Key
You can set a ignore Key, and when the key is pressed, the script pauses.
Limited by LGS, you can only select "lalt", "ralt", "alt" "lshift", "rshift", "shift" "lctrl", "rctrl", "ctrl" and Logitech G Key(Logitech game keyboard only)
By default is "lshift"
Recommended settings
Logitech's most gaming mice contain 5 shortcuts. The default 1 forward, 1 back, 1 zoom, a reduced dpi, a magnifying glass.
Assign a button to use ump9, so that the keys are also suitable for full accessory m416 and scar-l.
Assign a button to use m16a1, m16a1 with red dot sight or holographic sight, do not need other accessories, you can play a power.
Assign a button using akm, akm mode also applies to sks and mini 14.
Assign a button to use a big jump.
Assign a button to cancel the no-recoil.
Disclaimer: This script was not created by me... Not created by me.... Not created by me... Not created by me (Echo) I'm just a regular guy that likes to search on google =)
Script
Just copy everything from here below and paste it where it says on the first tutorial! Enjoy!
(If you don't understand what the **** I wrote just tell me so I can ******* create a video for y'all)
--------------------------------------------------------------------------
---------------- Basic Variable -----------------------------
---------------- Do not edit ---------------------
--------------------------------------------------------------------------
local current_weapon = "none"
--------------------------------------------------------------------------
---------------- Basic Setting ------------------------------
--------------------------------------------------------------------------
---- key bind ----
local uzi_key = nil
local ump9_key = nil
local akm_key = 7
local m16a4_key = 8
local m416_key = 4
local scarl_key = 5
local set_off_key = 6
---- fire key ----
local fire_key = "Pause"
local mode_switch_key = "capslock"
---- ignore key ----
---- can use "lalt", "ralt", "alt" "lshift", "rshift", "shift" "lctrl", "rctrl", "ctrl"
local ignore_key = "lshift"
--- Sensitivity in Game
--- default is 50.0
local target_sensitivity = 50
local scope_sensitivity = 50
local scope4x_sensitivity = 50
---- Obfs setting
---- Two firing time intervals = weapon_speed * interval_ratio * ( 1 + random_seed * ( 0 ~ 1))
local weapon_speed_mode = false
local obfs_mode = true
local interval_ratio = 0.75
local random_seed = 1
--------------------------------------------------------------------------
---------------- Recoil Table ------------------------------
---------------- You can fix the value here ------------------------------
--------------------------------------------------------------------------
local recoil_table = {}
recoil_table["ump9"] = {
basic={18.3,18.3,18.3,18.3,18.3,18.3,18.3,23,23,23 ,23,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.3,2 3.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,2 3.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3},
quadruple={83.3,83.3,83.3,83.3,83.3,83.3,83.3,116. 7,116.7,116.7,116.7,93.3,93.3,93.3,93.3,93.3,93.3, 93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3, 93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3, 93.3,93.3,93.3},
speed = 92
}
recoil_table["akm"] = {
basic={23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23. 7,23.7,23.7,28,28,28,28,29.7,29.7,29.7,29.7,29.7,2 9.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,2 9.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7,29.7},
quadruple={66.7,66.7,66.7,66.7,66.7,66.7,66.7,66.7 ,66.7,66.7,66.7,123.3,123.3,123.3,123.3,93.3,93.3, 93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3, 93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3,93.3, 93.3,93.3,93.3},
speed = 100
}
recoil_table["m16a4"] = {
basic={25.7,25.7,25.7,25.7,25.7,25.7,46.7,46.7,46. 7,46.7,30,30,30,30,30,30,30,30,30,30,30,30,30,30,3 0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150, 150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7},
speed = 75
}
recoil_table["m416"] = {
basic={26.7,26.7,26.7,26.7,26.7,26.7,37,37,37,37,3 7,31,31,31,31,31,32,32,32,35,35,35,35,35,35,35,35, 35,35,35,35,35,35,35,35,35,35,35,35,35},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150, 150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7},
speed = 86
}
recoil_table["scarl"] = {
basic={22.3,22.3,22.3,22.3,22.3,22.3,22.3,29.3,29. 3,29.3,29.3,26.7,26.7,26.7,26.7,26.7,26.7,26,26,26 ,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,2 6,26,26,26},
quadruple={86.7,86.7,86.7,86.7,86.7,86.7,86.7,150, 150,150,150,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96.7,96. 7,96.7},
speed = 96
}
recoil_table["uzi"] = {
basic={18.3,18.3,18.3,18.3,18.3,18.3,18.3,23,23,23 ,23,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.7,23.3,2 3.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,2 3.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3,23.3},
quadruple={13.3,13.3,13.3,13.3,13.3,21.7,21.7,21.7 ,21.7,21.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7 ,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7 ,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7,46.7 ,46.7,46.7},
speed = 48
}
recoil_table["none"] = {
basic={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
quadruple={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
speed = 60
}
--------------------------------------------------------------------------
---------------- Function ------------------------------
--------------------------------------------------------------------------
function convert_sens(unconvertedSens)
return 0.002 * math.pow(10, unconvertedSens / 50)
end
function calc_sens_scale(sensitivity)
return convert_sens(sensitivity)/convert_sens(50)
end
local target_scale = calc_sens_scale(target_sensitivity)
local scope_scale = calc_sens_scale(scope_sensitivity)
local scope4x_scale = calc_sens_scale(scope4x_sensitivity)
function recoil_mode()
if IsKeyLockOn(mode_switch_key) then
return "quadruple";
else
return "basic";
end
end
function recoil_value(_weapon,_duration)
local _mode = recoil_mode()
local step = (math.floor(_duration/100)) + 1
if step > 40 then
step = 40
end
local weapon_recoil = recoil_table[_weapon][_mode][step]
-- OutputLogMessage("weapon_recoil = %s\n", weapon_recoil)
local weapon_speed = 30
if weapon_speed_mode then
weapon_speed = recoil_table[_weapon]["speed"]
end
-- OutputLogMessage("weapon_speed = %s\n", weapon_speed)
local weapon_intervals = weapon_speed
if obfs_mode then
local coefficient = interval_ratio * ( 1 + random_seed * math.random())
weapon_intervals = math.floor(coefficient * weapon_speed)
end
-- OutputLogMessage("weapon_intervals = %s\n", weapon_intervals)
recoil_recovery = weapon_recoil * weapon_intervals / 100
-- issues/3
if IsMouseButtonPressed(2) then
recoil_recovery = recoil_recovery / target_scale
elseif recoil_mode() == "basic" then
recoil_recovery = recoil_recovery / scope_scale
elseif recoil_mode() == "quadruple" then
recoil_recovery= recoil_recovery / scope4x_scale
end
return weapon_intervals,recoil_recovery
end
--------------------------------------------------------------------------
---------------- OnEvent ------------------------------
--------------------------------------------------------------------------
function OnEvent(event, arg)
OutputLogMessage("event = %s, arg = %d\n", event, arg)
if (event == "PROFILE_ACTIVATED") then
EnablePrimaryMouseButtonEvents(true)
elseif event == "PROFILE_DEACTIVATED" then
current_weapon = "none"
shoot_duration = 0.0
ReleaseKey(fire_key)
ReleaseMouseButton(1)
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == set_off_key) then
current_weapon = "none"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == akm_key) then
current_weapon = "akm"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == m16a4_key) then
current_weapon = "m16a4"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == m416_key) then
current_weapon = "m416"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == ump9_key) then
current_weapon = "ump9"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == uzi_key) then
current_weapon = "uzi"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == scarl_key) then
current_weapon = "scarl"
elseif (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
-- button 1 : Shoot
if ((current_weapon == "none") or IsModifierPressed(ignore_key)) then
PressKey(fire_key)
repeat
Sleep(30)
until not IsMouseButtonPressed(1)
ReleaseKey(fire_key)
else
local shoot_duration = 0.0
repeat
local intervals,recovery = recoil_value(current_weapon,shoot_duration)
PressAndReleaseKey(fire_key)
MoveMouseRelative(0, recovery )
Sleep(intervals)
shoot_duration = shoot_duration + intervals
until not IsMouseButtonPressed(1)
end
elseif (event == "MOUSE_BUTTON_RELEASED" and arg == 1) then
ReleaseKey(fire_key)
end
end