Cách dùng Lua Formatter online | Dán code → Định dạng → Copy trong 1 phút【2026】

(Cập nhật: 19 tháng 7, 2026 ) Lua Formatter format Lua indent then end online trình duyệt Roblox FiveM
Kết luận

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/elseif lồ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ầnViệc của bạn
Nhập (Lua)Dán code nguồn (đã che secret)
Định dạngChạy căn thụt dòng
Kết quảĐọc cấu trúc khối
Sao chépCopy 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ặc else (không phải elseif)

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 / GetConvar nhạ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

  1. Mở Lua Formatter
  2. Dán vào Nhập (Lua)
  3. Bấm Định dạng
  4. So ô Kết quả: các if/for/function phải “thụt vào” rõ, end căn trái hơn thân khối

3. Copy và đối chiếu

  1. Sao chép → dán editor
  2. Đếm nhanh: số function/then/do mở ≈ số end (ước lượng bằng mắt)
  3. 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 iffunction.

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

Chọn công cụ format Lua
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:

  1. Copy từng file (hoặc từng hàm lớn) vào Lua Formatter
  2. Format → paste đè lên nhánh review local
  3. git diff chỉ còn thay đổi logic thật, không còn nhiễu whitespace
  4. Grep nhanh biến không local (ước lượng): dòng gán tên trần ở đầu file
  5. 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.

  1. Format toàn LocalScript
  2. Tìm MouseButton1Click và khối connect/Connect
  3. Đảm bảo end) đóng đúng callback
  4. 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/function thụt rõ hơn end
  • 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 / local dài hơn: bài Lua Formatter cho Roblox & FiveM (coding style)