![[STANDALONE] Better Tricks & Wheelies main image](https://forum-cfx-re.akamaized.net/original/4X/3/0/4/30448a66022e03a8cabcd76113586a74e1de2090.gif)
Price
UnknownA script by Clementinise
Price
UnknownDive into the world of breathtaking aerial stunts, pull off smooth wheelies, and master stoppies like a pro. But that’s not all - you can also emote while doing wheelies with ease and style! It’s all about enhancing your in-game skills and providing more ways to show off in the server!!
KC-Bettertricks is a standalone script that gives new ways for your players to express themselves on bikes. Wheelies/Stoppies/Emotes/Stunts, everything you ever wanted for bikers into one script and working with every bikes!
The script is highly configurable; check out the full config file:
Config = Config or {}
Config.Eject = true -- This value determines whether the player will be ejected if they land while doing a trick or not (The default value is true)
Config.InstantAnimStop = true -- This value determines whether the anim should instantly stopped, otherwise it will just go back to the sitting position gradually (The default value is true)
Config.TackledRagdollTime = 5
Config.InversedControl = true -- true (Inverse) is the default mode, more controllable at lower speeds. false (Normal) is a new mode, easier for high-speed wheelies
Config.MaxPitch = 70 -- This value determines how much the player can pitch in a wheelie, set this to 0 to disable it (The default value is 70)
Config.SpecificVehicle = false -- If set to true, you will be able to do tricks only on some specific bikes from the 'Config.StuntVehicles' & 'Config.GroundVehicles' list
Config.StuntVehicles = { -- You can found them here under "Model Name(s)" in the "Miscellaneous Information" tab: https://gta.fandom.com/wiki/Category:Motorcycles
"ENDURO",
"MANCHEZ",
"SANCHEZ1",
"SANCHEZ2"
}
Config.GroundVehicles = { -- You can found them here under "Model Name(s)" in the "Miscellaneous Information" tab: https://gta.fandom.com/wiki/Category:Motorcycles
"ESSKEY",
"BATI",
"DOUBLE"
}
-- Tricks Key Config
Config.TricksOrganizeCommand = 'tricksorganize' -- If you ever feel the need to change the command, here's the option for it
Config.TricksToggleCommand = 'trickstoggle' -- If you ever feel the need to change the command, here's the option for it
Config.TricksControlCommand = 'trickscontrol' -- If you ever feel the need to change the command, here's the option for it
Config.KeybindTable = {
Tricks = {
CommandTitle = 'Tricks',
CommandName = 'tricks',
Inputs = {
Controller = {
CommandAlias = 'controller',
CommandInputMapper = 'PAD_DIGITALBUTTON',
CommandInputParameter = 'R1_INDEX'
},
MouseAndKeyboard = {
CommandAlias = 'keyboard',
CommandInputMapper = 'KEYBOARD',
CommandInputParameter = 'SPACE'
}
}
},
GroundEmotes = {
CommandTitle = 'Ground Emotes',
CommandName = 'groundemotes',
Inputs = {
--[[ Controller = { -- I haven't yet found a good way to do it on controller, but maybe one day who knows.
CommandAlias = 'controller',
CommandInputMapper = 'PAD_DIGITALBUTTON',
CommandInputParameter = 'R3_INDEX'
}, ]]
MouseAndKeyboard = {
CommandAlias = 'keyboard',
CommandInputMapper = 'MOUSE_BUTTON',
CommandInputParameter = 'MOUSE_LEFT'
}
}
}
}
Config.StoppieOptions = {
AllowTurning = true, -- Enable/disable turning/leaning during stoppie
Allow90Jump = true -- Enable/disable the 90-degree jump recovery (AllowTurning needs to be true if you want this to work!!)
}
Config.Stunts = {
['Nac-Nac (L)'] = {
animDict = 'rcmextreme2atv',
animName = 'idle_b',
Start = 0.28,
Loop = 0.50,
Bone = 51826,
Bone2 = 52301,
flag = 32,
StickToHandlebar = true,
type = 'ga'
},
['Nac-Nac (R)'] = {
animDict = 'rcmextreme2atv',
animName = 'idle_c',
Start = 0.15,
Loop = 0.46,
Bone = 58271,
Bone2 = 14201,
flag = 32,
StickToHandlebar = true,
type = 'ga'
},
['Side (L)'] = {
animDict = 'rcmextreme2atv',
animName = 'idle_d',
Start = 0.47,
Loop = 0.61,
Bone = 0,
Bone2 = 14201,
flag = 32,
StickToHandlebar = true,
type = 'ga'
},
['Side (R)'] = {
animDict = 'rcmextreme2atv',
animName = 'idle_d',
Start = 0.18,
Loop = 0.34,
Bone = 31086,
Bone2 = 14201,
flag = 32,
StickToHandlebar = true,
type = 'ga'
},
['Heel Clicker'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_heelclicker',
flag = 32,
StickToHandlebar = true,
type = 'ga'
},
['Slyger 1 (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_slyger_1',
flag = 34,
StickToHandlebar = true,
type = 'ga'
},
['Slyger 1 (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_slyger_1_r',
flag = 34,
StickToHandlebar = true,
type = 'ga'
},
['Footrest'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_footrest',
flag = 34,
StickToHandlebar = true,
type = 'ga'
},
['Slyger 2 (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_slyger_2',
flag = 34,
StickToHandlebar = true,
type = 'g'
},
['Slyger 2 (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_slyger_2_r',
flag = 34,
StickToHandlebar = true,
type = 'g'
},
['Timotei'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_timotei',
flag = 34,
StickToHandlebar = true,
type = 'g'
},
['Clap Back'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_clapback',
flag = 32,
StickToHandlebar = false,
type = 'g'
},
['Feet Handle'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_feet_handlebar',
flag = 34,
StickToHandlebar = true,
type = 'g'
},
['Superman'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_superman',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Superman Double Grab'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_superman_double',
Start = 0.0,
Loop = 0.56,
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Holy Grab'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_holy_grab',
flag = 34,
StickToHandlebar = false,
type = 'a'
},
['Oxecutionner (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_oxecutionner',
flag = 34,
StickToHandlebar = false,
type = 'a'
},
['Oxecutionner (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_oxecutionner_r',
flag = 34,
StickToHandlebar = false,
type = 'a'
},
['On Top'] = {
animDict = 'rcmextreme2atv',
animName = 'idle_e',
Start = 0.15,
Loop = 0.47,
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Lay Back'] = {
animDict = 'rcmextreme2atv',
animName = 'idle_a',
Start = 0.16,
Loop = 0.80,
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['90 Clock (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_90',
flag = 32,
StickToHandlebar = true,
type = 'a'
},
['90 Clock (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_90_r',
flag = 32,
StickToHandlebar = true,
type = 'a'
},
['Disco Can (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_discocan',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Disco Can (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_discocan_r',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Dead Body'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_deadbody',
flag = 32,
StickToHandlebar = true,
type = 'a'
},
['McMetz'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_mcmetz',
flag = 32,
StickToHandlebar = true,
type = 'a'
},
['Rock Solid'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_rocksolid',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Rodeo (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_rodeo',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Rodeo (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_rodeo_r',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Superman Seat Grab (L)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_superman_seat_grab',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Superman Seat Grab (R)'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_superman_seat_grab_r',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Light Taunt'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_light_taunt',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Heavy Taunt'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_heavy_taunt',
flag = 32,
StickToHandlebar = false,
type = 'a'
},
['Bar Hop'] = {
animDict = 'veh@bike@tricks',
animName = 'tricks_barhop',
flag = 32,
StickToHandlebar = true,
type = 'a'
},
--- You can add your own tricks under this
['Celebrate'] = {
animDict = 'mini@racing@bike@',
animName = 'celebrate_c',
flag = 33,
StickToHandlebar = true,
type = 'g'
},
['Finger'] = {
animDict = 'anim@mp_player_intcelebrationmale@finger',
animName = 'finger',
flag = 48,
StickToHandlebar = false,
type = 'g'
}
}
Config.KeyDirection = {
['up'] = {
['left'] = 'Light Taunt',
['right'] = 'Heavy Taunt',
['down'] = 'Lay Back'
},
['left'] = {
['right'] = 'Nac-Nac (R)',
['up'] = 'Superman',
['down'] = 'Superman Double Grab'
},
['right'] = {
['left'] = 'Nac-Nac (L)',
['up'] = 'Holy Grab',
['down'] = 'Bar Hop'
},
['down'] = {
['right'] = 'Side (R)',
['left'] = 'Side (L)',
['up'] = 'On Top'
}
}
Config.RadialMenu = {
style = { -- Wheel style settings
sizePx = 360, -- Wheel size in pixels
slices = { -- Slice style settings
default = { ['fill'] = '#2c3e50', ['stroke'] = 'none', ['stroke-width'] = 0, ['opacity'] = 0.60 },
hover = { ['fill'] = '#16a085', ['stroke'] = 'none', ['stroke-width'] = 0, ['opacity'] = 0.80 },
selected = { ['fill'] = '#16a085', ['stroke'] = 'none', ['stroke-width'] = 0, ['opacity'] = 0.80 }
},
titles = { -- Text style settings
default = { ['fill'] = '#ecf0f1', ['stroke'] = 'none', ['font'] = 'Helvetica', ['font-size'] = 16, ['font-weight'] = 'bold' },
hover = { ['fill'] = '#ecf0f1', ['stroke'] = 'none', ['font'] = 'Helvetica', ['font-size'] = 16, ['font-weight'] = 'bold' },
selected = { ['fill'] = '#ecf0f1', ['stroke'] = 'none', ['font'] = 'Helvetica', ['font-size'] = 16, ['font-weight'] = 'bold' }
},
icons = {
width = 64,
height = 64
}
},
wheel = {
navAngle = 270, -- Orientation of wheel
minRadiusPercent = 0.3, -- Minimum radius of wheel in percentage
maxRadiusPercent = 0.9, -- Maximum radius of wheel in percentage
}
}
-- Debug
Config.Debug = false -- If you think something is not working properly, you can set 'Config.Debug' to true. It will then print debug information in your console
-- Misc
Config.Language = 'en' -- Currently Available: fr, en
Config.UpdateChecker = false -- Set to false if you don't want to check for resource update on start (No need to change this if you're using fivem-checker)
Config.ChangeLog = false -- Set to false if you don't want to display the changelog if new version is find (No need to change this if you're using fivem-checker)
-- Custom condition
---This function is called right after pressing the keybind
---@param StuntType string 'Ground' or 'Air'
---@return boolean
function CanDoStunts(StuntType)
return true -- Example: "return GetSelectedPedWeapon(PlayerPedId()) == GetHashKey('weapon_unarmed')" or "return QBCore.Functions.GetPlayerData().job.name == 'stuntman'"
end
---Use the default notification system (Using the chat) or use your own!
---@param message string
---@param type integer
function CommandNotification(message, type) -- type: 0 refer to nothing special, 1 could refer to "success", 2 could refer to "error", 3 could refer to "in progress"
local header = true -- You can remove the chat message header
local Colors = {
[0] = { 255, 255, 255 },
[1] = { 0, 255, 0 },
[2] = { 255, 0, 0 },
[3] = { 255, 180, 0 }
}
SendChatMessage(message, Colors[type], header)
end
Heel Clicker
Footrest
Slyger 1 (L)
Slyger 1 (R)
Slyger 2 (L)
Slyger 2 (R)
Timotei
Clap Back
Feet Handle
Superman
Superman Double Grab
Holy Grab
Oxecutionner (L)
Oxecutionner (R)
On Top
Lay Back
90 Clock (L)
90 Clock (R)
Disco Can (L)
Disco Can (R)
Dead Body
McMetz
Rock Solid
Rodeo (L)
Rodeo (R)
Superman Seat Grab (L)
Superman Seat Grab (R)
Light Taunt
Heavy Taunt
Bar Hop
Screenshots coming soon
Get Better Tricks & Wheelies at 24.00USD on Tebex.
[STANDALONE] Pick It Back
[STANDALONE] Sit Anywhere
[STANDALONE] Parkour Abilities
Feel free to share your suggestions and have fun!
Code is accessible | No, only Config file |
Subscription-based | No |
Lines (approximately) | 1200 |
Requirements | None |
Support | Yes |
No approved reviews found for this script yet.