IGRIS HUB
Key RequiredUniversal

IGRIS HUB

Universal Scripty*falahat26y*falahat26 1K views 12 executesUpdated Apr 28, 2026
Unrated
00
Lua Script•256 lines (8416 chars)
-- ╔══════════════════════════════════════╗
-- ║      IGRIS FLY - MOBILE UI           ║
-- ╚══════════════════════════════════════╝

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local FlyGui = Instance.new("ScreenGui")
FlyGui.Name = "IgrisFlyWidget"
FlyGui.ResetOnSpawn = false
FlyGui.IgnoreGuiInset = true
FlyGui.DisplayOrder = 1000
local ok = pcall(function() FlyGui.Parent = game:GetService("CoreGui") end)
if not ok then FlyGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end

-- =================== دالة خلية ===================
local function makeCell(parent, text, order, textSize, w, h)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, w or 55, 0, h or 38)
    btn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    btn.Text = text
    btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    btn.TextSize = textSize or 15
    btn.Font = Enum.Font.GothamBold
    btn.BorderSizePixel = 0
    btn.LayoutOrder = order
    btn.ZIndex = 11
    btn.Parent = parent
    local st = Instance.new("UIStroke", btn)
    st.Color = Color3.fromRGB(255, 255, 255)
    st.Thickness = 1.5
    return btn
end

-- =================== الإطار الرئيسي ===================
local Widget = Instance.new("Frame")
Widget.Size = UDim2.new(0, 165, 0, 152)
Widget.Position = UDim2.new(0, 10, 0.5, -76)
Widget.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Widget.BorderSizePixel = 0
Widget.ZIndex = 10
Widget.ClipsDescendants = true
Widget.Parent = FlyGui

local WidgetStroke = Instance.new("UIStroke")
WidgetStroke.Color = Color3.fromRGB(255, 255, 255)
WidgetStroke.Thickness = 2
WidgetStroke.Parent = Widget

local Grid = Instance.new("UIGridLayout")
Grid.CellSize = UDim2.new(0, 55, 0, 38)
Grid.CellPadding = UDim2.new(0, 0, 0, 0)
Grid.SortOrder = Enum.SortOrder.LayoutOrder
Grid.Parent = Widget

-- ====== الصف الأول: [X] [-] [IGRIS] ======
local CloseBtn  = makeCell(Widget, "X",     1, 17)
local TopMinus  = makeCell(Widget, "-",     2, 24)
local IGRISCell = makeCell(Widget, "IGRIS", 3, 13)

-- ====== الصف الثاني: [أعلى] [+] [IGRIS وسط] ======
local UpBtn     = makeCell(Widget, "أعلى", 4, 13)
local PlusBtn   = makeCell(Widget, "+",    5, 24)
-- خلية IGRIS الوسطى (جزء من الدمج البصري)
local IGRISMid  = makeCell(Widget, "",     6, 13)

-- ====== الصف الثالث: [أسفل] [-] [رقم] ======
local DownBtn   = makeCell(Widget, "أسفل", 7, 13)
local MinusBtn  = makeCell(Widget, "-",    8, 24)
local SpeedCell = makeCell(Widget, "1",    9, 18)
SpeedCell.TextColor3 = Color3.fromRGB(255, 255, 255)

-- ====== الصف الرابع: [طيران - يمتد على الكل] ======
local FlyBtn = Instance.new("TextButton")
FlyBtn.Size = UDim2.new(0, 165, 0, 38)
FlyBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
FlyBtn.Text = "طيران"
FlyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
FlyBtn.TextSize = 16
FlyBtn.Font = Enum.Font.GothamBold
FlyBtn.BorderSizePixel = 0
FlyBtn.LayoutOrder = 10
FlyBtn.ZIndex = 11
FlyBtn.Parent = Widget
local fst = Instance.new("UIStroke", FlyBtn)
fst.Color = Color3.fromRGB(255, 255, 255)
fst.Thickness = 1.5

-- =================== دمج IGRIS بصرياً (فريم فوق الخليتين) ===================
local IGRISOverlay = Instance.new("TextLabel")
IGRISOverlay.Size = UDim2.new(0, 55, 0, 76)
IGRISOverlay.Position = UDim2.new(0, 110, 0, 0)
IGRISOverlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
IGRISOverlay.Text = "IGRIS"
IGRISOverlay.TextColor3 = Color3.fromRGB(255, 255, 255)
IGRISOverlay.TextSize = 13
IGRISOverlay.Font = Enum.Font.GothamBold
IGRISOverlay.BorderSizePixel = 0
IGRISOverlay.ZIndex = 13
IGRISOverlay.Parent = Widget
local iovst = Instance.new("UIStroke", IGRISOverlay)
iovst.Color = Color3.fromRGB(255, 255, 255)
iovst.Thickness = 1.5

