← Tất cả hướng dẫn
Hướng dẫn 1

Làm obby đầu tiên của bạn

Một đường đua vượt chướng ngại vật có dung nham, điểm lưu, một bệ biến mất và vạch đích.

Miễn phí45 phút · Người mới · Roblox Studio
1
Bước 1 / 10

Tạo một place mới

  1. Mở Roblox Studio và đăng nhập.
  2. Bấm New Experience và chọn mẫu Baseplate.
  3. Bây giờ bạn có một sàn phẳng màu xám. Đường đua của bạn sẽ được xây trên đó.

Xem thêm chi tiết

  • Roblox Studio là chương trình miễn phí cho Windows và Mac. Nếu chưa cài, hãy tải về từ create.roblox.com rồi đăng nhập bằng tài khoản Roblox của bạn.
  • Mẫu Baseplate nằm trong danh sách các mẫu ở màn hình bắt đầu. Đó là mẫu có một sàn màu xám trống.
  • Place mở ra trong một tab. Tên của tab chính là tên place của bạn.
  • Nếu dùng Mac, hãy dùng phím Cmd mỗi khi hướng dẫn này nói Ctrl.
Mẹo. Hãy lưu thường xuyên bằng File → Save to Roblox. Studio giữ các phiên bản cũ, nên bạn luôn quay lại được.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

2
Bước 2 / 10

Làm quen với ba bảng

  1. Khung nhìn 3D lớn ở giữa là Viewport. Đây là thế giới game của bạn.
  2. Explorer liệt kê mọi vật thể trong game. Properties hiện các cài đặt của vật thể bạn đang chọn.
  3. Di chuyển camera: giữ chuột phải để nhìn quanh, bay bằng W A S D, đi xuống và đi lên bằng Q và E.
  4. Bị lạc? Chọn một part bất kỳ rồi nhấn F. Camera sẽ nhảy tới đó.

Xem thêm chi tiết

  • Explorer và Properties nằm ở bên phải cửa sổ. Explorer ở trên và Properties ở dưới nó.
  • Bấm vào một vật thể trong Viewport thì nó cũng được tô sáng trong Explorer. Bấm vào tên nó trong Explorer thì nó được chọn trong Viewport.
  • Bệ phẳng có một biểu tượng tròn trên đó là SpawnLocation. Người chơi xuất hiện ở đó khi game bắt đầu. Cứ để nó yên chỗ cũ.
  • Làm sai à? Nhấn Ctrl+Z để hoàn tác việc vừa làm. Nhấn lần nữa để lùi thêm một bước.
Mẹo. Nếu thiếu một bảng, hãy mở nó từ menu Window. Ở các phiên bản cũ hơn, nó nằm trong tab View.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

3
Bước 3 / 10

Xây bệ xuất phát

  1. Ở tab Home, bấm Part. Một khối màu xám xuất hiện.
  2. Trong Properties, đặt Size thành 12, 1, 12 và đổi tên part thành Start.
  3. Bật Anchored. Một part đã được Anchored thì không bao giờ rơi và không bao giờ di chuyển.
  4. Chọn màu bạn thích bằng nút Color.

Xem thêm chi tiết

  • Part mới xuất hiện ngay trước camera, và tên của nó trong Explorer là Part.
  • Để đổi tên, bấm vào nó một lần trong Explorer rồi nhấn F2, gõ Start và nhấn Enter.
  • Trong Properties, bấm vào ô Size, gõ 12, 1, 12 rồi nhấn Enter. Ba số đó là chiều rộng, chiều cao và chiều sâu.
  • Anchored là một ô đánh dấu trong Properties. Có dấu tích nghĩa là đã bật.
  • Dùng công cụ Move (Ctrl+2) để đặt bệ cạnh SpawnLocation, để người chơi có thể bước lên.
Lỗi thường gặp. Quên bật Anchored. Part trông ổn khi bạn đang chỉnh sửa, nhưng sẽ rơi xuống khoảng không khi game bắt đầu.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

4
Bước 4 / 10

