real futbol gk scipt
Key RequiredUniversal

real futbol gk scipt

Universal ScriptXDdxOwnerXDdxOwner 5.8K views 6.6K executesUpdated Mar 19, 2026
5.0/ 5(5 votes)
50100% Positive
Lua Script•600 lines (27991 chars)
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()

local T = {
    BG = Color3.fromRGB(18, 18, 22),
    BG2 = Color3.fromRGB(24, 24, 30),
    Card = Color3.fromRGB(28, 28, 35),
    CardHover = Color3.fromRGB(35, 35, 44),
    Surface = Color3.fromRGB(32, 32, 40),
    Accent = Color3.fromRGB(100, 160, 255),
    AccentSoft = Color3.fromRGB(40, 55, 85),
    Text1 = Color3.fromRGB(240, 240, 245),
    Text2 = Color3.fromRGB(155, 155, 170),
    Text3 = Color3.fromRGB(95, 95, 110),
    Border = Color3.fromRGB(45, 45, 55),
    Divider = Color3.fromRGB(38, 38, 48),
    ToggleOn = Color3.fromRGB(100, 160, 255),
    ToggleOff = Color3.fromRGB(55, 55, 65),
    White = Color3.fromRGB(255, 255, 255),
    Red = Color3.fromRGB(220, 60, 60),
    Green = Color3.fromRGB(60, 190, 90),
    Yellow = Color3.fromRGB(240, 190, 40),
}

local function Tw(o,t,p) if o then pcall(function() TweenService:Create(o,TweenInfo.new(t,Enum.EasingStyle.Quint),p):Play() end) end end
local function TwB(o,t,p) if o then pcall(function() TweenService:Create(o,TweenInfo.new(t,Enum.EasingStyle.Back,Enum.EasingDirection.Out),p):Play() end) end end
local function Corner(p,r) local c=Instance.new("UICorner");c.CornerRadius=UDim.new(0,r or 8);c.Parent=p end
local function Stroke(p,col,th,tr) local s=Instance.new("UIStroke");s.Color=col or T.Border;s.Thickness=th or 1;s.Transparency=tr or 0.3;s.Parent=p end
local function UpdCanvas(s,l) local function u() s.CanvasSize=UDim2.new(0,0,0,l.AbsoluteContentSize.Y+20) end l:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(u) u() end

local Gui=Instance.new("ScreenGui");Gui.Name="SnowHub";Gui.ResetOnSpawn=false
pcall(function() Gui.Parent=game:GetService("CoreGui") end)
if not Gui.Parent then Gui.Parent=Player:WaitForChild("PlayerGui") end

for _,v in pairs(Lighting:GetChildren()) do if v.Name=="SnowBlur" then v:Destroy() end end
local Blur=Instance.new("BlurEffect");Blur.Name="SnowBlur";Blur.Size=0;Blur.Parent=Lighting

local Overlay=Instance.new("Frame")
Overlay.BackgroundColor3=Color3.fromRGB(0,0,0);Overlay.BackgroundTransparency=1
Overlay.Size=UDim2.new(1,0,1,0);Overlay.ZIndex=0;Overlay.Parent=Gui

local Shadow=Instance.new("Frame")
Shadow.BackgroundColor3=Color3.fromRGB(0,0,0);Shadow.BackgroundTransparency=0.82
Shadow.Size=UDim2.new(0,0,0,0);Shadow.Position=UDim2.new(0.5,0,0.5,8)
Shadow.AnchorPoint=Vector2.new(0.5,0.5);Shadow.ZIndex=1;Shadow.Parent=Gui;Corner(Shadow,20)

local winW,winH=520,420
local winSize=UDim2.new(0,winW,0,winH)

local Main=Instance.new("Frame");Main.BackgroundColor3=T.BG;Main.BackgroundTransparency=0.04
Main.Size=UDim2.new(0,0,0,0);Main.Position=UDim2.new(0.5,0,0.5,0);Main.AnchorPoint=Vector2.new(0.5,0.5)
Main.ClipsDescendants=true;Main.ZIndex=2;Main.Parent=Gui;Corner(Main,14);Stroke(Main,T.Border,1,0.2)

local uiOpen,minimized,destroyed=true,false,false

local function ShowUI()
    if destroyed then return end
    uiOpen=true;Main.Visible=true;Shadow.Visible=true;Overlay.Visible=true
    TwB(Main,0.5,{Size=minimized and UDim2.new(0,winW,0,56) or winSize})
    TwB(Shadow,0.5,{Size=UDim2.new(0,winW+24,0,(minimized and 56 or winH)+24)})
    Tw(Overlay,0.5,{BackgroundTransparency=0.4})
    TweenService:Create(Blur,TweenInfo.new(0.6,Enum.EasingStyle.Quint),{Size=20}):Play()
end

local function HideUI()
    if destroyed then return end;uiOpen=false
    Tw(Main,0.3,{Size=UDim2.new(0,0,0,0)});Tw(Shadow,0.3,{Size=UDim2.new(0,0,0,0)})
    Tw(Overlay,0.3,{BackgroundTransparency=1})
    TweenService:Create(Blur,TweenInfo.new(0.3,Enum.EasingStyle.Quint),{Size=0}):Play()
    task.delay(0.35,function()
        if not uiOpen then Main.Visible=false;Shadow.Visible=false;Overlay.Visible=false end
    end)
end

task.wait(0.05);ShowUI()

do
    local dragging,dragStart,startPos
    local DZ=Instance.new("Frame");DZ.BackgroundTransparency=1;DZ.Size=UDim2.new(1,0,0,56)
    DZ.ZIndex=10;DZ.Parent=Main
    DZ.InputBegan:Connect(function(input)
        if input.UserInputType==Enum.UserInputType.MouseButton1 then
            dragging=true;dragStart=input.Position;startPos=Main.Position
            input.Changed:Connect(function()
                if input.UserInputState==Enum.UserInputState.End then dragging=false end
            end)
        end
    end)
    UserInputService.InputChanged:Connect(function(input)
        if dragging and input.UserInputType==Enum.UserInputType.MouseMovement then
            local d=input.Position-dragStart
            Main.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+d.X,startPos.Y.Scale,startPos.Y.Offset+d.Y)
            Shadow.Position=UDim2.new(Main.Position.X.Scale,Main.Position.X.Offset,Main.Position.Y.Scale,Main.Position.Y.Offset+8)
        end
    end)
end

local TopLine=Instance.new("Frame");TopLine.BackgroundColor3=T.Accent
TopLine.Size=UDim2.new(1,0,0,2);TopLine.BorderSizePixel=0;TopLine.ZIndex=5;TopLine.Parent=Main

local TopBar=Instance.new("Frame");TopBar.BackgroundColor3=T.BG2;TopBar.BackgroundTransparency=0.2
TopBar.Size=UDim2.new(1,0,0,56);TopBar.BorderSizePixel=0;TopBar.ZIndex=3;TopBar.Parent=Main

local SnowBG=Instance.new("Frame");SnowBG.BackgroundColor3=T.AccentSoft
SnowBG.Size=UDim2.new(0,36,0,36);SnowBG.Position=UDim2.new(0,14,0,10)
SnowBG.ZIndex=4;SnowBG.Parent=TopBar;Corner(SnowBG,10)

local SnowI=Instance.new("TextLabel");SnowI.Text="❄";SnowI.Font=Enum.Font.SourceSansBold
SnowI.TextSize=22;SnowI.TextColor3=T.Accent;SnowI.BackgroundTransparency=1
SnowI.Size=UDim2.new(1,0,1,0);SnowI.ZIndex=5;SnowI.Parent=SnowBG

local TitleL=Instance.new("TextLabel");TitleL.Text="Snow Hub";TitleL.Font=Enum.Font.GothamBold
TitleL.TextSize=17;TitleL.TextColor3=T.Text1;TitleL.TextXAlignment=Enum.TextXAlignment.Left
TitleL.BackgroundTransparency=1;TitleL.Position=UDim2.new(0,60,0,9)
TitleL.Size=UDim2.new(0.5,0,0,20);TitleL.ZIndex=4;TitleL.Parent=TopBar

local SubL=Instance.new("TextLabel");SubL.Text="goalkeeper tools";SubL.Font=Enum.Font.Gotham
SubL.TextSize=11;SubL.TextColor3=T.Text3;SubL.TextXAlignment=Enum.TextXAlignment.Left
SubL.BackgroundTransparency=1;SubL.Position=UDim2.new(0,60,0,30)
SubL.Size=UDim2.new(0.5,0,0,15);SubL.ZIndex=4;SubL.Parent=TopBar

local XBtn=Instance.new("TextButton");XBtn.Text="X";XBtn.Font=Enum.Font.GothamBold
XBtn.TextSize=15;XBtn.TextColor3=T.Text2;XBtn.BackgroundColor3=T.Red;XBtn.BackgroundTransparency=1
XBtn.Size=UDim2.new(0,34,0,34);XBtn.Position=UDim2.new(1,-44,0,11);XBtn.ZIndex=5;XBtn.Parent=TopBar;Corner(XBtn,8)
XBtn.MouseEnter:Connect(function() Tw(XBtn,0.15,{BackgroundTransparency=0.15,TextColor3=T.White}) end)
XBtn.MouseLeave:Connect(function() Tw(XBtn,0.15,{BackgroundTransparency=1,TextColor3=T.Text2}) end)
XBtn.MouseButton1Click:Connect(HideUI)