-- =================== سحب الواجهة ===================
local wDrag, wDragStart, wStartPos = false, nil, nil
Widget.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then
        wDrag = true; wDragStart = i.Position; wStartPos = Widget.Position
    end
end)
Widget.InputEnded:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then wDrag = false end
end)
UserInputService.InputChanged:Connect(function(i)
    if wDrag and i.UserInputType == Enum.UserInputType.Touch then
        local d = i.Position - wDragStart
        Widget.Position = UDim2.new(
            wStartPos.X.Scale, wStartPos.X.Offset + d.X,
            wStartPos.Y.Scale, wStartPos.Y.Offset + d.Y
        )
    end
end)

-- =================== منطق الطيران ===================
local flyLevel   = 1
local flyEnabled = false
local flyConn    = nil
local bodyVel    = nil
local bodyGyro   = nil
local goUp       = false
local goDown     = false

local function getSpeed() return flyLevel * 25 end

local function updateDisplay()
    SpeedCell.Text = tostring(flyLevel)
end

local function stopFly()
    flyEnabled = false
    goUp = false; goDown = false
    if flyConn  then flyConn:Disconnect();  flyConn  = nil end
    if bodyVel  then bodyVel:Destroy();     bodyVel  = nil end
    if bodyGyro then bodyGyro:Destroy();    bodyGyro = nil end
    local char = LocalPlayer.Character
    if char then
        local hum = char:FindFirstChildOfClass("Humanoid")
        if hum then hum.PlatformStand = false end
    end
    FlyBtn.Text = "طيران"
    FlyBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
    FlyBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
end

local function startFly()
    local char = LocalPlayer.Character
    if not char then return end
    local hrp = char:FindFirstChild("HumanoidRootPart")
    local hum = char:FindFirstChildOfClass("Humanoid")
    if not hrp or not hum then return end

    flyEnabled = true
    hum.PlatformStand = true

    bodyVel = Instance.new("BodyVelocity")
    bodyVel.Velocity  = Vector3.new(0,0,0)
    bodyVel.MaxForce  = Vector3.new(1e5,1e5,1e5)
    bodyVel.Parent    = hrp

    bodyGyro = Instance.new("BodyGyro")
    bodyGyro.MaxTorque = Vector3.new(1e5,1e5,1e5)
    bodyGyro.D         = 100
    bodyGyro.CFrame    = hrp.CFrame
    bodyGyro.Parent    = hrp

    FlyBtn.Text = "✔ طيران"
    FlyBtn.TextColor3 = Color3.fromRGB(0, 0, 0)
    FlyBtn.BackgroundColor3 = Color3.fromRGB(100, 255, 150)

    flyConn = RunService.RenderStepped:Connect(function()
        if not flyEnabled then return end
        local char2 = LocalPlayer.Character
        if not char2 then return end
        local hum2 = char2:FindFirstChildOfClass("Humanoid")
        if not hum2 then return end

        local spd = getSpeed()
        local md  = hum2.MoveDirection
        local vel = Vector3.new(0,0,0)

        if md.Magnitude > 0.1 then
            vel = Vector3.new(md.X, 0, md.Z) * spd
        end

        if goUp then
            vel = Vector3.new(vel.X, spd, vel.Z)
        elseif goDown then
            vel = Vector3.new(vel.X, -spd * 0.6, vel.Z)
        else
            vel = Vector3.new(vel.X, 0, vel.Z)
        end

        bodyVel.Velocity = vel
        bodyGyro.CFrame  = workspace.CurrentCamera.CFrame
    end)
end

-- =================== أحداث ===================
FlyBtn.MouseButton1Click:Connect(function()
    if flyEnabled then stopFly() else startFly() end
end)

IGRISOverlay.Active = true
IGRISOverlay.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then
        if flyEnabled then stopFly() else startFly() end
    end
end)

UpBtn.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then goUp = true end
end)
UpBtn.InputEnded:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then goUp = false end
end)

DownBtn.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then goDown = true end
end)
DownBtn.InputEnded:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.Touch then goDown = false end
end)

PlusBtn.MouseButton1Click:Connect(function()
    if flyLevel < 20 then flyLevel += 1; updateDisplay() end
end)

TopMinus.MouseButton1Click:Connect(function()
    if flyLevel > 1 then flyLevel -= 1; updateDisplay() end
end)

MinusBtn.MouseButton1Click:Connect(function()
    if flyLevel > 1 then flyLevel -= 1; updateDisplay() end
end)

CloseBtn.MouseButton1Click:Connect(function()
    stopFly(); Widget.Visible = false
end)

LocalPlayer.CharacterAdded:Connect(function() stopFly() end)

updateDisplay()
print("✅ IGRIS Fly Mobile Loaded")

Features & Information

IGRIS F7LK
#IGRIS HUB#IGS

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts