Sửa luật chơi trong level.dat

Hỗ trợ Minecraft Bedrock Edition và Java Edition — cùng mọi phần mềm máy chủ phổ biến hoặc ít gặp của cả hai: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina và các phần mềm còn lại. Danh sách đầy đủ.

Luật chơi được lưu trong level.dat, vì vậy bạn có thể thay đổi mà không cần tải thế giới hoặc bật cheat — hữu ích khi thế giới không khởi động, cheat bị tắt hoặc đang chuẩn bị bản sao trước khi người chơi vào. Java lưu chúng dưới dạng chuỗi trong compound GameRules; Bedrock lưu riêng từng thẻ byte chữ thường ở gốc.

keepInventorydoDaylightCyclemobGriefingcommandBlockOutputrandomTickSpeed

Thả level.dat vào đây

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · dữ liệu chunk trích xuất

Java: compound GameRules gồm các chuỗi

Trong Java Edition, Data → GameRules chứa một TAG_String cho mỗi luật, dùng chính xác tên mà /gamerule sử dụng làm khóa, còn giá trị được ghi thành văn bản: "true", "false" hoặc một số. Luật chưa từng được đặt sẽ không có trong tệp và dùng giá trị mặc định — thêm thẻ đúng tên với giá trị chuỗi có tác dụng giống hệt chạy lệnh.

LuậtGiá trịTác dụng
keepInventory"true"Giữ vật phẩm khi chết
doDaylightCycle"false"Dừng thời gian trong ngày
doWeatherCycle"false"Dừng thay đổi thời tiết
mobGriefing"false"Ngăn creeper và enderman thay đổi block
doMobSpawning"false"Ngăn mob sinh tự nhiên
doFireTick"false"Ngăn lửa lan
commandBlockOutput"false"Tắt tin nhắn chat từ command block
randomTickSpeed"3"Tốc độ cây trồng phát triển và lửa lan
playersSleepingPercentage"50"Tỷ lệ người chơi cần ngủ để bỏ qua đêm
spawnRadius"10"Phạm vi khu vực sinh

Phân biệt chữ hoa chữ thường. keepinventory trong tệp Java không phải cùng thẻ với keepInventory và sẽ bị bỏ qua.

Bedrock: các thẻ byte chữ thường riêng lẻ

Bedrock không nhóm luật. Mỗi luật là một TAG_Byte ở gốc level.dat, có tên chữ thường và chứa 1 hoặc 0 — keepinventory, domobspawning, domobloot, dodaylightcycle, doweathercycle, mobgriefing, firedamage, falldamage, drowningdamage, pvp, showcoordinates, commandblockoutput, sendcommandfeedback, naturalregeneration, tntexplodes, respawnblocksexplode, showdeathmessages, doimmediaterespawn. Luật dạng số như randomtickspeed và functioncommandlimit dùng TAG_Int.

Để đặt một luật chưa có, hãy thêm thẻ với đúng kiểu: Byte cho tùy chọn bật/tắt, Int cho số. Luật lưu sai kiểu sẽ bị bỏ qua hoặc khiến thế giới không tải.

Khi sửa tệp phù hợp hơn dùng lệnh

  • Cheat đang tắt và bạn không muốn bật rồi tắt chỉ để chạy một lệnh.
  • Thế giới không tải được — luật như doImmediateRespawn có thể được đặt trước lần vào đầu tiên.
  • Bạn đang chuẩn bị thế giới mẫu để sao chép cho nhiều máy chủ và muốn luật có sẵn trong mỗi bản.
  • Plugin đã đổi một luật và bạn muốn xem giá trị thực được lưu thay vì kết quả lệnh báo.
  • Sửa hàng loạt. Đặt nhiều luật trên vài thế giới bằng tệp nhanh hơn nhập trong chat.

Hãy dừng máy chủ trước như với mọi thay đổi level.dat — thế giới đang chạy sẽ ghi lại tệp khi lưu và loại bỏ thay đổi.

Câu hỏi thường gặp

Tại sao luật chơi trong Java được lưu dạng chuỗi?

Java lưu mọi luật dưới dạng chuỗi, kể cả boolean và số. Hãy ghi "true", không phải byte 1.

Tại sao Bedrock lưu luật dưới dạng byte?

Bedrock lưu các tùy chọn bật/tắt thành thẻ byte ở gốc và luật dạng số thành int. Không có compound GameRules.

Một luật hoàn toàn không có trong tệp.

Điều đó nghĩa là luật đang dùng giá trị mặc định. Thêm thẻ với tên chính xác và đúng kiểu để thế giới dùng giá trị của bạn.

Luật chơi có được sao chép cùng thư mục thế giới không?

Có — chúng nằm trong level.dat, vì vậy bản sao thế giới kế thừa chúng cùng tên thế giới cũ.

Công cụ liên quan