local function cleanupEntities() local function safeDelete(entity) if DoesEntityExist(entity) then if IsEntityAttachedToAnyPed(entity) then DetachEntity(entity, true, true) end NetworkUnregisterNetworkedEntity(entity) DeleteObject(entity) SetEntityAsNoLongerNeeded(entity) return true end return false end if Sling.object then safeDelete(Sling.object) Sling.object = nil end for weaponName, attachment in pairs(Sling.cachedAttachments) do if attachment then safeDelete(attachment.obj) safeDelete(attachment.placeholder) Sling.cachedAttachments[weaponName] = nil end end Sling.currentAttachedAmount = 0 collectgarbage("collect") end -- Add these event handlers AddEventHandler('onResourceStart', function(resourceName) if resourceName == GetCurrentResourceName() then cleanupEntities() end end) RegisterNetEvent('QBCore:Client:OnPlayerLoaded') AddEventHandler('QBCore:Client:OnPlayerLoaded', function() cleanupEntities() end) AddEventHandler('onResourceStop', function(resourceName) if resourceName == GetCurrentResourceName() then cleanupEntities() end end) AddEventHandler('playerDropped', function() cleanupEntities() end)