Thêm các bệ nhảy

  1. Chọn Start và nhấn Ctrl+D để nhân bản. Kéo bản sao về phía trước bằng công cụ Move (Ctrl+2).
  2. Làm nó nhỏ hơn bằng công cụ Scale (Ctrl+3). Kích thước 6, 1, 6 là hợp lý.
  3. Chừa khoảng cách 5 đến 7 studs giữa các bệ. Lặp lại cho đến khi có 6 đến 8 bệ.
  4. Nâng một vài bệ lên cao một chút để đường đua đi lên dần.

Xem thêm chi tiết

  • Bản sao nằm đúng lên trên bản gốc, nên trông như chưa có gì xảy ra. Kéo mũi tên xanh hoặc đỏ của công cụ Move thì bản sao sẽ trượt ra.
  • Với công cụ Scale, kéo một trong các quả bóng nhỏ trên part để đổi kích thước. Bạn cũng có thể gõ kích thước vào Properties.
  • Ô Position trong Properties cho biết part đang ở đâu. So sánh các số của hai bệ để đo khoảng cách giữa chúng.
  • Mọi bệ đều phải được Anchored. Bản sao của part đã Anchored cũng đã Anchored, nên chỉ cần kiểm tra các part bạn tạo mới.
  • Nhấn F5 để tự thử các cú nhảy và Shift+F5 để dừng. Hãy làm vậy sau mỗi hai hoặc ba bệ.
Mẹo. Nhân vật mặc định nhảy cao 7.2 studs và nhảy xa được khoảng 8 studs. Khoảng cách trên 8 studs gần như không thể vượt qua.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

5
Bước 5 / 10

Thêm dung nham làm người chơi hồi sinh

  1. Thêm một Part mới giữa hai bệ. Cho nó màu đỏ, đặt Material thành Neon, bật Anchored và đặt tên là Lava.
  2. Trong Explorer, rê chuột lên Lava, bấm nút + và chọn Script.
  3. Xóa dòng có sẵn rồi dán đoạn code này vào.
Lava > Script
local lava = script.Parent

lava.Touched:Connect(function(hit)
	local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
	if humanoid then
		humanoid.Health = 0
	end
end)

Mỗi phần làm gì

  • script.Parent là part chứa script. Ở đây đó là dung nham.
  • Touched chạy mỗi khi có gì đó chạm vào part. hit là thứ đã chạm vào nó, ví dụ một bàn chân.
  • hit.Parent là cả nhân vật. Nếu nó có Humanoid thì đó là một người chơi, nên script đặt Health thành 0.

Xem thêm chi tiết

  • Material là một danh sách trong Properties. Bấm vào nó và chọn Neon. Neon làm part phát sáng.
  • Khi bạn thêm Script, nó mở ra trong một tab mới với một dòng code. Bấm vào trong code, nhấn Ctrl+A để chọn hết rồi Ctrl+V để dán đè lên.
  • Quay lại thế giới của bạn bằng cách bấm vào tab có tên place của bạn.
  • Để thử: nhấn F5 và đi vào dung nham. Nhân vật của bạn vỡ ra rồi quay lại chỗ bắt đầu.
  • Hãy làm dung nham rộng và phẳng, ví dụ Size 12, 1, 6, và đặt nó thấp hơn các bệ một chút, để nhảy hụt sẽ rơi vào đó.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

6
Bước 6 / 10

Thêm các điểm lưu

  1. Trong Explorer, rê chuột lên Workspace, bấm + và thêm một Folder. Đặt tên là Checkpoints.
  2. Đặt ba part đã Anchored dọc theo đường đua rồi kéo chúng vào folder. Đặt tên là 1, 2 và 3. Part 1 nằm trên bệ xuất phát.
  3. Rê chuột lên ServerScriptService, bấm + và thêm một Script. Dán đoạn code này vào.
