บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ สอนเขียน Script Roblox
การเขียน Lua Script ใน Roblox Studio เพื่อให้ NPC หันหน้ามาทางผู้เล่น ใน Roblox Studio เราสามารถเขียนสคริปต์ Lua เพื่อให้ NPC หันหน้ามาทางผู้เล่นโดยใช้คุณสมบัติของ CFrame และ LookVector ที่ช่วยในการกำหนดทิศทางการหมุนของตัวละคร NPC ได้ง่าย ๆ ขั้นตอนการสร้าง Script เพิ่ม NPC สร้าง NPC (ตัวละคร) ในเกมของคุณ โดยการเพิ่มโมเดลและตั้งชื่อ เช่น "NPC" ตรวจสอบให้แน่ใจว่าโมเดลของ NPC มี HumanoidRootPart ซึ่งเป็นส่วนหลักที่ใช้สำหรับการเคลื่อนย้าย เพิ่ม LocalScript หรือ Script คลิกขวาที่ NPC > เพิ่ม Script เพื่อเขียนโค้ดที่ควบคุม NPC เขียนโค้ด ด้านล่างนี้คือตัวอย่างโค้ดที่ NPC จะหันหน้าไปทางผู้เล่นที่ใกล้ที่สุด: local npc = script.Parent -- อ้างถึงโมเดล NPC local rootPart = npc:WaitForChild( "HumanoidRootPart" ) -- หา HumanoidRootPart ของ NPC local players = game:GetService( "Players" ) -- เรียกใช้ Players service local function getClosestPlayer () local closestPlayer = nil local shortestDistance = math .huge -- กำหนดระยะเริ...
การใช้ For Loop ด้วยภาษา Lua บน Roblox Studio For Loop ในภาษา Lua บน Roblox Studio เป็นเครื่องมือที่ช่วยให้เราทำงานที่มีลักษณะซ้ำๆ ได้อย่างมีประสิทธิภาพ เช่น การประมวลผลข้อมูลในตาราง (table) หรือการควบคุมพฤติกรรมของวัตถุในเกม ตัวอย่างต่อไปนี้จะช่วยให้คุณเข้าใจและใช้งาน For Loop ได้ดีขึ้น ประเภทของ For Loop ใน Lua 1. Numeric For Loop ใช้สำหรับวนซ้ำในช่วงตัวเลขที่กำหนด เช่น นับเลขจาก 1 ถึง 10 ตัวอย่าง: for i = 1 , 10 do print ( "รอบที่:" , i) end i : ตัวแปรที่ใช้เก็บค่าตัวเลขในแต่ละรอบ 1 : จุดเริ่มต้น 10 : จุดสิ้นสุด do : เริ่มต้นโค้ดที่ต้องการทำซ้ำ เพิ่มขั้นตอน (Step): สามารถกำหนดขั้นตอนของการเพิ่มค่าด้วยพารามิเตอร์ที่สาม for i = 1 , 10 , 2 do print ( "ตัวเลข:" , i) end ผลลัพธ์: 1, 3, 5, 7, 9 2. Generic For Loop ใช้สำหรับวนซ้ำในตาราง (table) หรือออบเจ็กต์ที่ต้องการ ตัวอย่าง: การวนซ้ำในตาราง local fruits = { "Apple" , "Banana" , "Cherry" } for index, value in ipairs (fruits) do print ( "ผ...
Stairway to Heaven สร้างบันไดสู่สวรรค์ ใน Roblox Studio คุณสามารถสร้างประสบการณ์แบบอินเตอร์แอคทีฟที่น่าสนใจได้ด้วย Lua สคริปต์ หนึ่งในไอเดียที่น่าสนใจคือการสร้าง "บันไดเสียงเพลง" ซึ่งเมื่อผู้เล่นเหยียบแต่ละขั้น จะเกิดเสียงเพลงขึ้น และบันไดจะสร้างขั้นใหม่ที่สูงขึ้น แต่ถ้าผู้เล่นเหยียบขั้นเดิมอีกครั้ง จะเล่นเสียงเพลงเท่านั้นโดยไม่สร้างขั้นใหม่อีก บทความนี้จะแสดงวิธีการสร้างบันไดเสียงเพลงด้วย Lua Script บน Roblox Studio ขั้นตอนการสร้างบันไดเสียงเพลง 1. การเตรียมโครงสร้าง สร้าง Part เพื่อเป็นขั้นบันไดแรก เพิ่ม Sound เข้าไปใน Part เพื่อใช้สำหรับเสียงเพลง จัดการ Anchor เพื่อให้บันไดไม่เคลื่อนที่ 2. เพิ่มสคริปต์เพื่อควบคุม ใส่ Script ลงใน Part และเขียนโค้ดดังนี้: local part = script.Parent local sound = part:FindFirstChild( "Sound" ) local stepHeight = 5 -- ความสูงของแต่ละขั้น local stepForward = 2 -- ระยะที่ขั้นใหม่จะเลื่อนไปข้างหน้า local isStepped = false -- สถานะการเหยียบ -- ฟังก์ชันที่ทำงานเมื่อเหยียบ local function onStepped (other) ...
การใช้งาน Vector และ CFrame ใน Lua บน Roblox Studio  การพัฒนาเกมใน Roblox Studio จำเป็นต้องเข้าใจการทำงานของ Vector และ CFrame เนื่องจากเป็นเครื่องมือสำคัญที่ช่วยจัดการตำแหน่ง ทิศทาง และการเคลื่อนไหวของวัตถุต่างๆ ในโลก 3 มิติ บทความนี้จะแนะนำวิธีการใช้งาน Vector และ CFrame ด้วย Lua พร้อมตัวอย่างที่เข้าใจง่าย 1. Vector คืออะไร? Vector เป็นข้อมูลชนิดหนึ่งที่ใช้แสดงค่าตำแหน่งหรือทิศทางในพื้นที่ 3 มิติในรูปแบบของสามแกน (x, y, z) ใน Roblox Studio คุณสามารถใช้งาน Vector3 เพื่อจัดการตำแหน่งในโลกของเกม ตัวอย่างการสร้าง Vector3 local position = Vector3.new( 10 , 20 , 30 ) -- สร้างตำแหน่งที่มีค่า x= 10 , y= 20 , z= 30 print(position) การคำนวณระหว่าง Vectors การบวกและลบ: local vectorA = Vector3.new( 5 , 5 , 5 ) local vectorB = Vector3.new( 2 , 3 , 4 ) local result = vectorA + vectorB -- ผลลัพธ์คือ ( 7 , 8 , 9 ) print(result) การหารและคูณด้วยตัวเลข: local scaledVector = vectorA * 2 -- ผลลัพธ์คือ ( 10 , 10 , 10 ) print(scaledVector) การคำนวณขนาดของ Vector: local magnitude = v...
การใช้ key string กับ table ใน Lua การใช้ [] กับ string ใน table เป็นการเข้าถึงหรือกำหนดค่าของสมาชิกในตาราง โดย [] เป็นอีกวิธีหนึ่งในการอ้างอิงชื่อคีย์ (key) ใน table ซึ่งมีความยืดหยุ่นมากกว่า .key แบบปกติ ตัวอย่างการใช้งานมีดังนี้: การสร้าง table ด้วย [] และ string ใน table คุณสามารถใช้ string เป็นคีย์เพื่ออ้างอิงค่าต่างๆ ได้ เช่น: local quests = { [ "ช่วยหาแอปเปิ้ล" ] = { description = "ไปเก็บแอปเปิ้ล 5 ลูกจากสวน" , reward = 100 , completed = false , }, [ "กำจัดมอนสเตอร์" ] = { description = "กำจัดมอนสเตอร์ 3 ตัวในป่า" , reward = 200 , completed = false , }, } ในตัวอย่าง: "ช่วยหาแอปเปิ้ล" และ "กำจัดมอนสเตอร์" เป็นคีย์ (key) ของ table ค่า (value) คือ table ย่อยที่เก็บข้อมูลรายละเอียดเควสต์ การเข้าถึงค่าด้วย [] เมื่อคุณต้องการเข้าถึงค่าใน table ด้วยคีย์ที่เป็น string คุณใช้ [] ดังนี้: -- เข้าถึงรายละเอียดของเควสต์ "ช่วยหาแอปเปิ้ล" local appleQuest = quests[ "ช่วยหาแอปเปิ้ล" ] print (apple...
การใช้งาน if-else และ table แทน switch ในภาษา Lua บน Roblox Studio พร้อมตัวอย่างเกมง่ายๆ  Lua เป็นภาษาที่ใช้ในการพัฒนาเกมใน Roblox Studio ซึ่งมีความเรียบง่ายและยืดหยุ่น หนึ่งในคุณสมบัติที่สำคัญคือโครงสร้างควบคุมการทำงาน เช่น if-else และ switch (ซึ่งใน Lua จะใช้ table แทนเนื่องจากไม่มี switch ในตัว) บทความนี้จะแนะนำวิธีใช้งาน if-else และโครงสร้าง table ที่คล้าย switch พร้อมตัวอย่างเกมง่ายๆที่คุณสามารถนำไปปรับใช้ได้ 1. การใช้งาน if-else ใน Lua โครงสร้าง if-else ใช้ในการตัดสินใจตามเงื่อนไขต่างๆ ตัวอย่างเช่น: local playerScore = 50 if playerScore >= 100 then print ( "คุณชนะ!" ) elseif playerScore >= 50 then print ( "คุณใกล้จะชนะแล้ว!" ) else print ( "พยายามอีกหน่อย!" ) end ในโค้ดนี้: ถ้าคะแนนมากกว่าหรือเท่ากับ 100 จะพิมพ์ว่า "คุณชนะ!" ถ้าคะแนนอยู่ระหว่าง 50-99 จะพิมพ์ว่า "คุณใกล้จะชนะแล้ว!" ถ้าคะแนนน้อยกว่า 50 จะพิมพ์ว่า "พยายามอีกหน่อย!" 2. การใช้ table แทน switch ใน Lua Lua ไม่มีคำส...
การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming) ด้วยภาษา Lua บน Roblox Studio การพัฒนาเกมด้วย Roblox Studio นั้น ภาษา Lua ถือเป็นหัวใจสำคัญที่นักพัฒนาต้องเรียนรู้ และหนึ่งในเทคนิคการเขียนโปรแกรมที่ช่วยจัดการโค้ดให้มีโครงสร้างที่ดีขึ้นคือ "การเขียนโปรแกรมเชิงวัตถุ" (Object-Oriented Programming หรือ OOP) ในบทความนี้ เราจะสำรวจวิธีการใช้ OOP ในภาษา Lua บน Roblox Studio เพื่อช่วยให้คุณสร้างระบบที่ซับซ้อนและยืดหยุ่นได้ง่ายขึ้น ทำความเข้าใจกับ Object-Oriented Programming (OOP) OOP เป็นแนวคิดการเขียนโปรแกรมที่เน้นการจัดโครงสร้างโปรแกรมให้แบ่งออกเป็น "วัตถุ" (Objects) โดยแต่ละวัตถุจะประกอบด้วย "คุณสมบัติ" (Properties) และ "พฤติกรรม" (Methods) ซึ่งทำให้โค้ดเข้าใจง่ายและสามารถนำกลับมาใช้ใหม่ได้ ใน Lua และ Roblox Studio เราสามารถสร้างโครงสร้างเชิงวัตถุโดยการใช้  ตาราง  (Table) ร่วมกับ  เมตาเทเบิล  (Metatable) ซึ่งเป็นฟีเจอร์ที่ทรงพลังของ Lua การสร้างคลาสใน Lua ในภาษา Lua เราไม่มีคีย์เวิร์ดสำหรับการสร้างคลาสเหมือนภาษาอื่น ๆ เช่น Java หรือ Python แต่เร...
เปรียบเทียบ Lua บน Roblox Studio กับภาษาโปรแกรมอื่นๆ 1. Lua บน Roblox Studio คืออะไร? Lua เป็นภาษาที่ออกแบบมาเพื่อความเรียบง่าย มีไวยากรณ์ (syntax) ที่เข้าใจง่าย Roblox Studio ได้ปรับ Lua ให้เข้ากับแพลตฟอร์มโดยเพิ่ม API ต่างๆ ที่เรียกว่า Roblox API เช่น การจัดการวัตถุในเกม การควบคุมการชน (Collision) และระบบผู้เล่นหลายคน (Multiplayer) จุดเด่นของ Lua บน Roblox Studio: ใช้งานง่าย: เหมาะสำหรับผู้เริ่มต้นเขียนโปรแกรม ปรับแต่งได้หลากหลาย: รองรับการพัฒนาเกมตั้งแต่เล็กไปจนถึงซับซ้อน ความเร็วสูง: เนื่องจาก Lua เป็นภาษา lightweight ทำให้ทำงานได้รวดเร็ว 2. เปรียบเทียบ Lua กับภาษาอื่น คุณสมบัติ Lua (Roblox Studio) Python C# (Unity) JavaScript ง่ายต่อการเรียนรู้ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ความเร็วในการประมวลผล ⭐⭐⭐⭐ ...
รูปภาพ
การใช้งาน Lua เบื้องต้นบน Roblox Studio: การใช้งาน Table และประโยชน์ของมัน หากคุณต้องการพัฒนาเกมใน Roblox Studio ให้มีความซับซ้อนมากขึ้น การใช้งาน Table เป็นเครื่องมือสำคัญที่ช่วยจัดการข้อมูลได้อย่างมีประสิทธิภาพ ในบทความนี้จะพูดถึงการดูจำนวน การเพิ่ม และการลดข้อมูลใน Table ซึ่งเป็นทักษะพื้นฐานที่จำเป็นสำหรับการพัฒนาเกม การดูจำนวนข้อมูลใน Table การดูจำนวนข้อมูลใน Table สามารถทำได้โดยใช้ฟังก์ชัน # (ความยาวของ Table) ซึ่งช่วยให้คุณทราบจำนวนรายการใน Table ได้อย่างง่ายดาย: local items = {"Sword", "Shield", "Potion"} print(#items) -- Output: 3 หาก Table ใช้ Key-Value เช่นพจนานุกรม (Dictionary) คุณจะต้องใช้การวนลูปเพื่อนับจำนวนข้อมูล: local playerStats = {health = 100, stamina = 50, mana = 30} local count = 0 for key, value in pairs(playerStats) do count = count + 1 end print(count) -- Output: 3 ...
รูปภาพ
Roblox Studio พื้นฐาน: การประกาศตัวแปรในภาษา Lua Roblox Studio เป็นเครื่องมือที่ทรงพลังสำหรับการสร้างเกมที่สามารถเล่นได้ทั่วโลก และภาษา Lua คือหัวใจสำคัญของการเขียนโค้ดใน Roblox Studio หากคุณกำลังเริ่มต้นเรียนรู้ Lua บทความนี้จะพาคุณไปรู้จักกับพื้นฐานสำคัญอย่าง "การประกาศตัวแปร" ตัวแปรคืออะไร? ตัวแปร (Variable) คือพื้นที่ในหน่วยความจำที่ใช้เก็บข้อมูลที่เราต้องการใช้ในโค้ด ไม่ว่าจะเป็นตัวเลข ข้อความ หรือค่าต่าง ๆ ที่สามารถเปลี่ยนแปลงได้ในภายหลัง การประกาศตัวแปรในภาษา Lua ใน Lua การประกาศตัวแปรสามารถทำได้ง่ายและยืดหยุ่น ตัวอย่างเช่น: local playerName = "John" -- ตัวแปรเก็บชื่อผู้เล่น local playerScore = 0 -- ตัวแปรเก็บคะแนนผู้เล่น คำอธิบายโค้ด local เป็นคำสำคัญ (keyword) ที่ใช้เพื่อกำหนดตัวแปรให้มีขอบเขตเฉพาะในฟังก์ชันหรือบล็อกที่มันถูกประกาศ playerName และ playerScore เป็นชื่อของตัวแปร ค่า "John" และ 0 คือค่าที่ตัวแปรเก็บไว้ ประเภทของข้อมูลใน Lua Lua รองรับประเภทข้อมูลหลากหลาย เช่น: ตัวเลข (Number) ...
ใน Roblox Studio การพัฒนาระบบเกมให้มีความสมดุลและสนุกสนานมักต้องการเครื่องมือที่ช่วยควบคุมการกระทำของผู้เล่นอย่างเหมาะสม หนึ่งในเครื่องมือสำคัญที่นักพัฒนานิยมใช้งานคือ  "ระบบ Cool Down"  ซึ่งสามารถนำไปประยุกต์ใช้ในหลากหลายสถานการณ์เพื่อเพิ่มประสบการณ์การเล่นที่ดีขึ้น  ระบบ Cool Down คืออะไร? Cool Down คือช่วงเวลาที่ผู้เล่นต้องรอหลังจากดำเนินการบางอย่างในเกม เช่น การใช้ทักษะพิเศษ การยิงกระสุน หรือการเปิดใช้งานวัตถุ ก่อนที่พวกเขาจะสามารถทำซ้ำการกระทำนั้นได้อีกครั้ง ระบบนี้มักออกแบบให้มีระยะเวลาที่กำหนดไว้ล่วงหน้า เช่น 5 วินาที หรือ 10 วินาที  ประโยชน์ของระบบ Cool Down เพิ่มความสมดุลของเกม (Game Balance) ระบบ Cool Down ช่วยลดการกระทำที่ซ้ำซ้อนและอาจทำให้เกิดความไม่ยุติธรรม เช่น การสแปมทักษะที่มีพลังสูงหรือการโจมตีที่รวดเร็วเกินไป  ช่วยให้ผู้เล่นทุกคนมีโอกาสที่เท่าเทียมกันในสถานการณ์แข่งขัน  สร้างความตื่นเต้นและความท้าทาย (Challenge and Strategy) เมื่อมีการจำกัดเวลาการใช้ทักษะ ผู้เล่นจะต้องวางแผนและคิดให้รอบคอบก่อนที่จะกดใช้งาน  ส่งเสริมการเล่นที่มีความคิด...
 Roblox Studio เป็นเครื่องมือที่ทรงพลังสำหรับการพัฒนาเกมบนแพลตฟอร์ม Roblox โดยใช้ Lua เป็นภาษาสคริปต์หลัก หนึ่งในคุณสมบัติที่น่าสนใจของ Lua คือการจัดการงาน (tasks) และการแสดงผล (renderer) ที่สามารถช่วยเพิ่มประสิทธิภาพและความสวยงามของเกมได้ ในบทความนี้ เราจะมาดูกันว่าคุณสามารถใช้งาน task และ RunService ใน Roblox Studio ได้อย่างไร Task ใน Lua คืออะไร? ใน Lua บน Roblox Studio คุณสามารถใช้โมดูล  task  เพื่อจัดการการทำงานแบบอะซิงโครนัส (asynchronous) เช่น การหน่วงเวลา การทำงานเป็นลูป หรือการจัดการงานที่ต้องการเวลาในการประมวลผล ตัวอย่างฟังก์ชันที่สำคัญได้แก่: task.wait(seconds)  — ใช้หน่วงเวลาเป็นวินาที (seconds) task.spawn(callback)  — สร้างงานใหม่แบบอะซิงโครนัส task.defer(callback)  — สร้างงานใหม่แต่รันหลังจากสคริปต์ปัจจุบันเสร็จสมบูรณ์ ตัวอย่าง: -- ใช้ task.wait เพื่อสร้างหน่วงเวลา print ( "เริ่มต้นงาน" ) task.wait( 2 ) -- หน่วงเวลา 2 วินาที print ( "งานเสร็จสิ้น" ) -- ใช้ task.spawn เพื่อรันงานแบบอะซิงโครนัส local function heavyTask () for i = 1 ,...
การใช้งาน TweenService ด้วย Lua บน Roblox Studio TweenService เป็นบริการที่มีประโยชน์ใน Roblox Studio ซึ่งช่วยให้เราสามารถสร้างการเคลื่อนไหวที่ลื่นไหล เช่น การเปลี่ยนตำแหน่ง การเปลี่ยนสี หรือการปรับคุณสมบัติต่างๆ ของวัตถุในเกมได้อย่างง่ายดาย โดยไม่ต้องเขียนโค้ดที่ซับซ้อนเกี่ยวกับการคำนวณค่าในแต่ละเฟรม พื้นฐานของ TweenService Tween หมายถึง การเปลี่ยนแปลงคุณสมบัติของวัตถุจากค่าเริ่มต้นไปยังค่าปลายทางในระยะเวลาที่กำหนด โดยมีการกำหนดรูปแบบ (easing style) และพฤติกรรม (easing direction) ของการเคลื่อนไหว โครงสร้างของ TweenService: เรียกใช้บริการ TweenService ด้วย game:GetService("TweenService") กำหนด TweenInfo เพื่อกำหนดระยะเวลาและรูปแบบการเคลื่อนไหว ระบุคุณสมบัติที่ต้องการเปลี่ยนแปลงในรูปแบบตาราง (table) เรียกฟังก์ชัน TweenService:Create() เพื่อสร้าง Tween เรียกใช้งาน Tween ด้วย Tween:Play() ตัวอย่างการใช้งาน TweenService ตัวอย่างที่ 1: การเคลื่อนย้ายวัตถุ -- เรียกใช้ TweenService local TweenService = game:GetService("TweenService") -- กำหนดวัตถุที่ต้องการเค...
รูปภาพ
Roblox bungee jump ความปลอดภัยต้องมาก่อน สร้างสายบันจี้จั๊มพ์ระหว่างร่วง   สัมผัสประสบการณ์ได้ที่ https://www.roblox.com/th/games/17020178329/unnamed
รูปภาพ
Roblox Studio สร้างระบบ Charge พลังเตะบอล   ขอกำหนดกติกาก่อนน้าาาา แล้วจะเปิดให้เล่นจ้า
รูปภาพ
 Roblox Studio สอนเขียน Script Victory Point สร้างโมเดลที่มีสองเสา Beam แทนผ้าใบ และแอบมีเซนเซอร์อยู่ที่ฐานโดยซ่อนเอาไว้ (Transparent=1) ใต้ SensorPart ใส่ Script ตามนี้ครับ local SensorPart = script.Parent local Beam = SensorPart.Parent.Beam local ParticleEmitter1 = SensorPart.Parent.LeftPart.ParticleEmitter local ParticleEmitter2 = SensorPart.Parent.RightPart.ParticleEmitter local sound = SensorPart:FindFirstChild("Gun Shot") local win = false SensorPart.Touched:Connect(function(otherPart) if win then return end if otherPart.Parent:FindFirstChild("Humanoid") then win = true sound:Play() --เล่นเสียงพลุ Beam:Destroy() --ปลดแผ่นผ้า ParticleEmitter1.Enabled = true --ปล่อยพลุ 1 ParticleEmitter2.Enabled = true --ปล่อยพลุ 2 end end)
การใช้งาน Connect ใน Lua บน Roblox Studio  Connect เป็นคุณสมบัติที่ใช้ในการเชื่อมโยง (bind) ฟังก์ชันที่กำหนดเองเข้ากับ Events ใน Roblox Studio ซึ่งทำให้สามารถดำเนินการโค้ดเมื่อเหตุการณ์เฉพาะเกิดขึ้น เช่น การคลิกปุ่ม การเปลี่ยนแปลงคุณสมบัติ หรือการชนของวัตถุ โครงสร้างการใช้งาน ฟังก์ชันที่เชื่อมต่อกับเหตุการณ์จะต้องใช้คำสั่ง .Event:Connect( function ) ตัวอย่างการใช้งาน 1. การตรวจจับการคลิกปุ่ม local button = script.Parent button.MouseButton1Click:Connect( function () print ( "ปุ่มถูกคลิกแล้ว!" ) end ) ในตัวอย่างนี้ เมื่อผู้เล่นคลิกปุ่ม ระบบจะเรียกฟังก์ชันที่กำหนดและพิมพ์ข้อความใน Output 2. การตรวจจับเมื่อผู้เล่นเข้าร่วมเกม game.Players.PlayerAdded:Connect( function (player) print (player. Name .. " ได้เข้าร่วมเกม" ) end ) เหตุการณ์ PlayerAdded จะถูกเรียกใช้ทุกครั้งที่ผู้เล่นเข้าร่วมเกม พร้อมพิมพ์ชื่อของผู้เล่นใน Output 3. การตรวจจับการเปลี่ยนแปลงของคุณสมบัติ local part = workspace.Part part.Touched:Connect( function (hit) print...
รูปภาพ
Roblox Studio สร้างสะพานอัตโนมัติตามการก้าว local ladder = script.Parent local TweenService = game:GetService("TweenService") ladder.Touched:Connect(function(otherPart: BasePart) if otherPart.Parent:FindFirstChild("Humanoid") then -- โคลนบันไดแล้วปรับตำแหน่งไปด้านหน้า 3 studs วางซ่อนไว้ข้างบน local nextLadder = ladder:Clone() nextLadder.CFrame *= CFrame.new(0, 50, -3) nextLadder.Parent = workspace -- ใช้ TweenService เพื่อเล่น Animation โดยให้มันวิ่งมาอยู่ข้างหน้า local goal = {} goal.CFrame = ladder.CFrame * CFrame.new(0, 0, -3) local tween = TweenService:Create(nextLadder, TweenInfo.new(0.5), goal) tween:Play() -- อย่าลืมลบ Script ทิ้งเพื่อมันจะไม่ทำซ้ำ เหยียบทีเดียวสร้างครั้งเดียว ladder.Script:Destroy() end end)
รูปภาพ
 สอนเขียน lua Script Roblox Studio เพื่อสร้างบันได สร้าง Part กำหนดให้เป็นบันไดขั้นแรกแล้วที่ ServerScriptService ใส่โค้ดตามนี้ครับ local part = workspace.Part local folder = Instance.new("Folder") folder.Name = "Circles" folder.Parent = workspace local angle = 0 local radius = 30 local y = 3 while angle < 360 * 3 do -- ลูปลากมุมวงกลมสามวง local x = math.cos(math.rad(angle)) * radius -- x ตามสมการวงกลมครับอย่าลืมแปลงมุมเป็น Radian local z = math.sin(math.rad(angle)) * radius -- ใช้แกน z เพราะเราสร้างบันไดตามระนาบ xz -- adjust center offset ปรับ offset เทียบกับบันไดขั้นแรกครับเพราะอาจจะไม่ได้วางที่ xz 0,0 x += part.Position.X z += part.Position.Z print (x .. ", " .. z) local newPart = Instance.new("Part") --สร้าง Part ใหม่ newPart.Size = newPart.Size + Vector3.new(0, 0, 3) -- ปรับความหนา ลองเล่นดูครับ newPart.CFrame = newPart.CFrame * CFrame.new(x, y, z) -- ระบุตำแหน่งที่คำนวณได้ newPart.CFrame = newPart.CFrame * ...
รูปภาพ
 ออกแบบ Map บน Roblox Studio ไว้เล่นเอง