โปรแกรมแก้ไขไฟล์โครงสร้าง .mcstructure ของ Bedrock

รองรับ Minecraft Bedrock Edition และ Java Edition — รวมถึงซอฟต์แวร์เซิร์ฟเวอร์ทุกแบบของทั้งสองรุ่น ไม่ว่าจะเป็นที่นิยมหรือเฉพาะทาง: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina และอื่น ๆ ดูรายการทั้งหมด.

ไฟล์ .mcstructure เป็น NBT แบบ little-endian ที่ไม่บีบอัด ซึ่งเขียนโดย Structure Block ของ Bedrock วางไฟล์ด้านล่างเพื่ออ่านขนาด พาเลตบล็อก ดัชนีบล็อก และข้อมูล block entity แก้ค่าใดก็ได้แล้วดาวน์โหลดกลับด้วยการเข้ารหัสเดิม เหมาะสำหรับแก้โครงสร้างของส่วนเสริมหรือแผนที่โดยไม่ต้องเปิดโลกใหม่

Structure Blockส่วนเสริม BedrockBehavior PackNBT แบบ little-endian

วาง ไฟล์ .mcstructure ที่นี่

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · ข้อมูลชังก์ที่แยกออกมา

ข้อมูลภายในไฟล์ .mcstructure

แท็กชนิดข้อมูลที่เก็บ
format_versionIntรุ่นรูปแบบโครงสร้าง โดยไฟล์ปัจจุบันใช้ค่า 1
sizeรายการ Intขนาด X, Y, Z ของพื้นที่ที่บันทึก
structure_world_originรายการ Intตำแหน่งในโลกที่บันทึกโครงสร้าง
structureCompoundข้อมูลด้านล่างทั้งหมดอยู่ในนี้
structure.block_indicesรายการ Int[]ดัชนีพาเลตสองชั้น โดยทั่วไปคือบล็อกและ waterlogging; -1 หมายถึงให้คงสิ่งที่อยู่ตำแหน่งนั้นไว้
structure.entitiesรายการ Compoundentity ที่ถูกบันทึกพร้อมโครงสร้าง
structure.palette.default.block_paletteรายการ Compoundสถานะบล็อกแต่ละแบบ: name, states, version
structure.palette.default.block_position_dataCompoundNBT ของ block entity ที่ใช้ดัชนีแบบแบนของตำแหน่งเป็น key

ดัชนีใน block_indices เรียงตาม X แล้ว Z แล้ว Y โดยใช้ดัชนีแบบแบน (x * sizeZ + z) * sizeY + y ในรายการพาเลต การจับคู่นี้ทำให้แก้บล็อกที่ตั้งค่าผิดเพียงจุดเดียวได้โดยไม่ต้องสร้างโครงสร้างใหม่

ค่าที่มักแก้ไข

  • เปลี่ยนชนิดบล็อกทุกตำแหน่ง ด้วยการแก้หนึ่งรายการใน block_palette ทุกตำแหน่งที่อ้างดัชนีนั้นจะเปลี่ยนตาม
  • แก้สถานะบล็อก เช่นค่า facing ที่ผิด หรือค่า waterlogged ที่ตั้งโดยไม่ตั้งใจใน states compound
  • ลบ entity ที่ถูกบันทึกโดยไม่ตั้งใจ ด้วยการลบรายการจาก entities list
  • ซ่อมข้อมูล block entity เช่น ของในหีบ ข้อความป้าย และการตั้งค่า spawner ภายใน block_position_data.
  • ตรวจค่าเวอร์ชัน ในรายการพาเลตเมื่อโครงสร้างนำเข้าเป็นบล็อกผิดหลังอัปเดตเกม

ตำแหน่งของไฟล์

Structure Block บันทึกลงในโฟลเดอร์ structures/ ภายในไดเรกทอรีโลก เป็นไฟล์ชื่อ <namespace>_<name>.mcstructure. Behavior Pack เก็บไฟล์ไว้ใต้ structures/ ภายในแพ็ก โดยเกมโหลดตาม namespace ทั้งสองตำแหน่งใช้รูปแบบเดียวกันและเปิดที่นี่ได้

ไฟล์เทียบเท่าของ Java Edition คือโครงสร้าง .nbt แบบ gzip big-endian ซึ่งใช้การเข้ารหัสและโครงสร้างแท็กต่างกัน ดู หน้าโปรแกรมแก้ไข Java สำหรับรายละเอียด และโปรแกรมนี้เปิดไฟล์เหล่านั้นได้เช่นกัน

คำถามที่พบบ่อย

แปลง .mcstructure เป็นโครงสร้าง .nbt ของ Java ได้หรือไม่?

โปรแกรมเข้ารหัสไบต์ใหม่เป็น big-endian gzip ได้ แต่โครงสร้างแท็กต่างกัน โดยโครงสร้าง Java ใช้ palette/blocks พร้อม key และชื่อบล็อกต่างกัน ไฟล์ที่เข้ารหัสใหม่จึงอ่านได้ แต่ไม่ใช่โครงสร้าง Java ที่ถูกต้อง

ทำไมไฟล์ .mcstructure จึงไม่บีบอัด?

Bedrock เขียนไฟล์โครงสร้างเป็น NBT ดิบแบบ little-endian โดยไม่มี gzip wrapper ซึ่งเป็นรูปแบบปกติ โปรแกรมจะตรวจพบเป็น Bedrock แบบดิบ.

ดัชนี -1 ใน block_indices หมายถึงอะไร?

ระบุตำแหน่งที่โครงสร้างไม่เปลี่ยนแปลง ดังนั้นบล็อกเดิมในโลกจะคงอยู่เมื่อวางโครงสร้าง

ปรับขนาดโครงสร้างด้วยการแก้ size ได้หรือไม่?

แก้เพียงค่าเดียวไม่ได้ — block_indices มีหนึ่งรายการต่อตำแหน่ง ความยาวอาร์เรย์จึงต้องตรงกับปริมาตรใหม่ การแก้ size เพียงอย่างเดียวจะทำให้เกมปฏิเสธไฟล์

เครื่องมือที่เกี่ยวข้อง