Ready made midnight c2 GUI
Key RequiredUniversal

Ready made midnight c2 GUI

Universal Scriptphreshboyswagphreshboyswag 646 views 153 executesUpdated May 26, 2026
Unrated
00
Lua Script•405 lines (9676 chars)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local oldGui = playerGui:FindFirstChild("MidnightRobloxGui")
if oldGui then
	oldGui:Destroy()
end

local COLORS = {
	Background = Color3.fromRGB(8, 10, 18),
	Panel = Color3.fromRGB(17, 20, 34),
	PanelLight = Color3.fromRGB(25, 29, 48),
	PanelSoft = Color3.fromRGB(20, 24, 40),
	Border = Color3.fromRGB(45, 49, 70),
	Text = Color3.fromRGB(232, 235, 250),
	Muted = Color3.fromRGB(126, 132, 160),
	Accent = Color3.fromRGB(112, 92, 255),
	Accent2 = Color3.fromRGB(54, 213, 255),
	Dark = Color3.fromRGB(8, 10, 20)
}

local activeTab = "AIM"
local tabs = { "AIM", "ESP", "MOVEMENT" }
local tabButtons = {}

local function create(className, props, parent)
	local object = Instance.new(className)

	for property, value in pairs(props or {}) do
		object[property] = value
	end

	if parent then
		object.Parent = parent
	end

	return object
end

local function addCorner(parent, radius)
	create("UICorner", {
		CornerRadius = UDim.new(0, radius or 10)
	}, parent)
end

local function addStroke(parent, color, thickness, transparency)
	create("UIStroke", {
		Color = color or COLORS.Border,
		Thickness = thickness or 1,
		Transparency = transparency or 0
	}, parent)
end

local function addPadding(parent, left, right, top, bottom)
	create("UIPadding", {
		PaddingLeft = UDim.new(0, left or 0),
		PaddingRight = UDim.new(0, right or 0),
		PaddingTop = UDim.new(0, top or 0),
		PaddingBottom = UDim.new(0, bottom or 0)
	}, parent)
end