local MnBtn=Instance.new("TextButton");MnBtn.Text="-";MnBtn.Font=Enum.Font.GothamBold
MnBtn.TextSize=22;MnBtn.TextColor3=T.Text2;MnBtn.BackgroundColor3=T.Surface;MnBtn.BackgroundTransparency=1
MnBtn.Size=UDim2.new(0,34,0,34);MnBtn.Position=UDim2.new(1,-82,0,11);MnBtn.ZIndex=5;MnBtn.Parent=TopBar;Corner(MnBtn,8)
MnBtn.MouseEnter:Connect(function() Tw(MnBtn,0.15,{BackgroundTransparency=0.3,TextColor3=T.Text1}) end)
MnBtn.MouseLeave:Connect(function() Tw(MnBtn,0.15,{BackgroundTransparency=1,TextColor3=T.Text2}) end)
MnBtn.MouseButton1Click:Connect(function()
    minimized=not minimized
    Tw(Main,0.35,{Size=minimized and UDim2.new(0,winW,0,56) or winSize})
    Tw(Shadow,0.35,{Size=UDim2.new(0,winW+24,0,minimized and 80 or winH+24)})
end)

local Dv=Instance.new("Frame");Dv.BackgroundColor3=T.Divider;Dv.Size=UDim2.new(1,0,0,1)
Dv.Position=UDim2.new(0,0,0,56);Dv.BorderSizePixel=0;Dv.ZIndex=3;Dv.Parent=Main

local Sidebar=Instance.new("Frame");Sidebar.BackgroundColor3=T.BG2;Sidebar.BackgroundTransparency=0.05
Sidebar.Size=UDim2.new(0,130,1,-57);Sidebar.Position=UDim2.new(0,0,0,57)
Sidebar.BorderSizePixel=0;Sidebar.ZIndex=3;Sidebar.Parent=Main

local TabScroll=Instance.new("ScrollingFrame");TabScroll.BackgroundTransparency=1
TabScroll.Size=UDim2.new(1,-8,1,-8);TabScroll.Position=UDim2.new(0,4,0,4)
TabScroll.ScrollBarThickness=0;TabScroll.CanvasSize=UDim2.new(0,0,0,0)
TabScroll.BorderSizePixel=0;TabScroll.ZIndex=4;TabScroll.Parent=Sidebar
local TabLy=Instance.new("UIListLayout");TabLy.Padding=UDim.new(0,3);TabLy.Parent=TabScroll
UpdCanvas(TabScroll,TabLy)

local Content=Instance.new("Frame");Content.BackgroundTransparency=1
Content.Size=UDim2.new(1,-131,1,-57);Content.Position=UDim2.new(0,131,0,57)
Content.ClipsDescendants=true;Content.ZIndex=3;Content.Parent=Main

local NotifH=Instance.new("Frame");NotifH.BackgroundTransparency=1
NotifH.Size=UDim2.new(0,300,1,-20);NotifH.Position=UDim2.new(1,-310,0,10)
NotifH.ZIndex=30;NotifH.Parent=Gui
local NLy=Instance.new("UIListLayout");NLy.Padding=UDim.new(0,8)
NLy.VerticalAlignment=Enum.VerticalAlignment.Bottom;NLy.Parent=NotifH

-- Tab System
local AllTabs,ActiveTab={},nil
local function SwitchTab(tab)
    for _,t2 in pairs(AllTabs) do
        t2.Page.Visible=false
        Tw(t2.Btn,0.2,{BackgroundTransparency=1})
        Tw(t2.Lbl,0.2,{TextColor3=T.Text2})
        Tw(t2.Ind,0.2,{Size=UDim2.new(0,3,0,0),BackgroundTransparency=1})
    end
    tab.Page.Visible=true;ActiveTab=tab
    Tw(tab.Btn,0.25,{BackgroundTransparency=0.4})
    Tw(tab.Lbl,0.25,{TextColor3=T.Text1})
    TwB(tab.Ind,0.3,{Size=UDim2.new(0,3,0,18),BackgroundTransparency=0})
end

