← Todas las guías
Guía 5

Crea tu primer juego de robar y defender

Cada jugador tiene una base. Agarra la gema del centro, llévala a casa para anotar y toca a cualquiera que la lleve.

Gratis70 minutos · Principiante, última guía · Roblox Studio
1
Paso 1 / 8

Prepara el lugar

  1. Abre Roblox Studio, haz clic en New Experience y elige la plantilla Baseplate.
  2. La gema estará en el centro del mapa. Cuatro bases estarán a su alrededor, cada una a unos 60 studs del centro.
  3. Este juego necesita al menos dos jugadores, así que al final lo probarás con dos jugadores de prueba.

Más detalles

  • La plantilla Baseplate está en la lista de plantillas de la pantalla de inicio.
  • El campo Position de Properties muestra dónde está una pieza. Position 60, 0.5, 0 está a 60 studs del centro del mapa.
  • Mueve la SpawnLocation, la plataforma donde aparecen los jugadores, cerca del centro, para que todos empiecen a la misma distancia de la gema.
  • En un Mac, usa la tecla Cmd cada vez que esta guía diga Ctrl.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

2
Paso 2 / 8

Construye las bases

  1. En Explorer pasa el ratón sobre Workspace, haz clic en + y añade un Folder. Llámalo Bases.
  2. Añade una Part. Pon Size en 16, 1, 16, activa Anchored y hazla gris. Arrástrala dentro de Bases y llámala Base1.
  3. Duplícala tres veces con Ctrl+D. Llama a las copias Base2, Base3 y Base4 y mueve una a cada lado del mapa.

Más detalles

  • Para meter la pieza en la carpeta, arrastra su nombre en Explorer hasta el nombre Bases.
  • Las copias hechas con Ctrl+D ya están dentro de la carpeta Bases. Cambia el nombre de cada una con F2.
  • Los nombres deben ser exactamente Base1, Base2, Base3 y Base4, sin espacio antes del número.
  • Un servidor con más de cuatro jugadores tiene más jugadores que bases. Más adelante puedes fijar el tamaño del servidor en 4 en los ajustes del juego en Creator Hub.
Consejo. Mantén las cuatro bases a la misma distancia del centro. Así el juego es justo para todos.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

3
Paso 3 / 8

Crea la gema

  1. Añade una Part en el centro del mapa, a unos 4 studs sobre el suelo. Pon Size en 2, 2, 2, elige un color brillante y pon Material en Neon. Llámala Gem.
  2. Activa Anchored y Massless, y desactiva CanCollide.
  3. Pasa el ratón sobre Gem, haz clic en + y añade un ProximityPrompt. Pon ActionText en Take y HoldDuration en 1.

Qué hace cada parte

  • Un ProximityPrompt muestra un botón cuando un jugador está cerca. Si lo mantiene pulsado 1 segundo, se activa.
  • Con Massless activado y CanCollide desactivado, la gema no frena ni empuja al jugador que la lleva.

Más detalles

  • Anchored, Massless y CanCollide son casillas de Properties.
  • Cuando haces clic en +, escribe ProximityPrompt para encontrarlo. Haz clic en él y luego cambia ActionText y HoldDuration en Properties.
  • En el juego, aparece un botoncito con la letra E y la palabra Take cuando estás cerca de la gema.
  • En un teléfono, los jugadores mantienen el dedo sobre ese botón.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

4
Paso 4 / 8

Dale a cada jugador una base y un puntaje

  1. Pasa el ratón sobre ServerScriptService, haz clic en + y añade un Script. Llámalo Game.
  2. Borra la línea que ya está y pega este código. Es la primera de tres partes.
  3. Pulsa Play. Una base se pone verde. Esa es la tuya.
ServerScriptService > Game (1 / 3)
local Players = game:GetService("Players")

