the value is a string value
script.Parent.OnServerEvent:Connect(function(player, Item, StorageSlot)
local SlotToStore = StorageSlot
if player.SafeStats[SlotToStore].Value == "Empty" then
player.SafeStats[SlotToStore].Value = Item
if player.Backpack:FindFirstChild(Item):FindFirstChild("Clips") then
player.SafeStats[SlotToStore].SS.Value = player.Backpack:FindFirstChild(Item):FindFirstChild("Clips").Value
end
player.Backpack:FindFirstChild(Item):Destroy()
script.Parent.Parent.Parent:Remove()
end
end)

4 comments
this is the system, safestats is a folder inside the player, [SlotToStore] is a value inside the folder, line 3 basically is saying that if the value is equal to empty then it fires all the other lines
equal to empty sorry, typo.
alright i just tried it and, im getting this now 3: invalid argument #2 (string expected, got Instance)
I think found the problem! StorageSlot is probably an Instance and not a string. Check :FireServer() and see if StorageSlot is a string or an Instance.