:GetPropertyChangedSignal() not working

I am trying to change a TextLabel to output the player’s current position, but for some reason neither HumanoidRootPart:GetPropertyChangedSignal(Position), nor HumanoidRootPart:GetPropertyChangedSignal(CFrame) do anything, nothing in the output either.

I would recommend just relying on

HumanoidRootPart.Changed:Connect(function()
-- update TextLabel
end)

I tried that, didn’t do anything

Physics-related properties cannot be detected with GetPropertyChangedSignal nor Changed. Instead use a loop to constantly check the HumanoidRootPart’s position.

game:GetService("RunService").Heartbeat:Connect(function()
	print(HumanoidRootPart.Position)
end)
1 Like
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")

local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")

local TextLabel  = script.Parent

RunService.Heartbeat:Connect(function()
	TextLabel.Text = tostring(HumanoidRootPart.Position)
end)

https://gyazo.com/d23b1e4b7dee3028f2f4a53937df026c

If you want some rounded numbers you can do:
RunService.Heartbeat:Connect(function()
	TextLabel.Text = tostring(Vector3.new(math.round(HumanoidRootPart.Position.X), math.round(HumanoidRootPart.Position.Y), math.round(HumanoidRootPart.Position.Z)))
end)

https://gyazo.com/dd5a21145b97f7f1743acfeea38145a9

That’s odd, I don’t believe this behaviour is documented. Do you know why this is the case or is it just another one of those unexpected roblox surprises you just have to remember?

1 Like

Indeed it’s documented.
image

It just relies on testing and experimenting, Developer Hub just gives basic information that you need.

1 Like

I know lol, I’ve got everything else done

It’s because physics-related properties change all the time & would essentially result in the “.Changed” event behaving the same as one of the RunService’s event loops.