Victoredits
Key Required

Victoredits

qaxdrfvgyhnujm's Placeapknendapknend 31 views 1.7K executesUpdated Jul 13, 2026
Unrated
00
Lua Script•472 lines (15841 chars)
-- VICTOR HUB — GUI Moderno, Arrastrable con Minimizar
-- LocalScript en StarterGui

local Players      = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local RunService   = game:GetService("RunService")
local UIS          = game:GetService("UserInputService")

local player = Players.LocalPlayer
local pGui   = player:WaitForChild("PlayerGui")
local char   = player.Character or player.CharacterAdded:Wait()

-- ══════════════════════════════════════════════
-- COLORES
-- ══════════════════════════════════════════════

local C = {
	BG      = Color3.fromRGB(8, 12, 22),
	PANEL   = Color3.fromRGB(12, 18, 35),
	HEADER  = Color3.fromRGB(20, 30, 55),
	ACCENT  = Color3.fromRGB(110, 60, 240),
	ACCENT2 = Color3.fromRGB(60, 180, 255),
	TEXT    = Color3.fromRGB(230, 225, 255),
	TEXTDIM = Color3.fromRGB(130, 120, 170),
	DANGER  = Color3.fromRGB(220, 40, 60),
	SUCCESS = Color3.fromRGB(50, 200, 110),
}

-- ══════════════════════════════════════════════
-- HELPERS
-- ══════════════════════════════════════════════

local function addCorner(p, r)
	local c = Instance.new("UICorner", p)
	c.CornerRadius = UDim.new(0, r or 10)
	return c
end

local function addStroke(p, col, th)
	local s = Instance.new("UIStroke", p)
	s.Color = col
	s.Thickness = th or 1.5
	return s
end

local function addGradient(p, c0, c1, rot)
	local g = Instance.new("UIGradient", p)
	g.Color = ColorSequence.new({
		ColorSequenceKeypoint.new(0, c0),
		ColorSequenceKeypoint.new(1, c1),
	})
	g.Rotation = rot or 90
	return g
end

-- ══════════════════════════════════════════════
-- SCREENGUI
-- ══════════════════════════════════════════════

local SG = Instance.new("ScreenGui")
SG.Name           = "VictorHub"
SG.ResetOnSpawn   = false
SG.IgnoreGuiInset = true
SG.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
SG.Parent         = pGui

-- ══════════════════════════════════════════════
-- PANEL PRINCIPAL
-- ══════════════════════════════════════════════

local PW, PH = 420, 520

local Panel = Instance.new("Frame")
Panel.Name            = "VictorHubPanel"
Panel.Size            = UDim2.new(0, PW, 0, PH)
Panel.Position        = UDim2.new(0.5, -PW/2, 0.5, -PH/2)
Panel.BackgroundColor3= C.BG
Panel.BorderSizePixel = 0
Panel.ZIndex          = 50
Panel.Active          = true
Panel.Parent          = SG
addCorner(Panel, 18)
addGradient(Panel, Color3.fromRGB(15, 20, 40), Color3.fromRGB(8, 10, 25), 140)
addStroke(Panel, C.ACCENT, 2.5)

-- ── HEADER ──────────────────────────────────

local Header = Instance.new("TextButton")
Header.Size             = UDim2.new(1, 0, 0, 50)
Header.BackgroundColor3 = C.HEADER
Header.BorderSizePixel  = 0
Header.Text             = ""
Header.AutoButtonColor  = false
Header.ZIndex           = 51
Header.Active           = true
Header.Parent           = Panel
addCorner(Header, 18)

local hFix = Instance.new("Frame", Header)
hFix.Size             = UDim2.new(1, 0, 0.5, 0)
hFix.Position         = UDim2.new(0, 0, 0.5, 0)
hFix.BackgroundColor3 = C.HEADER
hFix.BorderSizePixel  = 0
hFix.ZIndex           = 51

