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

How do i make a part look in the direction of the player?

So i'm trying to do 2 things here: First, i wanna make a part look at the player's head. I've put this in a local script

local part = script.Parent
game.Players.PlayerAdded:Wait()
local player = game.Players.LocalPlayer

part.ClickDetector.MouseClick:Connect(function()
	while wait(0.15) do
		part.CFrame = CFrame.new(part.Position, player.Character.Head.Position);
	end
end)

.

local part = script.Parent
game.Players.PlayerAdded:Wait()
local player = game.Players.LocalPlayer

while wait(0.15) do
	part.CFrame = CFrame.new(part.Position, player.Character.Head.Position);
end

I've tried both scripts but the part just stays the same when i run them.

Also, another thing is how can i make a part look at the pidection the player is facing? For example, if the player is looking towards positive Z,the part should also look towards positive Z. I've tried using part.CFrame.LookVector = character.Head.CFrame.LookVector (character and part are defined ofcourse) but it didn't work. Thanks is advance!

4 comments

0

you cant define LookVector to something

0

a localscript will not execute in workspace, so you either need to make this a localscript in a valid location for localscripts and change the part variable OR change LocalPlayer to an actual player & make it a serverscript instead

0

The choice depends on whether you want the part to replicate it's movements or not

0

Don't use wait() as your loop's condition; it abuses a hack. But I'd recommend doing it client sided as if you do this server sided, part movement can get really laggy. The movement should be processed on the client's end.

1 answer

I didn't know of this either but with a bit of testing it appears LocalScripts can no longer move parts even client sided. I placed the same code into a regular script and it works perfectly fine

local part = script.Parent
game.Players.PlayerAdded:Wait()
local player = game.Players.xEmmalyx
player.CharacterAdded:Wait()

while wait(0.15) do
    part.CFrame = CFrame.new(part.Position, player.Character.Head.Position)
end

My username is xEmmalyx so of course you'd replace that with a player or use a script to find the nearest player.

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