-- [[ 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 ]] --========================================================-- -- BUILD HUB v2 -- -- Roblox Own-Game Development Builder -- --========================================================-- local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") --========================================================-- -- CONFIG --========================================================-- local CONFIG = { Name = "BuildHubV2", FolderName = "BuildHub_Generated", Theme = { Background = Color3.fromRGB(16,18,25), Panel = Color3.fromRGB(24,27,37), Panel2 = Color3.fromRGB(31,35,47), Accent = Color3.fromRGB(74,115,255), Accent2 = Color3.fromRGB(100,145,255), Text = Color3.fromRGB(245,247,255), SubText = Color3.fromRGB(160,166,185), Success = Color3.fromRGB(70,220,130), Error = Color3.fromRGB(255,90,90), Warning = Color3.fromRGB(255,190,70), } } --========================================================-- -- UTILITIES --========================================================-- local function safeDestroy(obj) if obj and obj.Parent then pcall(function() obj:Destroy() end) end end local function getFolder() local folder = workspace:FindFirstChild(CONFIG.FolderName) if not folder then folder = Instance.new("Folder") folder.Name = CONFIG.FolderName folder.Parent = workspace end return folder end local function clearGenerated() local folder = workspace:FindFirstChild(CONFIG.FolderName) if folder then safeDestroy(folder) end end local function newPart(name, position, size, material, parent) local success, result = pcall(function() local part = Instance.new("Part") part.Name = name part.Position = position part.Size = size part.Anchored = true part.CanCollide = true part.Material = material or Enum.Material.SmoothPlastic part.TopSurface = Enum.SurfaceType.Smooth part.BottomSurface = Enum.SurfaceType.Smooth part.Parent = parent or getFolder() return part end) if success then return result end return nil end local function addLabel(part, text) if not part then return end local billboard = Instance.new("BillboardGui") billboard.Name = "BuildHubLabel" billboard.Size = UDim2.fromOffset(180,50) billboard.StudsOffset = Vector3.new(0,5,0) billboard.AlwaysOnTop = true billboard.Parent = part local label = Instance.new("TextLabel") label.Size = UDim2.fromScale(1,1) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.new(1,1,1) label.TextStrokeTransparency = 0.4 label.TextScaled = true label.Font = Enum.Font.GothamBold label.Parent = billboard end local function makeZone(name, position, text, size) local zone = newPart( name, position, size or Vector3.new(16,1,16), Enum.Material.Neon ) addLabel(zone,text) return zone end --========================================================-- -- GUI --========================================================-- local gui = Instance.new("ScreenGui") gui.Name = CONFIG.Name gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = playerGui local main = Instance.new("Frame") main.Name = "Main" main.Size = UDim2.fromOffset(390,520) main.Position = UDim2.new(.5,-195,.5,-260) main.BackgroundColor3 = CONFIG.Theme.Background main.Parent = gui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0,18) mainCorner.Parent = main local mainStroke = Instance.new("UIStroke") mainStroke.Color = CONFIG.Theme.Accent mainStroke.Transparency = .65 mainStroke.Thickness = 1 mainStroke.Parent = main -- Header local header = Instance.new("Frame") header.Size = UDim2.new(1,0,0,62) header.BackgroundColor3 = CONFIG.Theme.Panel header.Parent = main local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0,18) headerCorner.Parent = header local title = Instance.new("TextLabel") title.BackgroundTransparency = 1 title.Position = UDim2.fromOffset(18,7) title.Size = UDim2.new(1,-100,0,28) title.Text = "⚒ BUILD HUB" title.TextColor3 = CONFIG.Theme.Text title.TextSize = 23 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local subtitle = Instance.new("TextLabel") subtitle.BackgroundTransparency = 1 subtitle.Position = UDim2.fromOffset(20,35) subtitle.Size = UDim2.new(1,-100,0,20) subtitle.Text = "Game creation assistant • v2" subtitle.TextColor3 = CONFIG.Theme.SubText subtitle.TextSize = 11 subtitle.Font = Enum.Font.Gotham subtitle.TextXAlignment = Enum.TextXAlignment.Left subtitle.Parent = header local close = Instance.new("TextButton") close.Size = UDim2.fromOffset(38,38) close.Position = UDim2.new(1,-48,0,12) close.Text = "×" close.TextSize = 26 close.Font = Enum.Font.GothamBold close.TextColor3 = CONFIG.Theme.Text close.BackgroundColor3 = CONFIG.Theme.Panel2 close.Parent = header local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0,10) closeCorner.Parent = close -- Prompt local prompt = Instance.new("TextBox") prompt.Name = "Prompt" prompt.Size = UDim2.new(1,-30,0,88) prompt.Position = UDim2.fromOffset(15,75) prompt.BackgroundColor3 = CONFIG.Theme.Panel prompt.TextColor3 = CONFIG.Theme.Text prompt.PlaceholderColor3 = CONFIG.Theme.SubText prompt.PlaceholderText = "Describe the game or feature you want..." prompt.Text = "" prompt.TextSize = 15 prompt.Font = Enum.Font.Gotham prompt.TextWrapped = true prompt.TextXAlignment = Enum.TextXAlignment.Left prompt.TextYAlignment = Enum.TextYAlignment.Top prompt.ClearTextOnFocus = false prompt.MultiLine = true prompt.Parent = main local promptCorner = Instance.new("UICorner") promptCorner.CornerRadius = UDim.new(0,12) promptCorner.Parent = prompt -- Build button local buildButton = Instance.new("TextButton") buildButton.Size = UDim2.new(1,-30,0,48) buildButton.Position = UDim2.fromOffset(15,173) buildButton.Text = "⚡ BUILD" buildButton.TextColor3 = Color3.new(1,1,1) buildButton.TextSize = 17 buildButton.Font = Enum.Font.GothamBold buildButton.BackgroundColor3 = CONFIG.Theme.Accent buildButton.Parent = main local buildCorner = Instance.new("UICorner") buildCorner.CornerRadius = UDim.new(0,12) buildCorner.Parent = buildButton -- Status local status = Instance.new("TextLabel") status.Size = UDim2.new(1,-30,0,27) status.Position = UDim2.fromOffset(15,228) status.BackgroundTransparency = 1 status.Text = "● Ready" status.TextColor3 = CONFIG.Theme.Success status.TextSize = 13 status.Font = Enum.Font.GothamMedium status.TextXAlignment = Enum.TextXAlignment.Left status.Parent = main -- Progress local progressBack = Instance.new("Frame") progressBack.Size = UDim2.new(1,-30,0,6) progressBack.Position = UDim2.fromOffset(15,258) progressBack.BackgroundColor3 = CONFIG.Theme.Panel2 progressBack.Parent = main local progressCorner = Instance.new("UICorner") progressCorner.CornerRadius = UDim.new(1,0) progressCorner.Parent = progressBack local progress = Instance.new("Frame") progress.Size = UDim2.new(0,0,1,0) progress.BackgroundColor3 = CONFIG.Theme.Accent progress.Parent = progressBack local progressFillCorner = Instance.new("UICorner") progressFillCorner.CornerRadius = UDim.new(1,0) progressFillCorner.Parent = progress -- Presets title local presetTitle = Instance.new("TextLabel") presetTitle.Size = UDim2.new(1,-30,0,25) presetTitle.Position = UDim2.fromOffset(15,278) presetTitle.BackgroundTransparency = 1 presetTitle.Text = "QUICK BUILD" presetTitle.TextColor3 = CONFIG.Theme.SubText presetTitle.TextSize = 12 presetTitle.Font = Enum.Font.GothamBold presetTitle.TextXAlignment = Enum.TextXAlignment.Left presetTitle.Parent = main -- Preset scrolling frame local presets = Instance.new("ScrollingFrame") presets.Size = UDim2.new(1,-30,0,125) presets.Position = UDim2.fromOffset(15,305) presets.BackgroundTransparency = 1 presets.BorderSizePixel = 0 presets.ScrollBarThickness = 3 presets.CanvasSize = UDim2.new(0,0,0,0) presets.Parent = main local grid = Instance.new("UIGridLayout") grid.CellSize = UDim2.fromOffset(108,48) grid.CellPadding = UDim2.fromOffset(8,8) grid.Parent = presets local function presetButton(text, command) local b = Instance.new("TextButton") b.Text = text b.TextColor3 = CONFIG.Theme.Text b.TextSize = 12 b.Font = Enum.Font.GothamBold b.BackgroundColor3 = CONFIG.Theme.Panel2 b.Parent = presets local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0,10) c.Parent = b b.MouseButton1Click:Connect(function() prompt.Text = command prompt:CaptureFocus() end) return b end presetButton("🏃 Obby","Make an obby") presetButton("💰 Simulator","Make a simulator") presetButton("🏪 Shop","Add a shop") presetButton("🐾 Pets","Add pets") presetButton("🔄 Rebirth","Add rebirths") presetButton("☠️ Lava","Add lava") presetButton("🏁 Checkpoints","Add checkpoints") presetButton("👾 Enemies","Add enemies") presetButton("🏆 Leaderboard","Add leaderboard") presetButton("🏭 Tycoon","Make a tycoon") presetButton("🌳 Decor","Add decoration") presetButton("🧹 Clear","Clear the build") --========================================================-- -- STATUS / PROGRESS --========================================================-- local function setStatus(text, color) status.Text = "● " .. text status.TextColor3 = color or CONFIG.Theme.SubText end local function setProgress(value) value = math.clamp(value,0,1) TweenService:Create( progress, TweenInfo.new(.2,Enum.EasingStyle.Quad), {Size = UDim2.new(value,0,1,0)} ):Play() end --========================================================-- -- GENERATORS --========================================================-- local function createSpawn(position) local folder = getFolder() local spawn = Instance.new("SpawnLocation") spawn.Name = "GeneratedSpawn" spawn.Size = Vector3.new(8,1,8) spawn.Position = position spawn.Anchored = true spawn.Neutral = true spawn.Parent = folder return spawn end local function generateObby() clearGenerated() setStatus("Generating obby...",CONFIG.Theme.Warning) for i=1,25 do local x = (i-1)*12 local y = 5 + math.sin(i*.7)*3 newPart( "Platform_"..i, Vector3.new(x,y,0), Vector3.new(9,1,9), Enum.Material.SmoothPlastic ) if i%4 == 0 then newPart( "Obstacle_"..i, Vector3.new(x,y+3,0), Vector3.new(3,5,8), Enum.Material.Neon ) end setProgress(i/25) task.wait(.03) end createSpawn(Vector3.new(0,7,0)) makeZone( "Finish", Vector3.new(300,7,0), "🏆 FINISH", Vector3.new(14,1,14) ) setStatus("Obby complete!",CONFIG.Theme.Success) end local function generateSimulator() clearGenerated() setStatus("Generating simulator...",CONFIG.Theme.Warning) newPart( "MainIsland", Vector3.new(0,0,0), Vector3.new(140,2,140), Enum.Material.Grass ) createSpawn(Vector3.new(0,4,0)) makeZone( "SellZone", Vector3.new(0,2,48), "💰 SELL", Vector3.new(22,1,16) ) makeZone( "ShopZone", Vector3.new(42,2,0), "🏪 SHOP", Vector3.new(22,1,16) ) makeZone( "PetZone", Vector3.new(-42,2,0), "🐾 PETS", Vector3.new(22,1,16) ) makeZone( "RebirthZone", Vector3.new(0,2,-48), "🔄 REBIRTH", Vector3.new(22,1,16) ) setProgress(.25) for i=1,18 do local angle = math.rad(i*20) local x = math.cos(angle)*58 local z = math.sin(angle)*58 newPart( "Decoration_"..i, Vector3.new(x,4,z), Vector3.new(3,8,3), Enum.Material.Wood ) setProgress(.25 + i/18*.75) task.wait(.03) end setStatus("Simulator complete!",CONFIG.Theme.Success) end local function addShop() local zone = makeZone( "Shop", Vector3.new(25,4,0), "🏪 SHOP", Vector3.new(20,1,20) ) newPart( "ShopBuilding", Vector3.new(25,9,0), Vector3.new(14,10,14), Enum.Material.SmoothPlastic ) return zone end local function addPets() makeZone( "PetArea", Vector3.new(-25,3,0), "🐾 PETS", Vector3.new(20,1,20) ) for i=1,5 do local pet = newPart( "PetDisplay_"..i, Vector3.new(-40+i*6,6,12), Vector3.new(4,4,4), Enum.Material.Neon ) addLabel(pet,"Pet "..i) end setStatus("Pet system area created!",CONFIG.Theme.Success) end local function addRebirth() makeZone( "Rebirth", Vector3.new(0,3,-25), "🔄 REBIRTH", Vector3.new(20,1,20) ) setStatus("Rebirth area created!",CONFIG.Theme.Success) end local function addLava() local lava = newPart( "Lava", Vector3.new(0,-4,0), Vector3.new(150,1,150), Enum.Material.Neon ) if lava then lava.Touched:Connect(function(hit) local character = hit.Parent if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.Health = 0 end end) end setStatus("Lava added!",CONFIG.Theme.Success) end local function addCheckpoints() for i=1,10 do local checkpoint = makeZone( "Checkpoint_"..i, Vector3.new(i*14,4,25), "CHECKPOINT "..i, Vector3.new(9,1,9) ) if checkpoint then checkpoint:SetAttribute("CheckpointNumber",i) end end setStatus("10 checkpoints created!",CONFIG.Theme.Success) end local function addEnemies() for i=1,8 do local enemy = newPart( "Enemy_"..i, Vector3.new(math.random(-50,50),5,math.random(-50,50)), Vector3.new(5,7,5), Enum.Material.Slate ) addLabel(enemy,"ENEMY") end setStatus("Enemy placeholders created!",CONFIG.Theme.Success) end local function addLeaderboard() local board = newPart( "Leaderboard", Vector3.new(0,8,25), Vector3.new(14,12,2), Enum.Material.SmoothPlastic ) addLabel(board,"🏆 LEADERBOARD") setStatus("Leaderboard created!",CONFIG.Theme.Success) end local function generateTycoon() clearGenerated() setStatus("Generating tycoon...",CONFIG.Theme.Warning) for i=1,4 do local x = ((i-1)%2)*35-17 local z = math.floor((i-1)/2)*35-17 local base = newPart( "TycoonBase_"..i, Vector3.new(x,1,z), Vector3.new(30,2,30), Enum.Material.Concrete ) addLabel(base,"TYCOON "..i) makeZone( "Collector_"..i, Vector3.new(x,3,z), "COLLECT", Vector3.new(10,1,10) ) setProgress(i/4) task.wait(.08) end createSpawn(Vector3.new(0,5,60)) setStatus("Tycoon base complete!",CONFIG.Theme.Success) end local function addDecoration() for i=1,40 do local x = math.random(-65,65) local z = math.random(-65,65) newPart( "Tree_"..i, Vector3.new(x,4,z), Vector3.new(3,8,3), Enum.Material.Wood ) local leaves = newPart( "Leaves_"..i, Vector3.new(x,10,z), Vector3.new(8,6,8), Enum.Material.Grass ) if leaves then leaves.Shape = Enum.PartType.Ball end setProgress(i/40) task.wait(.015) end setStatus("Decoration complete!",CONFIG.Theme.Success) end --========================================================-- -- NATURAL LANGUAGE PARSER --========================================================-- local function contains(text,...) for _,word in ipairs({...}) do if string.find(text,word,1,true) then return true end end return false end local function processRequest(request) request = string.lower(request or "") if request == "" then setStatus("Describe what you want to build.",CONFIG.Theme.Warning) return end setProgress(0) -- Clear if contains(request,"clear","delete build","remove build") then clearGenerated() setProgress(1) setStatus("Generated build cleared.",CONFIG.Theme.Success) return end -- Full game types if contains(request,"obby","obstacle course") then generateObby() return end if contains(request,"simulator","sim") then generateSimulator() return end if contains(request,"tycoon") then generateTycoon() return end -- Features if contains(request,"shop","store") then addShop() return end if contains(request,"pet","pets") then addPets() return end if contains(request,"rebirth","rebirths") then addRebirth() return end if contains(request,"lava","kill brick","killbrick") then addLava() return end if contains(request,"checkpoint","checkpoints") then addCheckpoints() return end if contains(request,"enemy","enemies","npc") then addEnemies() return end if contains(request,"leaderboard","leader board") then addLeaderboard() return end if contains(request,"tree","trees","decoration","decor") then addDecoration() return end -- Compound requests if contains(request,"game") then clearGenerated() generateSimulator() if contains(request,"shop","store") then addShop() end if contains(request,"pet","pets") then addPets() end if contains(request,"rebirth","rebirths") then addRebirth() end if contains(request,"enemy","enemies") then addEnemies() end if contains(request,"checkpoint","checkpoints") then addCheckpoints() end setStatus("Game generated from your request!",CONFIG.Theme.Success) return end setStatus( "Feature not recognized yet. Try a preset or supported feature.", CONFIG.Theme.Warning ) end --========================================================-- -- BUILD BUTTON --========================================================-- local building = false buildButton.MouseButton1Click:Connect(function() if building then return end building = true buildButton.Active = false buildButton.Text = "⚙ BUILDING..." local success,err = pcall(function() processRequest(prompt.Text) end) if not success then setProgress(0) setStatus("Build failed: "..tostring(err),CONFIG.Theme.Error) end buildButton.Text = "⚡ BUILD" buildButton.Active = true building = false end) --========================================================-- -- CLOSE / OPEN --========================================================-- local openButton = Instance.new("TextButton") openButton.Size = UDim2.fromOffset(64,64) openButton.Position = UDim2.fromOffset(15,200) openButton.BackgroundColor3 = CONFIG.Theme.Accent openButton.Text = "⚒" openButton.TextSize = 30 openButton.TextColor3 = Color3.new(1,1,1) openButton.Visible = false openButton.Parent = gui local openCorner = Instance.new("UICorner") openCorner.CornerRadius = UDim.new(0,16) openCorner.Parent = openButton close.MouseButton1Click:Connect(function() main.Visible = false openButton.Visible = true end) openButton.MouseButton1Click:Connect(function() main.Visible = true openButton.Visible = false end) --========================================================-- -- DRAGGING --========================================================-- local dragging = false local dragStart local startPos header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position end end) header.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UIS.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType ~= Enum.UserInputType.MouseMovement and input.UserInputType ~= Enum.UserInputType.Touch then return end local delta = input.Position - dragStart main.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end) --========================================================-- -- STARTUP --========================================================-- setProgress(0) setStatus("Build Hub v2 ready.",CONFIG.Theme.Success)