local function MakeTab(name,icon)
    local Tab={}
    local Btn=Instance.new("TextButton");Btn.Text="";Btn.BackgroundColor3=T.Card
    Btn.BackgroundTransparency=1;Btn.Size=UDim2.new(1,0,0,40);Btn.ZIndex=5
    Btn.Parent=TabScroll;Corner(Btn,8)

    local Ind=Instance.new("Frame");Ind.BackgroundColor3=T.Accent;Ind.BackgroundTransparency=1
    Ind.Size=UDim2.new(0,3,0,0);Ind.Position=UDim2.new(0,2,0.5,0);Ind.AnchorPoint=Vector2.new(0,0.5)
    Ind.BorderSizePixel=0;Ind.ZIndex=6;Ind.Parent=Btn;Corner(Ind,2)

    local Ico=Instance.new("TextLabel");Ico.Text=icon;Ico.Font=Enum.Font.GothamBold
    Ico.TextSize=16;Ico.TextColor3=T.Text3;Ico.BackgroundTransparency=1
    Ico.Size=UDim2.new(0,26,1,0);Ico.Position=UDim2.new(0,14,0,0);Ico.ZIndex=6;Ico.Parent=Btn

    local Lbl=Instance.new("TextLabel");Lbl.Text=name;Lbl.Font=Enum.Font.GothamSemibold
    Lbl.TextSize=13;Lbl.TextColor3=T.Text2;Lbl.TextXAlignment=Enum.TextXAlignment.Left
    Lbl.BackgroundTransparency=1;Lbl.Size=UDim2.new(1,-48,1,0);Lbl.Position=UDim2.new(0,42,0,0)
    Lbl.ZIndex=6;Lbl.Parent=Btn

    local Page=Instance.new("ScrollingFrame");Page.BackgroundTransparency=1
    Page.Size=UDim2.new(1,-14,1,-14);Page.Position=UDim2.new(0,7,0,7)
    Page.ScrollBarThickness=3;Page.ScrollBarImageColor3=T.Accent
    Page.CanvasSize=UDim2.new(0,0,0,0);Page.BorderSizePixel=0;Page.Visible=false
    Page.ZIndex=4;Page.Parent=Content
    local PLy=Instance.new("UIListLayout");PLy.Padding=UDim.new(0,8);PLy.Parent=Page
    UpdCanvas(Page,PLy)

    Tab.Btn=Btn;Tab.Lbl=Lbl;Tab.Ico=Ico;Tab.Ind=Ind;Tab.Page=Page
    Btn.MouseEnter:Connect(function() if ActiveTab~=Tab then Tw(Btn,0.12,{BackgroundTransparency=0.6}) end end)
    Btn.MouseLeave:Connect(function() if ActiveTab~=Tab then Tw(Btn,0.12,{BackgroundTransparency=1}) end end)
    Btn.MouseButton1Click:Connect(function() SwitchTab(Tab) end)
    table.insert(AllTabs,Tab);if #AllTabs==1 then SwitchTab(Tab) end
    return Page
end

