Java: Compound GameRules ที่เก็บสตริง
ใน Java Edition ตำแหน่ง Data → GameRules มี TAG_String หนึ่งแท็กต่อหนึ่งกฎ ใช้ชื่อเดียวกับคำสั่ง /gamerule ทุกตัวอักษร และเขียนค่าเป็นข้อความ ได้แก่ "true", "false" หรือตัวเลข กฎที่โลกไม่เคยตั้งจะไม่มีแท็กและใช้ค่าเริ่มต้น การเพิ่มแท็กด้วยชื่อที่ถูกต้องและค่าสตริงให้ผลเหมือนการใช้คำสั่ง
| กฎ | ค่า | ผล |
keepInventory | "true" | เก็บไอเทมไว้เมื่อตาย |
doDaylightCycle | "false" | หยุดการเปลี่ยนแปลงของเวลา |
doWeatherCycle | "false" | หยุดการเปลี่ยนแปลงของสภาพอากาศ |
mobGriefing | "false" | ไม่ให้ creeper และ enderman เปลี่ยนบล็อก |
doMobSpawning | "false" | หยุดการเกิด mob ตามธรรมชาติ |
doFireTick | "false" | ไฟหยุดลุกลาม |
commandBlockOutput | "false" | ไม่ให้ command block ส่งข้อความรบกวนในแชต |
randomTickSpeed | "3" | อัตราการเติบโตของพืชและการลามของไฟ |
playersSleepingPercentage | "50" | สัดส่วนผู้เล่นที่ต้องนอนเพื่อข้ามคืน |
spawnRadius | "10" | ขอบเขตพื้นที่เกิด |
ตัวพิมพ์เล็กและใหญ่มีผล keepinventory ในไฟล์ Java ไม่ใช่แท็กเดียวกับ keepInventory และเกมจะละเว้น
Bedrock ไม่รวมกฎไว้เป็นกลุ่ม แต่ละกฎเป็น TAG_Byte ที่รากของ level.dat ใช้ชื่อตัวพิมพ์เล็กและเก็บค่า 1 หรือ 0 ได้แก่ keepinventory, domobspawning, domobloot, dodaylightcycle, doweathercycle, mobgriefing, firedamage, falldamage, drowningdamage, pvp, showcoordinates, commandblockoutput, sendcommandfeedback, naturalregeneration, tntexplodes, respawnblocksexplode, showdeathmessages, doimmediaterespawn ส่วนกฎตัวเลข เช่น randomtickspeed และ functioncommandlimit ใช้ TAG_Int
หากต้องตั้งกฎที่ยังไม่มี ให้เพิ่มแท็กด้วยชนิดที่ถูกต้อง คือ Byte สำหรับค่าที่เปิดหรือปิด และ Int สำหรับตัวเลข กฎที่เก็บด้วยชนิดผิดจะถูกละเว้นหรือทำให้โหลดไม่ได้
กรณีที่แก้ไฟล์ได้ดีกว่าใช้คำสั่ง
- ปิดสูตรโกงไว้ และไม่ต้องการเปิดแล้วปิดอีกครั้งเพื่อใช้คำสั่งเดียว
- โลกโหลดไม่ได้ คุณสามารถตั้งกฎ เช่น
doImmediateRespawn ก่อนผู้เล่นเข้าครั้งแรก
- กำลังเตรียมโลกต้นแบบ สำหรับคัดลอกไปยังหลายเซิร์ฟเวอร์ และต้องการให้กฎติดไปกับสำเนา
- ปลั๊กอินเปลี่ยนกฎ และคุณต้องการดูค่าที่เก็บจริงแทนค่าที่คำสั่งรายงาน
- แก้หลายค่า การตั้งกฎจำนวนมากในหลายโลกทำในไฟล์ได้เร็วกว่าในแชต
หยุดเซิร์ฟเวอร์ก่อนเช่นเดียวกับการแก้ level.dat ทุกครั้ง โลกที่กำลังทำงานจะเขียนไฟล์ใหม่เมื่อบันทึกและทำให้ค่าที่แก้หายไป