local bases = workspace:WaitForChild("Bases")
local gem = workspace:WaitForChild("Gem")
local home = gem.CFrame
local carrier = nil

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local score = Instance.new("IntValue")
	score.Name = "Score"
	score.Parent = stats

	for _, base in ipairs(bases:GetChildren()) do
		if base:GetAttribute("Owner") == nil then
			base:SetAttribute("Owner", player.UserId)
			base.Color = Color3.fromRGB(60, 220, 120)
			break
		end
	end
end)

Players.PlayerRemoving:Connect(function(player)
	for _, base in ipairs(bases:GetChildren()) do
		if base:GetAttribute("Owner") == player.UserId then
			base:SetAttribute("Owner", nil)
			base.Color = Color3.fromRGB(160, 160, 160)
		end
	end
end)

Qué hace cada parte

  • Las primeras líneas encuentran las bases y la gema, y recuerdan dónde empezó la gema.
  • SetAttribute escribe el UserId del dueño en la primera base libre.
  • PlayerRemoving libera la base otra vez cuando su dueño se va.

Más detalles

  • El script se abre en una pestaña nueva. Haz clic dentro del código, pulsa Ctrl+A y luego Ctrl+V para reemplazarlo todo.
  • Cuál base se pone verde depende del orden de las bases en la carpeta. Da una vuelta para encontrar la tuya.
  • La lista de jugadores de la esquina superior derecha muestra Score 0.
  • Todavía no pasa nada cuando caminas hasta la gema y mantienes pulsada la tecla E. Eso llega en el paso siguiente.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

5
Paso 5 / 8

Deja que los jugadores tomen la gema

  1. Abre otra vez el script Game.
  2. Pega este código debajo del código del paso anterior.
  3. Pulsa Play, camina hasta la gema y mantén pulsada la tecla E. La gema salta sobre tu cabeza y te sigue.
ServerScriptService > Game (2 / 3)
local function resetGem()
	carrier = nil

	local weld = gem:FindFirstChild("CarryWeld")
	if weld then
		weld:Destroy()
	end

	gem.Anchored = true
	gem.CFrame = home
	gem.ProximityPrompt.Enabled = true
end

gem.ProximityPrompt.Triggered:Connect(function(player)
	local character = player.Character
	local root = character and character:FindFirstChild("HumanoidRootPart")
	if carrier or not root then return end

	carrier = player
	gem.ProximityPrompt.Enabled = false
	gem.Anchored = false
	gem.CFrame = root.CFrame * CFrame.new(0, 4, 0)

	local weld = Instance.new("WeldConstraint")
	weld.Name = "CarryWeld"
	weld.Part0 = root
	weld.Part1 = gem
	weld.Parent = gem
end)

Qué hace cada parte

  • carrier recuerda quién tiene la gema. Nadie más puede quitársela mientras la llevan.
  • Un WeldConstraint pega la gema al jugador, así que se mueve con él.
  • resetGem quita la unión y devuelve la gema al centro.

Más detalles

  • Para abrir el script otra vez, haz doble clic en Game en Explorer.
  • Haz clic después del último carácter del código y pulsa Enter dos veces. Luego pulsa Ctrl+V. Esta vez no pulses Ctrl+A, o reemplazarás la primera parte.
  • La gema flota 4 studs por encima de tu cabeza mientras la llevas.
  • Para probar: toma la gema y comprueba que el botón Take desaparece mientras la llevas.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

6
Paso 6 / 8

Añade puntos y toques

  1. Pega esta última parte al final del todo del script Game.
  2. Pulsa Play, toma la gema y corre hasta tu base verde. Score sube 1 y la gema vuelve al centro.
ServerScriptService > Game (3 / 3)
for _, base in ipairs(bases:GetChildren()) do
	base.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		if player and player == carrier and base:GetAttribute("Owner") == player.UserId then
			player.leaderstats.Score.Value += 1
			resetGem()
		end
	end)
end

while true do
	task.wait(0.2)

	if carrier then
		local weld = gem:FindFirstChild("CarryWeld")
		local root = weld and weld.Part0
		local character = root and root.Parent
		local humanoid = character and character:FindFirstChildOfClass("Humanoid")

		if not humanoid or humanoid.Health <= 0 or root.Position.Y < -20 then
			resetGem()
		else
			for _, other in ipairs(Players:GetPlayers()) do
				local otherRoot = other ~= carrier and other.Character and other.Character:FindFirstChild("HumanoidRootPart")
				if otherRoot and (otherRoot.Position - root.Position).Magnitude < 5 then
					resetGem()
					break
				end
			end
		end
	end