-- Section
local function MakeSection(page,name)
    local Sec={}
    local SF=Instance.new("Frame");SF.BackgroundColor3=T.Card;SF.BackgroundTransparency=0.08
    SF.Size=UDim2.new(1,0,0,0);SF.BorderSizePixel=0;SF.ZIndex=5;SF.Parent=page
    Corner(SF,12);Stroke(SF,T.Border,1,0.4)

    local Pd=Instance.new("UIPadding");Pd.PaddingTop=UDim.new(0,12);Pd.PaddingBottom=UDim.new(0,12)
    Pd.PaddingLeft=UDim.new(0,14);Pd.PaddingRight=UDim.new(0,14);Pd.Parent=SF

    local Ly=Instance.new("UIListLayout");Ly.Padding=UDim.new(0,7);Ly.Parent=SF
    local function upd() SF.Size=UDim2.new(1,0,0,Ly.AbsoluteContentSize.Y+26) end
    Ly:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(upd);task.defer(upd)

    if name and name~="" then
        local ST=Instance.new("TextLabel");ST.Text=name;ST.Font=Enum.Font.GothamBold
        ST.TextSize=14;ST.TextColor3=T.Text1;ST.TextXAlignment=Enum.TextXAlignment.Left
        ST.BackgroundTransparency=1;ST.Size=UDim2.new(1,0,0,22);ST.ZIndex=6;ST.Parent=SF
        local SD=Instance.new("Frame");SD.BackgroundColor3=T.Divider
        SD.Size=UDim2.new(1,0,0,1);SD.BorderSizePixel=0;SD.ZIndex=6;SD.Parent=SF
    end

    function Sec:AddToggle(c)
        c=c or{}
        local nm,desc,def,cb=c.Name or"Toggle",c.Description,c.Default or false,c.Callback or function()end
        local state=def;local h=desc and 54 or 40
        local TF=Instance.new("TextButton");TF.Text="";TF.BackgroundColor3=T.Surface
        TF.BackgroundTransparency=0.2;TF.Size=UDim2.new(1,0,0,h);TF.ZIndex=6;TF.Parent=SF;Corner(TF,10)
        local TL=Instance.new("TextLabel");TL.Text=nm;TL.Font=Enum.Font.GothamSemibold;TL.TextSize=13
        TL.TextColor3=T.Text1;TL.TextXAlignment=Enum.TextXAlignment.Left;TL.BackgroundTransparency=1
        TL.Size=UDim2.new(1,-68,0,18);TL.Position=UDim2.new(0,14,0,desc and 9 or 11);TL.ZIndex=7;TL.Parent=TF
        if desc then
            local TD=Instance.new("TextLabel");TD.Text=desc;TD.Font=Enum.Font.Gotham;TD.TextSize=11
            TD.TextColor3=T.Text3;TD.TextXAlignment=Enum.TextXAlignment.Left;TD.BackgroundTransparency=1
            TD.Size=UDim2.new(1,-68,0,14);TD.Position=UDim2.new(0,14,0,31);TD.ZIndex=7;TD.Parent=TF
        end
        local SBG=Instance.new("Frame");SBG.BackgroundColor3=state and T.ToggleOn or T.ToggleOff
        SBG.Size=UDim2.new(0,44,0,24);SBG.Position=UDim2.new(1,-56,0.5,0)
        SBG.AnchorPoint=Vector2.new(0,0.5);SBG.ZIndex=7;SBG.Parent=TF;Corner(SBG,12)
        local Knob=Instance.new("Frame");Knob.BackgroundColor3=T.White;Knob.Size=UDim2.new(0,18,0,18)
        Knob.Position=state and UDim2.new(1,-21,0.5,0) or UDim2.new(0,3,0.5,0)
        Knob.AnchorPoint=Vector2.new(0,0.5);Knob.ZIndex=8;Knob.Parent=SBG;Corner(Knob,9)
        local function updT()
            Tw(SBG,0.25,{BackgroundColor3=state and T.ToggleOn or T.ToggleOff})
            TwB(Knob,0.3,{Position=state and UDim2.new(1,-21,0.5,0) or UDim2.new(0,3,0.5,0)})
        end
        TF.MouseEnter:Connect(function() Tw(TF,0.1,{BackgroundTransparency=0.05,BackgroundColor3=T.CardHover}) end)
        TF.MouseLeave:Connect(function() Tw(TF,0.1,{BackgroundTransparency=0.2,BackgroundColor3=T.Surface}) end)
        TF.MouseButton1Click:Connect(function() state=not state;updT();pcall(cb,state) end)
        task.defer(upd)
        return{Set=function(_,v) state=v;updT();pcall(cb,v) end,Get=function() return state end}
    end

    function Sec:AddSlider(c)
        c=c or{}
        local nm,desc=c.Name or"Slider",c.Description
        local min,max,def=c.Min or 0,c.Max or 100,c.Default or c.Min or 0
        local sfx,inc,cb=c.Suffix or"",c.Increment or 1,c.Callback or function()end
        local val=def;local dH=desc and 16 or 0
        local SF2=Instance.new("Frame");SF2.BackgroundColor3=T.Surface;SF2.BackgroundTransparency=0.2
        SF2.Size=UDim2.new(1,0,0,62+dH);SF2.ZIndex=6;SF2.Parent=SF;Corner(SF2,10)
        local SL=Instance.new("TextLabel");SL.Text=nm;SL.Font=Enum.Font.GothamSemibold;SL.TextSize=13
        SL.TextColor3=T.Text1;SL.TextXAlignment=Enum.TextXAlignment.Left;SL.BackgroundTransparency=1
        SL.Size=UDim2.new(0.6,0,0,18);SL.Position=UDim2.new(0,14,0,8);SL.ZIndex=7;SL.Parent=SF2
        if desc then
            local SD2=Instance.new("TextLabel");SD2.Text=desc;SD2.Font=Enum.Font.Gotham;SD2.TextSize=11
            SD2.TextColor3=T.Text3;SD2.TextXAlignment=Enum.TextXAlignment.Left;SD2.BackgroundTransparency=1
            SD2.Size=UDim2.new(0.55,0,0,14);SD2.Position=UDim2.new(0,14,0,27);SD2.ZIndex=7;SD2.Parent=SF2
        end
        local VL=Instance.new("TextLabel");VL.Text=tostring(val)..sfx;VL.Font=Enum.Font.GothamBold
        VL.TextSize=14;VL.TextColor3=T.Accent;VL.TextXAlignment=Enum.TextXAlignment.Right
        VL.BackgroundTransparency=1;VL.Size=UDim2.new(0.35,-14,0,18);VL.Position=UDim2.new(0.65,0,0,8)
        VL.ZIndex=7;VL.Parent=SF2
        local barY=32+dH+8
        local BarBG=Instance.new("Frame");BarBG.BackgroundColor3=T.ToggleOff
        BarBG.Size=UDim2.new(1,-28,0,6);BarBG.Position=UDim2.new(0,14,0,barY)
        BarBG.ZIndex=7;BarBG.Parent=SF2;Corner(BarBG,3)
        local Fill=Instance.new("Frame");Fill.BackgroundColor3=T.Accent
        Fill.Size=UDim2.new((def-min)/(max-min),0,1,0);Fill.BorderSizePixel=0
        Fill.ZIndex=8;Fill.Parent=BarBG;Corner(Fill,3)
        local KS=Instance.new("Frame");KS.BackgroundColor3=T.White;KS.Size=UDim2.new(0,18,0,18)
        KS.Position=UDim2.new((def-min)/(max-min),0,0.5,0);KS.AnchorPoint=Vector2.new(0.5,0.5)
        KS.ZIndex=9;KS.Parent=BarBG;Corner(KS,9)
        local sliding=false
        local function updS(x)
            local pct=math.clamp((x-BarBG.AbsolutePosition.X)/BarBG.AbsoluteSize.X,0,1)
            val=math.floor((min+(max-min)*pct)/inc+0.5)*inc;val=math.clamp(val,min,max)
            local p=(val-min)/(max-min)
            Fill.Size=UDim2.new(p,0,1,0);KS.Position=UDim2.new(p,0,0.5,0)
            VL.Text=tostring(val)..sfx;pcall(cb,val)
        end
        SF2.InputBegan:Connect(function(i)
            if i.UserInputType==Enum.UserInputType.MouseButton1 then sliding=true;updS(i.Position.X) end
        end)
        SF2.InputEnded:Connect(function(i)
            if i.UserInputType==Enum.UserInputType.MouseButton1 then sliding=false end
        end)
        UserInputService.InputChanged:Connect(function(i)
            if sliding and i.UserInputType==Enum.UserInputType.MouseMovement then updS(i.Position.X) end
        end)
        task.defer(upd)
        return{Set=function(_,v) val=math.clamp(v,min,max);local p=(val-min)/(max-min)
            Fill.Size=UDim2.new(p,0,1,0);KS.Position=UDim2.new(p,0,0.5,0)
            VL.Text=tostring(val)..sfx;pcall(cb,val) end,Get=function() return val end}
    end
    task.defer(upd);return Sec
