-- UPDATE SOON Shared.ItemCarry = { ["dh_hr_tv"] = { prop = "ex_prop_ex_tv_flat_01", offset = vec3(0.0855, 0.31115, 0.248), rotation = vec3(-72.999999999999, -78.200000000001, -9.8899999999999), anim = "1" }, ["dh_hr_table"] = { prop = "prop_t_coffe_table_02", offset = vec3(0.492, 0.127, -0.182), rotation = vec3(-132.6, 106.0, 2.3999999999983), anim = "1" }, ["dh_hr_champagne"] = { prop = "h4_prop_battle_champ_closed", offset = vec3(0.115, -0.01, 0.2275), rotation = vec3(13.5, 18.0, 0.0), anim = "1" }, ["dh_hr_dress"] = { prop = "prop_dress_disp_02", offset = vec3(0.0725, 0.0525, 0.27), rotation = vec3(0.0, 0.0, 0.0), anim = "1" }, ["dh_hr_teddy_bear"] = { prop = "v_club_vu_bear", offset = vec3(-0.0865, -0.265, 0.237), rotation = vec3(-58.9, 112.5, -13.800000000002), anim = "1" }, ["dh_hr_iron_2"] = { prop = "v_ret_fh_ironbrd", offset = vec3(0.0825, 0.02, 0.045), rotation = vec3(-10.5, 11.0, 180.0), anim = "1" }, ["dh_hr_tiger"] = { prop = "sf_prop_sf_art_statue_tgr_01a", offset = vec3(0.01, -0.1025, -0.0175), rotation = vec3(-127.0, 180.0, -24.5), anim = "1" }, ["dh_hr_gold_cd"] = { prop = "sf_prop_sf_lp_plaque_01a", offset = vec3(0.11, 0.0145, 0.2175), rotation = vec3(-171.0, 11.0, 0.0), anim = "1" }, ["dh_hr_coffee"] = { prop = "prop_coffee_mac_02", offset = vec3(0.07, 0.1775, 0.275), rotation = vec3(11.5, -166.5, -180.0), anim = "1" }, ["dh_hr_mixer"] = { prop = "v_res_tre_mixer", offset = vec3(0.1, 0.055, 0.245), rotation = vec3(0.0, 22.0, 0.0), anim = "1" }, ["dh_hr_fan"] = { prop = "v_res_fh_towerfan", offset = vec3(0.1175, 0.0825, 0.1825), rotation = vec3(8.5, 16.0, 32.5), anim = "1" }, ["dh_hr_chopboard"] = { prop = "v_res_mchopboard", offset = vec3(0.165, 0.0825, 0.2575), rotation = vec3(-6.5, -72.0, 28.5), anim = "1" }, ["dh_hr_scales"] = { prop = "v_res_m_kscales", offset = vec3(0.165, -0.01, 0.155), rotation = vec3(-70.5, -5.0, 38.0), anim = "1" }, ["dh_hr_knife"] = { prop = "prop_knife_stand", offset = vec3(0.035, -0.1275, 0.075), rotation = vec3(-29.5, 15.5, 0.0), anim = "1" }, ["dh_hr_tiger_2"] = { prop = "sum_prop_ac_tigerrug_01a", offset = vec3(0.515, 0.165, 0.1125), rotation = vec3(-151.0, 105.0, 5.0), anim = "1" }, ["dh_hr_shoe_box"] = { prop = "v_res_fa_shoebox3", offset = vec3(0.0875, -0.06, 0.235), rotation = vec3(-66.5, -74.0, 0.0), anim = "1" }, ["dh_hr_laptop"] = { prop = "xm_prop_x17_laptop_mrsr", offset = vec3(0.2125, -0.015, 0.2075), rotation = vec3(-55.5, -67.5, 0.5), anim = "1" }, ["dh_hr_luggage"] = { prop = "prop_luggage_06a", offset = vec3(0.16, 0.0225, 0.3425), rotation = vec3(0.0, 98.0, 0.0), anim = "1" }, ["dh_hr_drone"] = { prop = "reh_prop_reh_drone_brk_02a", offset = vec3(0.295, 0.04, 0.1175), rotation = vec3(-70.0, -70.0, 0.0), anim = "1" }, ["dh_hr_shovel"] = { prop = "prop_tool_shovel3", offset = vec3(-0.4875, 0.02, -0.2375), rotation = vec3(6.7, 46.4, -1.4), anim = "1" }, ["dh_hr_desk_lamp"] = { prop = "xm3_prop_xm3_desklamp_01a", offset = vec3(0.0425, -0.0325, 0.0225), rotation = vec3(3.0, 9.8, 0.0), anim = "1" }, ["dh_hr_statue"] = { prop = "v_club_vu_statue", offset = vec3(0.0625, -0.04, 0.185), rotation = vec3(-65.0, 118.0, 14.5), anim = "1" }, ["dh_hr_shirt"] = { prop = "prop_cs_shirt_01", offset = vec3(0.0, 0.0, 0.2525), rotation = vec3(3.0, -74.0, -5.0), anim = "1" }, ["dh_hr_umbrella"] = { prop = "v_res_fa_umbrella", offset = vec3(-0.0025, -6.0715321659188e-18, -0.195), rotation = vec3(2.0, 18.0, 42.0), anim = "1" }, ["dh_hr_bong"] = { prop = "xm3_prop_xm3_bong_01a", offset = vec3(0.115, 0.02, 0.015), rotation = vec3(18.5, 0.0, 63.5), anim = "1" }, ["dh_hr_clock"] = { prop = "sf_prop_sf_game_clock_01a", offset = vec3(0.15, -0.02, 0.2125), rotation = vec3(180.0, 134.5, 7.5), anim = "1" }, ["dh_hr_statue_2"] = { prop = "sf_prop_sf_art_trophy_cp_01a", offset = vec3(-0.005, 0.0075, 0.0425), rotation = vec3(4.5, 23.5, -10.0), anim = "1" }, ["dh_hr_shave_box"] = { prop = "v_res_fh_aftershavebox", offset = vec3(0.12, 0.1875, 0.28), rotation = vec3(-55.0, -69.5, 0.0), anim = "1" }, ["dh_hr_bed_dog"] = { prop = "sf_prop_sf_bed_dog_01a", offset = vec3(0.69, 0.14, 0.0475), rotation = vec3(-136.0, 103.5, 16.0), anim = "1" }, ["dh_hr_statue_3"] = { prop = "sf_prop_sf_art_dog_01c", offset = vec3(0.2085, 0.0135, 0.0125), rotation = vec3(-5.0, -1.5, -60.0), anim = "1" }, ["dh_hr_pc"] = { prop = "prop_dyn_pc_02", offset = vec3(0.225, 0.0, 0.17), rotation = vec3(8.0, 18.0, 0.0), anim = "1" }, ["dh_hr_monitor"] = { prop = "ch_prop_ch_monitor_01a", offset = vec3(0.0875, 0.0175, 0.035), rotation = vec3(0.0, 0.0, 0.0), anim = "1" }, ["dh_hr_keyboard"] = { prop = "prop_cs_keyboard_01", offset = vec3(0.13, 0.00795, 0.23), rotation = vec3(84.0, 110.0, 7.0), anim = "1" }, ["dh_hr_guitar"] = { prop = "prop_el_guitar_01", offset = vec3(0.06, 0.025, 0.1175), rotation = vec3(-12.5, 34.0, 159.5), anim = "1" }, ["dh_hr_golf"] = { prop = "sf_prop_sf_golf_bag_01b", offset = vec3(0.22, -0.0525, 0.2725), rotation = vec3(-80.5, -11.5, 31.5), anim = "1" }, ["dh_hr_speaker"] = { prop = "h4_prop_h4_isl_speaker_01a", offset = vec3(-0.0625, -0.155, 0.26), rotation = vec3(-137.0, 107.5, 7.5), anim = "1" }, ["dh_hr_sarcophagus"] = { prop = "sum_prop_ac_sarcophagus_01a", offset = vec3(1.0475, -0.4025, -0.0575), rotation = vec3(-125.0, 107.0, 0.0), anim = "1" }, ["dh_hr_bike_2"] = { prop = "prop_exer_bike_01", offset = vec3(0.0, 0.075, 0.055), rotation = vec3(3.5, 5.5, 47.5), anim = "1" }, ["dh_hr_basket"] = { prop = "v_res_tre_washbasket", offset = vec3(0.1925, -0.0675, 0.19), rotation = vec3(-80.0, 3.5, 40.0), anim = "1" }, ["dh_hr_luggage_2"] = { prop = "prop_ld_case_01", offset = vec3(0.0, 0.0, 0.2525), rotation = vec3(8.0, -74.0, 176.0), anim = "1" }, ["dh_hr_wheel"] = { prop = "prop_wheel_01", offset = vec3(0.0, 0.0575, 0.27), rotation = vec3(0.0, 0.0, 180.0), anim = "1" }, ["dh_hr_tool_box"] = { prop = "xs_prop_x18_tool_box_02a", offset = vec3(0.24, -0.055, 0.15), rotation = vec3(0.0, -65.5, 0.0), anim = "1" }, } local IsCarryingItem = false Animations = { ["1"] = { "anim@heists@box_carry@", "idle" }, ["2"] = { "impexp_int-0", "mp_m_waremech_01_dual-0" }, } RegisterNetEvent("devhub_lib:itemCarry:removeItem:client", function(item) ItemCarryRemoveItem(item) end) RegisterNetEvent("devhub_lib:itemCarry:addItem:client", function(item) ItemCarryAddItem(item) end) RegisterNetEvent("devhub_lib:itemCarry:deleteEntity", function() if IsCarryingItem then DeleteEntity(IsCarryingItem.obj) local ped = PlayerPedId() ClearPedTasks(ped) IsCarryingItem = false end end) ItemCarryRemoveItem = function(item) if not IsCarryingItem then return end if IsCarryingItem.item ~= item then return end TriggerServerEvent("devhub_lib:itemCarry:removeItem:server") local obj = IsCarryingItem.obj IsCarryingItem = false Wait(500) for i = 1, 10 do if not DoesEntityExist(obj) then break end DeleteEntity(obj) Wait(100) end end ItemCarryAddItem = function(item) if IsCarryingItem then return end local playerPed = PlayerPedId() local playerCoords = GetEntityCoords(playerPed) local config = Shared.ItemCarry[item] if config == nil then return end local animation = Animations[config.anim] if animation == nil then return end local obj = Core.SpawnObject(config.prop, playerCoords, nil, false) while not DoesEntityExist(obj) do Wait(100) end SetEntityCollision(obj, false, false) PlayAnimation(animation[1], animation[2], obj, config.offset, config.rotation) Wait(1000) IsCarryingItem = { obj = obj, animation = animation, item = item, netId = NetworkGetNetworkIdFromEntity(obj) } TriggerServerEvent("devhub_lib:itemCarry:addItem:server", IsCarryingItem.netId) CreateThread(function() while IsCarryingItem do local ped = PlayerPedId() if not IsEntityPlayingAnim(ped, animation[1], animation[2], 3) then PlayAnimation(animation[1], animation[2], obj, config.offset, config.rotation) end Wait(100) end local ped = PlayerPedId() ClearPedTasks(ped) end) end function PlayAnimation(animDict, animName, obj, offset, rotation) local ped = PlayerPedId() RequestAnimDict(animDict) while not HasAnimDictLoaded(animDict) do Wait(100) end TaskPlayAnim(ped, animDict, animName, 8.0, -8.0, -1, 49, 0, false, false, false) AttachEntityToEntity(obj, ped, GetPedBoneIndex(ped, 60309), offset, rotation, true, true, false, true, 1, true) end AddEventHandler('onResourceStop', function(resourceName) if (GetCurrentResourceName() ~= resourceName) then return end if IsCarryingItem then DeleteEntity(IsCarryingItem.obj) local ped = PlayerPedId() ClearPedTasks(ped) end end) exports('IsPlayerCarryingItem', function() return IsCarryingItem ~= nil end)