
Keyless

-- SERVICES
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
-- PLAYER
local LocalPlayer = Players.LocalPlayer
local LatestRoom = game.ReplicatedStorage:WaitForChild("GameData"):WaitForChild("LatestRoom")
-- GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "RoomTrackerGui"
ScreenGui.Parent = game.CoreGui
local TextLabel = Instance.new("TextLabel")
TextLabel.Parent = ScreenGui
TextLabel.Size = UDim2.new(0, 350, 0, 100)
TextLabel.Position = UDim2.new(0.5, -175, 0, 20)
TextLabel.TextSize = 48
TextLabel.BackgroundTransparency = 1
TextLabel.TextStrokeTransparency = 0
TextLabel.TextStrokeColor3 = Color3.new(1, 1, 1)
TextLabel.TextColor3 = Color3.new(1, 1, 1)
TextLabel.Font = Enum.Font.SourceSansBold
TextLabel.Text = "Room: ?"
-- SAVED VALUE
local SavedRoom = Instance.new("IntValue")
SavedRoom.Name = "SavedRoom"
SavedRoom.Value = LatestRoom.Value
SavedRoom.Parent = LocalPlayer
-- UPDATE LABEL FROM LATESTROOM
LatestRoom:GetPropertyChangedSignal("Value"):Connect(function()
TextLabel.Text = "Room: " .. tostring(LatestRoom.Value)
end)
-- TELEPORT FUNCTION (to room model itself)
local function teleportToRoom(roomNumber)
local roomsFolder = workspace:FindFirstChild("CurrentRooms")
if not roomsFolder then return end
local roomModel = roomsFolder:FindFirstChild(tostring(roomNumber))
if not roomModel then return end
local part = roomModel.PrimaryPart or roomModel:FindFirstChildWhichIsA("BasePart")
if not part then return end
local char = LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
hrp.CFrame = part.CFrame + Vector3.new(0, 5, 0) -- small Y offset
end
-- AUTO-TELEPORT TOGGLE
local autoTeleport = false
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.X then
autoTeleport = not autoTeleport
print("Auto-Teleport is now:", autoTeleport and "ON" or "OFF")
end
end)
-- AUTO-TELEPORT LOOP
task.spawn(function()
local lastLabelRoom = LatestRoom.Value
local stuckTime = 0
while true do
if autoTeleport then
local currentLabel = LatestRoom.Value
if currentLabel ~= lastLabelRoom then
-- label changed → +1
SavedRoom.Value = currentLabel + 1
lastLabelRoom = currentLabel
stuckTime = 0
teleportToRoom(SavedRoom.Value)
else
stuckTime += 0.01
if stuckTime >= 3 then
-- label stuck too long → +1
SavedRoom.Value += 1
stuckTime = 0
lastLabelRoom = SavedRoom.Value
teleportToRoom(SavedRoom.Value)
else
-- normal teleport to saved room
teleportToRoom(SavedRoom.Value)
end
end
end
task.wait(0.01)
end
end)No comments yet for this script.