เปิดเซิร์ฟ Palworld ให้เพื่อนเล่นได้แล้ว คำถามชุดถัดไปมาพร้อมกันสามข้อเสมอ — ทำยังไงถึงจะเป็นแอดมินในเกม ดูได้ไหมว่าตอนนี้ใครออนไลน์อยู่บ้าง และถ้ามีคนก่อกวนจะเตะออกยังไง บทความนี้ตอบทั้งสามข้อจากของที่มีจริงบนหน้าเซิร์ฟเวอร์ของ uniz.host พร้อมบอกตรง ๆ ว่ามีอยู่หนึ่งข้อจำกัดที่หน้าตาเหมือนบั๊กแต่ไม่ใช่บั๊ก และคุณต้องรู้ก่อนจะกดแบนใครสักคน
เรื่องพื้นฐานที่ทำให้ทุกอย่างในหน้านี้ต่างจาก Minecraft คือ Palworld ไม่มี RCON ให้ใช้แล้ว หน้าเอกสาร RCON ของผู้พัฒนาถูกติดป้ายว่าเลิกใช้แล้ว และเขียนไว้ตรง ๆ ว่า "RCON is now deprecated. Please consider to use REST API." พร้อมบอกว่ามันมีกำหนดจะหยุดทำงานในอัปเดตถัดไป ช่องทางจัดการที่เอกสารทางการรองรับจึงเป็น REST API ของเซิร์ฟเวอร์เกมเอง เซิร์ฟ Palworld บน uniz.host เปิด REST API ไว้และปิด RCON ไว้ตามนั้น แท็บ "คอนโซล" ของเกมนี้จึงไม่มีช่องพิมพ์คำสั่ง แต่มีปุ่มประกาศกับเซฟโลกแทน และทุกอย่างในบทความนี้ก็วิ่งผ่านช่องทางเดียวกันหมด
ขอสิทธิ์แอดมินในเกมด้วยรหัสแอดมิน
สิทธิ์แอดมิน "ในเกม" กับสิทธิ์ที่คุณใช้อยู่บนหน้าเว็บเป็นคนละเรื่องกันสนิท บนเว็บคุณคือเจ้าของเซิร์ฟอยู่แล้ว แต่ในเกมคุณยังเป็นผู้เล่นธรรมดา จนกว่าจะพิมพ์รหัสแอดมินในแชทหนึ่งครั้ง
ตั้งรหัสแอดมินในหน้าตั้งค่า Palworld
ไปที่แท็บ "ตั้งค่า" ของเซิร์ฟตัวนั้น แล้วหาการ์ด "ตั้งค่า Palworld" ช่องที่ต้องกรอกชื่อว่า "รหัสแอดมิน (ใช้ในเกม)" ซึ่งจะแสดงเป็นช่องว่างเปล่าพร้อมข้อความชวนว่า "ตั้งรหัสแอดมินใหม่" เสมอ ไม่ว่าคุณจะเคยตั้งไว้แล้วหรือยัง
ระวังอย่าสับกับ "รหัสผ่านเซิร์ฟเวอร์" ที่อยู่ใกล้กัน อันนั้นคือรหัสสำหรับ เข้าเซิร์ฟ ที่ผู้เล่นทุกคนต้องใช้ ส่วนรหัสแอดมินคือรหัสสำหรับ ยกระดับสิทธิ์ ของคนที่เข้ามาได้แล้ว
รหัสแอดมินต้องยาว 8–32 ตัว และใช้ได้เฉพาะตัวอักษรภาษาอังกฤษ ตัวเลข ขีดกลาง และขีดล่าง ถ้าผิดกติกาจะมีข้อความเตือนขึ้นทันทีตั้งแต่ยังไม่ส่ง เหตุผลที่ต้องยาวอย่างน้อย 8 ตัวคือคำสั่งขอสิทธิ์แอดมินเป็นของ Palworld แท้ ๆ ผู้เล่นทุกคนที่เข้าเซิร์ฟได้ก็พิมพ์ลองสุ่มได้เหมือนกัน รหัสสั้น ๆ เดาง่ายจึงเท่ากับเปิดประตูทิ้งไว้ ระบบตั้งรหัสสุ่มยาวให้ตั้งแต่ตอนสร้างเซิร์ฟอยู่แล้ว ถ้าคุณไม่ตั้งเอง ก็ไม่มีใครรู้รหัสนั้น รวมทั้งคุณด้วย
สำคัญ: ช่องนี้เป็นแบบเขียนอย่างเดียว ค่าที่กรอกจะถูกส่งไปเก็บใน Secret ของเซิร์ฟตัวนั้นบนคลัสเตอร์ ไม่ได้เก็บลงฐานข้อมูลของเว็บ พอบันทึกเสร็จช่องจะถูกล้างทันทีและไม่มีหน้าไหนแสดงรหัสกลับมาอีก ให้จดเก็บเองก่อนกดบันทึก เมื่อบันทึกผ่านจะมีข้อความ "บันทึกการตั้งค่าแล้ว" เด้งขึ้นมา
รีสตาร์ทเซิร์ฟเวอร์ให้รหัสใหม่มีผล
การ์ดตั้งค่าเขียนกำกับไว้เองว่าบันทึกแล้วอัปเดตการตั้งค่าทันทีแต่จะไม่ไปรบกวนเซิร์ฟที่กำลังทำงานอยู่ ต้องกดรีสตาร์ทเองถึงจะมีผล กติกานี้ใช้กับ ทุก ค่าในการ์ดนั้น ไม่ใช่แค่รหัสแอดมิน
ถ้ายังไม่มีใครออนไลน์ก็กดรีสตาร์ทได้เลย ถ้ามีคนเล่นอยู่ ให้ประกาศบอกก่อน — วิธีประกาศอยู่ท้ายบทความนี้
พิมพ์คำสั่งขอสิทธิ์แอดมินในแชทของเกม
เข้าเกม เปิดช่องแชท แล้วพิมพ์ /AdminPassword เว้นวรรค ตามด้วยรหัสที่คุณเพิ่งตั้ง คำสั่งนี้เป็นของตัวเกมเอง ไม่ใช่ของ uniz.host จึงทำงานเหมือนกันหมดไม่ว่าเซิร์ฟจะอยู่ที่ไหน ข้อความช่วยเหลือใต้ช่องกรอกบนหน้าเว็บก็เขียนสูตรนี้ไว้ให้แล้ว
หลังคำสั่งผ่าน ตัวละครของคุณจะใช้คำสั่งแอดมินอื่น ๆ ของเกมได้ทันทีในเซสชันนั้น ถ้าเซิร์ฟรีสตาร์ทหรือคุณออกแล้วเข้าใหม่ ก็พิมพ์ซ้ำอีกครั้ง
ยืนยันจากแท็บผู้เล่นว่าใช้งานได้จริง
การยืนยันที่เชื่อได้ที่สุดไม่ได้อยู่ในเกม แต่อยู่บนเว็บ เปิดแท็บ "ผู้เล่น" ของเซิร์ฟตัวนั้น ถ้าการ์ด "กำลังเล่นอยู่" แสดงรายชื่อคนที่ออนไลน์อยู่ตามจริง แปลว่าระบบหลังบ้านคุยกับ REST API ของเกมด้วยรหัสปัจจุบันได้สำเร็จ ซึ่งเป็นรหัสเดียวกับที่คุณเพิ่งใช้ในแชท
ถ้าตรงนั้นขึ้นว่า "ดูผู้เล่นออนไลน์ไม่ได้ (เซิร์ฟหยุดหรือ RCON ไม่ตอบ)" ทั้งที่เซิร์ฟรันอยู่และมีคนเล่น ให้ข้ามไปอ่านหัวข้อถัดไปก่อน — อาการนี้มีคำอธิบายเฉพาะของมัน
ช่วงที่รหัสใหม่ยังไม่มีผล แล้วหน้าเว็บขึ้น error
นี่คือจุดที่ทำให้คนตกใจมากที่สุดในทั้งหน้า และมันเป็นพฤติกรรมที่ตั้งใจ ไม่ใช่ความผิดพลาด
ตอนคุณกดบันทึกรหัสแอดมินใหม่ ระบบเขียนรหัสลง Secret ของเซิร์ฟ ทันที แต่โปรเซสของเกมที่กำลังรันอยู่ไม่ได้อ่าน Secret ซ้ำระหว่างทาง มันถือรหัสเดิมที่อ่านมาตอนบูตไปจนกว่าจะถูกรีสตาร์ท ผลคือเกิดช่องว่างเวลาช่วงหนึ่ง ที่ฝั่งเว็บถือรหัสใหม่ แต่ฝั่งเกมยังรับเฉพาะรหัสเดิม
ระหว่างช่วงนั้น ทุกอย่างที่ต้องคุยกับ REST API ของเกมจะถูกปฏิเสธ และแต่ละจุดก็แสดงผลต่างกันไป การ์ด "กำลังเล่นอยู่" จะกลายเป็นข้อความว่าดูผู้เล่นออนไลน์ไม่ได้ แถบสถิติในแท็บ "คอนโซล" จะกลายเป็นขีดทั้งแถว และถ้าลองกดประกาศหรือเซฟโลกก็จะได้ข้อความว่าไม่สำเร็จ เซิร์ฟเวอร์เกมยังทำงานปกติทุกประการ ผู้เล่นที่อยู่ในเกมไม่รู้สึกอะไรเลย สิ่งที่พังคือช่องทางจัดการฝั่งเว็บเท่านั้น
ทางแก้มีข้อเดียวคือรีสตาร์ทหนึ่งครั้ง แล้วทุกจุดกลับมาพร้อมกัน เพราะเหตุนี้ ถ้าคุณจะเปลี่ยนรหัสแอดมิน ควรทำตอนที่เซิร์ฟว่างคน แล้วรีสตาร์ทต่อในจังหวะเดียวกันไปเลย ไม่ต้องกดบันทึกทิ้งไว้ค้างข้ามวัน
ดูว่าใครออนไลน์อยู่บ้าง
แท็บ "ผู้เล่น" ของ Palworld ให้ข้อมูลมากกว่าเกมอื่น เพราะ REST API ของเกมรายงานรายละเอียดต่อผู้เล่นเยอะกว่ารายชื่อเปล่า ๆ แต่ละคนจะมีรูปโปรไฟล์ Steam (หรือแผ่นป้ายตัวอักษรย่อถ้าเล่นจากแพลตฟอร์มอื่น) เลเวล และตัวเลขอีกสามช่องคือ "ปิง" "สิ่งก่อสร้าง" และ "พิกัด" สลับเป็นมุมมอง "การ์ด" หรือ "ตาราง" ได้ และในมุมมองตารางกดหัวคอลัมน์ตัวเลขเพื่อเรียงลำดับได้
เหนือรายชื่อมีสรุปรวมของทั้งเซิร์ฟ — จำนวนคนออนไลน์ "ปิงเฉลี่ย" "สิ่งก่อสร้างรวม" และถ้าเกมตอบค่าสถิติมาด้วยก็จะมี "FPS เซิร์ฟ" กับ "ออนไลน์มาแล้ว" ต่อท้าย ช่องสิ่งก่อสร้างมีแถบเทียบกับคนที่สร้างเยอะที่สุดบนเซิร์ฟนั้น ซึ่งเป็นตัวชี้เบาะแสที่ใช้ได้จริงเวลา FPS เซิร์ฟตก เพราะฐานที่ใหญ่เกินตัวคือสาเหตุที่พบบ่อย
สองเรื่องเกี่ยวกับความสดของข้อมูลที่ควรรู้ อย่างแรก หน้านี้ดึงข้อมูลใหม่ทุก 15 วินาทีขณะเซิร์ฟรันอยู่และแท็บเบราว์เซอร์เปิดค้างอยู่ อย่างที่สอง ฝั่งเซิร์ฟเวอร์แคชรายชื่อไว้ 10 วินาที เพราะทีมงานหลายคนเปิดหน้าเดียวกันพร้อมกันจะทวีจำนวนคำขอไปกดเซิร์ฟเวอร์เกม ผลรวมคือคนที่เพิ่งเข้าเกมอาจใช้เวลาสิบกว่าวินาทีกว่าจะโผล่ กด "รีเฟรช" ได้ แต่ถ้ายังไม่ขึ้นให้รอรอบถัดไป — แคชเก็บเฉพาะการอ่านที่สำเร็จ ผลลัพธ์ที่ว่างเพราะติดต่อไม่ได้จะไม่ค้างอยู่ในแคช
ถ้าไม่มีใครออนไลน์จริง ๆ จะขึ้นว่า "ยังไม่มีใครออนไลน์" ซึ่งเป็นคนละความหมายกับข้อความว่าดูผู้เล่นออนไลน์ไม่ได้ อันแรกแปลว่าอ่านสำเร็จแล้วและไม่มีใครอยู่ อันหลังแปลว่าอ่านไม่สำเร็จ
เตะและแบน สั่งงานด้วยรหัสประจำตัว ไม่ใช่ชื่อที่แสดง
บนแถวของผู้เล่นแต่ละคนจะมีปุ่ม "เตะออก" กับ "แบน" ปุ่มทั้งคู่ขึ้นเฉพาะตอนเซิร์ฟรันอยู่ และเฉพาะกับคนที่มีสิทธิ์เท่านั้น
จุดที่คนไม่ทันสังเกตคือ ปุ่มเหล่านี้ไม่ได้ส่งชื่อที่แสดงไปให้ระบบ แต่ส่งรหัสประจำตัวของผู้เล่นที่ขึ้นต้นด้วย steam_ แทน เหตุผลไม่ใช่เรื่องความสวยงาม แต่เป็นเรื่องที่บังคับให้ต้องทำแบบนี้ ชื่อที่แสดงในเกมเป็นภาษาไทยได้ และรูปแบบเป้าหมายที่สัญญาของ API กำหนดไว้ไม่รับอักขระนอก ASCII ถ้าส่งชื่อไทยไปตรง ๆ คำสั่งจะถูกปฏิเสธตั้งแต่ด่านแรกโดยที่ยังไม่ทันไปถึงเซิร์ฟเวอร์เกม การส่งรหัส steam_… จึงเป็นทางเดียวที่ทำให้ปุ่มเตะใช้ได้กับผู้เล่นไทยด้วย
รหัสตัวนี้แสดงอยู่ใต้ชื่อของแต่ละคน พร้อมปุ่มที่มีป้ายกำกับว่า "ก๊อปปี้ ID ผู้เล่น" กดแล้วจะมีข้อความ "ก๊อปปี้แล้ว" ยืนยัน อย่าสับสนกับคอลัมน์ "รหัสตัวละคร" ในมุมมองตาราง — นั่นเป็นเลขประจำตัวละครคนละชุด และใช้แทนกันไม่ได้ ค่าที่คำสั่งเตะ แบน และปลดแบนต้องการคือค่าที่ขึ้นต้นด้วย steam_ เท่านั้น
ข้อความที่ผู้ถูกเตะหรือถูกแบนเห็นเป็นข้อความภาษาอังกฤษตายตัวว่าถูกเตะหรือถูกแบนโดยผู้ดูแล ยังไม่มีช่องให้พิมพ์เหตุผลเอง ถ้าอยากอธิบายอะไรกับคนทั้งเซิร์ฟ ให้ใช้ปุ่มประกาศแทน
เมื่อคำสั่งสำเร็จจะมีข้อความ "ทำรายการแล้ว" และรายชื่อจะถูกดึงใหม่ทันที ระบบล้างแคช 10 วินาทีทิ้งให้ในจังหวะนั้นด้วย เพื่อไม่ให้คนที่เพิ่งโดนเตะยังค้างอยู่ในรายการจนดูเหมือนปุ่มไม่ทำงาน ถ้าล้มเหลวจะได้ "ทำรายการไม่สำเร็จ" พร้อมเหตุผลจากระบบ
ข้อจำกัดที่ต้องรู้ก่อนกดแบน
พูดกันตรง ๆ: การ์ด "โดนแบน" ของเซิร์ฟ Palworld จะว่างเสมอ ต่อให้คุณเพิ่งกดแบนใครไปเมื่อสิบวินาทีที่แล้วก็ตาม
เหตุผลอยู่ที่ตัวเกม ไม่ใช่ที่เว็บ REST API ของเซิร์ฟเวอร์ Palworld มีคำสั่งสำหรับ เขียน ครบ คือเตะ แบน ปลดแบน และมีคำสั่งอ่าน รายชื่อคนที่ออนไลน์อยู่ตอนนี้ แต่ไม่มีคำสั่งไหนเลยที่อ่านรายชื่อถาวรกลับมาได้ ไม่ว่าจะไวต์ลิสต์ รายชื่อแอดมิน หรือรายชื่อคนถูกแบน ระบบจึงส่งรายการว่างมาให้ตรง ๆ แทนที่จะเดา ส่วนการ์ดยังแสดงอยู่เพราะปุ่มแบนและปลดแบนในนั้นยังใช้งานได้จริง
แปลเป็นภาษาคนคือ คุณกดแบนแล้วคำสั่งไปถึงเซิร์ฟเวอร์เกมจริง แต่หน้าเว็บพิสูจน์ผลย้อนหลังให้ไม่ได้ วิธีอ่านผลที่ถูกต้องคือดูว่ามีข้อความแจ้งความล้มเหลวเด้งขึ้นมาไหม ถ้าไม่มีแปลว่าสำเร็จ การ์ดที่ว่างเปล่าไม่ใช่หลักฐานว่าล้มเหลว
ผลพวงที่แสบกว่าคือเรื่องปลดแบน ช่อง "ชื่อผู้เล่น แล้วกด Enter" ในการ์ดนั้นรับเป้าหมายได้สองแบบ ถ้าคุณพิมพ์ชื่อธรรมดาลงไป ระบบจะเอาไปเทียบกับรายชื่อคนที่ออนไลน์อยู่ก่อน — และคนที่ถูกแบนไปแล้วย่อมไม่มีวันอยู่ในรายชื่อนั้น ผลคือขึ้นว่าหาผู้เล่นไม่พบทุกครั้ง มีทางเดียวที่ได้ผลคือวางรหัสที่ขึ้นต้นด้วย steam_ ลงไป เพราะเป้าหมายรูปแบบนั้นจะถูกส่งตรงไปยังเซิร์ฟเวอร์เกมโดยไม่ต้องผ่านรายชื่อออนไลน์เลย
ดังนั้นนิสัยที่ควรติด: ก่อนกดแบนใคร ให้กดปุ่มก๊อปปี้ ID ผู้เล่นของคนนั้นแล้วเก็บไว้ก่อน เขายังออนไลน์อยู่ตอนนั้น คุณจึงยังเห็นรหัสของเขา พอกดแบนไปแล้วเขาหลุดออกจากรายชื่อ และ uniz.host ก็ไม่มีทางแสดงรหัสนั้นให้คุณอีก ถ้าไม่ได้เก็บไว้ การปลดแบนจะกลายเป็นเรื่องยากทันที
ประกาศ เซฟโลก และตอนที่ระบบของเกมติดต่อไม่ได้
แท็บ "คอนโซล" ของเซิร์ฟ Palworld ไม่มีช่องพิมพ์คำสั่งแบบ Minecraft เพราะไม่มี RCON ให้พิมพ์ใส่ สิ่งที่มีแทนคือสามอย่าง
ช่องแรกคือช่องข้อความที่มีคำใบ้ว่า "ส่งข้อความประกาศให้ทุกคนที่ออนไลน์" พิมพ์แล้วกดปุ่ม "ประกาศ" หรือกด Enter ก็ได้ ข้อความยาวได้ถึง 256 ตัวอักษร เมื่อส่งสำเร็จจะขึ้นว่า "ส่งข้อความแล้ว" นี่คือเครื่องมือที่ควรใช้ก่อนรีสตาร์ททุกครั้ง
อย่างที่สองคือปุ่ม "เซฟโลกตอนนี้" ที่สั่งให้เกมบันทึกโลกทันทีโดยไม่ต้องรอรอบเซฟอัตโนมัติ สำเร็จแล้วจะขึ้นว่า "เซฟโลกแล้ว" ควรกดก่อนรีสตาร์ทหรือก่อนทำอะไรที่เสี่ยง
อย่างที่สามคือแถบสถิติเล็ก ๆ ข้าง ๆ ปุ่ม แสดง "FPS เซิร์ฟเวอร์" จำนวน "ผู้เล่น" เทียบกับเพดาน และ "เวลาออนไลน์" แถบนี้ดึงค่าเองทุก 10 วินาที และจะหยุดดึงเมื่อคุณสลับไปแท็บเบราว์เซอร์อื่น
สิ่งที่ควรรู้คือสามอย่างนี้ปฏิบัติต่อความล้มเหลวไม่เหมือนกัน โดยตั้งใจ ประกาศกับเซฟโลกเป็นคำสั่งที่คุณกดเอง ถ้าติดต่อระบบของเกมไม่ได้มันจะฟ้องออกมาเป็น "ส่งข้อความไม่สำเร็จ" หรือ "เซฟโลกไม่สำเร็จ" เพราะการเงียบไว้เท่ากับหลอกให้คุณเชื่อว่าข้อความส่งไปแล้ว ส่วนแถบสถิติจะไม่ฟ้องอะไรเลย มันแค่แสดงเป็นขีด เหตุผลคือมันดึงค่าเองทุกสิบวินาทีในขณะที่เซิร์ฟอาจกำลังบูตอยู่ ซึ่งเป็นสภาวะปกติ ไม่ใช่ความผิดพลาด แถบขีดจึงแปลว่า "ยังไม่มีค่า" ไม่ได้แปลว่า "เซิร์ฟพัง"
ส่วนของ Palworld ทั้งชุดนี้ยังแสดงเฉพาะบนหน้าเซิร์ฟเวอร์ปกติของเจ้าของและทีม ยังไม่แสดงบนหน้าฝั่งผู้ดูแลระบบ
สิทธิ์ไหนปลดล็อกอะไร
ถ้าคุณแชร์เซิร์ฟให้เพื่อนช่วยดูแล ตารางนี้คือสิ่งที่แต่ละสิทธิ์เปิดให้ทำได้ เจ้าของเซิร์ฟผ่านทุกด่านโดยไม่ต้องมีสิทธิ์ใด ๆ
| อยากทำอะไร | ต้องมีสิทธิ์ |
|---|
| ตั้งหรือเปลี่ยนรหัสแอดมิน | ตั้งค่า |
| ดูรายชื่อคนออนไลน์ | ผู้เล่น หรือ คอนโซล |
| เตะ แบน ปลดแบน | ผู้เล่น หรือ คอนโซล |
| ประกาศ เซฟโลก ดูแถบสถิติ | คอนโซล เท่านั้น |
จุดที่มักงงคือสองแถวกลาง สิทธิ์ "ผู้เล่น" อย่างเดียวก็เตะและแบนได้ครบ ไม่ต้องให้สิทธิ์ "คอนโซล" ซึ่งกว้างกว่ามาก ถ้าเพื่อนคนนั้นมีหน้าที่แค่คุมความสงบเรียบร้อย ให้สิทธิ์ "ผู้เล่น" ก็พอ แต่ถ้าอยากให้เขาประกาศหรือสั่งเซฟโลกได้ด้วย ต้องขยับไปเป็น "คอนโซล" และการตั้งรหัสแอดมินอยู่คนละกลุ่มไปเลย มันคือสิทธิ์ "ตั้งค่า" ชุดเดียวกับที่ใช้แก้ค่าอื่น ๆ ของเกม
อ่านต่อ
- — ตั้งแต่ทำเองที่บ้านจนถึงเปิดบน uniz.host
- — อ่านการ์ด แท็บ และกราฟในหน้าเซิร์ฟเวอร์ให้ออก
- — ทำไม Palworld ถึงกินแรมหนักกว่าที่คิด