Roblox Studio มี ตัวแก้ไขสคริปต์ ที่สร้างขึ้นเพื่อแก้ไขโค้ดในโปรเจ็กต์ Roblox ของคุณ ตัวแก้ไขนี้รวมคุณสมบัติหลักๆ เช่น การตรวจสอบข้อผิดพลาด การตรวจสอบประเภท การเติมคำอัตโนมัติ และการแก้ไขร่วมกัน
อย่างไรก็ตาม นักพัฒนาหลายคนมีตัวแก้ไขข้อความหรือตัวพัฒนาแบบบูรณาการ (IDE) ที่ชอบ เช่น Visual Studio Code, Cursor, Sublime Text หรือ Notepad++ สภาพแวดล้อมการพัฒนาที่ได้รับความนิยมมักมีคุณสมบัติหรือปลั๊กอินที่ไม่มีใน Studio เพื่อใช้ตัวแก้ไขหรือ IDE ภายนอกกับ Studio ให้เปิดใช้งานฟีเจอร์ Sync สคริปต์
Sync สคริปต์ทำงานโดยการซิงโครไนซ์สคริปต์ใน โมเดลข้อมูล ของคุณกับไฟล์ข้อความในดิสก์ท้องถิ่นของคุณ การเปลี่ยนแปลงที่ทำกับไฟล์ Luau บนดิสก์จะถูกนำไปใช้กับสคริปต์ใน Studio และในทางกลับกัน การซิงโครไนซ์นี้หมายความว่าคุณสามารถแก้ไขสคริปต์ในตัวแก้ไขภายนอกอย่าง VS Code และเห็นการเปลี่ยนแปลงใน Studio ทันที
เมื่อไหร่ควรใช้ Sync สคริปต์
หากคุณต้องการใช้ตัวแก้ไขข้อความที่คุณชื่นชอบหรือตรวจสอบโค้ดในระบบควบคุมเวอร์ชัน แต่ใช้ Studio สำหรับทุกอย่างอื่น Sync สคริปต์เป็นตัวเลือกที่ดี นอกจากนี้ยังทำงานได้ดีกับ เครื่องมือการทำงานร่วมกันของ Roblox ซึ่งเครื่องมือของบุคคลที่สามมักไม่มีฟีเจอร์เหล่านี้
Sync สคริปต์ทำงานได้ดีร่วมกับโปรเจ็กต์ Roblox ที่มีอยู่ เนื่องจากมันเป็นฟีเจอร์เสริมแทนที่จะเปลี่ยนวิธีการจัดการโปรเจ็กต์โดยสิ้นเชิง
หากคุณต้องการตรวจสอบโปรเจ็กต์ทั้งหมดของคุณ (ไม่ใช่เฉพาะโค้ด) ลงในระบบควบคุมเวอร์ชันหรือใช้ไฟล์ของคุณเป็นแหล่งความจริงสำหรับโปรเจ็กต์ของคุณ เครื่องมือของบุคคลที่สาม เช่น Rojo เป็นตัวเลือกที่ดีกว่า
ตั้งค่า Sync สคริปต์
ใน Explorer ให้เลือกโฟลเดอร์หนึ่งหรือหลายโฟลเดอร์ที่คุณต้องการซิงโครไนซ์
คลิกขวาและเลือก Sync สคริปต์ ⟩ Sync กับไดเรกทอรี

