✓ Accepted answer
What I think you are trying to do is when the player's UpperTorso gets within the radius of radius which is 10, then print "Human Nearby". Your script runs only once when the game starts and since distance is not <= radius the if doesn't run.
You should try using a while loop for this:
local player = game.Players.LocalPlayer
local char = player.Character
local part1 = char:WaitForChild("UpperTorso")
local part2 = game.Workspace.Part
local radius = 10
while true do
local distance = (part1.Position - part2.Position).magnitude
if distance <= radius then
print("Human Nearby")
end
wait()
end
or if you want it to only print once:
local player = game.Players.LocalPlayer
local char = player.Character
local part1 = char:WaitForChild("UpperTorso")
local part2 = game.Workspace.Part
local radius = 10
local debounce = true
while true do
local distance = (part1.Position - part2.Position).magnitude
if debounce and distance <= radius then
debounce = false
print("Human Nearby")
else not debounce and distance > radius then
debounce = true
end
wait()
end
The while loop will keep running and check if distance <= radius instead of only checking once.
I have not tested it so I'm definitely not 100% sure it'll work.
3 comments
Yeah they didn't work
sorry now i updated it, i forgot to include the distance but it should work now
oh yeah it works now thanks!