I'm trying to make it so that this script that records the player's X, Y and Z positions starts functioning after pressing some GUI button.
local character = script.Parent
local player = game.Players:GetPlayerFromCharacter(character)
local HRP = character:WaitForChild("HumanoidRootPart")
local X = player:WaitForChild("XPosition")
local Y = player:WaitForChild("YPosition")
local Z = player:WaitForChild("ZPosition")
repeat wait() until player.Place.Value == "notSpawn"
while true do
X.Value = HRP.Position.X
Y.Value = HRP.Position.Y
Z.Value = HRP.Position.Z
wait(0.5)
end
The button has a local script that basically changes the value of "Place" which is a "StringValue" in the character to "notSpawn". For some reason, it just never works when FilteringEnabled is on or off. So I don't think it's an FE related problem??
Or is it maybe the repeat function does not update when the value changes?? I'm really really not sure what's going on anymore... Ugh...

1 comment
repeat ... until is a loop, and repeat alone is a keyword, not a function. Additionally, FilteringEnabled will always be on. The FilteringEnabled property in Workspace is a dummy setting now; it does nothing. I also suggest you use events instead of loops.