Obby Arrow Help

How do I make an obby arrow that guides a player everytime they ar on a stage.

For example when the player is on stage 5 the arrow guides them on stage 6.

2 Likes

Make a local script that loops, every loop rotating the arrow to point to the next checkpoint. I recommend using CFrame.lookAt()

3 Likes

Do you want a beam? Or do you just want like an arrow above that certain checkpoint bouncing?

Please explain abit more…

1 Like

arrow above like that mega obby game

That’s not very helpful. There are tons of mega obby games and we won’t just play them all to see if there are arrows pointing to the next level.

We can’t read your mind so you’ll either have to post a video or describe it with a lot of detail so we know what you want. For example say “I want a screen GUI with an arrow that curves to point the right direction” or “I want a model of an arrow beside the player that points to the next stage”, or “I want a rotating compass on the screen that shows you which direction to go”.

If you want an arrow above the checkpoint bouncing like He said here

You can just get a free model Arrow and tween it up and down like this

local TweenService = game:GetService("TweenService")
local Info = TweenInfo.new() -- your settings But MAKE SURE THE REVERSES PROPERTY IS SET TO TRUE
local Arrow = WhereTheArrowIsLocated
local Tween = TweenService:Create(Arrow,Info,{Position = Vector3.new(Arrow.Position.X,Arrow.Position.Y + 2,Arrow.Position.Z)})
Tween:Play()
1 Like

If your talking about an arrow follows the player while its offset from the player like a few studs and orientates towards the next stage then you can create the arrow on the client then use runservice to update its position.

1 Like

Simply get a Arrow from the toolbox, make sure it does not have any scripts, weld the entire arrow to a single part (also unanchor every part other than that part) and name that part “Root”, make sure it is all can collide false. Set the nextCheckpoint to the next checkpoint every time the player reaches a checkpoint, probably by utilzing events.

local character = script.Parent

local arrow = character:WaitForChild("Arrow")
local arrowRoot = arrow.Root

local nextCheckpoint = workspace.SpawnLocation

while task.wait(0.01) do

	local lookAt = CFrame.lookAt(character.HumanoidRootPart.Position - Vector3.new(0, -5, 0), nextCheckpoint.Orientation)
	arrowRoot.CFrame = lookAt
	
end

Put this script and the arrow in StarterCharacterScripts.

2 Likes