Cách dùng Lua Formatter online | Dán code → Định dạng → Copy trong 1 phút【2026】
Lua Formatter online = kính lúp indent, không phải compiler. Quy trình đúng: dán → Định dạng → đọc khối then/end → copy. Tool trên Lua Formatter chạy local trong trình duyệt, căn 2 space theo function / then / do / else / end. Dùng khi đoạn script từ chat/pastebin lệch trắng; không thay StyLua trên CI và không sửa lỗi cú pháp.
Bạn vừa copy 80 dòng Lua từ Discord hoặc pastebin. Mở ra thấy end chồng end, hoặc tab trộn space — chưa kịp nghĩ logic spawn đã mất 10 phút đoán khối nào đóng khối nào.
Đó là lúc biết cách dùng formatter quan trọng hơn đọc thêm một bài “Lua là gì”. Bài này đi thẳng vào thao tác trên tool, giới hạn thật của thuật toán indent, và checklist để khỏi “format xong vẫn sai”.
Bài viết này giúp bạn
- Làm đúng 3 bước trên Lua Formatter
- Hiểu tool căn indent theo dòng thế nào (2 space)
- Thấy trước / sau với ví dụ
if/else/elseiflồng nhau - Biết khi nào kết quả lệch và cách xử lý
- Gắn format vào workflow review script Roblox / FiveM ngắn
Lua Formatter trên Kawa làm gì?
Trên UI có hai ô và hai nút chính:
| Thành phần | Việc của bạn |
|---|---|
| Nhập (Lua) | Dán code nguồn (đã che secret) |
| Định dạng | Chạy căn thụt dòng |
| Kết quả | Đọc cấu trúc khối |
| Sao chép | Copy sang editor / Studio |
Thuật toán đơn giản nhưng đủ cho review nhanh:
- Mỗi cấp thụt 2 space
- Giảm indent khi dòng bắt đầu bằng
end/elseif/else - Tăng indent sau dòng có
function,then,do, hoặcelse(không phảielseif)
Không làm: đổi tên biến, thêm local, typecheck Luau, minify, hay validate API FiveM/Roblox.
Quy trình 1 phút (làm đúng thứ tự)
1. Chuẩn bị input
- Copy đoạn cần đọc — ưu tiên đã có xuống dòng giữa các câu
- Thay webhook /
GetConvarnhạy cảm bằng***tạm - Nếu cả file là một dòng liền, tách bằng editor trước (Enter sau
end,then,,) — formatter dòng-theo-dòng không “bẻ” magic một dòng thành nhiều dòng
2. Format
- Mở Lua Formatter
- Dán vào Nhập (Lua)
- Bấm Định dạng
- So ô Kết quả: các
if/for/functionphải “thụt vào” rõ,endcăn trái hơn thân khối
3. Copy và đối chiếu
- Sao chép → dán editor
- Đếm nhanh: số
function/then/domở ≈ sốend(ước lượng bằng mắt) - Chạy thử: Roblox Play Solo hoặc FiveM staging — đừng nhảy thẳng production
Ví dụ trước / sau
Ví dụ A: else / elseif lệch cảm giác
Trước (lệch tay hoặc copy chat):
function PickTier(score)
if score >= 90 then
return "S"
elseif score >= 70 then
return "A"
else
return "B"
end
end
Sau khi Định dạng (2 space):
function PickTier(score)
if score >= 90 then
return "S"
elseif score >= 70 then
return "A"
else
return "B"
end
end
Reviewer thấy ngay: ba nhánh điểm số, hai end đóng đúng if và function.
Ví dụ B: vòng for + do lồng if
-- Trước: khó thấy vòng nào đóng đâu
for _, ped in ipairs(GetGamePool('CPed')) do
if DoesEntityExist(ped) then
local dist = #(GetEntityCoords(ped) - playerCoords)
if dist < 3.0 then
ApplyDamage(ped, 10)
end
end
end
Sau format, cấu trúc thành:
for _, ped in ipairs(GetGamePool('CPed')) do
if DoesEntityExist(ped) then
local dist = #(GetEntityCoords(ped) - playerCoords)
if dist < 3.0 then
ApplyDamage(ped, 10)
end
end
end
Bug “chỉ damage khi xa 3m” thường lộ khi nhìn nhầm end — format giúp bắt trước khi đoán tọa độ.
So sánh: khi nào dùng tool trình duyệt
| Tình huống | Nên dùng | Lý do |
|---|---|---|
| Đoạn 20–200 dòng từ Discord/Zalo | Lua Formatter browser | Mở URL là xong, không cài gì |
| Repo dài hạn, PR mỗi ngày | StyLua + CI | Đồng bộ cả team, diff sạch whitespace |
| Gõ LocalScript trong Studio | Studio / Luau LSP | Gợi ý API Roblox + format theo editor |
| Máy quán net / máy khách không quyền cài | Lua Formatter browser | Chỉ cần Chrome/Edge |
Freelancer VN hay làm trên máy khác nhau trong tuần — browser formatter là cầu nối giữa “chat vừa gửi” và “editor chính thức”.
Lỗi thường gặp khi dùng tool
1. Mong đợi tool sửa syntax
-- Thiếu end — format xong vẫn thiếu
function Boom()
if true then
print("hi")
Kết quả vẫn lỗi. Cách xử lý: thêm end cho đủ, rồi format lại.
2. Một dòng if … then … end
if not src then return end
Một số heuristic indent xử lý kém dòng vừa mở vừa đóng. Cách xử lý: tách thành nhiều dòng trước khi format, hoặc chấp nhận và chỉ format các khối dài hơn.
3. Luau type annotation dày
local function add(a: number, b: number): number
return a + b
end
Phần lớn vẫn ổn; nếu lệch quanh :, mở lại trong Roblox Studio — nguồn sự thật cho Luau.
4. Trộn tab và space trong input
Tool trim rồi gắn lại 2 space — thường đồng nhất được. Nếu repo bắt 4 space, đổi trong editor sau (hoặc bật “convert indentation” trong VS Code).
5. Dán nhầm JSON / JS vào ô Lua
Indent sẽ trông “có thụt” nhưng vô nghĩa. Kiểm tra: file phải có function/then/end kiểu Lua, không phải {} JSON thuần.
Case study: review PR FiveM trong 5 phút
Maintainer nhận PR job mới, 3 file .lua. Contributor format bằng tay không đều.
Checklist dùng tool:
- Copy từng file (hoặc từng hàm lớn) vào Lua Formatter
- Format → paste đè lên nhánh review local
git diffchỉ còn thay đổi logic thật, không còn nhiễu whitespace- Grep nhanh biến không
local(ước lượng): dòng gán tên trần ở đầu file - Test staging 1 vòng marker / inventory
Kết quả hay gặp: “job không nhận được item” hóa ra end đóng sớm làm addInventoryItem nằm ngoài nhánh đúng — chỉ thấy rõ sau khi indent chuẩn.
Case study: học sinh sửa LocalScript GUI Roblox
Bạn học lớp 11, GUI nút không chạy. Code từ tutorial YouTube dán lệch.
- Format toàn LocalScript
- Tìm
MouseButton1Clickvà khốiconnect/Connect - Đảm bảo
end)đóng đúng callback - Play Solo → bấm nút
Không cần hiểu hết OOP Roblox ngay — nhìn đúng khối đã đủ để sửa 50% lỗi copy-paste.
Checklist trước khi bấm Sao chép
- Đã che webhook / key / token
- Input có xuống dòng hợp lý (không phải một dòng khổng lồ)
- Sau format,
if/for/functionthụt rõ hơnend - Biết đây chỉ là indent — đã rà lỗi cú pháp bằng mắt hoặc Studio
- Sẽ chạy thử trên môi trường an toàn trước merge
FAQ nhanh trong bài
Có lưu lịch sử format trên server không?
Không — phiên làm việc chỉ trong tab trình duyệt của bạn.
Có nút minify không?
Không. Tool chỉ theo hướng “làm đẹp đọc được”, ngược với minify một dòng.
Comment tiếng Việt có mất không?
Không. Dòng -- ... được giữ; chỉ khoảng trắng đầu dòng thay đổi.
Liên kết liên quan
- Lua Formatter — dán và định dạng ngay
- Danh sách công cụ
- Muốn hiểu ngôn ngữ trước khi format: bài Lua là gì (cùng cụm chủ đề trên blog VI)
- Quy ước indent /
localdài hơn: bài Lua Formatter cho Roblox & FiveM (coding style)