[STANDALONE] Parkour Abilities

kc-parkour

Parkour Abilities - Experience the Art of Parkour :pray:

Transform your GTA 5 experience with a sweet add to the standard character movements. Experience a traversal overhaul with dynamic actions such as wall climbing, quick obstacle vaulting, sliding, and ledge mobility, bringing a fresh breeze of thrill to your server!

KC-Parkour is a standalone script that initiates dynamic parkour movements, functioning in real time without any pre-configuration hassles.

Features

  • Dynamic and real-time parkour movements: Slide, Wall Climb, Ledge Moves, Quick Vault, and more
  • No need to pre-configure; everything works dynamically as in a real parkour game
  • 19 new movements (A total of 30+ animations, 10 animations that has right and left version)
  • You can use your own conditions to be able to do those new moves (Job, Item, etc)
  • Update checker with changelog if a new update is found directly in the console on resource start, except if fivem-checker is installed and running on your server
  • Optimized as much as possible: 0.00ms (0.00%) on idle and 0.02ms after pressind the keybind (Max reached is 0.08ms)
  • Debug mode for troubleshooting any issues with the resource
  • Customizable localization and key mapping, along with even more options that you can see in the config file below
Config file

The script is highly configurable; check out the full config file:

Config                              = Config or {}

-- Blacklist
Config.BlacklistedProps = {
    ['prop_fnclink_05c'] = true,
    ['prop_fnclink_10a'] = true
}
-- You can blacklist props to avoid players doing parkour on them (Example: Spiked fences, prison wall)

-- Base
Config.HealthCheck                  = 8          -- How many health should be removed from the player for him to stop & ragdoll while doing a parkour move or grabbing onto a ledge? (The default value is 8)
Config.ForceRagdollTackled          = 12         -- How much force the player should be tackled with (The default value is 12)
Config.TimeRagdollTackled           = 2.0        -- How long will the player be ragdoll if he is been slide tackled (In seconds) (The default value is 2.0)
Config.TimeRagdollAll               = 2.5        -- How long will the player be ragdoll if the move is cancelled (In seconds) (The default value is 2.5)
Config.TimeRagdollSlide             = 1.4        -- How long will the player be ragdoll if the slide is cancelled (In seconds) (The default value is 1.8)
Config.ShouldRagdollSlide           = true       -- Should the player ragdoll when the slide is cancelled? (The default value is true)
Config.ShouldRagdollObstacle        = true       -- Should the player ragdoll when an obstacle is detected during a move? (The default value is false)
Config.TimeToParkour                = 0          -- Time after the button press to parkour in seconds, if set to 0 the script will try to parkour until the player press the parkour button again (The default value is 0)

-- Sit Key Config
Config.CommandTitle                 = 'Initiate Parkour'    -- Key title in GTA 5 control settings
Config.CommandInputMapper           = 'MOUSE_BUTTON'        -- Input Mapper (https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/)
Config.CommandInputParameter        = 'MOUSE_EXTRABTN3'     -- Input Parameter (https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/)
Config.CommandName        		    = 'parkour'           -- If you ever feel the need to change the command name, here's the option for it

-- Sync
Config.SendToAllPlayers             = false      -- Should the event be sent to all players or only 'active' physical players known to the client? (I recommend setting this to false if you have a 30+ player server, but it may result in worse sync for far away players)

-- List
--- For each category they are sorted from slowest to fastest. This list allow you to able/disable certain moves.
Config.MoveList                     = {
    ['vault small'] = { -- (There will be more move coming soon don't worry)
        [1] = {         -- Safety Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [2] = {         -- Monkey Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [3] = {         -- Thief Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [4] = {         -- Revers Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [5] = {         -- Jump Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [6] = {         -- Speed Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['vault medium'] = { -- (There will be more move coming soon don't worry)
        [1] =  {        -- Slide Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [2] =  {        -- Kash Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [3] =  {        -- Roll Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['vault long'] = {
        [1] =  {        -- Kong Double Vault
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['vault ledge'] = {
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['vault over'] = { -- (There will be more move coming soon don't worry)
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['wall small'] = { -- SET THEM BOTH TO THE SAME VALUE!!! EITHER 'true' OR 'false'!! (There will be more move coming soon don't worry)
        [1] =  {
            ["enabled"] = true,     -- SET THEM BOTH TO THE SAME VALUE!!!
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
        [2] =  {
            ["enabled"] = true,     -- SET THEM BOTH TO THE SAME VALUE!!!
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['wall medium'] = {
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['wall long'] = {
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['ledge up'] = { -- (There will be more move coming soon don't worry)
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['ledge move'] = { -- (There will be more move coming soon don't worry)
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
    ['slide'] = {
        [1] =  {
            ["enabled"] = true,
            ["cost"]    = 1,
            ["reward"]  = 1,
        },
    },
}

-- Parameters
Config.MediumWallValue              = 2.7   	-- Height to consider using 'wall medium'
Config.HighWallValue                = 4.0   	-- Height to consider using 'wall long'
-- I would advise to not change anything in this category, I've still left those options if anyone really need to modify such things.

-- Detection
Config.DetectWorld                  = true  -- This value determines whether the system should detect obstacles in the world (The default value is true)
Config.DetectProps                  = true  -- This value determines whether the system should detect obstacles on props (The default value is true)
Config.DetectVehicles               = false -- This value determines whether the system should detect obstacles on vehicles (The default value is false)
-- I would advise to not change anything in this category, I've still left those options if anyone really need to modify such things. Be aware of DetectVehicles, it doesn't work for every vehicles, thats why it's false by default!

-- 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
Config.DebugSpeed                   = 1.0       -- Slow down parkour (Only client-side, I would advise to not change it)

-- 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 parkour move key
---@return boolean
function CanDoParkour()
    return true -- Example: "return GetSelectedPedWeapon(PlayerPedId()) == GetHashKey('weapon_unarmed')" or "return QBCore.Functions.GetPlayerData().job.name ~= 'police'"
end

---This function is called just before initating the parkour move
---@param name string
---@param number number
---@return boolean
function CanBeginParkour(name, number)
    return true -- Example: "return GetSelectedPedWeapon(PlayerPedId()) == GetHashKey('weapon_unarmed')" or "return QBCore.Functions.GetPlayerData().job.name ~= 'police'"
end

---This function is called right on the parkour move start
---@param name string
---@param number number
function ParkourBegin(name, number)
    -- Example:
    -- "SetCurrentPedWeapon(PlayerPedId(), GetHashKey('weapon_unarmed'), true)" - Once the move start, it will set the ped weapon to 'weapon_unarmed'
end

---This function is called right after the parkour move end
---@param name string
---@param number number
function ParkourEnd(name, number)
    -- Example:
    -- Could be used to give xp depending on "reward" from the MoveList (Config.MoveList[name][number]["reward"])
end

---Custom notification
---@param message string
---@param type number       0 refer to nothing special, 1 could refer to "success", 2 could refer to "error", 3 could refer to "in progress"
function ParkourNotification(message, type)
    local ShouldBeep = {
        [0] = false,
        [1] = true,
        [2] = true,
        [3] = false
    }

    DrawText2D(message, ShouldBeep[type])
end

Videos & Screenshots

Showcase:

Youtube video (if the above won’t load)

How-To:

Youtube video (if the above won’t load)

Screenshots coming soon

To-Do

  • Tic-Tacs, WallRun, more ledge moves
  • Skill system (Will work with any already existing skill script like mz-skills, qw-skills, etc without being a requirements. More news on that soon!)
  • Per moves requirements Done!

Purchase on Tebex

Get Parkour Abilities at 26.00 USD on Tebex.


My other scripts

[STANDALONE] Pick It Back
[STANDALONE] Sit Anywhere
[STANDALONE] Better Tricks & Wheelies

Feel free to share your suggestions and have fun with those new moves! :cowboy_hat_face:

Code is accessible No, only Config file
Subscription-based No
Lines (approximately) 1400
Requirements None
Support Yes
13 Likes

@Clementinise Could you add to your script a whitelist of players who can use it?
For example, my server has a skill table, “players who exceed x strength” who can do it

Hi ! Can i activate directly for all players, without command ?

You can create or use your own whitelist by modifying the CanDoParkour in the config file :+1:

Please watch the How-To video to better understand how the script works. It does not replace the original movements of GTA 5, but adds more via script so a command is needed :sweat_smile:

1 Like

Thank you very much for your answer, your script looks very good. Great job

AMAZING work!!! :heart_eyes:

1 Like

This Is Awesome!

1 Like

Having fail animations for parkour in RP servers would be a valuable addition. For instance, if a character’s weight surpasses a certain limit, they could experience a failure while attempting parkour.

3 Likes

This is a very interesting idea! I will see what I can do about this :ok_hand:

Excellent Work! Game-Changer! :fire:

1 Like

This is dope.

Is there a way already within the script to tie this to stamina?

1 Like

You can edit the CanDoParkour function in the config file to add stamina as a requirement, you will need a bit of coding knowledge of course! I’m planning on making docs with various examples so stay tuned :smirk:

sick!, awesome job.

1 Like

This really is a game changer in FiveM roleplay!
Been using the script for a few hours now, and it is so satisfying!
Great job! :heart_eyes:

Absolute game changer, been using it for a couple of hours now and my community is hyped as hell over it haha. Excited to see what’s planned for the future of the script.

1 Like

Commenting to keep an eye on it. Would love a stamina requirement or to see it paired with the skill system for the fails someone mentioned.

Is the code opened or is there an open source version for those that want to do it themselves?

Code is escrow sadly.

Review so far: Script is sick i cant lie, some bugs here and there with mlo’s (probably expected) due to collisions etc but at the moment i have to disable the script as it causes the local ai to spawn in mlo’s where people are etc so it likely has some form of bug somewhere.

Was spectating a pd chase and as it was heading to a heavily populated area the script shit it’s self and thrown loads of warnings (GetNetworkObject) which lagged not only me but others in the vicinity, quickly disabled it and the issue both with the warning and locals cleared up.

Would 100% recommend this script once it’s got some of the bugs ironed out.

I get escrow, i understand why creators use it but this is also part of the down side to it as we would more than likely have the issue resolved by now.

Thank you for the thorough insight. And yeah totally understand the escrow. I will continue to watch the script for improvements. I appreciate you.

I RECIEVED THE SAME ISSUES WITH THE VEHICLES SPAWNING ALONG WITH PROPS