So i've been at this for a long time: how do i fix my drag inventory system? It works fine in Studio, but doesnt' work in Roblox. Likely due to a Filtering Enabled bug, question is, what is the bug? I've tried everything to make this thing work from Cloning it on the server instead of the client, to sending the name of the tool of interest, and having the server look for the tool with that name and equipping it. None of which worked. When i do it in Studio, it works fine, when i do it in Roblox, it doesn't equip, it doesn't show errors, and i couldn't locate the source of the problem. There are 2 scripts that are supposed to make the tools equip: this is the Local Script:
--//Services local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RS = game:GetService("ReplicatedStorage") --//Events local UpdateAncestory = RS:WaitForChild('UpdateAncestory') --//Objects local Slots = { script.Parent:WaitForChild('One'), script.Parent:WaitForChild('Two'), script.Parent:WaitForChild('Three'), script.Parent:WaitForChild('Four'), script.Parent:WaitForChild('Five'), script.Parent:WaitForChild('Six'), script.Parent:WaitForChild('Seven'), script.Parent:WaitForChild('Eight')} --//PlayerObjects --in code... local Backpack = Players.LocalPlayer:WaitForChild('Backpack', math.huge) --//Functions function Dequip(Char) for i, v in ipairs(Slots) do v.Equipped.Value = false v.BackgroundColor3 = Color3.fromRGB(0,0,0) if Char:FindFirstChildOfClass('Tool') then UpdateAncestory:FireServer(Char:FindFirstChildOfClass("Tool").Name, Char, 'Unequip') end end end --//Code UIS.InputBegan:connect(function(input) local Char = Players.LocalPlayer.Character local Humanoid = Char:WaitForChild('Humanoid') if script.Parent:FindFirstChild(input.KeyCode.Name) then local SlotEquip = script.Parent[input.KeyCode.Name] if SlotEquip.Equipped.Value == false and SlotEquip.Tool.Value ~= nil then Dequip(Char) SlotEquip.Equipped.Value = true SlotEquip.BackgroundColor3 = Color3.fromRGB(255, 255, 0) print(SlotEquip.Tool.Value.Name..' client') if SlotEquip.Tool.Value ~= nil then UpdateAncestory:FireServer(SlotEquip.Tool.Value.Name, Humanoid, 'Equip') end elseif SlotEquip.Equipped.Value == true and SlotEquip.Tool.Value ~= nil then Dequip(Char) end end end)
and here is the Server Script:
local UA = game:GetService("ReplicatedStorage"):WaitForChild('UpdateAncestory') UA.OnServerEvent:connect(function(client, child, parent, typ) if typ == '' or typ == nil then child.Parent = parent elseif typ == 'Equip' then print(client.Backpack:FindFirstChild(child, true)) local Item = client.Backpack:FindFirstChild(child, true):Clone() parent:EquipTool(Item) elseif typ == 'Unequip' then parent:FindFirstChild(child):Destroy() end end)