-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --============================================================== -- FORGEX HUB V2 -- MOBILE ROBLOX DEVELOPMENT HUB --============================================================== local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Remove previous version local old = playerGui:FindFirstChild("ForgeX_Hub") if old then old:Destroy() end --============================================================== -- COLORS --============================================================== local BG = Color3.fromRGB(12,14,20) local PANEL = Color3.fromRGB(20,23,31) local PANEL2 = Color3.fromRGB(28,32,42) local ACCENT = Color3.fromRGB(85,120,255) local TEXT = Color3.fromRGB(245,245,250) local MUTED = Color3.fromRGB(150,155,170) local GREEN = Color3.fromRGB(70,210,130) local RED = Color3.fromRGB(230,70,80) --============================================================== -- GUI --============================================================== local gui = Instance.new("ScreenGui") gui.Name = "ForgeX_Hub" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.DisplayOrder = 999 gui.Parent = playerGui --============================================================== -- OPEN BUTTON --============================================================== local openButton = Instance.new("TextButton") openButton.Name = "ForgeXButton" openButton.Size = UDim2.fromOffset(62,62) openButton.Position = UDim2.new(0,15,0.5,-31) openButton.BackgroundColor3 = ACCENT openButton.Text = "FX" openButton.TextColor3 = Color3.new(1,1,1) openButton.TextSize = 21 openButton.Font = Enum.Font.GothamBold openButton.Parent = gui Instance.new("UICorner",openButton).CornerRadius = UDim.new(0,20) --============================================================== -- MAIN POPUP --============================================================== local window = Instance.new("Frame") window.Name = "ForgeXWindow" window.Size = UDim2.new(0.92,0,0.78,0) window.Position = UDim2.new(0.04,0,0.11,0) window.BackgroundColor3 = BG window.Visible = false window.Parent = gui Instance.new("UICorner",window).CornerRadius = UDim.new(0,15) local outline = Instance.new("UIStroke") outline.Color = Color3.fromRGB(65,75,105) outline.Thickness = 1 outline.Parent = window --============================================================== -- HEADER --============================================================== local header = Instance.new("Frame") header.Size = UDim2.new(1,0,0,54) header.BackgroundColor3 = PANEL header.Parent = window Instance.new("UICorner",header).CornerRadius = UDim.new(0,15) local title = Instance.new("TextLabel") title.BackgroundTransparency = 1 title.Position = UDim2.fromOffset(15,0) title.Size = UDim2.new(1,-70,1,0) title.Text = "⚡ ForgeX Hub" title.TextColor3 = TEXT title.TextSize = 18 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local close = Instance.new("TextButton") close.Size = UDim2.fromOffset(38,38) close.Position = UDim2.new(1,-47,0.5,-19) close.BackgroundColor3 = PANEL2 close.Text = "×" close.TextColor3 = TEXT close.TextSize = 23 close.Font = Enum.Font.GothamBold close.Parent = header Instance.new("UICorner",close).CornerRadius = UDim.new(0,10) --============================================================== -- SIDEBAR --============================================================== local sidebar = Instance.new("Frame") sidebar.Position = UDim2.new(0,0,0,54) sidebar.Size = UDim2.new(0,105,1,-54) sidebar.BackgroundColor3 = PANEL sidebar.Parent = window local sideList = Instance.new("UIListLayout") sideList.Padding = UDim.new(0,6) sideList.Parent = sidebar local sidePad = Instance.new("UIPadding") sidePad.PaddingTop = UDim.new(0,10) sidePad.PaddingLeft = UDim.new(0,7) sidePad.PaddingRight = UDim.new(0,7) sidePad.Parent = sidebar --============================================================== -- CONTENT --============================================================== local content = Instance.new("Frame") content.Position = UDim2.new(0,105,0,54) content.Size = UDim2.new(1,-105,1,-54) content.BackgroundTransparency = 1 content.Parent = window --============================================================== -- DATA --============================================================== local projects = { ["My Game"] = "-- ForgeX Project\nprint(\"ForgeX loaded!\")" } local currentProject = "My Game" local currentCode = projects[currentProject] local chat = { { role = "ForgeX", text = "Welcome! Tell me what you want to build." } } --============================================================== -- UTILITIES --============================================================== local function clear() for _,v in ipairs(content:GetChildren()) do v:Destroy() end end local function button(parent,text) local b = Instance.new("TextButton") b.BackgroundColor3 = PANEL2 b.Text = text b.TextColor3 = TEXT b.TextSize = 11 b.Font = Enum.Font.GothamMedium b.AutoButtonColor = true b.Parent = parent Instance.new("UICorner",b).CornerRadius = UDim.new(0,8) return b end local function label(parent,text,size) local l = Instance.new("TextLabel") l.BackgroundTransparency = 1 l.Text = text l.TextColor3 = TEXT l.TextSize = size or 12 l.Font = Enum.Font.Gotham l.TextWrapped = true l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = parent return l end --============================================================== -- GENERATOR --============================================================== local function generate(request) local p = string.lower(request) if string.find(p,"simulator") then return [[ -- FORGEX SIMULATOR local Players = game:GetService("Players") Players.PlayerAdded:Connect(function(player) local stats = Instance.new("Folder") stats.Name = "leaderstats" stats.Parent = player local coins = Instance.new("IntValue") coins.Name = "Coins" coins.Parent = stats local rebirths = Instance.new("IntValue") rebirths.Name = "Rebirths" rebirths.Parent = stats end) local function GiveCoins(player,amount) local stats = player:FindFirstChild("leaderstats") if stats then local coins = stats:FindFirstChild("Coins") if coins then coins.Value += amount end end end ]] elseif string.find(p,"obby") then return [[ -- FORGEX OBBY local Players = game:GetService("Players") local checkpoints = workspace:WaitForChild("Checkpoints") for _,checkpoint in ipairs(checkpoints:GetChildren()) do if checkpoint:IsA("BasePart") then checkpoint.Touched:Connect(function(hit) local character = hit.Parent local player = Players:GetPlayerFromCharacter(character) if player then player:SetAttribute("Checkpoint",checkpoint.Name) end end) end end ]] elseif string.find(p,"tycoon") then return [[ -- FORGEX TYCOON local Players = game:GetService("Players") local Tycoons = workspace:WaitForChild("Tycoons") for _,tycoon in ipairs(Tycoons:GetChildren()) do local owner = Instance.new("ObjectValue") owner.Name = "Owner" owner.Parent = tycoon end ]] else return "-- FORGEX GENERATED SCRIPT\n\n-- Request:\n-- " .. request .. "\n\nprint(\"ForgeX generated your requested system\")" end end --============================================================== -- TAB SYSTEM --============================================================== local tabButtons = {} local function makeTab(name,icon) local b = button(sidebar,icon.." "..name) b.Size = UDim2.new(1,0,0,40) tabButtons[name] = b return b end local AI = makeTab("AI","🤖") local CODE = makeTab("Code","⌘") local BUILD = makeTab("Build","◆") local PROJECTS = makeTab("Projects","▣") local SETTINGS = makeTab("Settings","⚙") --============================================================== -- AI PAGE --============================================================== local function aiPage() clear() local heading = label(content,"ForgeX AI Builder",20) heading.Position = UDim2.fromOffset(15,12) heading.Size = UDim2.new(1,-30,0,35) heading.Font = Enum.Font.GothamBold local messages = Instance.new("ScrollingFrame") messages.Position = UDim2.fromOffset(15,55) messages.Size = UDim2.new(1,-30,1,-125) messages.BackgroundColor3 = PANEL messages.BorderSizePixel = 0 messages.ScrollBarThickness = 3 messages.AutomaticCanvasSize = Enum.AutomaticSize.Y messages.Parent = content Instance.new("UICorner",messages).CornerRadius = UDim.new(0,10) local list = Instance.new("UIListLayout") list.Padding = UDim.new(0,7) list.Parent = messages local pad = Instance.new("UIPadding") pad.PaddingTop = UDim.new(0,8) pad.PaddingLeft = UDim.new(0,8) pad.PaddingRight = UDim.new(0,8) pad.Parent = messages for _,m in ipairs(chat) do local msg = label( messages, m.role.."\n"..m.text, 11 ) msg.BackgroundColor3 = PANEL2 msg.Size = UDim2.new(1,-10,0,0) msg.AutomaticSize = Enum.AutomaticSize.Y msg.TextYAlignment = Enum.TextYAlignment.Top local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0,8) padding.PaddingBottom = UDim.new(0,8) padding.PaddingLeft = UDim.new(0,8) padding.PaddingRight = UDim.new(0,8) padding.Parent = msg Instance.new("UICorner",msg).CornerRadius = UDim.new(0,8) end local input = Instance.new("TextBox") input.Position = UDim2.new(0,15,1,-60) input.Size = UDim2.new(1,-92,0,48) input.BackgroundColor3 = PANEL input.PlaceholderText = "Example: make a simulator..." input.PlaceholderColor3 = MUTED input.TextColor3 = TEXT input.TextSize = 11 input.Font = Enum.Font.Gotham input.TextWrapped = true input.ClearTextOnFocus = false input.Parent = content Instance.new("UICorner",input).CornerRadius = UDim.new(0,9) local send = button(content,"BUILD") send.Position = UDim2.new(1,-70,1,-60) send.Size = UDim2.fromOffset(55,48) send.MouseButton1Click:Connect(function() if input.Text == "" then return end local request = input.Text table.insert(chat,{ role = "You", text = request }) currentCode = generate(request) projects[currentProject] = currentCode table.insert(chat,{ role = "ForgeX", text = "Build complete. Open Code to view your generated Luau." }) aiPage() end) end --============================================================== -- CODE PAGE --============================================================== local function codePage() clear() local heading = label(content,"Luau Editor",20) heading.Position = UDim2.fromOffset(15,12) heading.Size = UDim2.new(1,-30,0,35) heading.Font = Enum.Font.GothamBold local editor = Instance.new("TextBox") editor.Position = UDim2.fromOffset(15,55) editor.Size = UDim2.new(1,-30,1,-115) editor.BackgroundColor3 = Color3.fromRGB(7,9,13) editor.TextColor3 = TEXT editor.TextSize = 11 editor.Font = Enum.Font.Code editor.TextXAlignment = Enum.TextXAlignment.Left editor.TextYAlignment = Enum.TextYAlignment.Top editor.TextWrapped = false editor.MultiLine = true editor.ClearTextOnFocus = false editor.Text = currentCode editor.Parent = content Instance.new("UICorner",editor).CornerRadius = UDim.new(0,10) local save = button(content,"SAVE") save.Position = UDim2.new(0,15,1,-50) save.Size = UDim2.fromOffset(80,38) save.MouseButton1Click:Connect(function() currentCode = editor.Text projects[currentProject] = currentCode save.Text = "SAVED" task.delay(1,function() if save.Parent then save.Text = "SAVE" end end) end) end --============================================================== -- BUILD PAGE --============================================================== local function buildPage() clear() local heading = label(content,"Component Builder",20) heading.Position = UDim2.fromOffset(15,12) heading.Size = UDim2.new(1,-30,0,35) heading.Font = Enum.Font.GothamBold local components = { "Button", "Shop", "Inventory", "Currency", "Pets", "Rebirth", "Leaderboard", "Teleport", "Round System" } local y = 55 for _,name in ipairs(components) do local b = button(content,"+ "..name) b.Position = UDim2.fromOffset(15,y) b.Size = UDim2.new(1,-30,0,38) b.MouseButton1Click:Connect(function() currentCode = currentCode .."\n\n-- ForgeX "..name .."\nprint(\""..name.." component created\")" projects[currentProject] = currentCode b.Text = "✓ "..name end) y += 44 end end --============================================================== -- PROJECT PAGE --============================================================== local function projectsPage() clear() local heading = label(content,"Projects",20) heading.Position = UDim2.fromOffset(15,12) heading.Size = UDim2.new(1,-30,0,35) heading.Font = Enum.Font.GothamBold local new = button(content,"+ NEW PROJECT") new.Position = UDim2.fromOffset(15,55) new.Size = UDim2.new(1,-30,0,42) new.MouseButton1Click:Connect(function() local number = 1 while projects["Project "..number] do number += 1 end local name = "Project "..number projects[name] = "-- New ForgeX Project" currentProject = name currentCode = projects[name] projectsPage() end) local y = 110 for name,code in pairs(projects) do local b = button(content,"▣ "..name) b.Position = UDim2.fromOffset(15,y) b.Size = UDim2.new(1,-30,0,42) b.MouseButton1Click:Connect(function() currentProject = name currentCode = code codePage() end) y += 48 end end --============================================================== -- SETTINGS --============================================================== local function settingsPage() clear() local heading = label(content,"ForgeX Settings",20) heading.Position = UDim2.fromOffset(15,12) heading.Size = UDim2.new(1,-30,0,35) heading.Font = Enum.Font.GothamBold local info = label( content, "ForgeX Hub\n\n" .."Version: 2.0\n" .."Project: "..currentProject.."\n\n" .."Mobile UI: ENABLED\n" .."Popup Hub: ENABLED\n" .."Code Editor: ENABLED\n" .."Project Manager: ENABLED\n" .."Component Builder: ENABLED\n\n" .."AI backend: NOT CONNECTED", 12 ) info.Position = UDim2.fromOffset(15,60) info.Size = UDim2.new(1,-30,0,210) info.BackgroundColor3 = PANEL local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0,15) padding.PaddingLeft = UDim.new(0,15) padding.Parent = info Instance.new("UICorner",info).CornerRadius = UDim.new(0,10) end --============================================================== -- OPEN TAB --============================================================== local function openTab(name) for tabName,b in pairs(tabButtons) do if tabName == name then b.BackgroundColor3 = ACCENT else b.BackgroundColor3 = PANEL2 end end if name == "AI" then aiPage() elseif name == "Code" then codePage() elseif name == "Build" then buildPage() elseif name == "Projects" then projectsPage() elseif name == "Settings" then settingsPage() end end AI.MouseButton1Click:Connect(function() openTab("AI") end) CODE.MouseButton1Click:Connect(function() openTab("Code") end) BUILD.MouseButton1Click:Connect(function() openTab("Build") end) PROJECTS.MouseButton1Click:Connect(function() openTab("Projects") end) SETTINGS.MouseButton1Click:Connect(function() openTab("Settings") end) --============================================================== -- POPUP OPEN / CLOSE --============================================================== openButton.MouseButton1Click:Connect(function() window.Visible = true openButton.Visible = false end) close.MouseButton1Click:Connect(function() window.Visible = false openButton.Visible = true end) --============================================================== -- TOUCH DRAGGING --============================================================== local dragging = false local dragStart local startPosition header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPosition = window.Position end end) UIS.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType ~= Enum.UserInputType.Touch and input.UserInputType ~= Enum.UserInputType.MouseMovement then return end local delta = input.Position - dragStart window.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end) UIS.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) --============================================================== -- START --============================================================== openTab("AI") print("====================================") print(" FORGEX HUB V2") print(" MOBILE EDITION") print(" LOADED SUCCESSFULLY") print("====================================")