Hi,

I have an admin command that is used to spawn items onto the workspace. In studio it works fine but not online. Essentially, what it does is that you type a command inside a textbox, and when you press enter the object spawns in your inventory. When I take it out of the inventory however, the item is nil. The following is a sample of my code:

local textBox= Instance.new("TextBox",adminGui)
	textBox.Name= "TextBox"
	textBox.Text= "Admin Commands"
	textBox.Position= UDim2.new(0,0,0.9,0)
	textBox.Size= UDim2.new(0.2,0,0.1,0)

	function onKeyPress(inputObject, gameProcessedEvent)
		if inputObject.KeyCode == Enum.KeyCode.Return then
			local theText= textBox.Text
			if theText== "adminroom" then
				game.Players.LocalPlayer.Character.Torso.CFrame = CFrame.new(workspace.AdminRoom.AdminRoomBase.BaseBottom.Position+Vector3.new(0,5,0))
			elseif theText== "room" then
				game.Players.LocalPlayer.Character.Torso.CFrame= CFrame.new(workspace["Pool of Oil"].Position+Vector3.new(1100,50,100))		
			elseif theText== "stats50" then
				game.StarterGui.Hunger.HungerValue.Value= 50
				game.StarterGui.Health.HealthValue.Value= 50
				game.StarterGui.Thirst.ThirstValue.Value= 50
			elseif theText== "stats100" then
				game.StarterGui.Hunger.HungerValue.Value= 100
				game.StarterGui.Health.HealthValue.Value= 100
				game.StarterGui.Thirst.ThirstValue.Value= 100	
			elseif theText== "Handle" then
				local cloneObj= game.ReplicatedStorage:FindFirstChild("Handle",true):Clone()
				cloneObj.Parent= game.StarterGui.Inventory.Itembag

			end
		end
	end
	game:GetService("UserInputService").InputBegan:connect(onKeyPress)

The following script takes the item from the backpack to the workspace:

local Player= game.Players.LocalPlayer
local Mouse= Player:GetMouse()


function onLeftButtonDown()
	game.Players.LocalPlayer.PlayerGui.InventoryGui.Enabled= false
	local foundItem= game.StarterGui.Inventory.Itembag:FindFirstChild(tostring(script.Parent.Text))
	if foundItem then
		local function onMouseMove()
			--game.StarterGui.Inventory.CheckMoving.Value= 1
			local mouseHitX= Mouse.Hit.X
			--local mouseHitY= game.Players.LocalPlayer.Character.Torso.Position.Y
			local mouseHitY= game.Players.LocalPlayer.Character:FindFirstChild("Left Leg").Position.Y
			local mouseHitZ= Mouse.Hit.Z
			
			found.Position= Vector3.new(Mouse.Hit.X,Mouse.Hit.Y,Mouse.Hit.Z)
			local function onLeftButtonDown2()
				found.Position= Vector3.new(found.Position.X,found.Position.Y,found.Position.Z)
				if not Mouse.Target then
					return
				end
				local mouseTarget= Mouse.Target
				if mouseTarget.CanCollide== false and mouseTarget.Anchored== true and mouseTarget.Transparency== 0.5 then
					mouseTarget.Transparency= 0
					mouseTarget.CanCollide= true
					mouseTarget.Anchored= false
					game.Players.LocalPlayer.PlayerGui.InventoryGui.Enabled= true
					script.Parent:Destroy()
				end
			end
			Mouse.Button1Down:connect(onLeftButtonDown2)
	
		end
		Mouse.Move:connect(onMouseMove)
	end
end
script.Parent.MouseButton1Down:connect(onLeftButtonDown)

My attempt was to use an external function that will loop the command until it goes into the workspace, and call it after ``:

function Loop()
	if cloneObj.Parent~= workspace then
		while cloneObj.Parent~= workspace then
			wait()
			cloneObj.Parent= workspace
		end
	end
end

This pertains specifically to the object called 'Handle'.

Thanks, Houlardy