SSD Nodes Learn Hosting plans →
تعلیمی Matt Connorتحریر: Matt Connor

VPS پر FiveM سرور کیسے چلائیں؟

Ubuntu پر FXServer نصب کریں، artifact build pin کریں، Cfx.re licence key شامل کریں، TCP اور UDP پر 30120 کھولیں، اور txAdmin کو عوامی internet سے دور رکھیں۔

VPS پر FiveM سرور کے لیے درکار چیزیں

VPS پر FiveM سرور کے لیے ایک غیر مراعات یافتہ Linux صارف، Cfx.re سے حاصل کردہ ایک artifact build، ایک licence key، اور TCP اور UDP دونوں پر کھلا ہوا ایک port درکار ہوتا ہے۔ تنصیب میں تقریباً دس منٹ لگتے ہیں۔ اس گائیڈ کے باقی حصے ان عوامل کا احاطہ کرتے ہیں جو یہ طے کرتے ہیں کہ سرور کھیلنے کے قابل ہوگا یا نہیں: ایک CPU core کی رفتار، آپ کے resources کے لیے درکار memory، اور ایسا management panel جو عوامی address پر کبھی کھلا نہیں ہونا چاہیے۔

تین prerequisites مقرر ہیں۔ سرور binaries، جنہیں artifacts کہا جاتا ہے، سرکاری Cfx.re build listing سے حاصل ہوتی ہیں۔ Licence key Cfx.re portal portal.cfx.re سے حاصل ہوتی ہے۔ پرانے guides میں اسی service کو keymaster کہا جاتا ہے۔ یہ key اس machine کے address سے منسلک ہوتی ہے جو اسے استعمال کرتی ہے۔ ہر connect ہونے والے player کے پاس Steam، Rockstar Games Launcher یا Epic Games پر GTA V (Grand Theft Auto V) کی اپنی جائز copy، اور ایک مفت Cfx.re account ہونا ضروری ہے۔ Client شروع ہوتے وقت game ownership کی جانچ کرتا ہے۔ اس لیے کسی اور ذریعے سے بنائے گئے server کام نہیں کرتے، اور یہاں کسی بھی قسم کے workaround content کا احاطہ نہیں کیا گیا ہے۔

سرور host کرنا اور اسی box پر game کھیلنا دو الگ کام ہیں۔ یہ سوال الگ ہے کہ کیا آپ خود game کو VPS پر چلا سکتے ہیں، اور اس کا جواب بھی مختلف ہے۔

FiveM سرور کی کارکردگی میں single core speed کیوں فیصلہ کن ہوتی ہے

FXServer، جو FiveM server binary ہے، game logic کو ایک main thread پر چلاتا ہے۔ ہر resource script، ہر event handler اور ہر state update اسی single loop سے گزرتا ہے۔ اضافی cores kernel، database اور network stack کی مدد کرتے ہیں۔ وہ game loop کو تقسیم نہیں کرتے۔ اسی لیے slow core والا 4 vCPU server load کے دوران stutter کرتا ہے، جبکہ fast core والا 2 vCPU server ہموار رہتا ہے۔

اس سے VPS خریدنے کی عام عادت بدل جاتی ہے، جس میں core count نمایاں نمبر ہوتا ہے۔ رقم خرچ کرنے سے پہلے فی core speed دیکھیں۔ CPU model سے شروع کریں:

lscpu | grep -E 'Model name|MHz'

پھر اس model کا شائع شدہ single thread score تلاش کریں۔ PassMark single thread rating اور Geekbench single-core score دونوں public ہیں، اور دونوں ایک core کے کام کرنے کی پیمائش کرتے ہیں۔ یہاں یہی نمبر اہم ہے۔ اس کے بعد اس server کی پیمائش کریں جو آپ کو حقیقت میں ملا ہے:

sudo apt update && sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

events per second line پڑھیں۔ دو candidate providers پر یہی command چلائیں اور ان کا منصفانہ موازنہ کریں، کیونکہ workload یکساں ہے اور صرف ایک core تک محدود ہے۔ قابل تکرار VPS benchmark run میں بتایا گیا ہے کہ مختلف servers پر ان نمبروں کو قابل موازنہ کیسے رکھا جائے۔