ServerScriptService > Script
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")

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

	local stage = Instance.new("IntValue")
	stage.Name = "Stage"
	stage.Value = 1
	stage.Parent = stats

	player.CharacterAdded:Connect(function(character)
		local root = character:WaitForChild("HumanoidRootPart")
		local point = checkpoints:FindFirstChild(tostring(stage.Value))
		if point then
			task.wait(0.1)
			root.CFrame = point.CFrame + Vector3.new(0, 4, 0)
		end
	end)
end)

for _, point in ipairs(checkpoints:GetChildren()) do
	point.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		local stats = player and player:FindFirstChild("leaderstats")
		if not stats then return end

		local number = tonumber(point.Name)
		if number == stats.Stage.Value + 1 then
			stats.Stage.Value = number
		end
	end)
end

Mỗi phần làm gì

  • leaderstats là một tên folder đặc biệt. Các giá trị trong đó hiện ở danh sách người chơi, nên ai cũng thấy Stage của bạn.
  • Khi nhân vật xuất hiện, script đưa nó tới điểm lưu có tên bằng Stage của người chơi.
  • Chạm vào một điểm lưu chỉ làm Stage tăng nếu đó là điểm tiếp theo. Như vậy người chơi không thể bỏ qua đoạn đường.

Xem thêm chi tiết

  • Một Folder chứa các vật thể khác, giống như một thư mục trên máy tính. Tự nó không làm gì trong game.
  • Để kéo một part vào folder, kéo tên nó trong Explorer thả lên tên Checkpoints. Khi đó part nằm thụt vào một bậc, bên dưới folder.
  • Làm các part điểm lưu mỏng và rộng, ví dụ Size 6, 0.4, 6, và đặt chúng lên trên các bệ. Một màu khác giúp người chơi dễ nhận ra.
  • Để thử: nhấn F5 và nhìn danh sách người chơi ở góc trên bên phải. Nó hiện Stage 1. Chạm vào điểm lưu 2 thì nó đổi thành 2.
  • Phải chạm các điểm lưu theo thứ tự. Chạm 3 trước 2 thì không có gì xảy ra.
Lỗi thường gặp. Đặt tên part là Checkpoint1 hoặc One. Script tìm đúng các tên 1, 2 và 3.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

7
Bước 7 / 10

Làm một bệ biến mất

  1. Chọn một bệ ở giữa đường đua và thêm một Script vào nó.
  2. Dán đoạn code này và nhấn Play để xem nó nhấp nháy.
Platform > Script
local platform = script.Parent

while true do
	task.wait(2)
	platform.Transparency = 1
	platform.CanCollide = false

	task.wait(2)
	platform.Transparency = 0
	platform.CanCollide = true
end

Mỗi phần làm gì

  • while true do lặp lại mãi mãi.
  • task.wait(2) dừng lại 2 giây.
  • Transparency 1 làm part vô hình. CanCollide false cho người chơi rơi xuyên qua nó.

Xem thêm chi tiết

  • Để thêm Script, rê chuột lên tên của bệ trong Explorer, bấm + và chọn Script, giống như bạn đã làm với dung nham.
  • Bệ hiện ra trong 2 giây rồi biến mất trong 2 giây. Người chơi phải canh đúng lúc để nhảy.
  • Số thứ nhất là thời gian bệ hiện ra. Số thứ hai là thời gian bệ biến mất.
  • Đừng đặt script này vào bệ xuất phát hay vào điểm lưu, nếu không người chơi sẽ rơi ngay khi vừa đến.
Mẹo. Hãy đổi hai con số để bệ nhanh hơn hoặc chậm hơn.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

8
Bước 8 / 10

Xây vạch đích

  1. Đặt một part lớn đã Anchored ở cuối đường và đặt tên là Finish. Cho nó màu vàng để người chơi thấy mục tiêu.
  2. Thêm một Script vào Finish và dán đoạn code này.
Finish > Script
local Players = game:GetService("Players")
local finish = script.Parent
local cooldown = {}

finish.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or cooldown[player] then return end

	cooldown[player] = true
	stats.Stage.Value = 1
	player:LoadCharacter()

	task.wait(2)
	cooldown[player] = nil
end)

