Why aren’t my debounces resetting when player leaves region3 area
RunService.RenderStepped:Connect(function()
wait()
for _,area in pairs(game.Workspace.Area:GetChildren()) do
if area:IsA("Part") then
local region = Region3.new(area.Position - (area.Size/2), area.Position + (area.Size))
local whitelistedParts = Character:GetDescendants()
local parts = game.Workspace:FindPartsInRegion3WithWhiteList(region, Character:GetDescendants(), #whitelistedParts)
for _,part in pairs(parts) do
if part:FindFirstAncestor(Player.Name) then
Region3Debounce = true
BeenInRegion3 = true
AttachedCamera = false
break
else
print("PLAYER LEFT")
Region3Debounce = false
AttachedCamera = false
end
end
end
end
There are a couple of things I want to clarify so I can understand better - first, what is your output (is it printing ‘PLAYER LEFT’ at least, because you only mentioned the debounces not being reset)? Second, are the debounces being set to true in the first place when the player enters (and how do you know this, the script doesn’t have an output for that to tell you if they are in)?
Also two minor things I noticed, is there a reason you are using wait() inside RenderStepped? If it is for trying to slow down the execution, it will still run at the same rate but only delayed on the first frame. The other thing is that you use Area.Size/2 to define your region3 but you only divided by 2 for the first parameter. Not sure if it was intentional or not, just pointing it out in case you are walking out of the area and your script is defining the area bigger than your Area part. This could also cause your debounces to not change when you expect them to.
its not printing player left. i also tried making a if statement debounce to prevent it from running multiple times, and tried making it reset when player left the region, no luck., oh yeah it wasn’t intentional, looks like i forgot to /2 on the other parameter.