end

-- Notify
local function Notify(c)
    c=c or{};local nT,nC,nD,nTy=c.Title or"",c.Content or"",c.Duration or 3,c.Type or"Info"
    local cls={Info=T.Accent,Success=T.Green,Warning=T.Yellow,Error=T.Red}
    local ics={Info="❄",Success="✓",Warning="⚠",Error="✕"};local col=cls[nTy]
    local NF=Instance.new("Frame");NF.BackgroundColor3=T.Card;NF.Size=UDim2.new(1,0,0,0)
    NF.ClipsDescendants=true;NF.ZIndex=31;NF.Parent=NotifH;Corner(NF,12)
    local NA=Instance.new("Frame");NA.BackgroundColor3=col;NA.Size=UDim2.new(1,0,0,2)
    NA.BorderSizePixel=0;NA.ZIndex=32;NA.Parent=NF
    local NI=Instance.new("TextLabel");NI.Text=ics[nTy];NI.Font=Enum.Font.GothamBold;NI.TextSize=18
    NI.TextColor3=col;NI.BackgroundTransparency=1;NI.Size=UDim2.new(0,28,0,28)
    NI.Position=UDim2.new(0,12,0,14);NI.ZIndex=32;NI.Parent=NF
    local NT2=Instance.new("TextLabel");NT2.Text=nT;NT2.Font=Enum.Font.GothamBold;NT2.TextSize=13
    NT2.TextColor3=T.Text1;NT2.TextXAlignment=Enum.TextXAlignment.Left;NT2.BackgroundTransparency=1
    NT2.Size=UDim2.new(1,-50,0,16);NT2.Position=UDim2.new(0,44,0,12);NT2.ZIndex=32;NT2.Parent=NF
    local NC2=Instance.new("TextLabel");NC2.Text=nC;NC2.Font=Enum.Font.Gotham;NC2.TextSize=11
    NC2.TextColor3=T.Text2;NC2.TextXAlignment=Enum.TextXAlignment.Left;NC2.BackgroundTransparency=1
    NC2.Size=UDim2.new(1,-50,0,26);NC2.Position=UDim2.new(0,44,0,30);NC2.ZIndex=32;NC2.Parent=NF
    TwB(NF,0.4,{Size=UDim2.new(1,0,0,64)})
    task.delay(nD,function()
        Tw(NF,0.3,{Size=UDim2.new(1,0,0,0)})
        task.delay(0.35,function() pcall(function() NF:Destroy() end) end)
    end)