پھر تصدیق کریں کہ core واقعی آپ کے لیے مختص ہے:

vmstat 1 5

آخری column، st، steal time ہے: اس وقت کا حصہ جب آپ کا virtual CPU چلنے کے لیے ready تھا لیکن hypervisor نے اسے انتظار کروایا۔ مسلسل 1 یا 2 سے زیادہ figure کا مطلب ہے کہ آپ physical core کو مصروف پڑوسی صارفین کے ساتھ share کر رہے ہیں۔ game loop اسے فوراً rubber banding کی صورت میں محسوس کرتا ہے۔ مصروف پڑوسی سے steal time میں بتایا گیا ہے کہ اس column کو کیسے پڑھیں اور اس صورت میں کیا کریں۔

Memory کا استعمال صرف slots کی تعداد سے نہیں بلکہ چلائے جانے والے resources سے بڑھتا ہے۔ Cfx.re کا base server data چند سو megabytes میں چلتا ہے۔ چالیس یا پچاس resources اور اسی server پر MariaDB database والا roleplay framework ایک مختلف machine ہے: 4 GB مناسب کم از کم حد ہے، جبکہ 32 سے 64 slots کے لیے 8 GB اطمینان بخش ہے۔ یہ community setups کی شائع کردہ عام figures ہیں، اس لیے انہیں ابتدائی نقطۂ آغاز سمجھیں اور حقیقی player load کے دوران free -m کو monitor کریں۔

صارف بنائیں اور dependencies انسٹال کریں

سرور کو عام صارف کے طور پر چلائیں، root کے طور پر کبھی نہ چلائیں۔ اس کی دو وجوہات ہیں۔ internet-facing service کے لیے root استعمال کرنا ایک خراب طریقہ ہے۔ دوسرا یہ کہ Linux artifact، bundled Alpine Linux root filesystem کے اندر چلتا ہے۔ اس لیے root کے ذریعے unpack کی گئی files کوئی دوسرا صارف execute نہیں کر سکتا۔ یہی وہ عام وجہ ہے جس کی بنا پر نئی installation start نہیں ہوتی۔

sudo adduser --disabled-password --gecos "" fivem
sudo apt update
sudo apt install -y git xz-utils curl tcpdump
sudo -iu fivem

ذیل کا تمام کام fivem صارف کے طور پر چلایا جاتا ہے۔ xz-utils ضروری ہے کیونکہ download ایک .tar.xz archive ہے، جبکہ git کو base server data clone کرنے کے لیے استعمال کیا جاتا ہے۔

مخصوص artifact build ڈاؤن لوڈ کریں

Linux build، Cfx.re artifact server کے build_proot_linux channel میں موجود ہے۔ فہرست میں ایک build کو تازہ ترین تجویز کردہ build کے طور پر نشان زد کیا جاتا ہے، اور یہ label ہر چند ہفتوں بعد نئے build پر منتقل ہو جاتا ہے۔ اس کے بجائے نمبر والی folder کو pin کریں۔ اگلے ماہ server دوبارہ build کرنے پر آپ کو وہی binary ملے گی جسے آپ نے اس ماہ test کیا تھا، اور upgrade ایک باقاعدہ فیصلہ ہوگا۔

mkdir -p ~/FXServer/server
cd ~/FXServer/server
curl -fLO https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/25770-8ddccd4e4dfd6a760ce18651656463f961cc4761/fx.tar.xz
tar xf fx.tar.xz
ls

اگست 2026 میں جب میں نے فہرست دیکھی تو Build 25770 پر تجویز کردہ label موجود تھا۔ اسی directory کو browser میں کھول کر موجودہ build دیکھیں، پھر اس folder کا نام URL میں شامل کریں۔ یہ نام build number اور commit hash پر مشتمل ہے۔

ls میں اب run.sh اور ایک alpine directory دکھائی دینی چاہیے۔ یہی directory بنیادی نکتہ ہے: Linux artifact اپنی چھوٹی Alpine root filesystem شامل رکھتا ہے اور proot کے ذریعے server کو اسی کے اندر شروع کرتا ہے۔ proot ایک userspace tool ہے جو root privileges کے بغیر chroot کی نقل کرتا ہے۔ اسی وجہ سے ایک ہی download Ubuntu، Debian اور Rocky پر distribution-specific packages کے بغیر چلتا ہے۔

اب base server data clone کریں۔ اس میں وہ default resources موجود ہیں جنہیں آپ کا server.cfg شروع کرتا ہے:

git clone https://github.com/citizenfx/cfx-server-data.git ~/FXServer/server-data

لائسنس key حاصل کریں اور server.cfg لکھیں

portal.cfx.re میں اپنے Cfx.re account سے sign in کریں اور server key بنائیں۔ portal اس machine کا IP address مانگتا ہے جو اسے استعمال کرے گی، اور key اسی address کے ساتھ bind ہوتی ہے۔ نئی VPS پر منتقل ہونے کی صورت میں دوسری key بنانے کے بجائے portal میں موجود key edit کریں۔ یہ edit فوراً لاگو ہو جاتی ہے، لیکن FXServer دوبارہ شروع ہونے پر ہی key کی دوبارہ تصدیق کرتا ہے۔

~/FXServer/server-data/server.cfg لکھیں:

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap

sv_hostname "My FiveM server"
sv_maxclients 48
set onesync on
sv_scriptHookAllowed false

sv_licenseKey ChangeMe

add_ace group.admin command allow
add_principal identifier.fivem:1 group.admin

sv_maxclients کی قدر 1 سے 2048 تک ہو سکتی ہے۔ 32 یا اس سے زیادہ قدر کے لیے onesync کو on یا legacy پر set کرنا ضروری ہے، جبکہ 64 سے زیادہ قدر کے لیے on درکار ہے۔ OneSync server کا state awareness mode ہے۔ اسی کی مدد سے server base game کی کم slot count سے آگے جا سکتا ہے۔ OneSync بند ہونے کی صورت میں 128 slots set کرنے سے 128 slots دستیاب نہیں ہوتے، بلکہ ایسی configuration بنتی ہے جسے server reject کر دیتا ہے۔

sv_licenseKey میں key بغیر quotes اور آخری space کے بغیر درج کریں۔ FXServer اس line کو whitespace پر split کرتا ہے۔ اس لیے ایک اضافی character بھی validation ناکام کر دیتا ہے اور server start نہیں ہوتا۔

rcon_password اس file میں جان بوجھ کر شامل نہیں ہے۔ RCON (remote console) صرف اس وقت فعال ہوتا ہے جب یہ variable set ہو، اور پھر یہ game کے اسی UDP port پر listen کرتا ہے۔ Public port پر RCON password آپ کے server تک remote command channel فراہم کرتا ہے۔ اسے مخصوص ضرورت کے بغیر unset رکھیں۔ اگر استعمال کریں تو password طویل اور random رکھیں۔

sv_scriptHookAllowed، false ہی رہتا ہے۔ سرکاری documentation اسے not recommended قرار دیتی ہے، کیونکہ Script Hook V clients کو اجازت دینے سے server client-side abuse کے لیے کھل جاتا ہے۔

add_principal identifier.fivem:1، Cfx.re account ID 1 کو admin rights دیتا ہے۔ 1 کو اپنی numeric ID سے replace کریں۔ بصورت دیگر آپ کسی دوسرے شخص کے account کو admin rights دے دیں گے اور اپنے account کو نہیں۔

اسے ایک بار ہاتھ سے start کریں:

cd ~/FXServer/server-data
bash ~/FXServer/server/run.sh +exec server.cfg

دوسرے SSH session سے server کے بارے میں معلومات حاصل کریں:

curl -s http://127.0.0.1:30120/info.json | head -c 200

آپ کے server variables اور resources کے ناموں والا JSON اس بات کی تصدیق کرتا ہے کہ FXServer bind ہو چکا ہے اور جواب دے رہا ہے۔ Connection refused کا مطلب ہے کہ server نے port bind نہیں کیا۔ اس لیے اندازہ لگانے کے بجائے console output پڑھیں۔

جس server میں key نہ ہو، وہ یہ output دے کر رک جاتا ہے:

This server does not have a license key specified. Please set the sv_licenseKey console variable to a key from https://keymaster.fivem.net/.

پیغام میں اب بھی پرانا keymaster address درج ہے۔ یہ address اسی Cfx.re portal تک لے جاتا ہے۔ اگر key set ہو اور server پھر بھی run نہ کرے تو عام وجہ یہ ہوتی ہے کہ key کے ساتھ registered IP address اب اس machine کے IP address سے match نہیں کرتا۔

FiveM server کے لیے کون سے ports کھولنے کی ضرورت ہے؟

30120 port کو TCP (transmission control protocol) اور UDP (user datagram protocol) دونوں پر کھولیں۔ FiveM ایک ہی port number کو دونوں protocols کے لیے استعمال کرتا ہے، اس لیے دونوں ضروری ہیں۔ صرف TCP کھولنے سے صورتِ حال مبہم ہو جاتی ہے: http://your.ip:30120/info.json browser میں جواب دیتا ہے، اس لیے server درست معلوم ہوتا ہے، لیکن game client Failed to get info from server پر رکا رہتا ہے اور کبھی شامل نہیں ہوتا، کیونکہ client کی اپنی query اور game traffic UDP کے ذریعے چلتی ہے۔

sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enable
sudo ufw status verbose

Firewall فعال کرتے وقت دوسری SSH session کھلی رکھیں۔ VPS کے لیے ufw کی بنیادی باتیں اس default deny policy کی وضاحت کرتی ہے جس کی وجہ سے اوپر کے rules اپنے طور پر کافی ہوتے ہیں۔

زیادہ تر providers guest کے باہر بھی network firewall چلاتے ہیں۔ اسے shell کے بجائے panel سے control کیا جاتا ہے۔ ufw کا کوئی rule اس بیرونی layer کے بارے میں کچھ ثابت نہیں کرتا۔ جب باہر سے TCP جواب دے رہا ہو لیکن players پھر بھی connect نہ کر سکیں، تو کسی کے کوشش کرنے کے دوران network traffic monitor کریں:

sudo tcpdump -ni any udp port 30120

Packets کا پہنچنا ظاہر کرتا ہے کہ outer firewall درست ہے اور خرابی server کے اندر ہے۔ خاموشی کا مطلب ہے کہ box کے سامنے موجود کوئی چیز packets drop کر رہی ہے، اس لیے اگلا مرحلہ provider panel کی جانچ ہے۔

سرور کو txAdmin کے ذریعے manage کریں، اسے public طور پر expose نہ کریں

txAdmin اس artifact کے اندر شامل ہوتا ہے جو آپ پہلے ہی download کر چکے ہیں۔ run.sh کو +exec argument کے بغیر start کریں۔ یہ TCP port 40120 پر web panel شروع کرتا ہے، پھر console میں panel کا URL اور مختصر مدت کے لیے قابلِ استعمال PIN دکھاتا ہے۔ اپنے Cfx.re account کو link کرنے کے لیے یہ PIN صرف ایک بار استعمال کریں۔ اس کے بعد اس admin account کے ذریعے login کریں جو txAdmin بناتا ہے۔

txAdmin میں کوئی default password نہیں ہوتا۔ اس لیے خطرہ یہ نہیں کہ آپ کوئی password تبدیل کرنا بھول گئے ہیں۔ اصل خطرہ panel کی نوعیت ہے: یہ ایک remote console ہے۔ یہ server کو restart کرتا ہے، server.cfg میں ترمیم کرتا ہے، server data deploy کرتا ہے، اور آپ کے server user کے طور پر commands چلاتا ہے۔ 40120 کو internet سے reachable چھوڑنے کا مطلب ہے کہ ان تمام کاموں کے لیے login page public address پر دستیاب ہے۔ Scanners چند گھنٹوں میں کھلے panel ports تلاش کر لیتے ہیں۔ Firewall میں 40120 نہ کھولیں۔ اپنی machine سے SSH tunnel کے ذریعے اس تک پہنچیں:

ssh -N -L 40120:127.0.0.1:40120 fivem@YOUR_SERVER_IP

پھر browser میں http://127.0.0.1:40120 کھولیں۔ Panel کا traffic SSH connection کے اندر منتقل ہوتا ہے، جبکہ یہ port باقی تمام صارفین کے لیے بند رہتا ہے۔

ایک اہم مسئلہ جان لینا مفید ہے، اس سے پہلے کہ آپ اسے کسی دوسرے طریقے سے حل کرنے کی کوشش کریں۔ txAdmin TXHOST_INTERFACE (default 0.0.0.0) کو یہ طے کرنے کے لیے پڑھتا ہے کہ کس interface پر bind ہونا ہے، اور documentation واضح کرتی ہے کہ یہی value FXServer پر بھی نافذ کی جاتی ہے۔ اسے 127.0.0.1 پر set کرنے سے panel چھپ جاتا ہے، لیکن game server بھی loopback پر bind ہو جاتا ہے۔ اس کے نتیجے میں کوئی player server تک نہیں پہنچ سکتا۔ Panel port کو اس variable کے ذریعے نہیں، بلکہ firewall کے ذریعے بند کریں۔ Panel کو کسی دوسرے port پر منتقل کرنے کے لیے TXHOST_TXA_PORT set کریں۔ یہ 30120 کے علاوہ کوئی بھی value قبول کرتا ہے۔ پرانا +set txAdminPort convar بہت سی guides میں موجود ہے؛ txAdmin کی اپنی documentation اسے deprecated قرار دیتی ہے اور کہتی ہے کہ آئندہ release میں یہ کام کرنا بند کر دے گا۔

لاگ آؤٹ کرنے کے بعد سرور کو چلتا رکھیں

bash run.sh آپ کے SSH سیشن کے ساتھ بند ہو جاتا ہے۔ جانچ کے دوران tmux موزوں ہے: tmux new -s fivem چلائیں، سرور شروع کریں، detach کرنے کے لیے Ctrl-b پھر d دبائیں، اور واپس آنے کے لیے tmux attach -t fivem استعمال کریں۔ tmux سیشن reboot کے بعد برقرار نہیں رہتا، اس لیے جس چیز کی ضرورت ہو اسے systemd unit میں شامل کریں۔

/etc/systemd/system/fivem.service لکھیں:

[Unit]
Description=FiveM FXServer
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=fivem
Environment=HOME=/home/fivem
WorkingDirectory=/home/fivem/FXServer/server-data
ExecStart=/bin/bash /home/fivem/FXServer/server/run.sh +exec server.cfg
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now fivem
systemctl status fivem
journalctl -u fivem -f

enable --now کے دو کام ہیں: یہ سروس کو فوراً شروع کرتا ہے اور reboot کے بعد سروس کو دوبارہ شروع کرتا ہے۔ ہاتھ سے شروع کیا گیا سرور اگلی kernel update کے بعد بند ہو جائے گا۔ journalctl -u fivem -f اب آپ کا console ہے، کیونکہ systemd سروس کے پاس ایسا terminal نہیں ہوتا جس میں آپ کمانڈ لکھ سکیں۔ اگر آپ سرور کا انتظام txAdmin کے ذریعے کرتے ہیں تو ExecStart سے +exec server.cfg ہٹا دیں اور WorkingDirectory کو /home/fivem/FXServer/server پر point کریں، کیونکہ txAdmin خود game server شروع کرتا ہے اور اپنا data folder run.sh کے ساتھ رکھتا ہے۔

کن چیزوں کا بیک اپ لینا ہے، اور وہ کہاں موجود ہوتی ہیں

Artifacts کا بیک اپ لینا ضروری نہیں، کیونکہ pinned build دوبارہ ایک منٹ میں download کی جا سکتی ہے۔ چار چیزیں صرف آپ کی ملکیت ہوتی ہیں۔

  • ~/FXServer/server-data/resources: ہر resource جسے آپ نے install، خرید یا تحریر کیا ہے۔
  • server.cfg، چاہے وہ کہیں بھی موجود ہو: سرور کی مکمل configuration، بشمول آپ کے admin principals۔
  • ~/FXServer/server/txData: txAdmin کی configuration، admin list اور logs۔ Linux artifact کے ساتھ یہ folder run.sh کے برابر میں بنتا ہے۔
  • MariaDB یا MySQL database، اگر آپ کا framework اسے استعمال کرتا ہے۔ Characters، money، vehicles اور inventories صرف وہیں موجود ہوتے ہیں۔ اس لیے database dump کے بغیر resource backup سے خالی world بحال ہوتی ہے۔
mkdir -p ~/backups
mysqldump -u fivem -p --single-transaction fivem_db > ~/backups/fivem-$(date +%F).sql

سرور والی اسی disk پر موجود dump بیک اپ نہیں ہوتا، کیونکہ failure اسی disk میں ہو سکتا ہے۔ اسے مقررہ schedule کے مطابق سرور سے باہر منتقل کریں۔ اسی مقصد کے لیے VPS سے restic backups استعمال کیے جاتے ہیں۔

خرابی کی صورتیں اور وہ strings جو آپ دیکھیں گے

loader پر permission denied۔ سرور فوراً اس جیسی ایک سطر کے ساتھ بند ہو جاتا ہے:

run.sh: line 8: /home/fivem/FXServer/server/alpine/opt/cfx-server/ld-musl-x86_64.so.1: Permission denied

ایسا اس لیے ہوتا ہے کہ archive کو sudo کے ساتھ extract کیا گیا تھا، اس لیے alpine/ کے اندر موجود ہر چیز root کی ملکیت ہے اور fivem user اس میں موجود loader کو execute نہیں کر سکتا۔ sudo chown -R fivem:fivem /home/fivem/FXServer کے ذریعے ownership درست کریں، یا folder حذف کر کے اسے دوبارہ fivem کے طور پر extract کریں۔

tar download کھولنے سے انکار کرتا ہے۔ tar (child): xz: Cannot exec: No such file or directory کا مطلب ہے کہ xz-utils package موجود نہیں، اس لیے tar، .tar.xz archive کو decompress نہیں کر سکتا۔ اسے install کریں اور دوبارہ extract کریں۔ بہت کم وقت میں مکمل ہونے والا download عموماً ایک HTML error page ہوتا ہے جو fx.tar.xz کے طور پر save ہو گیا ہے، اور tar اسے corrupt archive کے طور پر رپورٹ کرتا ہے۔

سرور چلتا ہے لیکن کوئی join نہیں کر سکتا۔ پہلے ports کو اس ترتیب سے چیک کریں: 30120 پر TCP اور UDP دونوں کے لیے ufw rule، پھر provider کا اپنا network firewall، اور اس کے بعد licence key کے ساتھ registered IP۔ box کے باہر سے info.json کے خلاف curl چلانے سے ایک ہی command میں network problem اور server problem کے درمیان فرق معلوم ہو جاتا ہے۔

players کے آنے کے ساتھ tick time بڑھتا جاتا ہے۔ txAdmin کا performance panel سرور کا tick time دکھاتا ہے۔ جب players کی تعداد کے ساتھ یہ وقت بڑھتا ہو، جبکہ مجموعی CPU استعمال کم دکھائی دے، تو کوئی ایک resource main thread کو پوری طرح استعمال کر رہا ہے۔ یہ حساب یاد رکھیں: 4 vCPU والے box پر ایک مکمل طور پر مصروف core، top میں مجموعی CPU کا تقریباً 25 percent دکھائی دیتا ہے۔ یہ idle معلوم ہوتا ہے، لیکن حقیقت میں idle نہیں ہوتا۔ resources کو ایک ایک کر کے stop کریں اور tick time کو monitor کریں تاکہ معلوم ہو سکے کہ مسئلہ کس resource کی وجہ سے ہے۔

دیگر game servers کے مقابلے میں اس کی sizing

قابلِ کھیل FiveM server کے لیے تیز رفتار single core اور اتنی memory درکار ہوتی ہے جتنی آپ کی چلائی ہوئی resource list کے لیے کافی ہو۔ Slot count انہی دونوں عوامل سے طے ہوتا ہے، اور vCPUs کی کوئی بھی تعداد سست core کی تلافی نہیں کر سکتی۔ game servers کے لیے VPS کا انتخاب مختلف game servers کے مجموعے کے لیے اسی trade-off کی وضاحت کرتا ہے، جبکہ VPS پر Minecraft server چلانا بھی بنیادی طور پر اسی طرز پر کام کرتا ہے: ایک main tick loop ہوتا ہے، اس لیے وہاں بھی فی core رفتار ہی زیادہ سے زیادہ حد طے کرتی ہے۔

FAQ

FiveM server کو کتنے CPU اور RAM کی ضرورت ہوتی ہے؟

کئی سست cores کے مقابلے میں ایک تیز core زیادہ اہم ہوتا ہے، کیونکہ FXServer اپنی game logic ایک single main thread پر چلاتا ہے۔ CPU model کا شائع شدہ single-thread score ملاحظہ کریں، پھر sysbench cpu --threads=1 run سے server پر اس کی تصدیق کریں اور دیکھیں کہ vmstat میں steal time تقریباً zero ہے۔ memory کے لحاظ سے بنیادی Cfx.re server data چند سو megabytes استعمال کرتا ہے، جبکہ چالیس یا پچاس resources والے roleplay framework اور local database کے لیے 8 GB مناسب ہے اور 4 GB سے کم memory تنگ پڑتی ہے۔ یہ community کے عام اعداد و شمار ہیں، اس لیے ان پر بھروسا کرنے کے بجائے peak load کے وقت free -m monitor کریں۔

کیا کھلاڑیوں کے لیے میرے FiveM server میں شامل ہونے کے لیے GTA V کا مالک ہونا ضروری ہے؟

ہاں۔ ہر connecting player کے پاس Steam، Rockstar Games Launcher یا Epic Games پر GTA V کی قانونی اور licensed copy، نیز مفت Cfx.re account ہونا ضروری ہے۔ FiveM client connect کرنے سے پہلے game ownership check کرتا ہے۔ اس شرط سے بچنے کا کوئی supported طریقہ نہیں ہے، اور ایسا server چلانا جو اس شرط کو bypass کرنے کی کوشش کرے، Cfx.re کی اجازت کے دائرے سے باہر ہے۔

FiveM server کو کون سے ports کھلے رکھنے کی ضرورت ہوتی ہے؟

Port 30120 کو TCP اور UDP، دونوں پر کھلا ہونا چاہیے۔ info.json جیسے HTTP endpoints اور resource downloads TCP استعمال کرتے ہیں، جبکہ client کا game traffic UDP استعمال کرتا ہے۔ صرف TCP کھولنے سے ایسی الجھن پیدا ہوتی ہے جس میں server browser کو جواب دیتا ہے، لیکن players کو Failed to get info from server دکھائی دیتا ہے۔ txAdmin کو TCP 40120 درکار ہے، اور یہ port internet کے لیے بند رہنا چاہیے۔

کیا txAdmin کو port 40120 پر reachable چھوڑنا محفوظ ہے؟

نہیں۔ txAdmin ایک remote console ہے جو server restart کرتا ہے، configuration میں ترمیم کرتا ہے اور commands چلاتا ہے۔ اس لیے exposed panel پورے game server کے exposed control plane کے برابر ہے۔ کوئی default password موجود نہیں، لیکن public login page ایسے credential attacks کی دعوت دیتا ہے جن کا آپ کو علم بھی نہیں ہو سکتا۔ Firewall میں 40120 بند رکھیں اور ssh -N -L 40120:127.0.0.1:40120 user@server کے ذریعے SSH tunnel سے panel تک پہنچیں، پھر http://127.0.0.1:40120 کھولیں۔ txAdmin کو TXHOST_INTERFACE کے ساتھ 127.0.0.1 پر bind نہ کریں، کیونکہ یہ setting game server کو بھی loopback پر چلا دیتی ہے اور کوئی player connect نہیں کر سکے گا۔

Numbered build folder کو pin کریں۔ Recommended label باقاعدگی سے نئی build کی طرف منتقل ہوتا رہتا ہے۔ اس لیے recommended build fetch کرنے والی script ہر rebuild پر مختلف binary دے سکتی ہے، اور جو server کل درست چل رہا تھا وہ redeploy کے بعد آپ کی تبدیلیوں سے غیر متعلق وجوہات کی بنا پر fail ہو سکتا ہے۔ آزمودہ build number اور commit hash record کریں، upgrade جان بوجھ کر کریں، اور previous folder disk پر محفوظ رکھیں تاکہ systemd unit میں صرف ایک path edit کرکے واپس switch کیا جا سکے۔

#fivem#game-server#txadmin#single-thread#vps