VRChat runtime
เวอร์ชันเอกสาร: 0.6.1
VRChat runtime เขียนด้วย UdonSharp และ compile ด้วย LCGUdonSharp หลัง Bake zone ให้กด Add VRChat Runtime เพื่อเพิ่ม DigZoneRuntime ที่ทำ edit/mesh และ DigSync บน GameObject ลูกสำหรับ network sync
Grid ถูก run-length compression แยกต่อ chunk ตอนโหลด world จะยังไม่ decode; chunk จะ decode ครั้งแรกเมื่อ edit มาถึง Chunk ที่ไม่มี surface ไม่มี GameObject และจะคัดลอก inactive Chunk Template เมื่อจำเป็น
DigTool
Pickup สำหรับ dig/add/paint ในทิศที่ชี้ ตั้ง zones, tip, hit layer, reach, radius, mode, paintLayer, addLayer และ repeat interval ใช้ _ToggleMode() สลับ dig/add หรือ _NextMode() วน dig/add/paint
DigZoneRuntime
_LocalEdit/_LocalEditLayer: ขอ edit ที่ world position_ContainsWorld/_IsSolidAt: ตรวจจุดใน zone และ solid_IsReady/_IsBusy: ตรวจ data พร้อมและงานค้าง_DecodedChunkCount: จำนวน chunk ที่ decode หลัง reset_ResetToOriginal: คืน Bake state เฉพาะ local ทันที หาก reset ทุกคนใช้DigSync._RequestReset()
budgetMsDesktop / budgetMsMobile คือ frame budget สำหรับ edit และ mesh ค่าเริ่มต้น 2.5 / 1.2 ms
foliageMask, detailRenderers และ treeObjects คือข้อมูล foliage ใน zone ที่ bridge ใส่ให้ หลัง remesh หากพื้นใต้ tree/detail ถูกขุดออกหรือฝัง ระบบจะปิด tree และอัปเดต detail mask การ Reset จะคืน foliage กลับมา
DigSync
เก็บ ordered append-only edit log ค่า capacity เริ่มต้น 4096 edit (8 byte ต่อรายการ) และต้องอยู่ใต้ข้อจำกัด Manual sync ราว 280 KB Late joiner รับ full log แล้ว replay แบบแบ่งเฟรม _RequestReset() คืนทุกคนสู่ Bake state และเริ่ม epoch ใหม่
DigSync ต้องอยู่บน GameObject ของตัวเอง หาก program asset หาย ให้ใช้ Tools > DigHoleIt > Create Missing U# Program Assets