--// Glass Checker with Mobile Draggable GUI and Uncolor Feature //-- -- Services local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- GUI Setup local screenGui = Instance.new("ScreenGui") screenGui.Name = "GlassVisualizerGUI" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 180, 0, 80) frame.Position = UDim2.new(0.05, 0, 0.1, 0) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.BackgroundTransparency = 0.1 frame.BorderSizePixel = 0 frame.Active = true frame.Parent = screenGui local header = Instance.new("TextLabel") header.Text = "Glass Visualizer" header.Size = UDim2.new(1, 0, 0, 24) header.BackgroundTransparency = 1 header.TextColor3 = Color3.fromRGB(255,255,255) header.Font = Enum.Font.SourceSansBold header.TextSize = 16 header.Parent = frame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 60, 0, 28) toggleBtn.Position = UDim2.new(1, -70, 0, 26) toggleBtn.Text = "OFF" toggleBtn.Font = Enum.Font.SourceSansBold toggleBtn.TextSize = 14 toggleBtn.BackgroundColor3 = Color3.fromRGB(120,120,120) toggleBtn.TextColor3 = Color3.fromRGB(255,255,255) toggleBtn.Parent = frame -- Dragging logic local dragging, dragStart, startPos, dragInput local function update(input) 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 frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 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) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) -- Glass coloring logic local enabled = false local originalColors = {} -- Store original colors local function colorGlass(part) if not part:IsA("BasePart") then return end if not originalColors[part] then originalColors[part] = part.Color end local children = part:GetChildren() local onlyTouch = (#children == 1 and children[1]:IsA("TouchTransmitter")) if onlyTouch then part.Color = Color3.fromRGB(0, 255, 0) -- ✅ safe else part.Color = Color3.fromRGB(255, 0, 0) -- ❌ unsafe end end local function scanFolder(segment) local folder = segment:FindFirstChild("Folder") if folder then for _, part in ipairs(folder:GetChildren()) do colorGlass(part) end end end local function resetColors() for part, col in pairs(originalColors) do if part and part:IsA("BasePart") then part.Color = col end end end -- Find segment folder local segRoot = workspace:FindFirstChild("segmentSystem") local segFolder = segRoot and segRoot:FindFirstChild("Segments") if segFolder then -- Color all existing segments for _, seg in ipairs(segFolder:GetChildren()) do scanFolder(seg) end -- Listen for new segments segFolder.ChildAdded:Connect(function(seg) if enabled then scanFolder(seg) end end) end -- Toggle button toggleBtn.MouseButton1Click:Connect(function() enabled = not enabled toggleBtn.Text = enabled and "ON" or "OFF" toggleBtn.BackgroundColor3 = enabled and Color3.fromRGB(30,180,30) or Color3.fromRGB(120,120,120) if enabled then -- Loop to recolor constantly RunService.Heartbeat:Connect(function() if enabled and segFolder then for _, seg in ipairs(segFolder:GetChildren()) do scanFolder(seg) end end end) else resetColors() end end) while wait(0.1) do game.ReplicatedStorage.Remotes.ClaimReward:FireServer() end