-- Ícono
local hIcon = Instance.new("TextLabel", Header)
hIcon.Size               = UDim2.new(0, 44, 1, 0)
hIcon.Position           = UDim2.new(0, 10, 0, 0)
hIcon.BackgroundTransparency = 1
hIcon.Text               = "⚡"
hIcon.TextSize           = 26
hIcon.Font               = Enum.Font.GothamBold
hIcon.TextColor3         = C.ACCENT2
hIcon.ZIndex             = 52

-- Título
local hTitle = Instance.new("TextLabel", Header)
hTitle.Size              = UDim2.new(1, -110, 1, 0)
hTitle.Position          = UDim2.new(0, 56, 0, 0)
hTitle.BackgroundTransparency = 1
hTitle.Text              = "VICTOR HUB"
hTitle.TextColor3        = C.TEXT
hTitle.TextSize          = 18
hTitle.Font              = Enum.Font.GothamBold
hTitle.TextXAlignment    = Enum.TextXAlignment.Left
hTitle.ZIndex            = 52

-- Gradiente en título
local tg = Instance.new("UIGradient", hTitle)
tg.Color = ColorSequence.new({
	ColorSequenceKeypoint.new(0,    Color3.fromRGB(255, 100, 200)),
	ColorSequenceKeypoint.new(0.5,  Color3.fromRGB(100, 200, 255)),
	ColorSequenceKeypoint.new(1,    Color3.fromRGB(100, 255, 150)),
})
tg.Rotation = 0

-- Animar gradiente
task.spawn(function()
	local r = 0
	while hTitle and hTitle.Parent do
		r = (r + 1.5) % 360
		tg.Rotation = r
		task.wait(0.04)
	end
end)

-- Botón minimizar
local MinBtn = Instance.new("TextButton", Header)
MinBtn.Size             = UDim2.new(0, 32, 0, 32)
MinBtn.Position         = UDim2.new(1, -74, 0.5, -16)
MinBtn.BackgroundColor3 = Color3.fromRGB(80, 120, 200)
MinBtn.Text             = "−"
MinBtn.TextColor3       = Color3.fromRGB(255, 255, 255)
MinBtn.TextSize         = 20
MinBtn.Font             = Enum.Font.GothamBold
MinBtn.AutoButtonColor  = false
MinBtn.ZIndex           = 53
addCorner(MinBtn, 8)
addStroke(MinBtn, C.ACCENT, 1.5)

-- Botón cerrar
local CloseBtn = Instance.new("TextButton", Header)
CloseBtn.Size             = UDim2.new(0, 32, 0, 32)
CloseBtn.Position         = UDim2.new(1, -36, 0.5, -16)
CloseBtn.BackgroundColor3 = C.DANGER
CloseBtn.Text             = "✕"
CloseBtn.TextColor3       = Color3.fromRGB(255, 255, 255)
CloseBtn.TextSize         = 16
CloseBtn.Font             = Enum.Font.GothamBold
CloseBtn.AutoButtonColor  = false
CloseBtn.ZIndex           = 53
addCorner(CloseBtn, 8)

-- ── TABS ────────────────────────────────────
-- (Todo el código de tabs, contenido, habilidades se mantiene exactamente igual)

local tabNames = {"⚡ Habilidades"}
local tabs      = {}
local tabActivo = 1

local TabBar = Instance.new("Frame", Panel)
TabBar.Size            = UDim2.new(1, -20, 0, 36)
TabBar.Position        = UDim2.new(0, 10, 0, 58)
TabBar.BackgroundColor3= C.PANEL
TabBar.BorderSizePixel = 0
TabBar.ZIndex          = 51
addCorner(TabBar, 10)

local tabLay = Instance.new("UIListLayout", TabBar)
tabLay.FillDirection = Enum.FillDirection.Horizontal
tabLay.SortOrder     = Enum.SortOrder.LayoutOrder
tabLay.Padding       = UDim.new(0, 4)