end

-- ================================================================
--                    BALL SYSTEM
-- ================================================================

local Balls = {}
local ESPHighlights = {}
local BallESP = {Enabled = false}
local BallLock = {Enabled = false, Distance = 50, Smoothness = 0.15}
local Magnet = {Enabled = false, Distance = 60}
local ballLockPaused = false

local function IsBall(obj)
    if not obj:IsA("BasePart") then return false end
    if obj.Anchored then return false end
    if obj.Transparency >= 0.9 then return false end
    local p = obj.Parent
    while p and p ~= workspace do
        if p:IsA("Model") and p:FindFirstChildOfClass("Humanoid") then return false end
        if p:IsA("Accessory") or p:IsA("Tool") then return false end
        p = p.Parent
    end
    local s = obj.Size
    if s.X > 6 or s.Y > 6 or s.Z > 6 or s.X < 0.3 then return false end
    if obj:IsA("Part") and obj.Shape == Enum.PartType.Ball then return true end
    if obj:IsA("MeshPart") then
        local avg = (s.X + s.Y + s.Z) / 3
        local diff = math.max(math.abs(s.X - avg), math.abs(s.Y - avg), math.abs(s.Z - avg))
        if diff < avg * 0.3 and avg >= 0.5 and avg <= 5 then return true end
    end
    return false
end

local function ScanBalls()
    Balls = {}
    for _, obj in pairs(workspace:GetDescendants()) do
        if IsBall(obj) then table.insert(Balls, obj) end
    end
end

local function GetClosestBall(root, maxDist)
    local closest, closestDist = nil, maxDist or math.huge
    for _, ball in pairs(Balls) do
        if ball and ball.Parent then
            local dist = (ball.Position - root.Position).Magnitude
            if dist < closestDist then closest = ball; closestDist = dist end
        end
    end
    return closest, closestDist
end

local function ClearAllESP()
    for _, hl in pairs(ESPHighlights) do pcall(function() hl:Destroy() end) end
    ESPHighlights = {}
end

ScanBalls()

workspace.DescendantAdded:Connect(function(obj)
    task.delay(0.2, function()
        if obj and obj.Parent and IsBall(obj) then
            for _, b in pairs(Balls) do if b == obj then return end end
            table.insert(Balls, obj)
        end
    end)
end)

workspace.DescendantRemoving:Connect(function(obj)
    if ESPHighlights[obj] then
        pcall(function() ESPHighlights[obj]:Destroy() end)
        ESPHighlights[obj] = nil
    end
    for i = #Balls, 1, -1 do
        if Balls[i] == obj then table.remove(Balls, i); break end
    end
end)

-- ESP loop
task.spawn(function()
    while true do
        task.wait(0.3)
        for i = #Balls, 1, -1 do
            if not Balls[i] or not Balls[i].Parent then table.remove(Balls, i) end
        end
        local char = Player.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if BallESP.Enabled then
            for _, ball in pairs(Balls) do
                if ball and ball.Parent then
                    if not ESPHighlights[ball] then
                        local hl = Instance.new("Highlight")
                        hl.Name = "SnowESP"
                        hl.FillTransparency = 0.4
                        hl.OutlineTransparency = 0
                        hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
                        hl.Adornee = ball
                        hl.Parent = Gui
                        ESPHighlights[ball] = hl
                    end
                    if root and ESPHighlights[ball] then
                        local dist = (ball.Position - root.Position).Magnitude
                        local col = dist < 20 and Color3.fromRGB(80, 255, 100)
                            or dist < 50 and Color3.fromRGB(255, 200, 60)
                            or Color3.fromRGB(255, 70, 70)
                        pcall(function()
                            ESPHighlights[ball].FillColor = col
                            ESPHighlights[ball].OutlineColor = col
                        end)
                    end
                end
            end
            for ball, hl in pairs(ESPHighlights) do
                if not ball or not ball.Parent then
                    pcall(function() hl:Destroy() end)
                    ESPHighlights[ball] = nil
                end
            end
        else
            if next(ESPHighlights) then ClearAllESP() end
        end
    end
end)

