How to create a Car Spawner GUI Roblox Studio
CarSpawner
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
-- Wait for events and model to be available
local spawnCarEvent = ReplicatedStorage:WaitForChild("SpawnCarEvent")
local deleteCarEvent = ReplicatedStorage:WaitForChild("DeleteCarEvent")
local carModel = ReplicatedStorage:WaitForChild("Car")
-- Table to keep track of each player's car
local playerCars = {}
-- Function to delete a player's car
local function deleteCar(player)
if playerCars[player] then
playerCars[player]:Destroy()
playerCars[player] = nil
end
end
-- Function to spawn a car for a player
local function spawnCar(player)
-- First, delete any existing car for this player
deleteCar(player)
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
-- Clone the car model
local newCar = carModel:Clone()
newCar.Name = player.Name .. "'s Car"
-- Position the new car in front of the player
-- The car will spawn 10 studs in front of the player and 3 studs up
local spawnOffset = CFrame.new(0, 3, -10)
local spawnCFrame = humanoidRootPart.CFrame * spawnOffset
newCar:PivotTo(spawnCFrame)
newCar.Parent = Workspace
-- Keep track of the new car
playerCars[player] = newCar
end
-- Connect the functions to the remote events
spawnCarEvent.OnServerEvent:Connect(spawnCar)
deleteCarEvent.OnServerEvent:Connect(deleteCar)
-- Clean up car when a player leaves
Players.PlayerRemoving:Connect(deleteCar)
CarSpawnerGUI
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
-- Get the remote events
local spawnCarEvent = ReplicatedStorage:WaitForChild("SpawnCarEvent")
local deleteCarEvent = ReplicatedStorage:WaitForChild("DeleteCarEvent")
-- Create the ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CarSpawnerGui"
screenGui.Parent = PlayerGui
-- Create the spawn button
local spawnButton = Instance.new("TextButton")
spawnButton.Name = "SpawnCarButton"
spawnButton.Text = "Spawn Car"
spawnButton.Size = UDim2.new(0, 150, 0, 50)
spawnButton.Position = UDim2.new(0.5, -75, 0.8, 0) -- Positioned at the bottom center
spawnButton.BackgroundColor3 = Color3.new(0, 0.6, 0.2)
spawnButton.TextColor3 = Color3.new(1, 1, 1)
spawnButton.Font = Enum.Font.SourceSansBold
spawnButton.TextSize = 20
spawnButton.Parent = screenGui
-- Create the delete button
local deleteButton = Instance.new("TextButton")
deleteButton.Name = "DeleteCarButton"
deleteButton.Text = "Delete Car"
deleteButton.Size = UDim2.new(0, 150, 0, 50)
deleteButton.Position = UDim2.new(0.5, -75, 0.9, 0) -- Positioned below the spawn button
deleteButton.BackgroundColor3 = Color3.new(0.8, 0.2, 0)
deleteButton.TextColor3 = Color3.new(1, 1, 1)
deleteButton.Font = Enum.Font.SourceSansBold
deleteButton.TextSize = 20
deleteButton.Parent = screenGui
-- Event listener for the spawn button
spawnButton.MouseButton1Click:Connect(function()
spawnCarEvent:FireServer()
end)
-- Event listener for the delete button
deleteButton.MouseButton1Click:Connect(function()
deleteCarEvent:FireServer()
end)