local function tween(object, props, time)
	TweenService:Create(
		object,
		TweenInfo.new(time or 0.16, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
		props
	):Play()
end

local gui = create("ScreenGui", {
	Name = "MidnightRobloxGui",
	ResetOnSpawn = false,
	IgnoreGuiInset = true
}, playerGui)

local main = create("Frame", {
	Name = "Main",
	Size = UDim2.fromOffset(920, 560),
	Position = UDim2.fromScale(0.5, 0.5),
	AnchorPoint = Vector2.new(0.5, 0.5),
	BackgroundColor3 = COLORS.Background,
	BorderSizePixel = 0
}, gui)

addCorner(main, 18)

create("UIGradient", {
	Color = ColorSequence.new({
		ColorSequenceKeypoint.new(0, Color3.fromRGB(8, 12, 22)),
		ColorSequenceKeypoint.new(0.55, Color3.fromRGB(8, 10, 18)),
		ColorSequenceKeypoint.new(1, Color3.fromRGB(16, 16, 42))
	}),
	Rotation = 25
}, main)

local glowTop = create("Frame", {
	Size = UDim2.fromOffset(280, 280),
	Position = UDim2.new(1, -190, 0, -150),
	BackgroundColor3 = COLORS.Accent,
	BackgroundTransparency = 0.88,
	BorderSizePixel = 0
}, main)

addCorner(glowTop, 150)

local glowBottom = create("Frame", {
	Size = UDim2.fromOffset(320, 320),
	Position = UDim2.fromOffset(-135, 410),
	BackgroundColor3 = COLORS.Accent2,
	BackgroundTransparency = 0.92,
	BorderSizePixel = 0
}, main)

addCorner(glowBottom, 170)

local sidebar = create("Frame", {
	Name = "Sidebar",
	Size = UDim2.fromOffset(180, 512),
	Position = UDim2.fromOffset(24, 24),
	BackgroundColor3 = COLORS.Panel,
	BorderSizePixel = 0
}, main)

addCorner(sidebar, 18)
addStroke(sidebar, COLORS.Border, 1, 0)

create("TextLabel", {
	Size = UDim2.fromOffset(140, 28),
	Position = UDim2.fromOffset(26, 26),
	BackgroundTransparency = 1,
	Text = "MIDNIGHT",
	TextColor3 = COLORS.Text,
	TextSize = 20,
	Font = Enum.Font.GothamBold,
	TextXAlignment = Enum.TextXAlignment.Left
}, sidebar)

create("TextLabel", {
	Size = UDim2.fromOffset(140, 20),
	Position = UDim2.fromOffset(26, 55),
	BackgroundTransparency = 1,
	Text = "ROBLOX UI MOCKUP",
	TextColor3 = COLORS.Muted,
	TextSize = 11,
	Font = Enum.Font.Gotham,
	TextXAlignment = Enum.TextXAlignment.Left
}, sidebar)

local titleLine = create("Frame", {
	Size = UDim2.fromOffset(90, 3),
	Position = UDim2.fromOffset(26, 84),
	BackgroundColor3 = COLORS.Accent,
	BorderSizePixel = 0
}, sidebar)

addCorner(titleLine, 3)

local tabContainer = create("Frame", {
	Size = UDim2.fromOffset(144, 210),
	Position = UDim2.fromOffset(18, 118),
	BackgroundTransparency = 1
}, sidebar)

create("TextLabel", {
	Size = UDim2.fromOffset(140, 20),
	Position = UDim2.fromOffset(26, 432),
	BackgroundTransparency = 1,
	Text = "visual prototype",
	TextColor3 = COLORS.Muted,
	TextSize = 12,
	Font = Enum.Font.Gotham,
	TextXAlignment = Enum.TextXAlignment.Left
}, sidebar)

create("TextLabel", {
	Size = UDim2.fromOffset(140, 20),
	Position = UDim2.fromOffset(26, 454),
	BackgroundTransparency = 1,
	Text = "no game functions",
	TextColor3 = COLORS.Muted,
	TextSize = 12,
	Font = Enum.Font.Gotham,
	TextXAlignment = Enum.TextXAlignment.Left
}, sidebar)

local smallTitle = create("TextLabel", {
	Name = "SmallTitle",
	Size = UDim2.fromOffset(240, 20),
	Position = UDim2.fromOffset(236, 38),
	BackgroundTransparency = 1,
	Text = "Roblox",
	TextColor3 = COLORS.Muted,
	TextSize = 14,
	Font = Enum.Font.Gotham,
	TextXAlignment = Enum.TextXAlignment.Left
}, main)

local bigTitle = create("TextLabel", {
	Name = "BigTitle",
	Size = UDim2.fromOffset(420, 34),
	Position = UDim2.fromOffset(236, 62),
	BackgroundTransparency = 1,
	Text = activeTab .. " SETTINGS",
	TextColor3 = COLORS.Text,
	TextSize = 23,
	Font = Enum.Font.GothamBold,
	TextXAlignment = Enum.TextXAlignment.Left
}, main)

local content = create("Frame", {
	Name = "Content",
	Size = UDim2.fromOffset(650, 420),
	Position = UDim2.fromOffset(236, 112),
	BackgroundTransparency = 1
}, main)

local function clearContent()
	for _, child in ipairs(content:GetChildren()) do
		child:Destroy()
	end
end

local function createEmptyField(name, y, height)
	local wrapper = create("Frame", {
		Name = name,
		Size = UDim2.new(1, 0, 0, height),
		Position = UDim2.fromOffset(0, y),
		BackgroundTransparency = 1
	}, content)

	local accentBar = create("Frame", {
		Size = UDim2.new(0, 4, 1, 0),
		Position = UDim2.fromOffset(0, 0),
		BackgroundColor3 = COLORS.Accent,
		BorderSizePixel = 0
	}, wrapper)

	addCorner(accentBar, 6)

	local field = create("Frame", {
		Size = UDim2.new(1, -8, 1, 0),
		Position = UDim2.fromOffset(8, 0),
		BackgroundColor3 = COLORS.Panel,
		BorderSizePixel = 0
	}, wrapper)

	addCorner(field, 14)
	addStroke(field, COLORS.Border, 1, 0)

	create("UIGradient", {
		Color = ColorSequence.new({
			ColorSequenceKeypoint.new(0, Color3.fromRGB(19, 22, 38)),
			ColorSequenceKeypoint.new(0.5, Color3.fromRGB(17, 20, 34)),
			ColorSequenceKeypoint.new(1, Color3.fromRGB(14, 17, 30))
		}),
		Rotation = 25
	}, field)

	return wrapper
end

local function updateTabs()
	for tabName, button in pairs(tabButtons) do
		local selected = tabName == activeTab

		tween(button, {
			BackgroundTransparency = selected and 0 or 1,
			BackgroundColor3 = selected and COLORS.Accent or COLORS.Panel
		}, 0.16)

		button.TextColor3 = selected and COLORS.Text or COLORS.Muted

		local bar = button:FindFirstChild("Bar")
		if bar then
			bar.Visible = selected
		end
	end

	bigTitle.Text = activeTab .. " SETTINGS"
end

local function renderContent()
	clearContent()

	createEmptyField(activeTab .. "_Field_1", 0, 240)
	createEmptyField(activeTab .. "_Field_2", 270, 160)

	updateTabs()
end

local function createTabButton(tabName, index)
	local button = create("TextButton", {
		Name = tabName,
		Size = UDim2.fromOffset(144, 42),
		Position = UDim2.fromOffset(0, (index - 1) * 58),
		BackgroundColor3 = COLORS.Accent,
		BackgroundTransparency = tabName == activeTab and 0 or 1,
		BorderSizePixel = 0,
		Text = tabName,
		TextColor3 = tabName == activeTab and COLORS.Text or COLORS.Muted,
		TextSize = 15,
		Font = Enum.Font.GothamBold,
		TextXAlignment = Enum.TextXAlignment.Left,
		AutoButtonColor = false
	}, tabContainer)

	addCorner(button, 12)
	addPadding(button, 40, 0, 0, 0)

	create("UIGradient", {
		Color = ColorSequence.new({
			ColorSequenceKeypoint.new(0, Color3.fromRGB(102, 86, 245)),
			ColorSequenceKeypoint.new(1, Color3.fromRGB(122, 94, 255))
		}),
		Rotation = 0
	}, button)

	local bar = create("Frame", {
		Name = "Bar",
		Size = UDim2.fromOffset(4, 42),
		Position = UDim2.fromOffset(22, 0),
		BackgroundColor3 = COLORS.Accent2,
		BorderSizePixel = 0,
		Visible = tabName == activeTab
	}, button)

	addCorner(bar, 8)

	button.MouseEnter:Connect(function()
		if activeTab ~= tabName then
			tween(button, {
				TextColor3 = COLORS.Text
			}, 0.12)
		end
	end)

	button.MouseLeave:Connect(function()
		if activeTab ~= tabName then
			tween(button, {
				TextColor3 = COLORS.Muted
			}, 0.12)
		end
	end)

	button.MouseButton1Click:Connect(function()
		activeTab = tabName
		renderContent()
	end)

	tabButtons[tabName] = button
end

for index, tabName in ipairs(tabs) do
	createTabButton(tabName, index)
end

-- Window dragging
local dragging = false
local dragStart
local startPos

main.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = true
		dragStart = input.Position
		startPos = main.Position
	end
end)

main.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		dragging = false
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
		local delta = input.Position - dragStart

		main.Position = UDim2.new(
			startPos.X.Scale,
			startPos.X.Offset + delta.X,
			startPos.Y.Scale,
			startPos.Y.Offset + delta.Y
		)
	end
end)

-- Toggle menu with RightShift
UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then
		return
	end

	if input.KeyCode == Enum.KeyCode.RightShift then
		main.Visible = not main.Visible
	end
end)

renderContent()

Features & Information

Ready-made midnight c2 graphical interface with AIM, ESP, and MOVEMENT tabs. !NO FUNCTIONS! opens and closes on RightShift
#GUI

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts