Malabah Hub
Key RequiredUniversal

Malabah Hub

Universal Scriptdonmallettiiidonmallettiii 2.2K views 3 executesUpdated May 29, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•369 lines (14146 chars)
--[[ 
    Combined Script:

    PART 1 - OVERLAY:
      A full-screen black overlay appears with rainbow-cycling text 
      ("made by Donm2091/donm21712") in its center. This overlay’s ZIndex
      is set high so that it appears on top of everything. After 3 seconds, 
      the overlay fades out and is destroyed.
    
    PART 2 - MAIN UI:
      A draggable UI panel (default windowed size 700×400) appears beneath.
      It contains:
         • Title: "Malabah HUB"
         • Fullscreen toggle button ("F") to switch between windowed and fullscreen modes.
         • Hide button ("-") that animates the UI closing (collapses vertically) and sends a notification.
         • X button ("X") placed immediately to the right of the hide button; when pressed, it destroys the entire UI.
         • An internal center notification stating:
             "this Script Containts MOST keyless Exploits! Enjoy."  
             (fades out after 5 seconds)
         • A top notification with rainbow text stating:
             "made by Donm2091/donm21712"  
             (fades out after 4 seconds)
         • If on mobile, a small circular indicator with a white "m" is shown in the bottom left.
         • Smooth dragging is enabled in windowed mode only.

    All elements are contained within a single ScreenGui.
--]]

-------------------------------------------------------
-- Services and Player Setup
-------------------------------------------------------
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local StarterGui = game:GetService("StarterGui")

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

-------------------------------------------------------
-- Create Combined ScreenGui
-------------------------------------------------------
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CombinedUI"
screenGui.Parent = playerGui

-------------------------------------------------------
-- PART 1 - OVERLAY (Full-Screen)
-------------------------------------------------------
local overlay = Instance.new("Frame")
overlay.Name = "Overlay"
overlay.Size = UDim2.new(1, 0, 1, 0)
overlay.Position = UDim2.new(0, 0, 0, 0)
overlay.BackgroundColor3 = Color3.new(0, 0, 0)
overlay.BackgroundTransparency = 0
overlay.BorderSizePixel = 0
overlay.ZIndex = 10  -- Ensure overlay is above the main UI.
overlay.Parent = screenGui

local rainbowText = Instance.new("TextLabel")
rainbowText.Name = "RainbowText"
rainbowText.Size = UDim2.new(0.8, 0, 0.2, 0)   -- 80% width; 20% height.
rainbowText.Position = UDim2.new(0.5, 0, 0.5, 0) -- Centered.
rainbowText.AnchorPoint = Vector2.new(0.5, 0.5)
rainbowText.BackgroundTransparency = 1
rainbowText.Text = "made by Donm2091/donm21712"
rainbowText.Font = Enum.Font.GothamBold
rainbowText.TextScaled = true
rainbowText.ZIndex = 11  -- Ensure text is above the overlay.
rainbowText.Parent = overlay

local overlayHeartbeat = RunService.Heartbeat:Connect(function()
    if rainbowText then
        rainbowText.TextColor3 = Color3.fromHSV((tick() * 0.2) % 1, 1, 1)
    end
end)

delay(3, function()
    local fadeInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local overlayTween = TweenService:Create(overlay, fadeInfo, {BackgroundTransparency = 1})
    local textTween = TweenService:Create(rainbowText, fadeInfo, {TextTransparency = 1})
    overlayTween:Play()
    textTween:Play()
    overlayTween.Completed:Connect(function()
        overlayHeartbeat:Disconnect()
        overlay:Destroy()
    end)
end)

-------------------------------------------------------
-- PART 2 - MAIN UI
-------------------------------------------------------
local windowedSize = UDim2.new(0, 700, 0, 400)      -- Default windowed mode size.
local closedSize = UDim2.new(0, 700, 0, 0)           -- Collapsed size.
local fullScreenSize = UDim2.new(1, 0, 1, 0)          -- Fullscreen size.
local defaultPos = UDim2.new(0.5, 0, 0.5, 0)           -- Centered position.

local isFullScreen = false  -- Tracks fullscreen status.
local dragEnabled = true    -- Drag enabled in windowed mode only.

local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = windowedSize                    -- Start in windowed mode.
mainFrame.AnchorPoint = Vector2.new(0.5, 0.5)      -- Center anchor.
mainFrame.Position = defaultPos
mainFrame.BackgroundColor3 = Color3.new(0, 0, 0)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.ClipsDescendants = true
mainFrame.ZIndex = 1  -- Below the overlay.
mainFrame.Parent = screenGui

local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 12)
uiCorner.Parent = mainFrame

-------------------------------------------------------
-- MAIN UI CONTENT
-------------------------------------------------------

-- TITLE LABEL: "Malabah HUB" (no outline)
local titleLabel = Instance.new("TextLabel")
titleLabel.Name = "TitleLabel"
titleLabel.Size = UDim2.new(1, 0, 0, 50)
titleLabel.Position = UDim2.new(0, 0, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Malabah HUB"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 36
titleLabel.TextStrokeTransparency = 1  
titleLabel.TextXAlignment = Enum.TextXAlignment.Center
titleLabel.TextYAlignment = Enum.TextYAlignment.Center
titleLabel.Parent = mainFrame

-- FULLSCREEN TOGGLE BUTTON ("F")
local fullscreenButton = Instance.new("TextButton")
fullscreenButton.Name = "FullscreenButton"
fullscreenButton.Size = UDim2.new(0, 50, 0, 30)
fullscreenButton.AnchorPoint = Vector2.new(1, 0)
fullscreenButton.Position = UDim2.new(1, -120, 0, 10)
fullscreenButton.BackgroundTransparency = 1
fullscreenButton.Text = "F"
fullscreenButton.TextColor3 = Color3.fromRGB(255, 255, 255)
fullscreenButton.Font = Enum.Font.SourceSans
fullscreenButton.TextSize = 24
fullscreenButton.Parent = mainFrame

fullscreenButton.MouseButton1Click:Connect(function()
    local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
    if not isFullScreen then
        dragEnabled = false
        dragging = false
        local fsTween = TweenService:Create(mainFrame, tweenInfo, {
            AnchorPoint = Vector2.new(0, 0),
            Position = UDim2.new(0, 0, 0, 0),
            Size = fullScreenSize
        })
        fsTween:Play()
        isFullScreen = true
    else
        local normTween = TweenService:Create(mainFrame, tweenInfo, {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = defaultPos,
            Size = windowedSize
        })
        normTween:Play()
        isFullScreen = false
        dragEnabled = true
        targetPos = mainFrame.Position
    end
end)

-- HIDE BUTTON ("-")
local hideButton = Instance.new("TextButton")
hideButton.Name = "HideButton"
hideButton.Size = UDim2.new(0, 50, 0, 30)
hideButton.AnchorPoint = Vector2.new(1, 0)
hideButton.Position = UDim2.new(1, -60, 0, 10)
hideButton.BackgroundTransparency = 1
hideButton.Text = "-"
hideButton.TextColor3 = Color3.fromRGB(255, 255, 255)
hideButton.Font = Enum.Font.SourceSans
hideButton.TextSize = 24
hideButton.Parent = mainFrame

hideButton.MouseButton1Click:Connect(function()
    local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
    local closeTween = TweenService:Create(mainFrame, tweenInfo, {Size = closedSize})
    closeTween:Play()
    closeTween.Completed:Connect(function()
        mainFrame.Visible = false
        StarterGui:SetCore("SendNotification", {
            Title = "Notice!",
            Text = "Press K to Show Interface/ui",
            Duration = 5
        })
    end)
end)

-- X BUTTON (Destroy Entire UI) positioned immediately to the right of the hide button.
local closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Size = UDim2.new(0, 50, 0, 30)
closeButton.AnchorPoint = Vector2.new(1, 0)
closeButton.Position = UDim2.new(1, -10, 0, 10)
closeButton.BackgroundTransparency = 1
closeButton.Text = "X"
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.Font = Enum.Font.SourceSans
closeButton.TextSize = 24
closeButton.Parent = mainFrame

closeButton.MouseButton1Click:Connect(function()
    screenGui:Destroy()
end)

-------------------------------------------------------
-- SMOOTH DRAGGING LOGIC (Windowed Mode Only)
-------------------------------------------------------
local dragging = false
local dragStart = nil
local startPos = nil
local targetPos = mainFrame.Position
local smoothDragSpeed = 10

mainFrame.InputBegan:Connect(function(input)
    if dragEnabled and (input.UserInputType == Enum.UserInputType.MouseButton1 or 
       input.UserInputType == Enum.UserInputType.Touch) then
        dragging = true
        dragStart = input.Position
        startPos = mainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
                targetPos = mainFrame.Position
            end
        end)
    end
end)

mainFrame.InputChanged:Connect(function(input)
    if dragEnabled and dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or 
       input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - dragStart
        targetPos = UDim2.new(
            startPos.X.Scale, startPos.X.Offset + delta.X,
            startPos.Y.Scale, startPos.Y.Offset + delta.Y
        )
    end
end)

RunService.RenderStepped:Connect(function(dt)
    if dragEnabled and dragging then
        local alpha = math.clamp(smoothDragSpeed * dt, 0, 1)
        mainFrame.Position = mainFrame.Position:Lerp(targetPos, alpha)
    else
        targetPos = mainFrame.Position
    end
end)

