Project Zomboid

Project Zomboid

51 ratings
วิธีเปิดเซิร์ฟเวอร์เฉพาะ (Dedicated Server)
By Riko Prushka
วิธีการเปิดเซิร์ฟเวอร์เฉพาะสำหรับเกมโปรเจกต์ซอมบอยด์ - Project Zomboid Dedicated Server บนเครื่องของตนเอง
- ประสิทธิภาพดีกว่าการเปิดเซิร์ฟเวอร์ผ่านเมนูในตัวเกมโดยตรงมาก
- ไม่ต้องเข้าเกมก็เปิดเซิร์ฟเวอร์ให้เพื่อนเข้ามาเล่นได้
- ไม่ต้องคอยกดเชิญเพื่อนเข้าร่วมเล่นเกม
- หลังจากการตั้งค่าครั้งแรกแล้ว ครั้งต่อไปจะใช้เวลาเปิดเซิร์ฟเวอร์เพียงแค่ 1 นาทีเท่านั้น
- ฟรี ไม่มีค่าใช้จ่ายเพิ่มเติม
   
Award
Favorite
Favorited
Unfavorite
การเปิดเซิร์ฟเวอร์เกมโปรเจกต์ซอมบอยด์
ข้อดีของการโฮสต์เซิร์ฟเวอร์จากในเกมโดยตรง
- ใช้งานง่าย

ข้อเสียของการโฮสต์เซิร์ฟเวอร์จากในเกมโดยตรง
- ไม่ค่อยสเถียร การเชื่อมต่อกับผู้เล่นอื่นอาจจะหลุดบ่อย มีอาการเหมือนเทเลพอร์ตได้
- ต้องคอยเชิญเพื่อนเข้าร่วมเซิร์ฟเวอร์ทุกครั้งที่เริ่มเล่น หรือเพื่อนหลุดออกจากเกม
- หากผู้เล่นที่เป็นคนโฮสต์กดแท็บ เซิร์ฟเวอร์อาจจะค้าง
- หากคนโฮสต์ปิดเกม หรือเกมค้าง ผู้เล่นอื่นก็จะหลุดออกจากเซิร์ฟเวอร์ทันที

ข้อดีของการเปิดเซิร์ฟเวอร์ผ่านเซิร์ฟเวอร์เฉพาะ (Dedicated Server)
- มีความเสถียรกว่าอย่างเห็นได้ชัด
- ผู้ที่โฮสต์เซิร์ฟเวอร์ไม่จำเป็นต้องเข้าเกม สามารถเปิด cmd รันตัวเซิร์ฟเวอร์ไว้แล้วปิดเกมไปทำอย่างอื่นได้
- ไม่หนักเครื่อง สามารถเปิดทิ้งไว้ได้ 24/7

ข้อเสียของการเปิดเซิร์ฟเวอร์ผ่านเซิร์ฟเวอร์เฉพาะ (Dedicated Server)
- การตั้งค่าครั้งแรกค่อนข้างซับซ้อน
ตั้งค่าเซิร์ฟเวอร์
หากต้องการใช้ข้อมูลเซิร์ฟเวอร์เดิม สามารถข้ามส่วนนี้ได้

การตั้งค่าเซิร์ฟเวอร์สามารถทำได้หลายวิธี

1. ตั้งค่าผ่านตัวเกมโดยตรง
แนะนำให้ใช้วิธีการนี้

เข้าเมนู สร้างเซิร์ฟเวอร์ > ตั้งค่า...



เลือก ตั้งค่าใหม่
ตั้งชื่อเซิร์ฟเวอร์ใหม่ > ต่อไป

จากนั้นจะพบกับหน้าต่างการตั้งค่า
ให้เปลี่ยนชื่อเซิร์ฟเวอร์และคำอธิบาย


กำหนดค่าเซิร์ฟเวอร์ตามที่ต้องการ



MaxPlayers = จำนวนผู้เล่นสูงสุดที่สามารถอยู่บนเซิร์ฟเวอร์ได้ในครั้งเดียว ไม่รวมผู้ดูแลระบบ
SpawnItems = ไอเท็มที่ผู้เล่นใหม่จะได้รับติดตัวเมื่อเกิดใหม่ แยกไอเท็มด้วยเครื่องหมายจุลภาค
ตัวอย่าง: Base.Axe,Base.Bag_BigHikingBag ข้อมูลไอเท็ม[pzwiki.net]
SleepAllowed = เมื่อตัวละครผู้รอดชีวิตรู้สึกเหนื่อย ผู้เล่นสามารถเลือกนอนหลับได้ แต่ไม่จำเป็นต้องนอน
TrashDeleteAll = ผู้เล่นสามารถใช้ปุ่ม "ลบทั้งหมด" บนถังขยะได้
PVPMeleeWhileHitReaction = ผู้เล่นจะสามารถโจมตีอีกครั้งได้เมื่อถูกผู้เล่นอื่นโจมตี
PlayerBumpPlayer = ผู้เล่นสามารถกระแทก (และล้มทับ) ผู้เล่นคนอื่นเมื่อวิ่งชน
MapRemotePlayerVisibility = กำหนดการแสดงผู้เล่นระยะไกลบนแผนที่ในเกม 1=ไม่แสดง 2=เพื่อนเท่านั้น 3=ทุกคน



PlayerSafehouse = ผู้ดูแลระบบและผู้เล่นสามารถอ้างสิทธิ์เซฟเฮาส์ได้
AllowRespawn = ผู้เล่นจะเกิดใหม่ในเซฟเฮาส์ที่เคยเป็นสมาชิกก่อนตาย
SafehouseAllowNonResidential = ผู้เล่นสามารถอ้างสิทธิ์อาคารที่ไม่ใช่ที่พักอาศัยได้



AnnounceDeath = แสดงข้อความในแชททุกครั้งที่มีผู้เล่นเสียชีวิต
ServerWelcomeMessage = ข้อความต้อนรับส่วนแรกที่จะปรากฏในหน้าต่างแช็ต โดยจะแสดงข้อความทันทีเมื่อผู้เล่นเข้าสู่ระบบ คุณสามารถใช้สี RGB เพื่อกำหนดสีของข้อความต้อนรับ และคุณสามารถใช้ <LINE> เพื่อสร้างบรรทัดคั่นระหว่างข้อความ เมื่อใช้: <RGB:1,0,0> ข้อความนี้จะแสดงเป็นสีแดง!



AllowMiniMap = อนุญาตให้ใช้แผนที่ขนาดเล็ก

2. ตั้งค่าผ่านไฟล์ .ini
ตำแหน่งที่ตั้งไฟล์
C:\Users\%username%\Zomboid\Server

เปิดไฟล์เซิร์ฟเวอร์ที่ต้องการแก้ไขการตั้งค่า เช่น pzth.ini
จัดการม็อดที่จะใช้ในเซิร์ฟเวอร์
กดสมัครสมาชิก Mod Manger และ Mod Manager Server เพื่อดาวน์โหลดตัวจัดการม็อด

เข้าเมนูม็อดเพื่อเปิดใช้งานม็อดทั้งสอง จากนั้นกดปุ่ม ย้อนกลับ



รอให้เกมรีโหลด Lua จนเสร็จสิ้นสักครู่ จากนั้นเข้าเมนูม็อดอีกครั้ง
กดปุ่ม เซิร์ฟเวอร์



เลือกเซิร์ฟเวอร์ที่ต้องการจัดการม็อด



เลือกม็อดที่ต้องการโดยการกดปุ่มเพิ่ม จากนั้นกดปุ่ม บันทึก



หมายเลขที่แสดง = Workshop ID
ชื่อม็อดที่แสดงด้านขวา = Mod ID

โดย 1 Workshop อาจจะมีหลาย Mod ID
สามารถลบม็อดที่ไม่ต้องการออกได้

รายการม็อดที่ผู้เขียนแนะนำ

ม็อดสามัญประจำบ้าน

ม็อดที่รองรับภาษาไทย
เปิดพอร์ต
พอร์ตที่จำเป็นต้องใช้งาน

เปิดพอร์ตดังต่อไปนี้เพื่อให้ Dedicated Server สามารถเชื่อมต่อกับไคลเอนต์ได้

พอร์ตที่จำเป็นต้องใช้
UDP 16261
UDP 16262

หากยังไม่สามารถเชื่อมต่อได้ ให้เปิดพอร์ต TCP ด้วย
TCP 16262 - 16272(ช่วงพอร์ต)

ช่วงพอร์ตตัวหลังคือ [16262 + จำนวนผู้เล่น]
จากตัวอย่าง 16262 + 10 = 16272 จะรองรับผู้เล่นได้ 10 คน

พอร์ตสำหรับเกมเวอร์ชันเก่า
UDP 8766
UDP 8767

วิธีการเปิดพอร์ต Firewall บน Windows

กดปุ่ม Start > พิมพ์ข้อความค้นหา firewall > เลือก Windows Defender Firewall with Advanced Security



คลิกขวาที่ Inbound Rules แล้วเลือก New Rule...



Rule Type เลือก Port > กด Next



เลือกรูปแบบพอร์ตเป็น UDP แล้วระบุหมายเลขพอร์ต 16261, 16262 > กด Next



เลือก Allow the connection > กด Next > เลือกทั้ง Domain, Private, Public > กด Next



ตั้งชื่อการตั้งค่าจากนั้นกด Finish เพื่อเสร็จสิ้น

Port Forwarding:
การเปิดพอร์ตบนเราเตอร์นั้นแตกต่างกันออกไปตามรุ่นของเราเตอร์
โปรดอ่านคู่มือของเราเตอร์เพื่อศึกษาวิธีการเปิดพอร์ตสำหรับเราเตอร์รุ่นนั้น
บางรุ่นอาจต้องเปิดใช้งาน UPnP ด้วย
ดาวน์โหลดเซิร์ฟเวอร์เฉพาะ


คลิกที่ลิงก์นี้เพื่อเข้าสู่หน้าเว็บไซต์ Dedicated Server สำหรับเกมโปรเจกต์ซอมบอยด์[steamdb.info]

Steam จะสอบถามเพื่อยืนยันความปลอดภัย ให้คลิกที่ ดำเนินการต่อไปยังเว็บไซต์ภายนอก



เมื่อเข้าสู่เว็บไซต์ SteamDB แล้ว ให้กดที่ปุ่ม Install



เบราว์เซอร์จะแสดงหน้าต่างป็อบอัปขึ้นมา ให้กด เปิด Steam



Steam จะแสดงหน้าต่างสำหรับติดตั้งขึ้นมา ให้เลือกตำแหน่งในไดรฟ์ที่ต้องการติดตั้ง
โดยต้องใช้พื้นที่ว่างบนดิสก์ประมาณ 5 GB



ข้อควรระวัง: ห้ามกดเปิดผ่าน Steam เด็ดขาด



แต่ถ้าเผลอกดไปแล้วให้ตรวจสอบความสมบูรณ์ของไฟล์เกมเพื่อซ่อมแซมไฟล์
ตรวจสอบไฟล์เซิร์ฟเวอร์เฉพาะ
เมื่อติดตั้งไฟล์ Dedicated Server ลงบนเครื่องแล้ว
ให้ไปที่คลัง Steam ของคุณ
จากนั้นคลิกขวาเพื่อเปิดเมนูบริบทแล้วเลือก
คุณสมบัติ... > ไฟล์ภายในเครื่อง > เปิดหา...



คุณจะพบไฟล์ Dedicated Server ที่อยู่ในเครื่องของคุณ
ตั้งค่าตัวรันเซิร์ฟเวอร์ StartServer64.bat
มองหาไฟล์ StartServer64.bat ในโฟลเดอร์

steamapps\common\Project Zomboid Dedicated Server

จากนั้นคลิกขวาเพื่อเปิดด้วยโปรแกรม Notepad
หรือเปิดโปรแกรม Notepad ขึ้นมาแล้วลากไฟล์ StartServer64.bat ไปใส่เพื่อเปิดไฟล์ก็ได้

1. ลบข้อความ -Xms16g
2. แก้ไขตัวเลข -Xmx16g ให้เป็นจำนวน RAM สำหรับเซิร์ฟเวอร์
ควรกำหนดเป็นเลขฐานสอง เช่น 2 / 4 / 8 / 16 / 32

จำนวน RAM ที่แนะนำ
2 Gb + 500 Mb ต่อผู้เล่น 1 คน
เช่น เปิดเซิร์ฟเวอร์สำหรับผู้เล่น 3 คน จะต้องกำหนดค่า RAM ขั้นต่ำ
2 Gb + (500*3 Mb)
= 2000 Mb + 1500 Mb = 3500 Mb = 3.5 Gb
ให้ปัดเศษขึ้น = 4 Gb
ดังนั้น หากมีผูเล่น 3 คน ควรตั้งค่าเป็น -Xmx4g
โดยอาจปรับเพิ่มให้เหมาะสมกับการตั้งค่าของเซิร์ฟเวอร์

3. เพิ่มข้อความ -servername ชื่อเซิร์ฟเวอร์
เช่น -servername pzth

โค้ดดั้งเดิม


@setlocal enableextensions @cd /d "%~dp0" SET PZ_CLASSPATH=java/istack-commons-runtime.jar;java/jassimp.jar;java/javacord-2.0.17-shaded.jar;java/javax.activation-api.jar;java/jaxb-api.jar;java/jaxb-runtime.jar;java/lwjgl.jar;java/lwjgl-natives-windows.jar;java/lwjgl-glfw.jar;java/lwjgl-glfw-natives-windows.jar;java/lwjgl-jemalloc.jar;java/lwjgl-jemalloc-natives-windows.jar;java/lwjgl-opengl.jar;java/lwjgl-opengl-natives-windows.jar;java/lwjgl_util.jar;java/sqlite-jdbc-3.27.2.1.jar;java/trove-3.0.3.jar;java/uncommons-maths-1.2.3.jar;java/commons-compress-1.18.jar;java/ ".\jre64\bin\java.exe" -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1 -XX:+UseZGC -XX:-CreateCoredumpOnCrash -XX:-OmitStackTraceInFastThrow -Xms16g -Xmx16g -Djava.library.path=natives/;natives/win64/;. -cp %PZ_CLASSPATH% zombie.network.GameServer -statistic 0 %1 %2 PAUSE

โค้ดหลังการแก้ไข


@setlocal enableextensions @cd /d "%~dp0" SET PZ_CLASSPATH=java/istack-commons-runtime.jar;java/jassimp.jar;java/javacord-2.0.17-shaded.jar;java/javax.activation-api.jar;java/jaxb-api.jar;java/jaxb-runtime.jar;java/lwjgl.jar;java/lwjgl-natives-windows.jar;java/lwjgl-glfw.jar;java/lwjgl-glfw-natives-windows.jar;java/lwjgl-jemalloc.jar;java/lwjgl-jemalloc-natives-windows.jar;java/lwjgl-opengl.jar;java/lwjgl-opengl-natives-windows.jar;java/lwjgl_util.jar;java/sqlite-jdbc-3.27.2.1.jar;java/trove-3.0.3.jar;java/uncommons-maths-1.2.3.jar;java/commons-compress-1.18.jar;java/ ".\jre64\bin\java.exe" -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1 -XX:+UseZGC -XX:-CreateCoredumpOnCrash -XX:-OmitStackTraceInFastThrow -Xmx8g -Djava.library.path=natives/;natives/win64/;. -cp %PZ_CLASSPATH% zombie.network.GameServer -statistic 0 %1 %2 -servername pzth PAUSE

กด Ctrl + S เพื่อบันทึกการตั้งค่า

เคล็ดลับ
สามารถคลิกขวาที่ StartServer64.bat > Send to > Desktop เพื่อสร้างทางลัดสำหรับการเปิดเซิร์ฟเวอร์ในครั้งต่อไป
เปิดเซิร์ฟเวอร์
ดับเบิลคลิกที่ StartServer64.bat เพื่อเริ่มเปิดเซิร์ฟเวอร์

ครั้งแรกที่เริ่มเปิดเซิร์ฟเวอร์
ระบบจะให้เราตั้งรหัสผ่านสำหรับบัญชี admin
ให้กรอกรหัสผ่านที่ต้องการแล้วกด Enter



จากนั้นระบบจะให้เรากรอกรหัสผ่านอีกครั้งเพื่อเป็นการยืนยัน



กด Enter เพื่อยืนยันรหัสผ่าน
สำคัญมาก: ห้ามทำรหัสผ่านหาย

เมื่อ cmd แสดงข้อความ

*** SERVER STARTED ****
*** Steam is enabled



ก็หมายความว่าเปิดเซิร์ฟเวอร์สำเร็จแล้ว
เข้าร่วมเกมในเซิร์ฟเวอร์
คลิกขวาที่แถบชื่อของ cmd แล้วเลือกเมนู Find



พิมพ์ข้อความค้นหา external IP แล้วกด Enter



นำ IP ที่พบไปกรอกในเกมเพื่อเข้าเล่นในเซิร์ฟเวอร์



โดยต่อจากนี้ให้ผู้เล่นทุกคนรวมทั้ง Admin เข้าร่วมเล่นเกมโดยเลือกเมนู เล่นหลายคน



นำ IP ที่ได้มากรอกในช่องไอพี
พอร์ตของทุกเซิร์ฟเวอร์โดยปกติแล้วจะเป็น 16261

กำหนดชื่อผู้ใช้และรหัสผ่านเอง จากนั้นกดบันทึก
ข้อมูลที่บันทึกไว้จะปรากฏขึ้นมา
หากมีข้อความ เซิร์ฟเวอร์ไม่ตอบสนอง ให้กดปุ่ม ค้นหาใหม่



เมื่อเซิร์ฟเวอร์แสดงข้อความลักษณะดังนี้ก็สามารถกดเข้าร่วมเซิร์ฟเวอร์ได้



หากมีข้อผิดพลาดในการเข้าร่วมเซิร์ฟเวอร์
- ปิดการใช้งาน -debug
- ลองเปิดเซิร์ฟเวอร์แบบไร้ม็อด
- ตรวจสอบ IPv4 address ว่าตรงกันกับที่ตั้งค่า Port Forwarding บนเราเตอร์ไว้หรือไม่

ขอให้สนุก
อัปเดต 4 กรกฎาคม 2023

7 Comments
Snan Mar 19, 2024 @ 2:24am 
ทำตามแล้วแต่เพื่อนเข้าไม่ได้ครับ มันบอกเซิฟล้มเหลว แก้ยังไงครับ
Elysia Jan 15, 2024 @ 5:54am 
ลองแก้ตามที่บอกแล้ว แต่เซิฟเวอร์ยังล้มเหลวเหมือนเดิมเลยครับ
ถ้าว่าง ติดต่อ Discord :elysia1098 Steam : 878878995 หน่อยนะครับ
Riko Prushka  [author] Apr 2, 2023 @ 3:57am 
ลองตรวจสอบดูว่าเราเตอร์รองรับ NAT หรือเปล่าโดยสอบถามผู้ให้บริการอินเทอร์เน็ต หรือหาเราเตอร์อื่นมาใช้แทน โดยตอนนี้ยังไม่รองรับ IPv6 ครับ
P101_. Apr 1, 2023 @ 10:17pm 
ติดปัญหาที่ external IP ลองหาก็ไม่เจอครับ เช็ค port forwarding ใน firewall ก็ไม่มี พอจะมีวิธีแก้ไหมครับ
Kinu Mar 18, 2023 @ 9:47am 
ผมก็ลองทำทุกขั้นตอนแล้วนะครับ แต่ขั้นตอนที่ พิมพ์ข้อความค้นหา external IP แล้วกด Enter
ผมทำแล้วมันไม่มีใน cmd ครับก็เลยงงว่า ของเรามันเลขอะไร ไปค้นดูใน What Is my Ip ก็เอามากรอกแล้วแต่ก็ยังไม่ปรากฏ ในเซิร์ฟ ขึ้นว่าล้มเหลว ถ้าเป็นไปได้ รบกวนมาดิส สตรีมผมจะLive ในดิสได้ให้ดูได้ไหมครับ
มีค่า น้ำชา เล็กน้อยให้ครับ
Discord : (ตๅนุ)Kinu#9390 หรือ สตรีม 141945856 รบกวนด้วยครับ :steamthumbsup:
Riko Prushka  [author] Mar 7, 2023 @ 10:03am 
ยินดีครับ ขอให้สนุกนะครับ :spiffo:
草泥马 Mar 7, 2023 @ 5:22am 
หาวิธีทำมานานละขอบคุณมากๆเลย:steamhappy::steamhappy::steamthumbsup: