
Key Required

--- BY GEMINI
local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
local entitiesFolder = Workspace:WaitForChild("Entities")
local roomsFolder = Workspace:WaitForChild("GeneratedRooms")
if CoreGui:FindFirstChild("DevEntityTracker") then
CoreGui.DevEntityTracker:Destroy()
end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "DevEntityTracker"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = CoreGui
local Settings = {
AutoOpen = false,
OpenDelay = 1000,
EntityESP = false,
DoorESP = false,
BoxESP = false,
TracersESP = false,
DistanceESP = false,
FullBright = false,
Notifications = true
}
local cache = {
Highlights = {},
Boxes = {},
Tracers = {},
Billboards = {}
}
local completedRoomNumbers = {}
local NotifContainer = Instance.new("Frame")
NotifContainer.Name = "NotifContainer"
NotifContainer.Size = UDim2.new(0, 280, 1, -40)
NotifContainer.Position = UDim2.new(1, -290, 0, 20)
NotifContainer.BackgroundTransparency = 1
NotifContainer.Parent = ScreenGui
local NotifLayout = Instance.new("UIListLayout")
NotifLayout.SortOrder = Enum.SortOrder.LayoutOrder
NotifLayout.Padding = UDim.new(0, 6)
NotifLayout.VerticalAlignment = Enum.VerticalAlignment.Top
NotifLayout.Parent = NotifContainer
local function playSpawnSound()
local Sound = Instance.new("Sound")
Sound.SoundId = "rbxassetid://7229097896"
Sound.Volume = 2.5
Sound.Parent = LocalPlayer:FindFirstChildWhichIsA("PlayerGui") or CoreGui
Sound:Play()
Debris:AddItem(Sound, 5)
end
local function showNotification(entityName)
task.spawn(playSpawnSound)
if not Settings.Notifications then return end
local NotifFrame = Instance.new("Frame")
NotifFrame.Size = UDim2.new(1, 0, 0, 42)
NotifFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
NotifFrame.BackgroundTransparency = 1
NotifFrame.BorderSizePixel = 0
NotifFrame.Parent = NotifContainer
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 6)
Corner.Parent = NotifFrame
local LeftBar = Instance.new("Frame")
LeftBar.Size = UDim2.new(0, 4, 1, 0)
LeftBar.BackgroundColor3 = Color3.fromRGB(255, 60, 60)
LeftBar.BackgroundTransparency = 1
LeftBar.BorderSizePixel = 0
LeftBar.Parent = NotifFrame
Instance.new("UICorner", LeftBar).CornerRadius = UDim.new(0, 6)
local TextLabel = Instance.new("TextLabel")
TextLabel.Size = UDim2.new(1, -15, 1, 0)
TextLabel.Position = UDim2.new(0, 12, 0, 0)
TextLabel.BackgroundTransparency = 1
TextLabel.Text = entityName .. " has spawned!"
TextLabel.TextColor3 = Color3.fromRGB(255, 70, 70)
TextLabel.TextSize = 14
TextLabel.Font = Enum.Font.SourceSansBold
TextLabel.TextXAlignment = Enum.TextXAlignment.Left
TextLabel.Parent = NotifFrame
TweenService:Create(NotifFrame, TweenInfo.new(0.3), {BackgroundTransparency = 0.1}):Play()
TweenService:Create(LeftBar, TweenInfo.new(0.3), {BackgroundTransparency = 0}):Play()
TweenService:Create(TextLabel, TweenInfo.new(0.3), {TextStrokeTransparency = 0}):Play()
task.delay(5, function()
if NotifFrame and NotifFrame.Parent then
local fadeOut1 = TweenService:Create(NotifFrame, TweenInfo.new(0.4), {BackgroundTransparency = 1})
local fadeOut2 = TweenService:Create(LeftBar, TweenInfo.new(0.4), {BackgroundTransparency = 1})
local fadeOut3 = TweenService:Create(TextLabel, TweenInfo.new(0.4), {TextStrokeTransparency = 1})
fadeOut1:Play()
fadeOut2:Play()
fadeOut3:Play()
fadeOut1.Completed:Connect(function()
NotifFrame:Destroy()
end)
end
end)
end
local function getRoomNumber(room)
if not room or not room.Name then return nil end
local numStr = room.Name:match("(%d+)")
return numStr and tonumber(numStr)
end
local function getDoorPart(room)
for _, child in ipairs(room:GetChildren()) do
if child:IsA("Model") or child:IsA("Folder") then
if child.Name:match("Door") then
local exactDoor = child:FindFirstChild("Door")
if exactDoor and exactDoor:IsA("BasePart") then
return exactDoor
end
end
end
end
local backupDoor = room:FindFirstChild("Door", true)
if backupDoor and backupDoor:IsA("BasePart") then
return backupDoor
end
return nil
end
local function getCurrentRoomNumber()
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then return 0 end
local closestRoomNum = 0
local minDistance = math.huge
for _, room in ipairs(roomsFolder:GetChildren()) do
local roomNum = getRoomNumber(room)
local doorPart = getDoorPart(room)
if roomNum and doorPart then
local dist = (root.Position - doorPart.Position).Magnitude
if dist < minDistance then
minDistance = dist
closestRoomNum = roomNum
end
end
end
return closestRoomNum
end
local function createWindow(name, size, pos, titleText, titleColor)
local Frame = Instance.new("Frame")
Frame.Name = name
Frame.Size = size
Frame.Position = pos
Frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
Frame.BorderSizePixel = 0
Frame.Active = true
Frame.Parent = ScreenGui
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 8)
Corner.Parent = Frame
local Header = Instance.new("Frame")
Header.Name = "Header"
Header.Size = UDim2.new(1, 0, 0, 40)
Header.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
Header.BorderSizePixel = 0
Header.Parent = Frame
local HeaderCorner = Instance.new("UICorner")
HeaderCorner.CornerRadius = UDim.new(0, 8)
HeaderCorner.Parent = Header
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -10, 1, 0)
Title.Position = UDim2.new(0, 10, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = titleText
Title.TextColor3 = titleColor
Title.TextSize = 16
Title.Font = Enum.Font.SourceSansBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Header
local dragging, dragInput, dragStart, startPos
Header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = Frame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
Header.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
Frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
return Frame
end
local TrackerFrame = createWindow("TrackerFrame", UDim2.new(0, 360, 0, 500), UDim2.new(0.05, 0, 0.2, 0), "ENTITY TRACKER", Color3.fromRGB(255, 60, 60))
local ControlFrame = createWindow("ControlFrame", UDim2.new(0, 280, 0, 460), UDim2.new(0.05, 380, 0.2, 0), "HORUHUB", Color3.fromRGB(60, 180, 255))
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Size = UDim2.new(1, -10, 1, -50)
ScrollFrame.Position = UDim2.new(0, 5, 0, 45)
ScrollFrame.BackgroundTransparency = 1
ScrollFrame.BorderSizePixel = 0
ScrollFrame.ScrollBarThickness = 6
ScrollFrame.Parent = TrackerFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 6)
UIListLayout.Parent = ScrollFrame
UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 10)
end)
local ControlContent = Instance.new("Frame")
ControlContent.Size = UDim2.new(1, -20, 1, -60)
ControlContent.Position = UDim2.new(0, 10, 0, 50)
ControlContent.BackgroundTransparency = 1
ControlContent.Parent = ControlFrame
local ControlLayout = Instance.new("UIListLayout")
ControlLayout.SortOrder = Enum.SortOrder.LayoutOrder
ControlLayout.Padding = UDim.new(0, 8)
ControlLayout.Parent = ControlContent
local function createToggle(settingName, text, defaultOn)
local Btn = Instance.new("TextButton")
Btn.Size = UDim2.new(1, 0, 0, 36)
Btn.BorderSizePixel = 0
Btn.Font = Enum.Font.SourceSansBold
Btn.TextSize = 14
Btn.Parent = ControlContent
local BtnCorner = Instance.new("UICorner")
BtnCorner.CornerRadius = UDim.new(0, 5)
BtnCorner.Parent = Btn
local function updateState()
if Settings[settingName] then
Btn.BackgroundColor3 = Color3.fromRGB(55, 75, 55)
Btn.TextColor3 = Color3.fromRGB(100, 255, 100)
Btn.Text = text .. " : ON"
else
Btn.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
Btn.TextColor3 = Color3.fromRGB(200, 200, 200)
Btn.Text = text .. " : OFF"
end
end
if defaultOn then Settings[settingName] = true end
updateState()
Btn.MouseButton1Click:Connect(function()
Settings[settingName] = not Settings[settingName]
if settingName == "AutoOpen" and not Settings.AutoOpen then
table.clear(completedRoomNumbers)
end
updateState()
end)
end
local function createDelayInput()
local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, 0, 0, 36)
Container.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
Container.BorderSizePixel = 0
Container.Parent = ControlContent
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 5)
Corner.Parent = Container
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(0.6, 0, 1, 0)
Label.Position = UDim2.new(0, 10, 0, 0)
Label.BackgroundTransparency = 1
Label.Text = "DELAY (MS):"
Label.TextColor3 = Color3.fromRGB(200, 200, 200)
Label.TextSize = 13
Label.Font = Enum.Font.SourceSansBold
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Container
local TextBox = Instance.new("TextBox")
TextBox.Size = UDim2.new(0.4, -15, 1, -8)
TextBox.Position = UDim2.new(0.6, 5, 0, 4)
TextBox.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
TextBox.BorderSizePixel = 0
TextBox.Text = tostring(Settings.OpenDelay)
TextBox.TextColor3 = Color3.fromRGB(60, 180, 255)
TextBox.TextSize = 14
TextBox.Font = Enum.Font.SourceSansBold
TextBox.ClearTextOnFocus = false
TextBox.Parent = Container
Instance.new("UICorner", TextBox).CornerRadius = UDim.new(0, 4)
TextBox.FocusLost:Connect(function(enterPressed)
local num = tonumber(TextBox.Text)
if num and num >= 0 then
Settings.OpenDelay = num
else
TextBox.Text = tostring(Settings.OpenDelay)
end
end)
end
createToggle("Notifications", "NOTIFICATIONS")
createToggle("AutoOpen", "DOOR TP")
createDelayInput()
createToggle("EntityESP", "ENTITY ESP (HIGHLIGHT)")
createToggle("DoorESP", "DOOR ESP (HIGHLIGHT)")
createToggle("BoxESP", "BOX ESP (ENTITIES ONLY, BROKEN)")
createToggle("TracersESP", "TRACERS (ENTITIES AND DOORS)")
createToggle("DistanceESP", "DISTANCE TEXT")
createToggle("FullBright", "FULLBRIGHT AND ANTI-FOG")
local activeRows = {}
local function createEntityRow(entity)
local Row = Instance.new("Frame")
Row.Size = UDim2.new(1, -8, 0, 36)
Row.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
Row.BorderSizePixel = 0
Row.LayoutOrder = 999999
local RowCorner = Instance.new("UICorner")
RowCorner.CornerRadius = UDim.new(0, 5)
RowCorner.Parent = Row
local NameLabel = Instance.new("TextLabel")
NameLabel.Size = UDim2.new(0.35, -5, 1, 0)
NameLabel.Position = UDim2.new(0, 8, 0, 0)
NameLabel.BackgroundTransparency = 1
NameLabel.Text = entity.Name
NameLabel.TextColor3 = Color3.fromRGB(240, 240, 240)
NameLabel.TextSize = 16
NameLabel.Font = Enum.Font.SourceSansBold
NameLabel.TextXAlignment = Enum.TextXAlignment.Left
NameLabel.Parent = Row
local SpeedLabel = Instance.new("TextLabel")
SpeedLabel.Size = UDim2.new(0.3, 0, 1, 0)
SpeedLabel.Position = UDim2.new(0.35, 0, 0, 0)
SpeedLabel.BackgroundTransparency = 1
SpeedLabel.Text = "0.0 m/s"
SpeedLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
SpeedLabel.TextSize = 15
SpeedLabel.Font = Enum.Font.SourceSansBold
SpeedLabel.TextXAlignment = Enum.TextXAlignment.Center
SpeedLabel.Parent = Row
local DistLabel = Instance.new("TextLabel")
DistLabel.Size = UDim2.new(0.35, -8, 1, 0)
DistLabel.Position = UDim2.new(0.65, 0, 0, 0)
DistLabel.BackgroundTransparency = 1
DistLabel.Text = "Inf m"
DistLabel.TextColor3 = Color3.fromRGB(255, 180, 0)
DistLabel.TextSize = 17
DistLabel.Font = Enum.Font.SourceSansBold
DistLabel.TextXAlignment = Enum.TextXAlignment.Right
DistLabel.Parent = Row
Row.Parent = ScrollFrame
activeRows[entity] = {
rowFrame = Row, distLabel = DistLabel, speedLabel = SpeedLabel,
lastDistance = nil, lastCheckTime = os.clock()
}
showNotification(entity.Name)
end
entitiesFolder.ChildAdded:Connect(function(c) task.wait(0.1) if not activeRows[c] then createEntityRow(c) end end)
entitiesFolder.ChildRemoved:Connect(function(c) if activeRows[c] then activeRows[c].rowFrame:Destroy() activeRows[c] = nil end end)
for _, ent in ipairs(entitiesFolder:GetChildren()) do createEntityRow(ent) end
task.spawn(function()
while true do
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local currentTime = os.clock()
for entity, uiData in pairs(activeRows) do
if entity and entity.Parent == entitiesFolder then
local entPart = entity.PrimaryPart or entity:FindFirstChildWhichIsA("BasePart")
if root and entPart then
local currentMeterDist = (root.Position - entPart.Position).Magnitude / 3.57
if uiData.lastDistance then
local deltaTime = currentTime - uiData.lastCheckTime
if deltaTime > 0 then
local distDifference = currentMeterDist - uiData.lastDistance
local speed = math.abs(distDifference) / deltaTime
if speed < 0.1 then
uiData.speedLabel.Text = "0.0 m/s"
uiData.speedLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
elseif distDifference < 0 then
uiData.speedLabel.Text = string.format("%.1f m/s", speed)
uiData.speedLabel.TextColor3 = Color3.fromRGB(255, 60, 60)
else
uiData.speedLabel.Text = string.format("%.1f m/s", speed)
uiData.speedLabel.TextColor3 = Color3.fromRGB(60, 255, 60)
end
end
end
uiData.lastDistance = currentMeterDist
uiData.lastCheckTime = currentTime
end
end
end
task.wait(0.1)
end
end)
local function applyHighlight(obj, key, color)
if not cache.Highlights[obj] then
local hl = Instance.new("Highlight")
hl.FillColor = color
hl.FillTransparency = 0.6
hl.OutlineColor = Color3.new(1, 1, 1)
hl.OutlineTransparency = 0
hl.Adornee = obj
hl.Parent = ScreenGui
cache.Highlights[obj] = hl
end
end
local function removeHighlight(obj)
if cache.Highlights[obj] then
cache.Highlights[obj]:Destroy()
cache.Highlights[obj] = nil
end
end
local function applyBillboard(obj, text, color)
if not cache.Billboards[obj] then
local bb = Instance.new("BillboardGui")
bb.Size = UDim2.new(0, 120, 0, 40)
bb.AlwaysOnTop = true
bb.StudsOffset = Vector3.new(0, 3, 0)
local tl = Instance.new("TextLabel")
tl.Size = UDim2.new(1, 0, 1, 0)
tl.BackgroundTransparency = 1
tl.Font = Enum.Font.SourceSansBold
tl.TextSize = 15
tl.Parent = bb
bb.Adornee = obj
bb.Parent = ScreenGui
cache.Billboards[obj] = {gui = bb, label = tl}
end
cache.Billboards[obj].label.Text = text
cache.Billboards[obj].label.TextColor3 = color
end
local function removeBillboard(obj)
if cache.Billboards[obj] then
cache.Billboards[obj].gui:Destroy()
cache.Billboards[obj] = nil
end
end
local function draw2DLine(key, p1, p2, color, thickness)
local line = cache.Tracers[key]
if not line then
line = Instance.new("Frame")
line.BorderSizePixel = 0
line.Parent = ScreenGui
cache.Tracers[key] = line
end
local distance = (p1 - p2).Magnitude
line.Size = UDim2.new(0, distance, 0, thickness)
line.Position = UDim2.new(0, (p1.X + p2.X) / 2 - distance / 2, 0, (p1.Y + p2.Y) / 2 - thickness / 2)
line.Rotation = math.deg(math.atan2(p2.Y - p1.Y, p2.X - p1.X))
line.BackgroundColor3 = color
line.Visible = true
end
local function draw2DBox(obj, color)
local box = cache.Boxes[obj]
if not box then
box = Instance.new("SelectionBox")
box.Color3 = color
box.LineThickness = 0.05
box.Parent = ScreenGui
cache.Boxes[obj] = box
end
box.Adornee = obj
box.Visible = true
end
local function executePureTeleport(room, targetNumber)
if completedRoomNumbers[targetNumber] then return end
if Settings.OpenDelay > 0 then
task.wait(Settings.OpenDelay / 1000)
end
while room and room.Parent == roomsFolder and Settings.AutoOpen do
local currentNum = getCurrentRoomNumber()
if currentNum >= targetNumber then
completedRoomNumbers[targetNumber] = true
break
end
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local doorPart = getDoorPart(room)
if root and doorPart then
root.CFrame = doorPart.CFrame * CFrame.new(0, 0, -0.5)
end
task.wait(0.05)
end
end
task.spawn(function()
while true do
if Settings.AutoOpen then
local currentNum = getCurrentRoomNumber()
local nextTargetNum = currentNum + 1
for _, room in ipairs(roomsFolder:GetChildren()) do
local rNum = getRoomNumber(room)
if rNum == nextTargetNum and not completedRoomNumbers[nextTargetNum] then
task.spawn(executePureTeleport, room, nextTargetNum)
break
end
end
end
task.wait(0.02)
end
end)
RunService.RenderStepped:Connect(function()
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if Settings.FullBright then
Lighting.Ambient = Color3.new(1, 1, 1)
Lighting.FogEnd = 999999
for _, obj in ipairs(Lighting:GetDescendants()) do
if obj:IsA("Atmosphere") then obj.Density = 0 end
end
end
for _, line in pairs(cache.Tracers) do line.Visible = false end
for _, box in pairs(cache.Boxes) do box.Visible = false end
for entity, uiData in pairs(activeRows) do
if entity and entity.Parent == entitiesFolder then
local entPart = entity.PrimaryPart or entity:FindFirstChildWhichIsA("BasePart")
if root and entPart then
local studDist = (root.Position - entPart.Position).Magnitude
local meterDistance = studDist / 3.57
uiData.distLabel.Text = string.format("%.1f m ", meterDistance)
uiData.rowFrame.LayoutOrder = math.clamp(math.floor(meterDistance * 100), -2147483648, 2147483647)
uiData.distLabel.TextColor3 = (meterDistance < 25) and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(255, 180, 0)
local entColor = (meterDistance < 25) and Color3.new(1, 0, 0) or Color3.new(1, 0.6, 0)
if Settings.EntityESP then
applyHighlight(entity, entity, entColor)
if Settings.BoxESP then draw2DBox(entPart, entColor) end
if Settings.DistanceESP then
applyBillboard(entPart, string.format("%s\n%.1fm", entity.Name, meterDistance), entColor)
else
removeBillboard(entPart)
end
if Settings.TracersESP then
local screenPos, onScreen = Camera:WorldToViewportPoint(entPart.Position)
if onScreen then
local startPoint = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
local endPoint = Vector2.new(screenPos.X, screenPos.Y)
draw2DLine(entity.Name, startPoint, endPoint, entColor, 2)
end
end
else
removeHighlight(entity)
removeBillboard(entPart)
end
end
else
removeHighlight(entity)
if entity then
local entPart = entity.PrimaryPart or entity:FindFirstChildWhichIsA("BasePart")
if entPart then removeBillboard(entPart) end
end
end
end
for _, room in ipairs(roomsFolder:GetChildren()) do
local doorPart = getDoorPart(room)
local rNum = getRoomNumber(room)
if doorPart and rNum then
if Settings.DoorESP and root then
local studDist = (root.Position - doorPart.Position).Magnitude
local meterDistance = studDist / 3.57
if meterDistance > 500 then
removeHighlight(doorPart)
removeBillboard(doorPart)
continue
end
local doorColor = Color3.new(0, 1, 0.2)
applyHighlight(doorPart, room.Name, doorColor)
if Settings.DistanceESP then
applyBillboard(doorPart, string.format("Room %d\n%.1fm", rNum, meterDistance), doorColor)
else
removeBillboard(doorPart)
end
if Settings.TracersESP then
local screenPos, onScreen = Camera:WorldToViewportPoint(doorPart.Position)
if onScreen then
local startPoint = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
local endPoint = Vector2.new(screenPos.X, screenPos.Y)
draw2DLine(room.Name, startPoint, endPoint, doorColor, 1.5)
end
end
else
removeHighlight(doorPart)
removeBillboard(doorPart)
end
end
end
end)
roomsFolder.ChildRemoved:Connect(function(room)
local rNum = getRoomNumber(room)
if rNum then completedRoomNumbers[rNum] = nil end
local doorPart = getDoorPart(room)
if doorPart then
removeHighlight(doorPart)
removeBillboard(doorPart)
end
end)No comments yet for this script.