end

Qué hace cada parte

  • Cada base comprueba tres cosas: que un jugador la tocó, que ese jugador lleva la gema y que la base es suya.
  • El bucle de abajo se ejecuta 5 veces por segundo. Si otro jugador se acerca a menos de 5 studs de quien lleva la gema, la gema vuelve al centro.
  • El bucle también reinicia la gema si quien la lleva sale del juego o se cae del mapa.

Más detalles

  • Otra vez, haz clic después del último carácter del script, pulsa Enter dos veces y pega.
  • El script terminado tiene tres partes en este orden: las bases y el puntaje, tomar la gema, y puntuar y tocar al otro jugador.
  • Una base gris que no es de nadie no da puntos. Solo cuenta tu propia base verde.
  • Solo no puedes probar lo de tocar al otro jugador. Eso lo haces con dos jugadores en el paso siguiente.
Error común. Pegar esta parte en medio del script. El bucle while nunca termina, así que el código que esté debajo nunca se ejecuta.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

7
Paso 7 / 8

Prueba con dos jugadores

  1. Junto al botón Play abre el menú pequeño y elige Server & Clients. Pon el número de jugadores en 2 y pulsa Play.
  2. Studio abre dos ventanas de juego. Cada una es un jugador distinto con una base distinta.
  3. Toma la gema en una ventana. En la otra ventana corre hacia ese jugador. La gema vuelve al centro.
  4. Detén la prueba con el botón rojo Stop de la ventana principal de Studio y luego vuelve a poner el menú en Test.

Más detalles

  • El menú pequeño es la flecha que está justo al lado del botón Play, en la parte de arriba de Studio.
  • Las dos ventanas del juego se abren una encima de la otra. Arrastra una a un lado para ver las dos.
  • Haz clic dentro de una ventana antes de usar el teclado. Las teclas van a la ventana en la que hiciste clic por última vez.
  • Probar con dos ventanas necesita una computadora con suficiente memoria. Si va muy lento, cierra antes otros programas.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

8
Paso 8 / 8

Publícalo

  1. Elige File → Publish to Roblox. Ponle un nombre y una descripción corta al juego.
  2. En el sitio web Creator Hub abre tu juego y responde el cuestionario de Maturity.
  3. Pon el juego en Public y envía el enlace a un amigo.

Más detalles

  • La primera vez que publicas, Studio te pide un nombre y una descripción. Haz clic en Create.
  • Creator Hub es el sitio web create.roblox.com. Inicia sesión con la misma cuenta y haz clic en tu juego en la lista.
  • Puede que Roblox te pida más cosas antes de que un juego pueda ser público, por ejemplo una verificación de edad de la cuenta. La página te dice qué falta.
  • Si tienes menos de 18 años, haz este paso junto con tu madre, tu padre o un tutor.
Consejo. Este juego solo es divertido con otros jugadores. Invita a dos o tres amigos al mismo servidor para la primera partida.
Este paso no me funciona

Revisa primero estas tres cosas

  • El nombre de cada Part y de cada Script es exactamente igual al de la guía, con las mismas mayúsculas.
  • El Script está dentro del objeto correcto. Mira la etiqueta que hay encima del cuadro de código.
  • Abre la ventana Output desde el menú Window. El texto en rojo te dice qué script y qué línea tienen el problema.

¿Sigues atascado? Escríbenos →

Ahora cámbialo tú

  • Termina la ronda cuando un jugador llegue a 5 puntos y vuelve a poner todos los puntajes en 0.
  • Añade una segunda gema de otro color.
  • Haz más lento a quien lleva la gema. Pista: pon Humanoid.WalkSpeed en 12 cuando se toma la gema y otra vez en 16 en resetGem.