-- SHOW UI WHEN "K" KEY IS PRESSED (Animate Opening)
UserInputService.InputBegan:Connect(function(input, isProcessed)
    if isProcessed then return end
    if input.KeyCode == Enum.KeyCode.K then
        if not mainFrame.Visible then
            mainFrame.Visible = true
            mainFrame.Size = closedSize
            local tweenInfo = TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
            local openTween = TweenService:Create(mainFrame, tweenInfo, {Size = windowedSize})
            openTween:Play()
            openTween.Completed:Connect(function()
                StarterGui:SetCore("SendNotification", {
                    Title = "Notice!",
                    Text = "Interface Opened. Click '-' to hide it.",
                    Duration = 5
                })
            end)
        end
    end
end)

-------------------------------------------------------
-- MOBILE INDICATOR (if on mobile)
-------------------------------------------------------
local platform = UserInputService:GetPlatform()
if platform == Enum.Platform.IOS or platform == Enum.Platform.Android then
    local mobileIndicator = Instance.new("Frame")
    mobileIndicator.Name = "MobileIndicator"
    mobileIndicator.Size = UDim2.new(0, 30, 0, 30)
    mobileIndicator.Position = UDim2.new(0, 10, 1, -40)
    mobileIndicator.BackgroundColor3 = Color3.new(0, 0, 0)
    mobileIndicator.ZIndex = 2
    mobileIndicator.Parent = screenGui

    local mobileUICorner = Instance.new("UICorner")
    mobileUICorner.CornerRadius = UDim.new(1, 0)
    mobileUICorner.Parent = mobileIndicator

    local mobileText = Instance.new("TextLabel")
    mobileText.Name = "MobileText"
    mobileText.Size = UDim2.new(1, 0, 1, 0)
    mobileText.BackgroundTransparency = 1
    mobileText.Text = "m"
    mobileText.TextColor3 = Color3.new(1, 1, 1)
    mobileText.Font = Enum.Font.GothamBold
    mobileText.TextScaled = true
    mobileText.Parent = mobileIndicator
end

-------------------------------------------------------
-- INTERNAL UI NOTIFICATION (Center; Fades after 5 seconds)
-------------------------------------------------------
local uiNotice = Instance.new("TextLabel")
uiNotice.Name = "UINotification"
uiNotice.Size = UDim2.new(0.8, 0, 0, 40)
uiNotice.Position = UDim2.new(0.5, 0, 0.75, 0)
uiNotice.AnchorPoint = Vector2.new(0.5, 0.5)
uiNotice.BackgroundColor3 = Color3.new(0, 0, 0)
uiNotice.BackgroundTransparency = 0.3
uiNotice.Text = "this Script Containts MOST keyless Exploits! Enjoy."
uiNotice.TextColor3 = Color3.fromRGB(255, 255, 255)
uiNotice.Font = Enum.Font.GothamBold
uiNotice.TextSize = 20
uiNotice.TextStrokeTransparency = 1
uiNotice.Parent = mainFrame

delay(5, function()
    local fadeTweenInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenProps = { TextTransparency = 1, BackgroundTransparency = 1 }
    local fadeTween = TweenService:Create(uiNotice, fadeTweenInfo, tweenProps)
    fadeTween:Play()
    fadeTween.Completed:Connect(function()
        uiNotice:Destroy()
    end)
end)

-------------------------------------------------------
-- TOP UI NOTIFICATION: Made By (Rainbow; Fades after 4 seconds)
-------------------------------------------------------
local madeByNotice = Instance.new("TextLabel")
madeByNotice.Name = "MadeByNotice"
madeByNotice.Size = UDim2.new(0.8, 0, 0, 30)
madeByNotice.Position = UDim2.new(0.5, 0, 0, 10)
madeByNotice.AnchorPoint = Vector2.new(0.5, 0)
madeByNotice.BackgroundTransparency = 1
madeByNotice.Text = "made by Donm2091/donm21712"
madeByNotice.Font = Enum.Font.GothamBold
madeByNotice.TextSize = 20
madeByNotice.ZIndex = 5
madeByNotice.Parent = mainFrame

local madeByConnection = RunService.Heartbeat:Connect(function(dt)
    if madeByNotice then
        madeByNotice.TextColor3 = Color3.fromHSV((tick() * 0.2) % 1, 1, 1)
    end
end)

delay(4, function()
    local fadeTweenInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
    local tweenProps = { TextTransparency = 1 }
    local fadeTween = TweenService:Create(madeByNotice, fadeTweenInfo, tweenProps)
    fadeTween:Play()
    fadeTween.Completed:Connect(function()
        madeByConnection:Disconnect()
        madeByNotice:Destroy()
    end)
end)

Features & Information

still w.i.p UPDATE! V.1.1
#roblox

Community Comments (2)

donmallettiiidonmallettiiiMay 29, 2025

thanks for useing my work in progress still script yayyyyyyyy

baptisteanthony86baptisteanthony86May 29, 2025

Yo Don I got banned on my maincharater610 account so im using another account till tomorrow

More Scripts for Universal Scripts