local tabPad = Instance.new("UIPadding", TabBar)
tabPad.PaddingLeft   = UDim.new(0, 4)
tabPad.PaddingTop    = UDim.new(0, 4)
tabPad.PaddingBottom = UDim.new(0, 4)

local Content = Instance.new("Frame", Panel)
Content.Size            = UDim2.new(1, -20, 1, -110)
Content.Position        = UDim2.new(0, 10, 0, 102)
Content.BackgroundColor3= C.PANEL
Content.BorderSizePixel = 0
Content.ZIndex          = 51
addCorner(Content, 10)

for i, name in ipairs(tabNames) do
	local btn = Instance.new("TextButton", TabBar)
	btn.Size             = UDim2.new(0, (PW-28-16), 1, 0)
	btn.BackgroundColor3 = C.ACCENT
	btn.Text             = name
	btn.TextColor3       = Color3.fromRGB(255, 255, 255)
	btn.TextSize         = 12
	btn.Font             = Enum.Font.GothamBold
	btn.AutoButtonColor  = false
	btn.ZIndex           = 52
	btn.LayoutOrder      = i
	addCorner(btn, 8)

	local frame = Instance.new("Frame", Content)
	frame.Size            = UDim2.new(1, 0, 1, 0)
	frame.BackgroundTransparency = 1
	frame.Visible         = i == 1
	frame.ZIndex          = 52
	tabs[i] = frame

	btn.Activated:Connect(function()
		tabActivo = i
		for j, b in ipairs(TabBar:GetChildren()) do
			if b:IsA("TextButton") then
				TweenService:Create(b, TweenInfo.new(0.15), {
					BackgroundColor3 = j == i and C.ACCENT or Color3.fromRGB(30, 22, 60),
				}):Play()
			end
		end
		for j, f in ipairs(tabs) do
			f.Visible = j == i
		end
	end)
end

-- ══════════════════════════════════════════════
-- TAB: HABILIDADES
-- ══════════════════════════════════════════════

local scrollHab = Instance.new("ScrollingFrame", tabs[1])
scrollHab.Size             = UDim2.new(1, -10, 1, -10)
scrollHab.Position         = UDim2.new(0, 5, 0, 5)
scrollHab.BackgroundTransparency = 1
scrollHab.ScrollBarThickness = 4
scrollHab.CanvasSize       = UDim2.new(0, 0, 0, 0)
scrollHab.AutomaticCanvasSize = Enum.AutomaticSize.Y
scrollHab.ZIndex           = 53

local habLay = Instance.new("UIListLayout", scrollHab)
habLay.SortOrder = Enum.SortOrder.LayoutOrder
habLay.Padding   = UDim.new(0, 8)

local habPad = Instance.new("UIPadding", scrollHab)
habPad.PaddingLeft  = UDim.new(0, 5)
habPad.PaddingRight = UDim.new(0, 5)
habPad.PaddingTop   = UDim.new(0, 5)

local habilidades = {
	{emoji="🚀", nombre="Infiniti Jump",  desc="Salta infinitamente",        toggle=true},
	{emoji="👻", nombre="Noclip",         desc="Atraviesa paredes",          toggle=true},
	{emoji="⚡", nombre="Speed Boost",    desc="Aumenta tu velocidad x2",    toggle=true},
	{emoji="💨", nombre="Boost",          desc="Propulsa hacia adelante",    button=true},
	{emoji="🛡️", nombre="Anti Void",     desc="No caes al vacío",           toggle=true},
	{emoji="🟢", nombre="Anti Lag",       desc="Optimiza rendering",         toggle=true},
	{emoji="👁️", nombre="ESP Players",    desc="Ve a otros jugadores",       toggle=true},
}

