Nut Hub Universal Mobile Script [2021] May 2026
This script provides a clean, mobile-friendly GUI with common utility features that work across many games.
-- Nut Hub Universal Mobile Script -- Works on most Roblox mobile executors -- GUI optimized for small screenslocal player = game.Players.LocalPlayer local mouse = player:GetMouse()
-- Create GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "NutHub" screenGui.Parent = player:WaitForChild("PlayerGui")
local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 250, 0, 350) mainFrame.Position = UDim2.new(0.5, -125, 0.5, -175) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40) mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui
-- Make draggable local dragging = false local dragStart local startPos
mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position end end)
mainFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch then dragging = false end end)
game:GetService("UserInputService").InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.Touch then local delta = input.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) nut hub universal mobile script
-- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundColor3 = Color3.fromRGB(50, 50, 70) title.Text = "Nut Hub Universal" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.TextSize = 18 title.Parent = mainFrame
-- Close button local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 40, 0, 40) closeBtn.Position = UDim2.new(1, -40, 0, 0) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.Text = "X" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.Parent = mainFrame closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end)
-- Scrolling frame for buttons local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, 0, 1, -40) scrollFrame.Position = UDim2.new(0, 0, 0, 40) scrollFrame.BackgroundTransparency = 1 scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 300) scrollFrame.ScrollBarThickness = 4 scrollFrame.Parent = mainFrame
local uiList = Instance.new("UIListLayout") uiList.Padding = UDim.new(0, 8) uiList.SortOrder = Enum.SortOrder.LayoutOrder uiList.Parent = scrollFrame
-- Helper function to add buttons local function addButton(text, callback, color) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 45) btn.Position = UDim2.new(0.05, 0, 0, 0) btn.BackgroundColor3 = color or Color3.fromRGB(70, 70, 90) btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.Gotham btn.TextSize = 16 btn.Parent = scrollFrame btn.MouseButton1Click:Connect(callback) end
-- === FEATURES ===
-- Movement Speed addButton("Speed Boost (x2)", function() local char = player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.WalkSpeed = 32 end end, Color3.fromRGB(80, 100, 150)) This script provides a clean, mobile-friendly GUI with
addButton("Reset Speed", function() local char = player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.WalkSpeed = 16 end end, Color3.fromRGB(100, 80, 80))
-- Jump Power addButton("Super Jump", function() local char = player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.JumpPower = 80 end end, Color3.fromRGB(80, 150, 80))
addButton("Reset Jump", function() local char = player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.JumpPower = 50 end end, Color3.fromRGB(150, 80, 80))
-- Fly (simple) local flying = false local flyBodyVel addButton("Toggle Fly", function() flying = not flying local char = player.Character if not char then return end local humanoid = char:FindFirstChild("Humanoid") if not humanoid then return end
if flying then humanoid.PlatformStand = true flyBodyVel = Instance.new("BodyVelocity") flyBodyVel.MaxForce = Vector3.new(10000, 10000, 10000) flyBodyVel.Velocity = Vector3.new(0, 0, 0) flyBodyVel.Parent = char.HumanoidRootPart local bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(10000, 10000, 10000) bodyGyro.Parent = char.HumanoidRootPart game:GetService("RunService").RenderStepped:Connect(function() if flying and char and char.HumanoidRootPart then local moveDirection = Vector3.new( (mouse.Hit.Position - char.HumanoidRootPart.Position).Unit.x, 0, (mouse.Hit.Position - char.HumanoidRootPart.Position).Unit.z ) flyBodyVel.Velocity = moveDirection * 50 + Vector3.new(0, (if game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.Space) then 50 else (if game:GetService("UserInputService"):IsKeyDown(Enum.KeyCode.LeftControl) then -50 else 0)), 0) bodyGyro.CFrame = CFrame.new(char.HumanoidRootPart.Position, mouse.Hit.Position) end end) else humanoid.PlatformStand = false if flyBodyVel then flyBodyVel:Destroy() end if char:FindFirstChild("BodyGyro") then char.BodyGyro:Destroy() end endend, Color3.fromRGB(150, 100, 200))
-- Infinite Yield (if you want a full admin) addButton("Load Infinite Yield (Admin)", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))() end, Color3.fromRGB(200, 150, 50))
-- Anti-AFK addButton("Anti-AFK On", function() local vu = game:GetService("VirtualUser") game:GetService("Players").LocalPlayer.Idled:Connect(function() vu:Button2Down(Vector2.new(0,0), workspace.CurrentCamera.CFrame) wait(1) vu:Button2Up(Vector2.new(0,0), workspace.CurrentCamera.CFrame) end) end, Color3.fromRGB(100, 100, 200)) end, Color3
-- ESP (simple) local espEnabled = false local espObjects = {} addButton("Toggle ESP (Players)", function() espEnabled = not espEnabled if espEnabled then for _, plr in pairs(game.Players:GetPlayers()) do if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then local highlight = Instance.new("Highlight") highlight.Parent = plr.Character highlight.FillColor = Color3.fromRGB(255, 0, 0) highlight.OutlineColor = Color3.fromRGB(255, 255, 255) table.insert(espObjects, highlight) end end game.Players.PlayerAdded:Connect(function(newPlr) if espEnabled and newPlr ~= player then newPlr.CharacterAdded:Connect(function(char) wait(1) if espEnabled and char then local highlight = Instance.new("Highlight") highlight.Parent = char highlight.FillColor = Color3.fromRGB(255, 0, 0) table.insert(espObjects, highlight) end end) end end) else for _, obj in pairs(espObjects) do obj:Destroy() end espObjects = {} end end, Color3.fromRGB(200, 100, 100))
-- Notification addButton("Test Notification", function() game:GetService("StarterGui"):SetCore("SendNotification", Title = "Nut Hub", Text = "Script loaded successfully!", Duration = 3 ) end, Color3.fromRGB(100, 100, 100))
print("Nut Hub Universal Mobile loaded. GUI created.")
Troubleshooting Common Issues
Automation Testing
Independent app developers use stripped-down universal scripts to simulate user interaction. For example, testing a scroll view by running an auto-scroll function for 24 hours.
1. Cross-Application Compatibility
The Nut Hub Universal Mobile Script is not tied to a single game or tool. It has been engineered to recognize common UI elements (buttons, swipe zones, text boxes) across various mobile interfaces. For gamers, this means it can work with multiple titles like Mobile Legends, PUBG Mobile, Genshin Impact, or Clash of Clans using plugin-based modules.