Run it
Copy the script and paste it into your executor.
().CTR
().CTR =
.() ~=
plrsT = {}
wayPoints = {}
plrs = :()
num =
i, v , plrs:()
plrsT[i] = v
(i, v, , v.DisplayName)
Character = plrs.LocalPlayer.Character plrs.LocalPlayer.CharacterAdded:()
plrs.LocalPlayer.CharacterAdded:((c)
Character = c
)
(model, i, plr)
model:(model.PrimaryPart.Name) model:()
bill = .(, model)
bill.Adornee = model
bill.Size = .(, , , )
bill.AlwaysOnTop =
bill.Name =
tl = .(, bill)
tl.Font = .Font.GothamBlack
tl.Text = ..(i)....model.Name....plr.DisplayName
tl.BackgroundTransparency =
tl.TextSize =
tl.TextColor3 = .(, , )
tl.Size = .(, , , )
:().ChatVersion == .ChatVersion.TextChatService
method =
:().TextChannels.RBXGeneral:()
method =
:():(, {
Text = ,
Color = .(, , ),
Font = .Font.GothamBlack,
FontSize =
})
method ==
:().DefaultChatSystemChatEvents.OnMessageDoneFiltering.OnClientEvent:((msg)
full =
msg.FromSpeaker == plrs.LocalPlayer.Name
s, e = (()
number = (msg.Message)
)
s
plr = plrsT[number]
s, e = (()
Character:().CFrame = plrs[plr.Name].Character:().CFrame
)
s, e = (()
msg.Message:(, ) ==
wayPoint = (msg.Message:())
cf = Character:().CFrame
wayPoints[wayPoint] = cf
wayPointIndex = (wayPoint)
( .. wayPointIndex .. .. wayPointIndex)
waypointPart = .(, )
waypointPart.CFrame = cf
waypointPart.Size = .(, , )
waypointPart.Color = .(, , )
waypointPart.CanCollide =
waypointPart.Transparency =
waypointPart.Anchored =
gui = .(, waypointPart)
gui.Size = .(, , , )
gui.Adornee = waypointPart
gui.AlwaysOnTop =
textLabel = .(, gui)
textLabel.Size = .(, , , )
textLabel.BackgroundTransparency =
textLabel.Text = .. wayPointIndex
textLabel.Font = .Font.GothamBlack
textLabel.TextSize =
textLabel.TextColor3 = .(, , )
)
msg.Message:(, ) ==
s, e = (()
wayPointIndex = (msg.Message:())
wayPoint = wayPoints[wayPointIndex]
Character:().CFrame = wayPoint
)
s wayPointIndex == plrs.LocalPlayer:() plrs.LocalPlayer:():()
( .. (e))
msg.Message ==
i, v (wayPoints)
( .. i)
msg.Message ==
()
i, v , plrs:()
plrsT[i] = v
(i, v)
msg.Message:(, ) ==
s, e = (()
num = (msg.Message:())
i, v (wayPoints)
num == i
g = .. (i) ..
(g, .. (v) .. )
( .. (i))
)
msg.Message ==
_, part , :()
part:() part:(Character) (part.Position - Character.HumanoidRootPart.Position).Magnitude <=
touch =
i, v , part:()
v:()
touch =
touch =
full = ..part:()
( .. part.Name .. .. ((part.Position - Character.HumanoidRootPart.Position).Magnitude) .. .. (part.Position.X) .. .. (part.Position.Y) .. .. (part.Position.Z) .. .. part.Parent.Name .. .. part.Parent.ClassName .. .. full .. .. (part.BrickColor) .. .. (touch) .. ..(part.Material):(, ))
msg.Message ==
:():(.PlaceId, :().LocalPlayer)
msg.Message ==
i, v , plrs:()
_, model , :()
model:() model.Name == v.Name
(model, i, v)
plrs.PlayerAdded:((player) k, val , :() val.Name == player.Name val:() (val.PrimaryPart, #plrsT + , player)
;
;
)
)
method ==
:().MessageReceived:((msg)
full =
msg.TextSource.Name == plrs.LocalPlayer.Name
s, e = (()
number = (msg.Text)
)
s
plr = plrsT[number]
s, e = (()
Character:().CFrame = plr.Character:().CFrame
)
s, e = (()
msg.Text:(, ) ==
wayPoint = (msg.Text:())
cf = Character:().CFrame
wayPoints[wayPoint] = cf
wayPointIndex = (wayPoint)
( .. wayPointIndex .. .. wayPointIndex)
waypointPart = .(, )
waypointPart.CFrame = cf
waypointPart.Size = .(, , )
waypointPart.Color = .(, , )
waypointPart.CanCollide =
waypointPart.Transparency =
waypointPart.Anchored =
gui = .(, waypointPart)
gui.Size = .(, , , )
gui.Adornee = waypointPart
gui.AlwaysOnTop =
textLabel = .(, gui)
textLabel.Size = .(, , , )
textLabel.BackgroundTransparency =
textLabel.Text = .. wayPointIndex
textLabel.Font = .Font.GothamBlack
textLabel.TextScaled =
textLabel.TextColor3 = .(, , )
)
msg.Text:(, ) ==
s, e = (()
wayPointIndex = (msg.Text:(, ):())
wayPoint = wayPoints[wayPointIndex]
Character:().CFrame = wayPoint
)
s wayPointIndex == plrs.LocalPlayer:() plrs.LocalPlayer:():()
( .. (e))
msg.Text ==
i, v (wayPoints)
( .. i)
msg.Text ==
()
i, v , plrs:()
plrsT[i] = v
(i, v)
msg.Text:(, ) ==
s, e = (()
num = (msg.Text:())
i, v (wayPoints)
num == i
g = .. (i) ..
(g, .. (v) .. )
( .. (i))
)
msg.Text ==
_, part , :()
part:() part:(Character) (part.Position - Character.HumanoidRootPart.Position).Magnitude <=
touch =
i, v , part:()
v:()
touch =
touch =
full = ..part:()
( .. part.Name .. .. ((part.Position - Character.HumanoidRootPart.Position).Magnitude) .. .. (part.Position.X) .. .. (part.Position.Y) .. .. (part.Position.Z) .. .. part.Parent.Name .. .. part.Parent.ClassName .. .. full .. .. (part.BrickColor) .. .. (touch) .. ..(part.Material):(, ))
msg.Text ==
:():(.PlaceId, :().LocalPlayer)
msg.Text ==
i, v , plrs:()
_, model , :()
model:() model.Name == v.Name
(model, i, v)
plrs.PlayerAdded:((player) k, val , :() val.Name == player.Name val:() (val.PrimaryPart, #plrsT + , player)
;
;
)
)
Features: • UNLIMITED Waypoints (Save and teleport) • Teleport to any player just by saying their index (number) in chat (check console for every index) • Simple to use and will have alot of features Notes: Waypoint names must only contain numbers. To refresh the player list or indexes if a player left or joins type rlist in chat How to use: • s(number) To save a waypoint • g(number) To teleport to a saved waypoint • d(number) To download a waypoint (Full code included) • rlist to refresh the player list • listwps to list waypoints check console after each command v1.1 changelogs: Made parts that act as waypoints (Waypoints are now visible from everywhere) Better code v1.2 changelogs: new command (nbps) Returns a table with information about nearby parts in a 10 stud distance another command (rj) rejoins the game v1.3 changelogs: Only made it so the script finds your character even if it's in an infinite loop of folders (Like Characters/Players/Blah/Blah/Your name) so it automatically finds it, it didn't do that before it just assumed your character was in the workspace not in folders Added another command, ;ioh make sure to add an ; before sending ioh Means Index Over Head, sho