Mỗi phần làm gì

  • GetPlayerFromCharacter tìm ra người chơi nào đã chạm vào vạch đích.
  • Bảng cooldown ngăn code chạy nhiều lần trong cùng một giây.
  • Stage quay về 1 và LoadCharacter đưa người chơi về điểm xuất phát để chơi lượt nữa.

Xem thêm chi tiết

  • Để làm nó màu vàng kim, bấm vào ô Color trong Properties và chọn màu vàng. Material Neon làm nó sáng lên.
  • Size 12, 1, 12 là kích thước hợp cho vạch đích. Đặt nó sau cú nhảy cuối cùng, cao hơn phần còn lại một chút.
  • Để thử: nhấn F5, chạy hết đường đua rồi bước lên part màu vàng kim. Bạn quay lại chỗ bắt đầu và Stage hiện lại là 1.
  • Thời gian chờ 2 giây có là vì một bước chân chạm vào part nhiều lần.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

9
Bước 9 / 10

Thử game của bạn

  1. Nhấn F5 để chơi. Chạy hết đường đua từ đầu đến cuối.
  2. Cố tình rơi vào dung nham. Bạn phải quay lại ở điểm lưu gần nhất.
  3. Nhấn Shift+F5 để dừng.
  4. Mở cửa sổ Output từ menu Window. Chữ màu đỏ nghĩa là một script bị lỗi, và nó cho biết số dòng.

Xem thêm chi tiết

  • F5 bắt đầu game với nhân vật của bạn trong đó. Thanh công cụ thay đổi khi game đang chạy.
  • Những thay đổi bạn làm khi game đang chạy sẽ mất khi bạn dừng. Luôn nhấn Shift+F5 trước, rồi mới chỉnh sửa.
  • Trong cửa sổ Output, bấm vào một dòng màu đỏ thì Studio mở script tại dòng có lỗi.
  • Khi có gì đó không chạy, hãy kiểm tra ba điều: tên của part, vị trí của script, và Anchored đã bật chưa.
Lỗi thường gặp. Một bệ bị rơi khi game bắt đầu: Anchored đang tắt. Chạm vào part mà không có gì xảy ra: script nằm sai vật thể, hoặc một cái tên bị gõ sai.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

10
Bước 10 / 10

Đăng game

  1. Chọn File → Publish to Roblox. Đặt tên cho game và viết một mô tả ngắn.
  2. Trên trang Creator Hub, mở game của bạn và điền bảng câu hỏi Maturity. Roblox cần bảng này trước khi người khác được chơi.
  3. Đặt game thành Public và gửi đường link cho một người bạn.

Xem thêm chi tiết

  • Lần đầu bạn đăng game, Studio hỏi tên và mô tả. Bấm Create. Sau đó, File → Publish to Roblox sẽ gửi các thay đổi mới nhất của bạn.
  • Creator Hub là trang web create.roblox.com. Đăng nhập bằng cùng tài khoản và bấm vào game của bạn trong danh sách.
  • Bảng câu hỏi Maturity hỏi game của bạn có những gì. Hãy trả lời thật lòng. Một obby như thế này không có bạo lực và không có gì đáng sợ.
  • Roblox có thể yêu cầu thêm trước khi game được công khai, ví dụ kiểm tra độ tuổi của tài khoản. Trang sẽ cho bạn biết còn thiếu gì.
  • Nếu bạn dưới 18 tuổi, hãy làm bước này cùng với bố mẹ.
Mẹo. Nhờ một người bạn chơi trong khi bạn xem. Những chỗ bạn ấy bị kẹt là những chỗ cần sửa đầu tiên.
Bước này không chạy được với mình

Hãy kiểm tra ba điều này trước

  • Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
  • Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
  • Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.

Vẫn chưa được? Hãy viết thư cho chúng mình →

Giờ tự mình thay đổi nhé

  • Thêm một điểm lưu thứ tư. Bạn phải đặt tên nó là gì?
  • Làm ba bệ biến mất nhấp nháy với tốc độ khác nhau.
  • Đổi dung nham để nó chỉ trừ một nửa máu. Gợi ý: humanoid.Health = humanoid.Health - 50