เลือกไดเรกทอรีบนคอมพิวเตอร์ของคุณ (หรือสร้างอันใหม่) แล้วคลิก บันทึก
ใน Studio คลิกขวาที่โฟลเดอร์อีกครั้งแล้วเลือก Sync สคริปต์ ⟩ เปิดใน Explorer (Windows) หรือ เปิดใน Finder (macOS)
เปิดไดเรกทอรีในตัวแก้ไขข้อความที่คุณชื่นชอบ
หรือคลิกขวาที่สคริปต์แต่ละรายการใน Studio และเลือก เปิดในตัวแก้ไขภายนอก
คุณสามารถซิงโครไนซ์สคริปต์แต่ละรายการได้ แต่เรา ขอแนะนำอย่างยิ่ง ให้ซิงโครไนซ์โฟลเดอร์ หากคุณซิงโครไนซ์โฟลเดอร์ ฟีเจอร์ Sync สคริปต์จะซิงโครไนซ์โฟลเดอร์และสคริปต์ลูกโดยอัตโนมัติ ซึ่งช่วยให้คุณสร้าง ลบ และเปลี่ยนชื่อสคริปต์ได้โดยไม่ต้องเปิดใช้งานการซิงโครไนซ์ทุกครั้ง
หลังจากที่คุณตั้งค่า Sync สคริปต์แล้ว คุณแทบจะต้องการ เพิ่มส่วนขยาย LSP ไปยังตัวแก้ไขข้อความของคุณ
เคล็ดลับพื้นฐาน
Sync สคริปต์จะซิงโครไนซ์เฉพาะ Script, LocalScript, ModuleScript และ Folder นั้นๆ เท่านั้น อินสแตนซ์อื่นทั้งหมดในโฟลเดอร์ที่ซิงโครไนซ์จะถูกมองข้าม หลีกเลี่ยงการซิงโครไนซ์โฟลเดอร์ที่มีสคริปต์อยู่ร่วมกับอินสแตนซ์อื่นๆ
อย่าซิงโครไนซ์สคริปต์ที่มีแอตทริบิวต์หรือแท็ก Sync สคริปต์จะมองข้ามสิ่งเหล่านี้ ซึ่งอาจทำให้ข้อมูลสูญหายได้หากคุณสร้างหรือลบสคริปต์หรือตั้งค่าให้ซิงโครไนซ์ด้วยเวอร์ชันเก่าของไฟล์ในดิสก์
Sync สคริปต์ต้องการให้ชื่อของสคริปต์เข้ากันได้กับไฟล์ซิสเต็มของคุณ—ไม่มีชื่อซ้ำหรืออักขระที่ไม่รองรับ หาก Studio พบปัญหาใดๆ เหล่านี้ มันจะแสดงข้อผิดพลาดและขอให้คุณแก้ไขสถานการณ์ก่อนที่จะดำเนินการซิงโครไนซ์ต่อ
หากไฟล์หรือโฟลเดอร์ที่ซิงโครไนซ์มีการเปลี่ยนแปลงในขณะที่ Studio ปิดอยู่ Studio จะถามว่าคุณต้องการจัดการสถานการณ์อย่างไรเมื่อคุณเปิดสถานที่อีกครั้ง
การลบอินสแตนซ์ระดับสูง (หรือ "ราก")—อินสแตนซ์ที่คุณเริ่มต้นซิงโครไนซ์—ในดิสก์ท้องถิ่นของคุณอาจทำให้ Studio แสดงข้อผิดพลาด ในการลบอินสแตนซ์ระดับสูง:
- ใน Studio คลิกขวาที่สคริปต์หรือโฟลเดอร์แล้วเลือก Sync สคริปต์ ⟩ หยุดการซิงโครไนซ์
- เลือกตัวเลือก ลบไฟล์ หรือ ลบโฟลเดอร์ เพื่อทำการลบอินสแตนซ์จากดิสก์ท้องถิ่นของคุณ
- ลบสคริปต์หรือโฟลเดอร์ใน Studio
คุณสามารถลบอินสแตนซ์ลูกใน Studio หรือในดิสก์ท้องถิ่นของคุณได้โดยไม่ต้องปิดการซิงโครไนซ์ และการลบจะซิงโครไนซ์ได้ตามที่คุณคาดหวัง
ตั้งค่าเซิร์ฟเวอร์ภาษา
เซิร์ฟเวอร์ภาษาให้คุณสมบัติเฉพาะด้านภาษาสำหรับตัวแก้ไขข้อความของคุณ เช่น การเติมคำอัตโนมัติ การตรวจสอบประเภท "ไปที่การกำหนดค่า" และอื่นๆ สำหรับ VS Code เราขอแนะนำ Luau Language Server
ส่วนขยายโปรโตคอลเซิร์ฟเวอร์ภาษา (LSP) ต้องเข้าใจลำดับชั้นของโมเดลข้อมูลของโปรเจ็กต์เพื่อทำงานได้อย่างถูกต้อง ส่วนขยาย VS Code มาพร้อมกับปลั๊กอิน Studio เพื่อนคู่หู (Luau Language Server Companion) ซึ่งให้ข้อมูลนี้
เราขอแนะนำให้ติดตั้งทั้งสองอย่าง หากคุณใช้ส่วนขยาย VS Code และปลั๊กอิน Studio เพื่อนคู่หู คุณลักษณะด้านภาษาจะทำงานได้อย่างถูกต้องใน VS Code ขณะใช้ Sync สคริปต์
ส่วนขยายที่แนะนำ
- Roblox Luau LSP และ Luau Language Server Companion - คุณลักษณะด้านภาษา (ดูด้านบน)
- selene - การวิเคราะห์โค้ดแบบสแตติก (การตรวจสอบข้อผิดพลาด)
- StyLua - การจัดรูปแบบโค้ดโดยอัตโนมัติ
กฎการซิงโครไนซ์
เมื่อทำการซิงโครไนซ์อินสแตนซ์ที่มีลูกกับไดเรกทอรีในดิสก์ Studio จะทำการซิงโครไนซ์อัตโนมัติสำหรับการสร้าง เปลี่ยนชื่อ ย้าย และลบการดำเนินการของลูกกับไฟล์และโฟลเดอร์ที่เกี่ยวข้องบนดิสก์ วิธีการนี้ช่วยให้คุณรักษาโค้ดของคุณโดยไม่ต้องหยุดและเริ่มการซิงโครไนซ์ด้วยตนเองสำหรับสคริปต์แต่ละรายการ
ในดิสก์ Sync สคริปต์ใช้กฎต่อไปนี้เพื่อแยกประเภทร้านค้าต่างๆ ออกจากกัน
| รูปแบบการตั้งชื่อบนดิสก์ | ประเภทอินสแตนซ์ใน Studio |
|---|---|
| name.luau | ModuleScript |
| name.server.luau | สคริปต์ที่มี Server Script.RunContext |
| name.client.luau | สคริปต์ที่มี Client Script.RunContext |
| name.local.luau | LocalScript |
| name.legacy.luau | สคริปต์ที่มี Legacy Script.RunContext |
| name.plugin.luau | สคริปต์ที่มี Plugin Script.RunContext |
| name/ (ไดเรกทอรี) | Folder |
| name/init.*.luau | อินสแตนซ์สคริปต์ที่มีลูก ประเภท (*) ถูกกำหนดโดยกฎข้างต้น |
การตั้งค่า
Sync สคริปต์มีการตั้งค่าหลายอย่างในหน้าต่าง การตั้งค่า Studio (AltS หรือ ⌥S). ตัวเลือกเริ่มต้นเหมาะสมสำหรับส่วนใหญ่
| การตั้งค่า | คำอธิบาย |
|---|---|
| Resume ซิงโครไนซ์อัตโนมัติเมื่อเปิดสถานที่ | Studio ควรดำเนินการซิงโครไนซ์ต่อเมื่อคุณเปิดสถานที่หรือไม่ การปิดการตั้งค่านี้จะลดความสามารถในการใช้งานของ Sync สคริปต์อย่างมาก |
| Resume ซิงโครไนซ์ที่มีข้อขัดแย้งเมื่อเปิดสถานที่ | Studio ควรจัดการกับข้อขัดแย้งอย่างไรเมื่อคุณเปิดสถานที่ ตัวเลือกเริ่มต้น ไม่ทำการรีซิงโครไนซ์ บังคับให้คุณต้องแก้ไขข้อขัดแย้งด้วยตนเองเพื่อหลีกเลี่ยงการสูญเสียข้อมูล คุณยังสามารถเลือกที่จะให้เวอร์ชันในดิสก์หรือเวอร์ชันใน Studio เป็นที่ต้องการได้ |
| เก็บไฟล์/ไดเรกทอรีในท้องถิ่นหลังจากซิงโครไนซ์ | จัดการไฟล์ในดิสก์อย่างไรหลังจากที่คุณเลือก Sync สคริปต์ > หยุดการซิงโครไนซ์ ใน Studio |
| นามสกุลไฟล์ | นามสกุลไฟล์ที่จะใช้สำหรับสคริปต์ในดิสก์ |