this script allows you to place an item on the ground when you click on a button, then the ground, but I want the script to be completed when the item is placed on the ground. Instead, if i re-forage the item it automatically allows me to place it again which i don't want. It seems like the script is still "open" in a way if that makes sense. What I'm trying to figure out is how to make the script completely end so that you have to press the button again to place the item again. Let me know if you need me to clarify anything. Thanks!
local BUTTON = script.Parent
local player = game.Players.LocalPlayer
local CURRENT = nil
local mouse = player:GetMouse()
local RANGE = 15
function do_remove_all(parent)
local children = parent:GetChildren()
for index, child in pairs(children) do
child:remove()
end
end
function rangeCheck(mouse)
local char = player.Character
local torso = char.Torso
return (torso.Position - mouse.hit.p).magnitude < RANGE
end
function removeExample()
local player = game.Players.LocalPlayer
local char = player.Character
local ex_check = char:findFirstChild("BACKPACK_EXAMPLE")
if ex_check ~= nil then
ex_check:remove()
end
end
function onMouseMove(mouse)
local player = game.Players.LocalPlayer
local char = player.Character
local torso = char.Torso
local pack = player:findFirstChild("Pack")
local pack_tab = pack:GetChildren()
local partname = BUTTON.Text
local part = pack:FindFirstChild(partname)
removeExample()
if rangeCheck(mouse) then
local example = part:Clone()
example.Name = "BACKPACK_EXAMPLE"
example.Locked = true
example.Transparency = 0.5
example.Parent = char
example.Position = mouse.hit.p
do_remove_all(example)
end
end
function onButton1Down(mouse)
local pack = player:findFirstChild("Pack")
local pack_tab = pack:GetChildren()
local partname = BUTTON.Text
local part = pack:FindFirstChild(partname)
local player = game.Players.LocalPlayer
local char = player.Character
if part ~= nil then
if rangeCheck(mouse) then
print("clicked")
part.Parent = game.Workspace
part.Locked = false
part.Anchored = false
part.Position = mouse.hit.p
removeExample()
part = nil
end
end
end
function onKeyDown(key, mouse)
if key == "r" then
removeExample()
local CURRENT = nil
elseif key == "e" then
local player = game.Players.LocalPlayer
local pack = player:findFirstChild("Pack")
local pack_tab = pack:GetChildren()
for index, child in pairs(pack_tab) do
local CURRENT = child
onButton1Down(mouse)
wait(0.1)
end
local CURRENT = nil
end
end
function onMouseButton1Down()
print("buttonclicked")
mouse.Button1Down:connect(function() onButton1Down(mouse) end)
mouse.Move:connect(function() onMouseMove(mouse) end)
mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
end
BUTTON.MouseButton1Down:connect(onMouseButton1Down)
