What I'm trying to do here is when a player takes an item that only they can see, a RemoteEvent is fired, and the server script makes the item go into the players backpack, therefore the player has a tool in their backpack on serverside.
Local Script
tweenservice = game:GetService("TweenService")
player = game.Players.LocalPlayer
local Mouse = player:GetMouse()
local Item = nil
local pos = nil
local transp = nil
local MaxDistance = 10
function onKeyPress(inputObject, gameProcessedEvent)
if inputObject.KeyCode == Enum.KeyCode.E and Mouse.Target.Parent:FindFirstChild('ItemValue') then
Item = Mouse.Target
pos = Item.Position
transp = Item.Transparency
if Item.Parent.ItemValue.Value == true then
local magnitude = (Item.Position - player.Character.HumanoidRootPart.Position).magnitude
if magnitude <= MaxDistance then
if player.PlayerGui:FindFirstChild("Inventory").Frame.SlotFrame.Slot20.ItemNameValue.Value == '' then
Item.Parent.ItemValue.Value = false
script.Sound:Play()
local Info = TweenInfo.new(0.05)
local Goal = {}
Goal.CFrame = player.Character.HumanoidRootPart.CFrame
local Tween = tweenservice:Create(Item,Info,Goal)
Tween:Play()
if Item:FindFirstChild("Sound") then
Item.Sound:Play()
else
end
Item.Position = pos
Item.Transparency = transp
wait(0.05)
game.ReplicatedStorage.ItemToBackpack:FireServer(Item)
else
Item = nil
print("Inventory full.")
end
end
else
end
end
end
game:GetService("UserInputService").InputBegan:connect(onKeyPress)
Server Script
game.ReplicatedStorage.ItemToBackpack.OnServerEvent:Connect(function(player, Item)
if Item.Parent:FindFirstChild("DroppedItem") then
Item.CanCollide = false
local ItemClone = game.Lighting[Item.Name]:Clone()
ItemClone.Parent = player.Backpack
ItemClone.LocalScript.Disabled = false
Item.Parent:Destroy()
game.ReplicatedStorage.ItemDestroy:FireServer(Item)
print(Item.Name .. " Taken")
else
Item.Parent.ItemValue.Value = true
local ItemClone = game.Lighting[Item.Name]:Clone()
ItemClone.Parent = player.Backpack
ItemClone.LocalScript.Disabled = false
print(Item.Name .. " Taken")
end
end)
I've tried sending the variable "Item" through scripts, but it comes out as "Workspace.ItemToBackpack:2: attempt to index local 'Item' (a nil value)" I'm not that familiar with RemoteEvents and RemoteFunctions, so excuse me for my misunderstanding. Help would be appreciated!
