Alright, so, you might have seen my previous question, but I've been working on it heavily and it has now evolved. However, this time, the GUIs are flashing, and if I move my mouse too fast, the selection boxes stick, and will randomly shut off if I touch something else (meaning it won't always shut off when supposed to)
I've found that whenever I let the game sit for about 3 seconds, then try to mouse over the blocks to show the selection boxes, they never stick, no matter how fast I move the mouse. If the selection boxes aren't sticking, then the GUIs don't flash if the mouse is moving fast. If the mouse is moving slowly, they will flash.
The code is now much more advanced and may be more difficult to help solve. Here's the code --
local mouse = game.Players.LocalPlayer:GetMouse() local debounce = false local debounce1 = false local debounce2 = false local debounce3 = false local maintarg local selection local moving = false local debounceI = false -- The next 3 functions are called upon in the second to last function, and don't need to be read right away. function Empty(target) if not debounce1 then debounce1 = true local EmptyC = coroutine.create(function() local selectionBox = Instance.new("SelectionBox", target) selectionBox.Adornee = target selectionBox.Color = BrickColor.new("Really red") repeat wait() until maintarg ~= target and moving == true selectionBox:Destroy() end) coroutine.resume(EmptyC) debounce1 = false end end function Storage(target) if not debounce2 then debounce2 = true local StorageC = coroutine.create(function() target:FindFirstChild("InfoStorage", true).Enabled = true local selectionBox = Instance.new("SelectionBox",target) selectionBox.Adornee = target selectionBox.Color = BrickColor.new("Bright orange") repeat wait() until maintarg ~= target and moving == true target:FindFirstChild("InfoStorage", true).Enabled = false selectionBox:Destroy() end) coroutine.resume(StorageC) debounce2 = false end end function Housing(target) if not debounce3 then debounce3 = true local HousingC = coroutine.create(function() target:FindFirstChild("InfoHousing", true).Enabled = true local selectionBox = Instance.new("SelectionBox",target) selectionBox.Adornee = target selectionBox.Color = BrickColor.new("Lime green") repeat wait() until maintarg ~= target and moving == true target:FindFirstChild("InfoHousing", true).Enabled = false selectionBox:Destroy() end) coroutine.resume(HousingC) debounce3 = false end end -- Main function below! mouse.Move:connect(function() moving = true if not debounce then debounce = true if mouse.Target ~= nil then local maintarget = mouse.Target.Parent.Parent if mouse.Target and mouse.Target.Parent.Parent:FindFirstChild("type0") then -- second mouse.Target is to make sure it's not a skybox. Empty(mouse.Target.Parent.Parent); elseif mouse.Target and mouse.Target.Parent.Parent:FindFirstChild("type1") then Storage(mouse.Target.Parent.Parent); elseif mouse.Target and mouse.Target.Parent.Parent:FindFirstChild("type2") then Housing(mouse.Target.Parent.Parent); else maintarg = "Nil" end end debounce = false end end); mouse.Idle:connect(function() if not debounceI then debounceI = true moving = false debounceI = false end end)
The selection boxes keep sticking on me (meaning they aren't destroyed). Sometimes they will disappear, but usually they'll stick. The Gui, however, goes away most of the time.
Thanks for reading, and I appreciate anybody who is helping with this!
EDIT: Well, the first sticking issue was because I put the debounce# = false
after the wrong end. However, the GUIs are now flashing, even when the selection boxes aren't. And, the selection boxes still stick when moving too fast.
try checking over ur other debounces... there might be a nil value somewhere or u may have accedentally made it loop