
KeylessUniversal

-- Noob Spawner System (English GUI with Hide/Show)
-- Place this LocalScript in StarterGui or ScreenGui
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
-- Store created Noobs
local spawnedNoobs = {}
local noobCounter = 0
local mainWindowVisible = true
local restoreButton = nil
-- Create GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "NoobSpawnerGUI"
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.ResetOnSpawn = false -- IMPORTANT: GUI won't disappear on death
ScreenGui.Parent = PlayerGui
-- Main window (dark as in picture)
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainWindow"
MainFrame.Size = UDim2.new(0, 300, 0, 230)
MainFrame.Position = UDim2.new(0.5, -150, 0.5, -115)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = false
MainFrame.ClipsDescendants = true
MainFrame.Parent = ScreenGui
-- Rounded corners
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 12)
UICorner.Parent = MainFrame
-- Thin border
local UIStroke = Instance.new("UIStroke")
UIStroke.Thickness = 1.5
UIStroke.Color = Color3.fromRGB(60, 60, 70)
UIStroke.Transparency = 0.3
UIStroke.Parent = MainFrame
-- Title bar (wide dark strip) - FOR DRAGGING
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 40)
TitleBar.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
-- Make TitleBar active for dragging
TitleBar.Active = true
TitleBar.Selectable = true
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 12, 0, 0)
TitleCorner.Parent = TitleBar
-- Close button (X in top left)
local CloseButton = Instance.new("TextButton")
CloseButton.Name = "CloseButton"
CloseButton.Size = UDim2.new(0, 30, 0, 30)
CloseButton.Position = UDim2.new(0, 5, 0, 5)
CloseButton.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "X"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 16
CloseButton.Font = Enum.Font.GothamBold
CloseButton.Parent = TitleBar
local CloseButtonCorner = Instance.new("UICorner")
CloseButtonCorner.CornerRadius = UDim.new(0, 6)
CloseButtonCorner.Parent = CloseButton
-- Title text "Noob Spawner"
local TitleText = Instance.new("TextLabel")
TitleText.Name = "Title"
TitleText.Size = UDim2.new(1, -40, 1, 0)
TitleText.Position = UDim2.new(0, 40, 0, 0)
TitleText.BackgroundTransparency = 1
TitleText.Text = "Noob Spawner"
TitleText.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleText.TextSize = 20
TitleText.Font = Enum.Font.GothamBold
TitleText.TextXAlignment = Enum.TextXAlignment.Left
TitleText.Parent = TitleBar
-- Content area
local ContentFrame = Instance.new("Frame")
ContentFrame.Name = "Content"
ContentFrame.Size = UDim2.new(1, 0, 1, -40)
ContentFrame.Position = UDim2.new(0, 0, 0, 40)
ContentFrame.BackgroundTransparency = 1
ContentFrame.Parent = MainFrame
-- Large SPAWN NOOB button
local SpawnButton = Instance.new("TextButton")
SpawnButton.Name = "SpawnButton"
SpawnButton.Size = UDim2.new(0.85, 0, 0, 50)
SpawnButton.Position = UDim2.new(0.075, 0, 0.1, 0)
SpawnButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
SpawnButton.BorderSizePixel = 0
SpawnButton.Text = "SPAWN NOOB"
SpawnButton.TextColor3 = Color3.fromRGB(255, 255, 255)
SpawnButton.TextSize = 18
SpawnButton.Font = Enum.Font.GothamBold
SpawnButton.Parent = ContentFrame
local SpawnButtonCorner = Instance.new("UICorner")
SpawnButtonCorner.CornerRadius = UDim.new(0, 8)
SpawnButtonCorner.Parent = SpawnButton
-- DELETE NOOB button
local DeleteButton = Instance.new("TextButton")
DeleteButton.Name = "DeleteButton"
DeleteButton.Size = UDim2.new(0.85, 0, 0, 50)
DeleteButton.Position = UDim2.new(0.075, 0, 0.4, 0)
DeleteButton.BackgroundColor3 = Color3.fromRGB(215, 60, 60)
DeleteButton.BorderSizePixel = 0
DeleteButton.Text = "DELETE NOOB"
DeleteButton.TextColor3 = Color3.fromRGB(255, 255, 255)
DeleteButton.TextSize = 18
DeleteButton.Font = Enum.Font.GothamBold
DeleteButton.Parent = ContentFrame
local DeleteButtonCorner = Instance.new("UICorner")
DeleteButtonCorner.CornerRadius = UDim.new(0, 8)
DeleteButtonCorner.Parent = DeleteButton
-- Noob counter
local CounterFrame = Instance.new("Frame")
CounterFrame.Name = "CounterFrame"
CounterFrame.Size = UDim2.new(0.85, 0, 0, 60)
CounterFrame.Position = UDim2.new(0.075, 0, 0.7, 0)
CounterFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
CounterFrame.Parent = ContentFrame
local CounterCorner = Instance.new("UICorner")
CounterCorner.CornerRadius = UDim.new(0, 8)
CounterCorner.Parent = CounterFrame
local CounterLabel = Instance.new("TextLabel")
CounterLabel.Name = "CounterLabel"
CounterLabel.Size = UDim2.new(1, -20, 1, 0)
CounterLabel.Position = UDim2.new(0, 10, 0, 0)
CounterLabel.BackgroundTransparency = 1
CounterLabel.Text = "Noobs created: 0"
CounterLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
CounterLabel.TextSize = 16
CounterLabel.Font = Enum.Font.GothamMedium
CounterLabel.TextXAlignment = Enum.TextXAlignment.Left
CounterLabel.Parent = CounterFrame
-- Window dragging logic (FIXED)
local dragging = false
local dragInput, dragStart, startPos
local function update(input)
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
-- Event handlers for dragging (added to TitleBar)
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
-- Capture input for mouse
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
connection:Disconnect()
end
end)
end
end)
TitleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
-- Use InputChanged for smooth dragging
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end)
-- Function to update counter
local function updateCounter()
CounterLabel.Text = "Noobs created: " .. #spawnedNoobs
-- Change color and text of Delete button
if #spawnedNoobs == 0 then
DeleteButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
DeleteButton.Text = "NO NOOBS TO DELETE"
else
DeleteButton.BackgroundColor3 = Color3.fromRGB(215, 60, 60)
DeleteButton.Text = "DELETE NOOB"
end
end
-- Function to create Noob NPC with VERY CLOSE arms (1.00)
local function createNoobNPC()
local character = Player.Character
if not character then return nil end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return nil end
-- Position in front of player
local spawnPosition = humanoidRootPart.Position + humanoidRootPart.CFrame.LookVector * 5
spawnPosition = Vector3.new(spawnPosition.X, spawnPosition.Y + 2, spawnPosition.Z)
-- Create Noob model (R6)
local noobModel = Instance.new("Model")
noobModel.Name = "Noob_" .. tostring(os.time())
-- Torso (R6)
local torso = Instance.new("Part")
torso.Name = "Torso"
torso.Size = Vector3.new(2, 2, 1)
torso.Position = spawnPosition
torso.BrickColor = BrickColor.new("Bright blue")
torso.Material = Enum.Material.Plastic
torso.CanCollide = true
torso.Anchored = false
torso.Parent = noobModel
-- Head (SpecialMesh for rounding)
local head = Instance.new("Part")
head.Name = "Head"
head.Size = Vector3.new(2, 1, 1)
head.Position = spawnPosition + Vector3.new(0, 2, 0)
head.BrickColor = BrickColor.new("Bright yellow")
head.Material = Enum.Material.Plastic
head.CanCollide = true
head.Anchored = false
head.Parent = noobModel
-- SpecialMesh for rounded head
local headMesh = Instance.new("SpecialMesh")
headMesh.MeshType = Enum.MeshType.Head
headMesh.Scale = Vector3.new(1.2, 1.2, 1.2)
headMesh.Parent = head
-- Noob face
local face = Instance.new("Decal")
face.Name = "face"
face.Texture = "rbxasset://textures/face.png"
face.Face = Enum.NormalId.Front
face.Parent = head
-- Left arm (VERY CLOSE to torso - almost touching)
local leftArm = Instance.new("Part")
leftArm.Name = "Left Arm"
leftArm.Size = Vector3.new(1, 2, 1)
leftArm.Position = spawnPosition + Vector3.new(-1.00, 0, 0) -- VERY CLOSE (was 1.02)
leftArm.BrickColor = BrickColor.new("Bright yellow")
leftArm.Material = Enum.Material.Plastic
leftArm.CanCollide = true
leftArm.Anchored = false
leftArm.Parent = noobModel
-- Right arm (VERY CLOSE to torso - almost touching)
local rightArm = Instance.new("Part")
rightArm.Name = "Right Arm"
rightArm.Size = Vector3.new(1, 2, 1)
rightArm.Position = spawnPosition + Vector3.new(1.00, 0, 0) -- VERY CLOSE (was 1.02)
rightArm.BrickColor = BrickColor.new("Bright yellow")
rightArm.Material = Enum.Material.Plastic
rightArm.CanCollide = true
rightArm.Anchored = false
rightArm.Parent = noobModel
-- Left leg
local leftLeg = Instance.new("Part")
leftLeg.Name = "Left Leg"
leftLeg.Size = Vector3.new(1, 2, 1)
leftLeg.Position = spawnPosition + Vector3.new(-0.5, -2, 0)
leftLeg.BrickColor = BrickColor.new("Bright green")
leftLeg.Material = Enum.Material.Plastic
leftLeg.CanCollide = true
leftLeg.Anchored = false
leftLeg.Parent = noobModel
-- Right leg
local rightLeg = Instance.new("Part")
rightLeg.Name = "Right Leg"
rightLeg.Size = Vector3.new(1, 2, 1)
rightLeg.Position = spawnPosition + Vector3.new(0.5, -2, 0)
rightLeg.BrickColor = BrickColor.new("Bright green")
rightLeg.Material = Enum.Material.Plastic
rightLeg.CanCollide = true
rightLeg.Anchored = false
rightLeg.Parent = noobModel
-- Humanoid for NPC (R6)
local humanoid = Instance.new("Humanoid")
humanoid.Name = "Humanoid"
humanoid.WalkSpeed = 0
humanoid.JumpPower = 0
humanoid.MaxHealth = 100
humanoid.Health = 100
humanoid.Parent = noobModel
-- Name above head with number
noobCounter = noobCounter + 1
local billboardGui = Instance.new("BillboardGui")
billboardGui.Name = "NameTag"
billboardGui.Size = UDim2.new(0, 200, 0, 50)
billboardGui.StudsOffset = Vector3.new(0, 3, 0)
billboardGui.AlwaysOnTop = true
billboardGui.Parent = head
local nameLabel = Instance.new("TextLabel")
nameLabel.Name = "Name"
nameLabel.Size = UDim2.new(1, 0, 1, 0)
nameLabel.BackgroundTransparency = 1
nameLabel.Text = "Noob #" .. noobCounter
nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
nameLabel.TextSize = 18
nameLabel.Font = Enum.Font.GothamBold
nameLabel.TextStrokeTransparency = 0.5
nameLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
nameLabel.Parent = billboardGui
-- Weld parts together with VERY close arms (1.00)
local function weldParts(part0, part1, c0, c1)
local weld = Instance.new("Weld")
weld.Part0 = part0
weld.Part1 = part1
weld.C0 = c0 or CFrame.new()
weld.C1 = c1 or CFrame.new()
weld.Parent = part0
end
-- Create weld connections for R6 (arms VERY close - 1.00)
weldParts(torso, head, CFrame.new(0, 1, 0), CFrame.new(0, -0.5, 0))
weldParts(torso, leftArm, CFrame.new(-1.00, 0, 0), CFrame.new(0.5, 0, 0)) -- VERY close
weldParts(torso, rightArm, CFrame.new(1.00, 0, 0), CFrame.new(-0.5, 0, 0)) -- VERY close
weldParts(torso, leftLeg, CFrame.new(-0.5, -1, 0), CFrame.new(0, 1, 0))
weldParts(torso, rightLeg, CFrame.new(0.5, -1, 0), CFrame.new(0, 1, 0))
-- Add force for soft landing
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Velocity = Vector3.new(0, 5, 0)
bodyVelocity.MaxForce = Vector3.new(0, 4000, 0)
bodyVelocity.Parent = torso
game:GetService("Debris"):AddItem(bodyVelocity, 0.2)
-- Place model in workspace
noobModel.PrimaryPart = torso
noobModel.Parent = workspace
-- Creation sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://3570577731"
sound.Volume = 0.3
sound.Parent = torso
sound:Play()
game:GetService("Debris"):AddItem(sound, 2)
-- Particle effect on appearance
local particles = Instance.new("ParticleEmitter")
particles.Texture = "rbxasset://textures/particles/sparkles_main.dds"
particles.Color = ColorSequence.new(Color3.fromRGB(255, 255, 0))
particles.Size = NumberSequence.new(0.5)
particles.Lifetime = NumberRange.new(0.5)
particles.Rate = 30
particles.Speed = NumberRange.new(3)
particles.Parent = head
game:GetService("Debris"):AddItem(particles, 1)
-- Add to created Noobs table
table.insert(spawnedNoobs, {
model = noobModel,
id = noobCounter,
timestamp = os.time()
})
updateCounter()
print("Noob #" .. noobCounter .. " created! (arms at distance 1.00)")
return noobModel
end
-- Function to delete last Noob
local function deleteLastNoob()
if #spawnedNoobs == 0 then
-- Effect for empty list
TweenService:Create(
DeleteButton,
TweenInfo.new(0.1, Enum.EasingStyle.Back, Enum.EasingDirection.Out, 2, true),
{Position = UDim2.new(0.075, 5, 0.4, 0)}
):Play()
return
end
-- Get last Noob
local lastNoob = spawnedNoobs[#spawnedNoobs]
if lastNoob and lastNoob.model and lastNoob.model.Parent then
-- Delete effect
local torso = lastNoob.model:FindFirstChild("Torso")
if torso then
-- Delete sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://138186576"
sound.Volume = 0.5
sound.Parent = torso
sound:Play()
game:GetService("Debris"):AddItem(sound, 2)
-- Particle effect on deletion
local particles = Instance.new("ParticleEmitter")
particles.Texture = "rbxasset://textures/particles/smoke_main.dds"
particles.Color = ColorSequence.new(Color3.fromRGB(255, 50, 50))
particles.Size = NumberSequence.new(0.8)
particles.Lifetime = NumberRange.new(0.8)
particles.Rate = 80
particles.Speed = NumberRange.new(8)
particles.Parent = torso
game:GetService("Debris"):AddItem(particles, 1)
-- Disappearance animation
for _, part in pairs(lastNoob.model:GetChildren()) do
if part:IsA("BasePart") then
TweenService:Create(
part,
TweenInfo.new(0.3),
{Transparency = 1}
):Play()
end
end
wait(0.3)
lastNoob.model:Destroy()
else
lastNoob.model:Destroy()
end
-- Remove from table
table.remove(spawnedNoobs, #spawnedNoobs)
updateCounter()
print("Noob #" .. lastNoob.id .. " deleted!")
else
-- Cleanup non-existent records
table.remove(spawnedNoobs, #spawnedNoobs)
updateCounter()
end
end
-- Function to hide main window and show restore button
local function hideWindow()
if not mainWindowVisible then return end
mainWindowVisible = false
-- Animation for hiding window
local hideTween = TweenService:Create(
MainFrame,
TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.In),
{Size = UDim2.new(0, 0, 0, 0), Position = UDim2.new(0.5, 0, 0.5, 0)}
)
hideTween.Completed:Connect(function()
MainFrame.Visible = false
-- Create restore button "Noob •_•"
if restoreButton and restoreButton.Parent then
restoreButton:Destroy()
end
restoreButton = Instance.new("TextButton")
restoreButton.Name = "RestoreButton"
restoreButton.Size = UDim2.new(0, 120, 0, 40) -- Rectangular button
restoreButton.Position = UDim2.new(0, 20, 0, 20) -- Top left corner
restoreButton.BackgroundColor3 = Color3.fromRGB(255, 200, 0) -- Yellow
restoreButton.BorderSizePixel = 0
restoreButton.Text = "Noob •_•"
restoreButton.TextColor3 = Color3.fromRGB(0, 0, 0) -- Black text
restoreButton.TextSize = 16
restoreButton.Font = Enum.Font.GothamBold
restoreButton.Parent = ScreenGui
local restoreCorner = Instance.new("UICorner")
restoreCorner.CornerRadius = UDim.new(0, 6)
restoreCorner.Parent = restoreButton
local restoreStroke = Instance.new("UIStroke")
restoreStroke.Thickness = 2
restoreStroke.Color = Color3.fromRGB(255, 220, 50)
restoreStroke.Parent = restoreButton
-- Restore button effects
restoreButton.MouseEnter:Connect(function()
TweenService:Create(
restoreButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(255, 220, 30)}
):Play()
end)
restoreButton.MouseLeave:Connect(function()
TweenService:Create(
restoreButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(255, 200, 0)}
):Play()
end)
-- Click to restore window
restoreButton.MouseButton1Click:Connect(function()
if mainWindowVisible then return end
restoreButton.Visible = false
-- Show main window
MainFrame.Visible = true
MainFrame.Size = UDim2.new(0, 0, 0, 0)
MainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
local showTween = TweenService:Create(
MainFrame,
TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
{Size = UDim2.new(0, 300, 0, 230), Position = UDim2.new(0.5, -150, 0.5, -115)}
)
showTween.Completed:Connect(function()
mainWindowVisible = true
end)
showTween:Play()
end)
end)
hideTween:Play()
end
-- Close button effects
CloseButton.MouseEnter:Connect(function()
TweenService:Create(
CloseButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(220, 80, 80)}
):Play()
end)
CloseButton.MouseLeave:Connect(function()
TweenService:Create(
CloseButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(200, 60, 60)}
):Play()
end)
CloseButton.MouseButton1Click:Connect(function()
hideWindow()
end)
-- Spawn button effects
SpawnButton.MouseEnter:Connect(function()
TweenService:Create(
SpawnButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(0, 140, 235)}
):Play()
end)
SpawnButton.MouseLeave:Connect(function()
TweenService:Create(
SpawnButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(0, 120, 215)}
):Play()
end)
SpawnButton.MouseButton1Down:Connect(function()
TweenService:Create(
SpawnButton,
TweenInfo.new(0.1),
{Size = UDim2.new(0.83, 0, 0, 48)}
):Play()
end)
SpawnButton.MouseButton1Up:Connect(function()
TweenService:Create(
SpawnButton,
TweenInfo.new(0.1),
{Size = UDim2.new(0.85, 0, 0, 50)}
):Play()
end)
-- Delete button effects
DeleteButton.MouseEnter:Connect(function()
if #spawnedNoobs > 0 then
TweenService:Create(
DeleteButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(235, 80, 80)}
):Play()
end
end)
DeleteButton.MouseLeave:Connect(function()
if #spawnedNoobs > 0 then
TweenService:Create(
DeleteButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(215, 60, 60)}
):Play()
else
DeleteButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
end
end)
DeleteButton.MouseButton1Down:Connect(function()
if #spawnedNoobs > 0 then
TweenService:Create(
DeleteButton,
TweenInfo.new(0.1),
{Size = UDim2.new(0.83, 0, 0, 48)}
):Play()
end
end)
DeleteButton.MouseButton1Up:Connect(function()
TweenService:Create(
DeleteButton,
TweenInfo.new(0.1),
{Size = UDim2.new(0.85, 0, 0, 50)}
):Play()
end)
-- Click handlers
local spawnDebounce = false
SpawnButton.MouseButton1Click:Connect(function()
if spawnDebounce then return end
spawnDebounce = true
-- Press animation
TweenService:Create(
SpawnButton,
TweenInfo.new(0.1),
{BackgroundColor3 = Color3.fromRGB(0, 100, 195)}
):Play()
-- Create Noob
local success, errorMsg = pcall(function()
createNoobNPC()
end)
if not success then
warn("Error creating Noob:", errorMsg)
-- Error animation
local originalColor = SpawnButton.BackgroundColor3
TweenService:Create(
SpawnButton,
TweenInfo.new(0.1),
{BackgroundColor3 = Color3.fromRGB(255, 50, 50)}
):Play()
wait(0.2)
TweenService:Create(
SpawnButton,
TweenInfo.new(0.2),
{BackgroundColor3 = originalColor}
):Play()
end
-- Restore button
wait(0.3)
TweenService:Create(
SpawnButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(0, 120, 215)}
):Play()
spawnDebounce = false
end)
local deleteDebounce = false
DeleteButton.MouseButton1Click:Connect(function()
if deleteDebounce or #spawnedNoobs == 0 then return end
deleteDebounce = true
-- Press animation
TweenService:Create(
DeleteButton,
TweenInfo.new(0.1),
{BackgroundColor3 = Color3.fromRGB(195, 40, 40)}
):Play()
-- Delete last Noob
deleteLastNoob()
-- Restore button
wait(0.3)
if #spawnedNoobs > 0 then
TweenService:Create(
DeleteButton,
TweenInfo.new(0.2),
{BackgroundColor3 = Color3.fromRGB(215, 60, 60)}
):Play()
end
deleteDebounce = false
end)
-- Hotkeys
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.Backspace then
deleteLastNoob()
elseif input.KeyCode == Enum.KeyCode.N then
-- Hotkey for creation (N)
if not spawnDebounce then
spawnDebounce = true
createNoobNPC()
wait(0.5)
spawnDebounce = false
end
elseif input.KeyCode == Enum.KeyCode.H then
-- Hotkey to hide window (H)
hideWindow()
end
end)
-- Auto-cleanup non-existent Noobs
coroutine.wrap(function()
while wait(5) do
local validNoobs = {}
for _, noobData in ipairs(spawnedNoobs) do
if noobData.model and noobData.model.Parent then
table.insert(validNoobs, noobData)
end
end
if #validNoobs ~= #spawnedNoobs then
spawnedNoobs = validNoobs
updateCounter()
end
end
end)()
-- Initialization
updateCounter()
print("=== Noob Spawner GUI loaded ===")
print("Features:")
print("1. English interface")
print("2. GUI won't disappear on player death (ResetOnSpawn = false)")
print("3. Close button (X) in top left - hides window")
print("4. Yellow rectangular button 'Noob •_•' appears when window is hidden")
print("5. Click 'Noob •_•' to restore window")
print("6. Window can be dragged by title bar")
print("7. Noob R6 with rounded head")
print("8. Arms VERY close to torso (distance 1.00)")
print("9. Hotkeys: Backspace - delete, N - create, H - hide")No comments yet for this script.



