M
Description
Vibecoded to hell but it works pretty well, imo. I don't recommend using teamcheck, it's very buggy and doesn't work very well. Be very careful when esp-ing, just don't make yourself look suspicious. Tested with Solara
GAME[0.24.2] Deadline
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local HttpService = game:GetService("HttpService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local hasCoreGui, CoreGuiRef = pcall(function() return game:GetService("CoreGui") end)
local GUI_NAME = "Monolith"
if hasCoreGui and CoreGuiRef and CoreGuiRef:FindFirstChild(GUI_NAME) then
CoreGuiRef[GUI_NAME]:Destroy()
end
if PlayerGui:FindFirstChild(GUI_NAME) then
PlayerGui[GUI_NAME]:Destroy()
end
local configName = "Monolith_Config.json"
local teamCheckEnabled = true
local wallCheckEnabled = false
local espModes = {"Cham", "Box", "Outline"}
local currentModeIndex = 3
local currentMultiplier = 1.0
local function LoadSettings()
if isfile and isfile(configName) and readfile then
local success, result = pcall(function()
return HttpService:JSONDecode(readfile(configName))
end)
if success and type(result) == "table" then
if result.teamCheck ~= nil then teamCheckEnabled = result.teamCheck end
if result.wallCheck ~= nil then wallCheckEnabled = result.wallCheck end
if result.espMode ~= nil then currentModeIndex = math.clamp(result.espMode, 1, #espModes) end
if result.multiplier ~= nil then currentMultiplier = result.multiplier end
end
end
end
local function SaveSettings()
if writefile then
local settings = {
teamCheck = teamCheckEnabled,
wallCheck = wallCheckEnabled,
espMode = currentModeIndex,
multiplier = currentMultiplier
}
pcall(function() writefile(configName, HttpService:JSONEncode(settings)) end)
end
end
LoadSettings()
local screenGui = Instance.new("ScreenGui")
screenGui.Name = GUI_NAME
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Global
screenGui.DisplayOrder = 999999
local parentSuccess = false
if hasCoreGui and CoreGuiRef then
parentSuccess, _ = pcall(function() screenGui.Parent = CoreGuiRef end)
end
if not parentSuccess then screenGui.Parent = PlayerGui end
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 210, 0, 150)
mainFrame.Position = UDim2.new(0, 15, 1, -165)
mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Parent = screenGui
local mainStroke = Instance.new("UIStroke")
mainStroke.Color = Color3.fromRGB(240, 240, 240)
mainStroke.Thickness = 1
mainStroke.Parent = mainFrame
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -35, 0, 24)
titleLabel.Position = UDim2.new(0, 5, 0, 4)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "[ MONOLITH ]"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 11
titleLabel.Font = Enum.Font.Code
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = mainFrame
local minimizeBtn = Instance.new("TextButton")
minimizeBtn.Size = UDim2.new(0, 24, 0, 20)
minimizeBtn.Position = UDim2.new(1, -28, 0, 6)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Text = "_"
minimizeBtn.TextColor3 = Color3.fromRGB(240, 240, 240)
minimizeBtn.TextSize = 12
minimizeBtn.Font = Enum.Font.Code
minimizeBtn.Parent = mainFrame
local minStroke = Instance.new("UIStroke")
minStroke.Color = Color3.fromRGB(100, 100, 100)
minStroke.Thickness = 1
minStroke.Parent = minimizeBtn
local containerFrame = Instance.new("Frame")
containerFrame.Name = "Container"
containerFrame.Size = UDim2.new(1, 0, 1, -28)
containerFrame.Position = UDim2.new(0, 0, 0, 28)
containerFrame.BackgroundTransparency = 1
containerFrame.Parent = mainFrame
local teamCheckBtn = Instance.new("TextButton")
teamCheckBtn.Size = UDim2.new(1, -10, 0, 22)
teamCheckBtn.Position = UDim2.new(0, 5, 0, 5)
teamCheckBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
teamCheckBtn.BorderSizePixel = 0
teamCheckBtn.Text = " TEAMCHECK (BUGGY, NOT RECOMMENDED)"
teamCheckBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
teamCheckBtn.TextSize = 9
teamCheckBtn.Font = Enum.Font.Code
teamCheckBtn.TextXAlignment = Enum.TextXAlignment.Left
teamCheckBtn.Parent = containerFrame
local teamStroke = Instance.new("UIStroke")
teamStroke.Color = Color3.fromRGB(100, 100, 100)
teamStroke.Thickness = 1
teamStroke.Parent = teamCheckBtn
local teamIndicator = Instance.new("Frame")
teamIndicator.Size = UDim2.new(0, 4, 0, 14)
teamIndicator.AnchorPoint = Vector2.new(1, 0.5)
teamIndicator.Position = UDim2.new(1, -5, 0.5, 0)
teamIndicator.BorderSizePixel = 0
teamIndicator.Parent = teamCheckBtn
local wallCheckBtn = Instance.new("TextButton")
wallCheckBtn.Size = UDim2.new(1, -10, 0, 22)
wallCheckBtn.Position = UDim2.new(0, 5, 0, 31)
wallCheckBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
wallCheckBtn.BorderSizePixel = 0
wallCheckBtn.Text = " WALLCHECK"
wallCheckBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
wallCheckBtn.TextSize = 10
wallCheckBtn.Font = Enum.Font.Code
wallCheckBtn.TextXAlignment = Enum.TextXAlignment.Left
wallCheckBtn.Parent = containerFrame
local wallStroke = Instance.new("UIStroke")
wallStroke.Color = Color3.fromRGB(100, 100, 100)
wallStroke.Thickness = 1
wallStroke.Parent = wallCheckBtn
local wallIndicator = Instance.new("Frame")
wallIndicator.Size = UDim2.new(0, 4, 0, 14)
wallIndicator.AnchorPoint = Vector2.new(1, 0.5)
wallIndicator.Position = UDim2.new(1, -5, 0.5, 0)
wallIndicator.BorderSizePixel = 0
wallIndicator.Parent = wallCheckBtn
local modeBtn = Instance.new("TextButton")
modeBtn.Size = UDim2.new(1, -10, 0, 22)
modeBtn.Position = UDim2.new(0, 5, 0, 57)
modeBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
modeBtn.BorderSizePixel = 0
modeBtn.Text = " ESP MODE: [OUTLINE]"
modeBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
modeBtn.TextSize = 10
modeBtn.Font = Enum.Font.Code
modeBtn.TextXAlignment = Enum.TextXAlignment.Left
modeBtn.Parent = containerFrame
local modeStroke = Instance.new("UIStroke")
modeStroke.Color = Color3.fromRGB(100, 100, 100)
modeStroke.Thickness = 1
modeStroke.Parent = modeBtn
local headLabel = Instance.new("TextLabel")
headLabel.Size = UDim2.new(1, -50, 0, 18)
headLabel.Position = UDim2.new(0, 5, 0, 85)
headLabel.BackgroundTransparency = 1
headLabel.Text = " HEAD SCALER:"
headLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
headLabel.TextSize = 10
headLabel.Font = Enum.Font.Code
headLabel.TextXAlignment = Enum.TextXAlignment.Left
headLabel.Parent = containerFrame
local valueLabel = Instance.new("TextLabel")
valueLabel.Size = UDim2.new(0, 40, 0, 18)
valueLabel.Position = UDim2.new(1, -45, 0, 85)
valueLabel.BackgroundTransparency = 1
valueLabel.Text = "1.0X"
valueLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
valueLabel.TextSize = 10
valueLabel.Font = Enum.Font.Code
valueLabel.TextXAlignment = Enum.TextXAlignment.Right
valueLabel.Parent = containerFrame
local sliderTrack = Instance.new("Frame")
sliderTrack.Size = UDim2.new(1, -10, 0, 6)
sliderTrack.Position = UDim2.new(0, 5, 0, 109)
sliderTrack.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
sliderTrack.BorderSizePixel = 0
sliderTrack.Parent = containerFrame
local trackStroke = Instance.new("UIStroke")
trackStroke.Color = Color3.fromRGB(80, 80, 80)
trackStroke.Thickness = 1
trackStroke.Parent = sliderTrack
local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.new(0, 0, 1, 0)
sliderFill.BackgroundColor3 = Color3.fromRGB(240, 240, 240)
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderTrack
local sliderButton = Instance.new("TextButton")
sliderButton.Size = UDim2.new(0, 8, 0, 14)
sliderButton.AnchorPoint = Vector2.new(0.5, 0.5)
sliderButton.Position = UDim2.new(0, 0, 0.5, 0)
sliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderButton.BorderSizePixel = 0
sliderButton.Text = ""
sliderButton.Parent = sliderTrack
local function applySettingsToUI()
teamIndicator.BackgroundColor3 = teamCheckEnabled and Color3.fromRGB(80, 220, 80) or Color3.fromRGB(220, 80, 80)
wallIndicator.BackgroundColor3 = wallCheckEnabled and Color3.fromRGB(80, 220, 80) or Color3.fromRGB(220, 80, 80)
modeBtn.Text = " ESP MODE: [" .. string.upper(espModes[currentModeIndex]) .. "]"
valueLabel.Text = string.format("%.1fX", currentMultiplier)
local scale = math.clamp((currentMultiplier - 1) / 4, 0, 1)
sliderButton.Position = UDim2.new(scale, 0, 0.5, 0)
sliderFill.Size = UDim2.new(scale, 0, 1, 0)
end
applySettingsToUI()
local MAX_DISTANCE = 500
local WSP = workspace
local CharFolder = WSP:WaitForChild("characters")
local Ignore = WSP:FindFirstChild("ignore")
local ESPCache = {}
local OriginalHeadSizes = {}
local CachedIndicators = {}
local throttleTick = 0
local localPlayerFolderID = tostring(LocalPlayer.UserId)
local function ScanFriendlyIndicators()
table.clear(CachedIndicators)
if not teamCheckEnabled then return end
local pGui = LocalPlayer:FindFirstChild("PlayerGui")
if not pGui then return end
local count = 0
local descendants = pGui:GetDescendants()
for i = 1, #descendants do
if count >= 40 then break end
local gui = descendants[i]
if not gui:IsA("GuiObject") or not gui.Visible then continue end
local size = gui.AbsoluteSize
if size.X <= 0 or size.Y <= 0 or size.X >= 20 or size.Y >= 20 then continue end
local isIndicator = false
if gui:IsA("Frame") and gui.BackgroundTransparency < 0.9 then
local col = gui.BackgroundColor3
if col.G > 0.5 or col.B > 0.5 then isIndicator = true end
elseif gui:IsA("ImageLabel") and gui.ImageTransparency < 0.5 and gui.Image ~= "" then
isIndicator = true
end
if isIndicator then
local pos = gui.AbsolutePosition
count = count + 1
CachedIndicators[count] = Vector2.new(pos.X + size.X/2, pos.Y + size.Y/2)
end
end
end
local function isVisible(targetPart)
if not wallCheckEnabled then return true end
local origin = Camera.CFrame.Position
local direction = (targetPart.Position - origin)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.IgnoreWater = true
local filterList = {}
if LocalPlayer.Character then table.insert(filterList, LocalPlayer.Character) end
raycastParams.FilterDescendantsInstances = filterList
local result = workspace:Raycast(origin, direction, raycastParams)
if result and not result.Instance:IsDescendantOf(targetPart.Parent) then
return false
end
return true
end
local function Cleanup(m)
if ESPCache[m] then
if ESPCache[m].Highlight then ESPCache[m].Highlight:Destroy() end
if ESPCache[m].Box then ESPCache[m].Box:Remove() end
ESPCache[m] = nil
end
end
local function SetupESP(m)
if not m:IsA("Model") then return end
if m.Name == localPlayerFolderID or (LocalPlayer.Character and m == LocalPlayer.Character) then return end
if Ignore and m:IsDescendantOf(Ignore) then return end
if not m:WaitForChild("humanoid_root_part", 1) then return end
if not ESPCache[m] then
local H = Instance.new("Highlight")
H.Name = "AnalogESP"
H.Adornee = m
H.FillColor = Color3.new(1, 1, 1)
H.FillTransparency = 0.5
H.OutlineTransparency = 0
H.Parent = m
local Box = Drawing.new("Square")
Box.Thickness = 1.5
Box.Filled = false
Box.Color = Color3.fromRGB(240, 240, 240)
Box.Visible = false
ESPCache[m] = { Highlight = H, Box = Box }
end
m.AncestryChanged:Connect(function(_, p)
if not p then Cleanup(m) end
end)
end
CharFolder.ChildAdded:Connect(function(c) task.wait(0.1) SetupESP(c) end)
CharFolder.ChildRemoved:Connect(Cleanup)
for _, c in ipairs(CharFolder:GetChildren()) do SetupESP(c) end
RunService.RenderStepped:Connect(function()
throttleTick = throttleTick + 1
if throttleTick % 15 == 0 then
ScanFriendlyIndicators()
end
local mode = espModes[currentModeIndex]
local camPos = Camera.CFrame.Position
for m, espData in pairs(ESPCache) do
if m and m.Parent then
local hrp = m:FindFirstChild("humanoid_root_part")
if hrp then
local screenPos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
local distance = (hrp.Position - camPos).Magnitude
local isFriendly = false
if teamCheckEnabled then
local targetPlayer = Players:FindFirstChild(m.Name)
if targetPlayer and LocalPlayer.Team and targetPlayer.Team == LocalPlayer.Team then
isFriendly = true
elseif onScreen and screenPos.Z > 0 then
local sPos2D = Vector2.new(screenPos.X, screenPos.Y)
for i = 1, #CachedIndicators do
if (CachedIndicators[i] - sPos2D).Magnitude < 120 then
isFriendly = true
break
end
end
end
end
if isFriendly or distance > MAX_DISTANCE or not onScreen or screenPos.Z <= 0 then
espData.Highlight.Enabled = false
espData.Box.Visible = false
else
local visible = isVisible(hrp)
local baseColor = visible and Color3.fromRGB(240, 240, 240) or Color3.fromRGB(80, 80, 80)
if mode == "Box" then
espData.Highlight.Enabled = false
local baseHeight = 1200 / math.max(screenPos.Z, 1)
local boxH = math.clamp(baseHeight, 20, 600)
local boxW = boxH * 0.55
espData.Box.Size = Vector2.new(boxW, boxH)
espData.Box.Position = Vector2.new(screenPos.X - boxW/2, screenPos.Y - boxH/2)
espData.Box.Color = baseColor
espData.Box.Visible = true
else
espData.Box.Visible = false
espData.Highlight.Enabled = true
espData.Highlight.FillColor = baseColor
if mode == "Cham" then
espData.Highlight.FillTransparency = 0.5
espData.Highlight.OutlineTransparency = 0
elseif mode == "Outline" then
espData.Highlight.FillTransparency = 1.0
espData.Highlight.OutlineTransparency = 0
end
end
end
end
else
Cleanup(m)
end
end
if throttleTick % 3 == 0 then
for m, espData in pairs(ESPCache) do
if m and m.Parent and (espData.Highlight.Enabled or espData.Box.Visible) then
for _, descendant in ipairs(m:GetDescendants()) do
if descendant:IsA("BasePart") and descendant.Name:lower() == "head" then
if not OriginalHeadSizes[descendant] then
OriginalHeadSizes[descendant] = descendant.Size
end
pcall(function()
descendant.Size = OriginalHeadSizes[descendant] * currentMultiplier
end)
end
end
end
end
end
end)
local isMinimized = false
minimizeBtn.MouseButton1Click:Connect(function()
isMinimized = not isMinimized
if isMinimized then
containerFrame.Visible = false
minimizeBtn.Text = "+"
TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 210, 0, 28),
Position = UDim2.new(0, 15, 1, -43)
}):Play()
else
containerFrame.Visible = true
minimizeBtn.Text = "_"
TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Size = UDim2.new(0, 210, 0, 150),
Position = UDim2.new(0, 15, 1, -165)
}):Play()
end
end)
teamCheckBtn.MouseButton1Click:Connect(function()
teamCheckEnabled = not teamCheckEnabled
teamIndicator.BackgroundColor3 = teamCheckEnabled and Color3.fromRGB(80, 220, 80) or Color3.fromRGB(220, 80, 80)
SaveSettings()
end)
wallCheckBtn.MouseButton1Click:Connect(function()
wallCheckEnabled = not wallCheckEnabled
wallIndicator.BackgroundColor3 = wallCheckEnabled and Color3.fromRGB(80, 220, 80) or Color3.fromRGB(220, 80, 80)
SaveSettings()
end)
modeBtn.MouseButton1Click:Connect(function()
currentModeIndex = currentModeIndex % #espModes + 1
modeBtn.Text = " ESP MODE: [" .. string.upper(espModes[currentModeIndex]) .. "]"
SaveSettings()
end)
local function updateScale(multiplier)
currentMultiplier = math.floor(multiplier * 10 + 0.5) / 10
valueLabel.Text = string.format("%.1fX", currentMultiplier)
end
local dragging = false
sliderButton.MouseButton1Down:Connect(function() dragging = true end)
sliderTrack.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
local scale = math.clamp((input.Position.X - sliderTrack.AbsolutePosition.X) / sliderTrack.AbsoluteSize.X, 0, 1)
sliderButton.Position = UDim2.new(scale, 0, 0.5, 0)
sliderFill.Size = UDim2.new(scale, 0, 1, 0)
updateScale(1 + (scale * 4))
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
SaveSettings()
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local scale = math.clamp((input.Position.X - sliderTrack.AbsolutePosition.X) / sliderTrack.AbsoluteSize.X, 0, 1)
sliderButton.Position = UDim2.new(scale, 0, 0.5, 0)
sliderFill.Size = UDim2.new(scale, 0, 1, 0)
updateScale(1 + (scale * 4))
end
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place