Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
TweenService = :()
LocalPlayer = Players.LocalPlayer
Rayfield = (:())()
CONFIG = {
TeleportFadeTime = ,
SafeLandingOffset = ,
BeamHeight = ,
ShowBeams = ,
BeamTextureId = ,
}
Waypoints = {}
SelectedWaypoint =
WaypointCounter =
IsTeleporting =
BEAM_PALETTE = {
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
.(, , ),
}
FadeGui = .()
FadeGui.Name =
FadeGui.IgnoreGuiInset =
FadeGui.DisplayOrder =
FadeGui.ResetOnSpawn =
FadeGui.Parent = LocalPlayer:()
FadeFrame = .()
FadeFrame.Name =
FadeFrame.Size = .(, , , )
FadeFrame.BackgroundColor3 = .(, , )
FadeFrame.BackgroundTransparency =
FadeFrame.BorderSizePixel =
FadeFrame.ZIndex =
FadeFrame.Parent = FadeGui
CompassGui = .()
CompassGui.Name =
CompassGui.IgnoreGuiInset =
CompassGui.ResetOnSpawn =
CompassGui.DisplayOrder =
CompassGui.Parent = LocalPlayer:()
CompassArrow = .()
CompassArrow.Name =
CompassArrow.AnchorPoint = .(, )
CompassArrow.Size = .(, )
CompassArrow.BackgroundTransparency =
CompassArrow.Text =
CompassArrow.TextColor3 = .(, , )
CompassArrow.TextStrokeTransparency =
CompassArrow.TextStrokeColor3 = .(, , )
CompassArrow.Font = .Font.GothamBold
CompassArrow.TextScaled =
CompassArrow.Visible =
CompassArrow.ZIndex =
CompassArrow.Parent = CompassGui
()
hrp = LocalPlayer.Character LocalPlayer.Character:()
SelectedWaypoint hrp
CompassArrow.Visible =
camera = .CurrentCamera
camera
CompassArrow.Visible =
viewportPoint, onScreen = camera:(SelectedWaypoint.Position)
onScreen viewportPoint.Z >
CompassArrow.Visible =
viewportSize = camera.ViewportSize
center = .(viewportSize.X / , viewportSize.Y / )
delta = .(viewportPoint.X, viewportPoint.Y) - center
viewportPoint.Z <
delta = -delta
delta.Magnitude <
delta = .(, -)
angle = .(delta.Y, delta.X)
radius = .(center.X, center.Y) -
CompassArrow.Position = .(, .(angle) * radius, , .(angle) * radius)
CompassArrow.Rotation = .(angle) +
CompassArrow.TextColor3 = SelectedWaypoint.Color .(, , )
CompassArrow.Visible =
(position, color)
color = color BEAM_PALETTE[]
lightColor = color:(.(, , ), )
anchor = .()
anchor.Name =
anchor.Anchored =
anchor.CanCollide =
anchor.CanQuery =
anchor.CanTouch =
anchor.Transparency =
anchor.Size = .(, , )
anchor.Position = position
anchor.Parent =
topPart = .()
topPart.Name =
topPart.Anchored =
topPart.CanCollide =
topPart.CanQuery =
topPart.CanTouch =
topPart.Transparency =
topPart.Size = .(, , )
topPart.Position = position + .(, CONFIG.BeamHeight, )
topPart.Parent = anchor
att0 = .(, anchor)
att1 = .(, topPart)
beam = .()
beam.Name =
beam.Attachment0 = att0
beam.Attachment1 = att1
beam.Width0 =
beam.Width1 =
beam.FaceCamera =
beam.LightEmission =
beam.LightInfluence =
beam.Segments =
beam.Color = ColorSequence.({
ColorSequenceKeypoint.(, color),
ColorSequenceKeypoint.(, lightColor),
ColorSequenceKeypoint.(, .(, , )),
})
beam.Transparency = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
})
CONFIG.BeamTextureId ~=
beam.Texture = CONFIG.BeamTextureId
beam.TextureMode = .TextureMode.Wrap
beam.TextureLength =
beam.TextureSpeed =
beam.Enabled = CONFIG.ShowBeams
beam.Parent = anchor
marker = .()
marker.Name =
marker.Shape = .PartType.Ball
marker.Anchored =
marker.CanCollide =
marker.CanQuery =
marker.CanTouch =
marker.Material = .Material.Neon
marker.Color = color
marker.Size = .(, , )
marker.Position = position
marker.Transparency = CONFIG.ShowBeams
marker.Parent = anchor
markerLight = .()
markerLight.Color = lightColor
markerLight.Range =
markerLight.Brightness =
markerLight.Parent = marker
sparkles = .()
sparkles.Color = ColorSequence.(lightColor)
sparkles.Size = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
})
sparkles.Transparency = NumberSequence.({
NumberSequenceKeypoint.(, ),
NumberSequenceKeypoint.(, ),
})
sparkles.Lifetime = NumberRange.(, )
sparkles.Rate =
sparkles.Speed = NumberRange.(, )
sparkles.SpreadAngle = .(, )
sparkles.Acceleration = .(, , )
sparkles.Enabled = CONFIG.ShowBeams
sparkles.Parent = marker
billboard = .()
billboard.Name =
billboard.Adornee = anchor
billboard.AlwaysOnTop =
billboard.Size = .(, , , )
billboard.StudsOffset = .(, , )
billboard.MaxDistance =
billboard.Enabled = CONFIG.ShowBeams
billboard.Parent = anchor
nameLabel = .()
nameLabel.Name =
nameLabel.Size = .(, , , )
nameLabel.BackgroundTransparency =
nameLabel.TextColor3 = .(, , )
nameLabel.TextStrokeTransparency =
nameLabel.Font = .Font.GothamBold
nameLabel.TextScaled =
nameLabel.Parent = billboard
distLabel = .()
distLabel.Name =
distLabel.Size = .(, , , )
distLabel.Position = .(, , , )
distLabel.BackgroundTransparency =
distLabel.TextColor3 = .(, , )
distLabel.TextStrokeTransparency =
distLabel.Font = .Font.Gotham
distLabel.TextScaled =
distLabel.Parent = billboard
anchor, beam, marker, sparkles, billboard, nameLabel, distLabel
()
char = LocalPlayer.Character
char char:()
RefreshDropdown
(name)
_, wp (Waypoints)
wp.Name == name
wp
()
hrp = ()
hrp
Rayfield:({ Title = , Content = , Duration = })
position = hrp.Position
WaypointCounter +=
defaultName = .. WaypointCounter
color = BEAM_PALETTE[((WaypointCounter - ) % #BEAM_PALETTE) + ]
anchor, beam, marker, sparkles, billboard, nameLabel, distLabel = (position, color)
nameLabel.Text = defaultName
data = {
Name = defaultName,
Position = position,
Color = color,
Anchor = anchor,
Beam = beam,
Marker = marker,
Sparkles = sparkles,
Billboard = billboard,
NameLabel = nameLabel,
DistanceLabel = distLabel,
}
.(Waypoints, data)
SelectedWaypoint = data
RefreshDropdown (defaultName)
Rayfield:({ Title = , Content = defaultName .. , Duration = })
(data)
data
data.Anchor data.Anchor:()
i, wp (Waypoints)
wp == data
.(Waypoints, i)
SelectedWaypoint == data
SelectedWaypoint = Waypoints[]
RefreshDropdown
(SelectedWaypoint SelectedWaypoint.Name )
(data, newName)
data newName newName ==
(newName)
Rayfield:({ Title = , Content = , Duration = })
data.Name = newName
data.NameLabel.Text = newName
RefreshDropdown (newName)
()
list = {}
_, player (Players:())
player.Character
.(list, player.Character)
list
(position)
overlapParams = OverlapParams.()
overlapParams.FilterType = .RaycastFilterType.Exclude
overlapParams.FilterDescendantsInstances = ()
checkSize = .(, , )
checkCFrame = .(position + .(, , ))
parts = :(checkCFrame, checkSize, overlapParams)
_, part (parts)
part.CanCollide
(position)
attempts =
nudged = position
(nudged) attempts <
nudged += .(, , )
attempts +=
nudged
(position)
params = RaycastParams.()
params.FilterType = .RaycastFilterType.Exclude
params.FilterDescendantsInstances = ()
params.RespectCanCollide =
params.IgnoreWater =
rayOrigin = position + .(, , )
landingPoint =
attempt = ,
result = :(rayOrigin, .(, -, ), params)
result
result.Normal.Y >
landingPoint = result.Position
rayOrigin = result.Position - .(, , )
candidate
landingPoint
.(landingPoint.Y - position.Y) >
candidate = position + .(, CONFIG.SafeLandingOffset, )
candidate = landingPoint + .(, CONFIG.SafeLandingOffset, )
candidate = position + .(, CONFIG.SafeLandingOffset, )
(candidate)
(data)
IsTeleporting data
hrp = ()
hrp
IsTeleporting =
fadeOut = TweenService:(
FadeFrame,
TweenInfo.(CONFIG.TeleportFadeTime, .EasingStyle.Sine, .EasingDirection.Out),
{ BackgroundTransparency = }
)
fadeOut:()
fadeOut.Completed:()
hrpNow = ()
hrpNow
safePosition = (data.Position)
hrpNow.CFrame = .(safePosition)
.()
fadeIn = TweenService:(
FadeFrame,
TweenInfo.(CONFIG.TeleportFadeTime, .EasingStyle.Sine, .EasingDirection.In),
{ BackgroundTransparency = }
)
fadeIn:()
fadeIn.Completed:()
IsTeleporting =
Window = Rayfield:({
Name = ,
LoadingTitle = ,
LoadingSubtitle = ,
ConfigurationSaving = { Enabled = },
})
Tab = Window:(, )
Tab:()
Tab:({
Name = ,
Callback = placeWaypoint,
})
Tab:()
Dropdown = Tab:({
Name = ,
Options = {},
CurrentOption = {},
MultipleOptions = ,
Callback = (option)
name = option
(option) ==
name = option[]
SelectedWaypoint = (name)
,
})
RefreshDropdown = (selectName)
sorted = .(Waypoints)
hrp = ()
hrp
.(sorted, (a, b)
(hrp.Position - a.Position).Magnitude < (hrp.Position - b.Position).Magnitude
)
names = {}
_, wp (sorted)
.(names, wp.Name)
Dropdown.Refresh
Dropdown:(names, )
Dropdown.Set
Dropdown:(names)
selectName Dropdown.Set
Dropdown:(selectName)
DistanceLabel = Tab:()
Tab:({
Name = ,
Callback = ()
IsTeleporting
SelectedWaypoint
.(teleportTo, SelectedWaypoint)
Rayfield:({ Title = , Content = , Duration = })
,
})
Tab:({
Name = ,
PlaceholderText = ,
RemoveTextAfterFocusLost = ,
Callback = (text)
SelectedWaypoint
(SelectedWaypoint, text)
Rayfield:({ Title = , Content = , Duration = })
,
})
Tab:({
Name = ,
Callback = ()
SelectedWaypoint
(SelectedWaypoint)
Rayfield:({ Title = , Content = , Duration = })
,
})
Tab:()
DEFAULT_SHOW_BEAMS =
DEFAULT_FADE_TIME =
BeamsToggle
BeamsToggle = Tab:({
Name = ,
CurrentValue = DEFAULT_SHOW_BEAMS,
Callback = (value)
CONFIG.ShowBeams = value
_, wp (Waypoints)
wp.Beam.Enabled = value
wp.Billboard.Enabled = value
wp.Sparkles.Enabled = value
wp.Marker.Transparency = value
,
})
FadeSlider
FadeSlider = Tab:({
Name = ,
Range = { , },
Increment = ,
Suffix = ,
CurrentValue = DEFAULT_FADE_TIME,
Callback = (value)
CONFIG.TeleportFadeTime = value
,
})
Tab:({
Name = ,
Callback = ()
CONFIG.ShowBeams = DEFAULT_SHOW_BEAMS
CONFIG.TeleportFadeTime = DEFAULT_FADE_TIME
_, wp (Waypoints)
wp.Beam.Enabled = DEFAULT_SHOW_BEAMS
wp.Billboard.Enabled = DEFAULT_SHOW_BEAMS
wp.Sparkles.Enabled = DEFAULT_SHOW_BEAMS
wp.Marker.Transparency = DEFAULT_SHOW_BEAMS
BeamsToggle.Set BeamsToggle:(DEFAULT_SHOW_BEAMS)
FadeSlider.Set FadeSlider:(DEFAULT_FADE_TIME)
Rayfield:({ Title = , Content = , Duration = })
,
})
accumulated =
UPDATE_INTERVAL =
RunService.Heartbeat:((dt)
accumulated += dt
accumulated < UPDATE_INTERVAL
accumulated =
hrp = ()
hrp
_, wp (Waypoints)
dist = (hrp.Position - wp.Position).Magnitude
wp.DistanceLabel.Text = .(, .(dist))
SelectedWaypoint
dist = (hrp.Position - SelectedWaypoint.Position).Magnitude
DistanceLabel:( .. .(dist) .. .. SelectedWaypoint.Name .. )
DistanceLabel:()
)
RunService.RenderStepped:(updateCompass)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: github.com, sirius.menu.
Reincarnation Teleportation — place glowing waypoint beacons anywhere in the world, see them from far away with color-coded beams and an off-screen compass, then teleport back instantly with a smooth fade transition. Rename or delete waypoints anytime.

Universal