Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Help with events?

I was trying to update the position of the players head every time the position is changed but I got an error:

Changed is not a valid member

game.Players.PlayerAdded:connect(function(Player)
	Player.CharacterAdded:connect(function(Character)
-----------------------------------------------------
		Head = Character:FindFirstChild("Head")
		Head.Position.Changed:connect(function()
			local Ray = Ray.new(Head.Position,
			Head.CFrame.lookVector.unit*1000)
			local Hit = Workspace:FindPartOnRay(Ray)
				if not Hit then
					print("Nope")
				else
					print(Hit)
			end
		end)
	end)
end)

1 comment

0

You cannot use the Changed event on the Position property because it consists of 3 other properties - X, Y, and Z. You mayt be able to use the Changed event on a specific scale but not as specifying them all.

1 answer

✓ Accepted answer

You're trying to call the Changed event on a property, which will not work, thus stating Changed is not a valid member of the property. The event is located in the object, the actual head part.

game.Players.PlayerAdded:connect(function(Player)
	Player.CharacterAdded:connect(function(Character)
		Head = Character:WaitForChild("Head") --In case the head isn't found when you spawn.
		Head.Changed:connect(function(prop) --We call the Changed event on the head part.
			if prop == "Position" then --The check to see if the property that changed is the position property.
				local Ray = Ray.new(Head.Position,
				Head.CFrame.lookVector.unit*1000)
				local Hit = Workspace:FindPartOnRay(Ray)
				if not Hit then
					print("Nope")
				else
					print(Hit)
				end
			end
		end)
	end)
end)

2 comments

1

Note that Physics changes DO NOT fire the Changed event (e.g., normal motion will not triggered a "Changed" for Position)

1

@Blue Thanks for the heads up.

This discussion is preserved as it was. New answers, comments, and votes are closed.