for i, hab in ipairs(habilidades) do
	local row = Instance.new("Frame", scrollHab)
	row.Size             = UDim2.new(1, 0, 0, 46)
	row.BackgroundColor3 = Color3.fromRGB(18, 13, 40)
	row.BorderSizePixel  = 0
	row.ZIndex           = 53
	row.LayoutOrder      = i
	addCorner(row, 10)
	addStroke(row, C.ACCENT, 1)

	local emoji = Instance.new("TextLabel", row)
	emoji.Size               = UDim2.new(0, 40, 1, 0)
	emoji.BackgroundTransparency = 1
	emoji.Text               = hab.emoji
	emoji.TextSize           = 20
	emoji.Font               = Enum.Font.GothamBold
	emoji.ZIndex             = 54

	local nombre = Instance.new("TextLabel", row)
	nombre.Size               = UDim2.new(0.55, 0, 0.5, 0)
	nombre.Position           = UDim2.new(0, 45, 0, 4)
	nombre.BackgroundTransparency = 1
	nombre.Text               = hab.nombre
	nombre.TextColor3         = C.ACCENT2
	nombre.TextSize           = 13
	nombre.Font               = Enum.Font.GothamBold
	nombre.TextXAlignment     = Enum.TextXAlignment.Left
	nombre.ZIndex             = 54

	local desc = Instance.new("TextLabel", row)
	desc.Size               = UDim2.new(0.55, 0, 0.5, 0)
	desc.Position           = UDim2.new(0, 45, 0, 20)
	desc.BackgroundTransparency = 1
	desc.Text               = hab.desc
	desc.TextColor3         = C.TEXTDIM
	desc.TextSize           = 11
	desc.Font               = Enum.Font.Gotham
	desc.TextXAlignment     = Enum.TextXAlignment.Left
	desc.ZIndex             = 54

	if hab.toggle then
		local toggleBG = Instance.new("Frame", row)
		toggleBG.Size             = UDim2.new(0, 50, 0, 24)
		toggleBG.Position         = UDim2.new(1, -58, 0.5, -12)
		toggleBG.BackgroundColor3 = Color3.fromRGB(40, 30, 70)
		toggleBG.BorderSizePixel  = 0
		toggleBG.ZIndex           = 54
		addCorner(toggleBG, 12)
		addStroke(toggleBG, C.ACCENT, 1.5)

		local toggleBtn = Instance.new("TextButton", toggleBG)
		toggleBtn.Size             = UDim2.new(0, 20, 0, 20)
		toggleBtn.Position         = UDim2.new(0, 2, 0.5, -10)
		toggleBtn.BackgroundColor3 = Color3.fromRGB(100, 80, 150)
		toggleBtn.Text             = ""
		toggleBtn.AutoButtonColor  = false
		toggleBtn.ZIndex           = 55
		addCorner(toggleBtn, 4)

		local activo = false
		toggleBtn.Activated:Connect(function()
			activo = not activo
			if activo then
				TweenService:Create(toggleBtn, TweenInfo.new(0.2), {Position = UDim2.new(0, 28, 0.5, -10), BackgroundColor3 = C.SUCCESS}):Play()
				TweenService:Create(toggleBG, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(30, 50, 40)}):Play()
			else
				TweenService:Create(toggleBtn, TweenInfo.new(0.2), {Position = UDim2.new(0, 2, 0.5, -10), BackgroundColor3 = Color3.fromRGB(100, 80, 150)}):Play()
				TweenService:Create(toggleBG, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(40, 30, 70)}):Play()
			end
		end)
	else
		local actionBtn = Instance.new("TextButton", row)
		actionBtn.Size             = UDim2.new(0, 50, 0, 28)
		actionBtn.Position         = UDim2.new(1, -58, 0.5, -14)
		actionBtn.BackgroundColor3 = C.ACCENT
		actionBtn.Text             = "→"
		actionBtn.TextColor3       = Color3.fromRGB(255, 255, 255)
		actionBtn.TextSize         = 14
		actionBtn.Font             = Enum.Font.GothamBold
		actionBtn.AutoButtonColor  = false
		actionBtn.ZIndex           = 54
		addCorner(actionBtn, 7)

		actionBtn.MouseEnter:Connect(function()
			TweenService:Create(actionBtn, TweenInfo.new(0.12), {BackgroundColor3 = C.ACCENT:Lerp(Color3.fromRGB(255,255,255), 0.15)}):Play()
		end)
		actionBtn.MouseLeave:Connect(function()
			TweenService:Create(actionBtn, TweenInfo.new(0.12), {BackgroundColor3 = C.ACCENT}):Play()
		end)

		actionBtn.Activated:Connect(function()
			print("[BOOST] Activado")
		end)
	end
end

-- ══════════════════════════════════════════════
-- HOVER Y CLICK (botones)
-- ══════════════════════════════════════════════

MinBtn.MouseEnter:Connect(function()
	TweenService:Create(MinBtn, TweenInfo.new(0.1), {BackgroundColor3 = Color3.fromRGB(100, 140, 220)}):Play()
end)
MinBtn.MouseLeave:Connect(function()
	TweenService:Create(MinBtn, TweenInfo.new(0.1), {BackgroundColor3 = Color3.fromRGB(80, 120, 200)}):Play()
end)

CloseBtn.MouseEnter:Connect(function()
	TweenService:Create(CloseBtn, TweenInfo.new(0.1), {BackgroundColor3 = Color3.fromRGB(240, 60, 80)}):Play()
end)
CloseBtn.MouseLeave:Connect(function()
	TweenService:Create(CloseBtn, TweenInfo.new(0.1), {BackgroundColor3 = C.DANGER}):Play()
end)

-- ══════════════════════════════════════════════
-- MINIMIZAR Y CERRAR (sin cambios)
-- ══════════════════════════════════════════════

local minimizado = false

MinBtn.Activated:Connect(function()
	minimizado = not minimizado
	if minimizado then
		TweenService:Create(Panel, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
			Size = UDim2.new(0, PW, 0, 50),
			Position = UDim2.new(0.5, -PW/2, 1, -60),
		}):Play()
		MinBtn.Text = "▲"
		for _, child in ipairs(Panel:GetChildren()) do
			if child ~= Header and child:IsA("GuiObject") then
				child.Visible = false
			end
		end
	else
		for _, child in ipairs(Panel:GetChildren()) do
			if child ~= Header and child:IsA("GuiObject") then
				child.Visible = true
			end
		end
		TweenService:Create(Panel, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
			Size = UDim2.new(0, PW, 0, PH),
			Position = UDim2.new(0.5, -PW/2, 0.5, -PH/2),
		}):Play()
		MinBtn.Text = "−"
	end
end)

CloseBtn.Activated:Connect(function()
	TweenService:Create(Panel, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
		Size = UDim2.new(0, PW, 0, 0),
		Position = UDim2.new(0.5, -PW/2, 0.5, 0),
		BackgroundTransparency = 1,
	}):Play()
	task.wait(0.4)
	Panel.Visible = false
end)

-- ══════════════════════════════════════════════
-- ARRASTRE OPTIMIZADO PARA DELTA
-- ══════════════════════════════════════════════

local dragging = false
local dragStart = nil
local startPos = nil

Header.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		dragStart = input.Position
		startPos = Panel.AbsolutePosition
	end
end)

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

UIS.InputChanged:Connect(function(input)
	if not dragging then return end
	if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
		local delta = input.Position - dragStart
		local viewport = workspace.CurrentCamera.ViewportSize
		local panelSize = Panel.AbsoluteSize

		local newX = math.clamp(startPos.X + delta.X, 0, viewport.X - panelSize.X)
		local newY = math.clamp(startPos.Y + delta.Y, 0, viewport.Y - panelSize.Y)

		Panel.Position = UDim2.new(0, newX, 0, newY)
		
		-- Actualizar startPos para movimiento continuo
		dragStart = input.Position
		startPos = Vector2.new(newX, newY)
	end
end)

print("✅ VICTOR HUB listo (arrastrable optimizado para Delta)")

Features & Information

#lamineyamal #france #spain #viral #fy#parati

Community Comments (0)

No comments yet for this script.

More Scripts for qaxdrfvgyhnujm's Place