├── walkingstyles.json ├── .gitattributes ├── fxmanifest.lua ├── README.md ├── server.lua ├── config.lua └── client.lua /walkingstyles.json: -------------------------------------------------------------------------------- 1 | [{"identifier":"XUR68312","anim":"move_m@brave"}] -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /fxmanifest.lua: -------------------------------------------------------------------------------- 1 | fx_version "cerulean" 2 | games {"gta5"} 3 | 4 | lua54 'yes' 5 | 6 | client_scripts { 7 | 'client.lua', 8 | 'config.lua', 9 | } 10 | 11 | server_scripts { 12 | 'server.lua' 13 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # qb-walkingstyles 2 | 3 | # Original Repo 4 | ```https://github.com/ASSYNU/fivem-walking-styles``` 5 | 6 | # Edited by Nathan#8860 7 | 8 | # Optional qb-spawn | It grabs the last saved walking style | MonkeyWhisper 9 | 10 | Add this to **every** elseif type on 11 | ```RegisterNUICallback('spawnplayer', function(data)``` 12 | 13 | ```TriggerServerEvent('qb-walkstyles:server:walkstyles', 'get')``` 14 | Should look like so 15 | 16 | ![image](https://user-images.githubusercontent.com/82112471/146123426-ad7ba57c-fe5e-487f-a33f-ee0f844a8602.png) 17 | 18 | # Dependancies 19 | [qb-menu] - ```https://github.com/qbcore-framework/qb-menu``` 20 | 21 | # COMMAND 22 | ```/walking-style``` opens menu to change current walking style 23 | 24 | # Information 25 | Fivem walking styles which are constant. They are saved in JSON, so even after relogging and server restarts you will have same walking style and it does not burden the database unnecessarily! 26 | 27 | Saves walking styles to a json file via QBCore Citizen ID 28 | -------------------------------------------------------------------------------- /server.lua: -------------------------------------------------------------------------------- 1 | QBCore = exports['qb-core']:GetCoreObject() 2 | 3 | RegisterNetEvent('qb-walkstyles:server:walkstyles', function(x, anim) 4 | 5 | local loadFile = LoadResourceFile(GetCurrentResourceName(), "./walkingstyles.json") 6 | local _source = source 7 | local walking = {} 8 | local newwalk = {} 9 | local xPlayer = QBCore.Functions.GetPlayer(_source) 10 | local found = false 11 | local license = QBCore.Functions.GetIdentifier(_source, 'license') 12 | local cid = xPlayer.PlayerData.citizenid 13 | 14 | walking = json.decode(loadFile) 15 | 16 | if x == 'get' then 17 | if walking ~= nil then 18 | for k,v in pairs(walking) do 19 | if v.identifier == cid then 20 | TriggerClientEvent('qb-walkstyles:client:walkstyles', _source, v.anim) 21 | found = true 22 | end 23 | end 24 | if not found then 25 | TriggerClientEvent('qb-walkstyles:client:walkstyles', _source, 'default') 26 | end 27 | end 28 | 29 | elseif x == 'update' then 30 | 31 | if walking ~= nil then 32 | for k,v in pairs(walking) do 33 | if v.identifier == cid then 34 | else 35 | table.insert(newwalk, v) 36 | end 37 | end 38 | end 39 | 40 | if anim ~= 'default' then 41 | local newstyle = {identifier = cid, anim = anim} 42 | table.insert(newwalk, newstyle) 43 | end 44 | 45 | SaveResourceFile(GetCurrentResourceName(), "walkingstyles.json", json.encode(newwalk), -1) 46 | 47 | end 48 | end) -------------------------------------------------------------------------------- /config.lua: -------------------------------------------------------------------------------- 1 | Config = {} 2 | Config.Styles = { 3 | ["1"] = { 4 | label = 'Arrogant', 5 | value = 'move_f@arrogant@a' 6 | }, 7 | ["2"] = { 8 | label = 'Casual', 9 | value = 'move_m@casual@a' 10 | }, 11 | ["3"] = { 12 | label = 'Casual 2', 13 | value = 'move_m@casual@b' 14 | }, 15 | ["4"] = { 16 | label = 'Casual 3', 17 | value = 'move_m@casual@c' 18 | }, 19 | ["5"] = { 20 | label = 'Casual 4', 21 | value = 'move_m@casual@d' 22 | }, 23 | ["6"] = { 24 | label = 'Casual 5', 25 | value = 'move_m@casual@e' 26 | }, 27 | ["7"] = { 28 | label = 'Casual 6', 29 | value = 'move_m@casual@f' 30 | }, 31 | ["8"] = { 32 | label = 'Confident', 33 | value = 'move_m@confident' 34 | }, 35 | ["9"] = { 36 | label = 'Business', 37 | value = 'move_m@business@a' 38 | }, 39 | ["10"] = { 40 | label = 'Business 2', 41 | value = 'move_m@business@b' 42 | }, 43 | ["11"] = { 44 | label = 'Business 3', 45 | value = 'move_m@business@c' 46 | }, 47 | ["12"] = { 48 | label = 'Femme', 49 | value = 'move_f@femme@' 50 | }, 51 | ["13"] = { 52 | label = 'Flee', 53 | value = 'move_f@flee@a' 54 | }, 55 | ["14"] = { 56 | label = 'Gangster', 57 | value = 'move_m@gangster@generic' 58 | }, 59 | ["15"] = { 60 | label = 'Gangster 2', 61 | value = 'move_m@gangster@ng' 62 | }, 63 | ["16"] = { 64 | label = 'Gangster 3', 65 | value = 'move_m@gangster@var_e' 66 | }, 67 | ["17"] = { 68 | label = 'Gangster 4', 69 | value = 'move_m@gangster@var_f' 70 | }, 71 | ["18"] = { 72 | label = 'Gangster 5', 73 | value = 'move_m@gangster@var_i' 74 | }, 75 | ["19"] = { 76 | label = 'Heels', 77 | value = 'move_f@heels@c' 78 | }, 79 | ["20"] = { 80 | label = 'Heels 2', 81 | value = 'move_f@heels@d' 82 | }, 83 | ["21"] = { 84 | label = 'Hiking', 85 | value = 'move_m@hiking' 86 | }, 87 | ["22"] = { 88 | label = 'Muscle', 89 | value = 'move_m@muscle@a' 90 | }, 91 | ["23"] = { 92 | label = 'Quick', 93 | value = 'move_m@quick' 94 | }, 95 | ["24"] = { 96 | label = 'Wide', 97 | value = 'move_m@bag' 98 | }, 99 | ["25"] = { 100 | label = 'Scared', 101 | value = 'move_f@scared' 102 | }, 103 | ["26"] = { 104 | label = 'Brave', 105 | value = 'move_m@brave' 106 | }, 107 | ["27"] = { 108 | label = 'Tipsy', 109 | value = 'move_m@drunk@slightlydrunk' 110 | }, 111 | ["28"] = { 112 | label = 'Injured', 113 | value = 'move_m@injured' 114 | }, 115 | ["29"] = { 116 | label = 'Tough', 117 | value = 'move_m@tough_guy@' 118 | }, 119 | ["30"] = { 120 | label = 'Sassy', 121 | value = 'move_m@sassy' 122 | }, 123 | ["31"] = { 124 | label = 'Sad', 125 | value = 'move_m@sad@a' 126 | }, 127 | ["32"] = { 128 | label = 'Posh', 129 | value = 'move_m@posh@' 130 | }, 131 | ["33"] = { 132 | label = 'Alien', 133 | value = 'move_m@alien' 134 | }, 135 | ["34"] = { 136 | label = 'Nonchalant', 137 | value = 'move_m@non_chalant' 138 | }, 139 | ["35"] = { 140 | label = 'Hobo', 141 | value = 'move_m@hobo@a' 142 | }, 143 | ["36"] = { 144 | label = 'Money', 145 | value = 'move_m@money' 146 | }, 147 | ["37"] = { 148 | label = 'Swagger', 149 | value = 'move_m@swagger' 150 | }, 151 | ["38"] = { 152 | label = 'Shady', 153 | value = 'move_m@shadyped@a' 154 | }, 155 | ["39"] = { 156 | label = 'Man Eater', 157 | value = 'move_f@maneater' 158 | }, 159 | ["40"] = { 160 | label = 'ChiChi', 161 | value = 'move_f@chichi' 162 | }, 163 | ["41"] = { 164 | label = 'Default', 165 | value = 'default' 166 | }, 167 | } -------------------------------------------------------------------------------- /client.lua: -------------------------------------------------------------------------------- 1 | QBCore = exports['qb-core']:GetCoreObject() 2 | 3 | local PlayerData = {} 4 | local currentwalkingstyle = 'default' 5 | 6 | RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function(playerData) 7 | PlayerData = QBCore.Functions.GetPlayerData() 8 | TriggerServerEvent('qb-walkstyles:server:walkstyles', 'get') 9 | end) 10 | 11 | RegisterNetEvent('qb-walkstyles:openmenu', function() 12 | OpenWalkMenu() 13 | end) 14 | 15 | -- // Walkstyle Events \\ -- 16 | RegisterNetEvent('qb-walkstyles:arrogant', function() 17 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@arrogant@a') 18 | end) 19 | RegisterNetEvent('qb-walkstyles:casual', function() 20 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@casual@a') 21 | end) 22 | RegisterNetEvent('qb-walkstyles:casual2', function() 23 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@casual@b') 24 | end) 25 | RegisterNetEvent('qb-walkstyles:casual3', function() 26 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@casual@c') 27 | end) 28 | RegisterNetEvent('qb-walkstyles:casual4', function() 29 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@casual@d') 30 | end) 31 | RegisterNetEvent('qb-walkstyles:casual5', function() 32 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@casual@e') 33 | end) 34 | RegisterNetEvent('qb-walkstyles:casual6', function() 35 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@casual@f') 36 | end) 37 | RegisterNetEvent('qb-walkstyles:confident', function() 38 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@confident') 39 | end) 40 | RegisterNetEvent('qb-walkstyles:business', function() 41 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@business@a') 42 | end) 43 | RegisterNetEvent('qb-walkstyles:business2', function() 44 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@business@b') 45 | end) 46 | RegisterNetEvent('qb-walkstyles:business3', function() 47 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@business@c') 48 | end) 49 | RegisterNetEvent('qb-walkstyles:femme', function() 50 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@femme@') 51 | end) 52 | RegisterNetEvent('qb-walkstyles:flee', function() 53 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@flee@a') 54 | end) 55 | RegisterNetEvent('qb-walkstyles:gangster', function() 56 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@gangster@generic') 57 | end) 58 | RegisterNetEvent('qb-walkstyles:gangster2', function() 59 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@gangster@ng') 60 | end) 61 | RegisterNetEvent('qb-walkstyles:gangster3', function() 62 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@gangster@var_e') 63 | end) 64 | RegisterNetEvent('qb-walkstyles:gangster4', function() 65 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@gangster@var_f') 66 | end) 67 | RegisterNetEvent('qb-walkstyles:gangster5', function() 68 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@gangster@var_i') 69 | end) 70 | RegisterNetEvent('qb-walkstyles:heels', function() 71 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@heels@c') 72 | end) 73 | RegisterNetEvent('qb-walkstyles:heels2', function() 74 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@heels@d') 75 | end) 76 | RegisterNetEvent('qb-walkstyles:hiking', function() 77 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@hiking') 78 | end) 79 | RegisterNetEvent('qb-walkstyles:muscle', function() 80 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@muscle@a') 81 | end) 82 | RegisterNetEvent('qb-walkstyles:quick', function() 83 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@quick') 84 | end) 85 | RegisterNetEvent('qb-walkstyles:wide', function() 86 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@bag') 87 | end) 88 | RegisterNetEvent('qb-walkstyles:scared', function() 89 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@scared') 90 | end) 91 | RegisterNetEvent('qb-walkstyles:brave', function() 92 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@brave') 93 | end) 94 | RegisterNetEvent('qb-walkstyles:tipsy', function() 95 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@drunk@slightlydrunk') 96 | end) 97 | RegisterNetEvent('qb-walkstyles:injured', function() 98 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@injured') 99 | end) 100 | RegisterNetEvent('qb-walkstyles:tough', function() 101 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@tough_guy@') 102 | end) 103 | RegisterNetEvent('qb-walkstyles:sassy', function() 104 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@sassy') 105 | end) 106 | RegisterNetEvent('qb-walkstyles:sad', function() 107 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@sad@a') 108 | end) 109 | RegisterNetEvent('qb-walkstyles:posh', function() 110 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@posh@') 111 | end) 112 | RegisterNetEvent('qb-walkstyles:alien', function() 113 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@alien') 114 | end) 115 | RegisterNetEvent('qb-walkstyles:nonchalant', function() 116 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@non_chalant') 117 | end) 118 | RegisterNetEvent('qb-walkstyles:hobo', function() 119 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@hobo@a') 120 | end) 121 | RegisterNetEvent('qb-walkstyles:money', function() 122 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@money') 123 | end) 124 | RegisterNetEvent('qb-walkstyles:swagger', function() 125 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@swagger') 126 | end) 127 | RegisterNetEvent('qb-walkstyles:shady', function() 128 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_m@shadyped@a') 129 | end) 130 | RegisterNetEvent('qb-walkstyles:maneater', function() 131 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@maneater') 132 | end) 133 | RegisterNetEvent('qb-walkstyles:chichi', function() 134 | TriggerEvent("qb-walkstyles:setwalkstyle", 'move_f@chichi') 135 | end) 136 | RegisterNetEvent('qb-walkstyles:default', function() 137 | TriggerEvent("qb-walkstyles:setwalkstyle", 'default') 138 | end) 139 | -- // Walkstyle Events \\ -- 140 | 141 | RegisterCommand('walking-style', function() 142 | OpenWalkMenu() 143 | end) 144 | 145 | RegisterCommand('fetch-style', function() 146 | TriggerServerEvent('qb-walkstyles:server:walkstyles', 'get') 147 | end) 148 | 149 | function OpenWalkMenu() 150 | local MenuOptions = { 151 | { 152 | header = "QB Walkstyles", 153 | isMenuHeader = true 154 | }, 155 | } 156 | for k, v in pairs(Config.Styles) do 157 | 158 | 159 | MenuOptions[#MenuOptions+1] = { 160 | header = ""..v.label.."", 161 | txt = "Choose", 162 | params = { 163 | event = "qb-walkstyles:setwalkstyle", 164 | args = v.value, 165 | } 166 | } 167 | end 168 | 169 | MenuOptions[#MenuOptions+1] = { 170 | header = "⬅ Close Menu", 171 | txt = "", 172 | params = { 173 | event = "qb-menu:closeMenu", 174 | } 175 | } 176 | exports['qb-menu']:openMenu(MenuOptions) 177 | end 178 | 179 | RegisterNetEvent('qb-walkstyles:setwalkstyle', function(anim) 180 | currentwalkingstyle = anim 181 | setwalkstyle(anim) 182 | TriggerServerEvent('qb-walkstyles:server:walkstyles', 'update', anim) 183 | end) 184 | 185 | function setwalkstyle(anim) 186 | local playerped = PlayerPedId() 187 | 188 | if anim == 'default' then 189 | ResetPedMovementClipset(playerped) 190 | ResetPedWeaponMovementClipset(playerped) 191 | ResetPedStrafeClipset(playerped) 192 | else 193 | RequestAnimSet(anim) 194 | while not HasAnimSetLoaded(anim) do Citizen.Wait(0) end 195 | SetPedMovementClipset(playerped, anim) 196 | ResetPedWeaponMovementClipset(playerped) 197 | ResetPedStrafeClipset(playerped) 198 | end 199 | end 200 | 201 | RegisterNetEvent('qb-walkstyles:client:walkstyles', function(walkstyle) 202 | setwalkstyle(walkstyle) 203 | currentwalkingstyle = walkstyle 204 | end) 205 | --------------------------------------------------------------------------------