-- BallLock
RunService.RenderStepped:Connect(function()
    if not BallLock.Enabled then return end
    local char = Player.Character
    local root = char and char:FindFirstChild("HumanoidRootPart")
    if not root then return end
    local ball, dist = GetClosestBall(root, BallLock.Distance)
    if not ball then ballLockPaused = false; return end
    if dist < 2 then ballLockPaused = true; return end
    if dist > 6 then ballLockPaused = false end
    if ballLockPaused then return end
    local cam = workspace.CurrentCamera
    cam.CFrame = cam.CFrame:Lerp(CFrame.new(cam.CFrame.Position, ball.Position), BallLock.Smoothness)
end)

-- Magnet + RShift
UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe then return end

    if input.KeyCode == Enum.KeyCode.RightShift then
        if uiOpen then HideUI() else ShowUI() end
        return
    end

    if input.KeyCode == Enum.KeyCode.F and Magnet.Enabled then
        local char = Player.Character
        local root = char and char:FindFirstChild("HumanoidRootPart")
        if not root then return end

        local ball, dist = GetClosestBall(root, Magnet.Distance)
        if not ball then return end

        local originalCFrame = root.CFrame

        local dir = (ball.Position - root.Position).Unit
        root.CFrame = CFrame.new(ball.Position - dir * 1, ball.Position)

        task.wait()

        root.CFrame = originalCFrame
        root.Velocity = Vector3.new(0, 0, 0)
        pcall(function() root.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end)
    end
end)

-- Рескан
task.spawn(function()
    while true do
        task.wait(3)
        ScanBalls()
    end
end)

-- ================================================================
--                       UI
-- ================================================================

local GKPage = MakeTab("GK", "🧤")

local ESPSec = MakeSection(GKPage, "⚽ Ball ESP")
ESPSec:AddToggle({
    Name = "Ball ESP",
    Description = "Подсветка мячей через стены",
    Default = false,
    Callback = function(v)
        BallESP.Enabled = v
        if not v then ClearAllESP() end
        Notify({Title = "Ball ESP", Content = v and "Включено" or "Выключено", Duration = 2, Type = v and "Success" or "Info"})
    end
})

local BLSec = MakeSection(GKPage, "🎯 BallLock")
BLSec:AddToggle({
    Name = "BallLock",
    Description = "Камера наводится на мяч",
    Default = false,
    Callback = function(v)
        BallLock.Enabled = v
        ballLockPaused = false
        Notify({Title = "BallLock", Content = v and "Включено" or "Выключено", Duration = 2, Type = v and "Success" or "Info"})
    end
})

BLSec:AddSlider({
    Name = "Distance",
    Description = "Макс. дистанция",
    Min = 5,
    Max = 150,
    Default = 50,
    Suffix = " studs",
    Callback = function(v) BallLock.Distance = v end
})

BLSec:AddSlider({
    Name = "Smoothness",
    Description = "Плавность камеры",
    Min = 5,
    Max = 50,
    Default = 15,
    Suffix = "%",
    Callback = function(v) BallLock.Smoothness = v / 100 end
})

local MagSec = MakeSection(GKPage, "🧲 Magnet")
MagSec:AddToggle({
    Name = "Magnet",
    Description = "F — телепорт к мячу и обратно",
    Default = false,
    Callback = function(v)
        Magnet.Enabled = v
        Notify({Title = "Magnet", Content = v and "Нажми F" or "Выключено", Duration = 2, Type = v and "Success" or "Info"})
    end
})

MagSec:AddSlider({
    Name = "Distance",
    Description = "Макс. дистанция",
    Min = 5,
    Max = 150,
    Default = 60,
    Suffix = " studs",
    Callback = function(v) Magnet.Distance = v end
})

task.delay(1, function()
    Notify({Title = "❄ Snow Hub", Content = "RShift — меню | F — магнит", Duration = 4, Type = "Info"})
end)

Features & Information

scipt for realfutbol 24 (gk)
#rfl#realfutbol

Community Comments (2)

IgetBannedQuick007IgetBannedQuick007Mar 21, 2026

Nice script, i hope it had options for normal players but the gk script is still very good and you can set it wether you want it to be super noticable or not. Thumbs up 👍

04life04lifeJul 23, 2026

W script

More Scripts for Universal Scripts