پرش به مطلب اصلی

config.json

توضیحات​

  • config.json فایل پیکربندی سرور است که به شما امکان تغییر انواع مختلف تنظیمات سرور open.mp خود را می‌دهد.
  • همچنان می‌توانید از فایل server.cfg در سرور open.mp خود استفاده کنید، اما استفاده از config.json توصیه می‌شود زیرا تنظیمات بیشتری دارد!



نکته

می‌توانید به راحتی server.cfg خود را به config.json تبدیل کنید.

یک command prompt را در دایرکتوری سرور خود باز کنید و دستور زیر را تایپ کنید، سپس Enter را فشار دهید:

# Windows
omp-server --dump-config

# Linux
./omp-server --dump-config

نکته: اگر فایل config.json در دایرکتوری دارید، ممکن است قبل از اجرای دستور بالا نیاز به حذف آن باشد.


نکته

برای تولید config.json پیش‌فرض دستور زیر را وارد کنید:

# Windows
omp-server --default-config

# Linux
./omp-server --default-config

اعلان​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
announcebooltrue❌❌تعیین می‌کند که آیا سرور باید در masterlist open.mp اعلان شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.

مدل‌های سفارشی (Artwork)​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
artwork.cdnstring✅❌آدرس http برای سرور مدل راه دور.
artwork.enablebooltrue✅✅تعیین می‌کند که آیا سرور از مدل‌های سفارشی از پوشه /models استفاده کند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
artwork.models_pathstringmodels✅❌مسیری که مدل‌های سفارشی در آن قرار دارند.
artwork.portint7777✅❌
artwork.web_server_bindstring✅❌

فیلتر چت​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
chat_input_filterbooltrue❌❌فیلتر ورودی چت را کنترل می‌کند. برای استفاده از کاراکترهایی مثل % در چت غیرفعال کنید. همچنین می‌توانید از تابع ToggleChatTextReplacement استفاده کنید.

اطلاعات Query سرور​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
enable_querybooltrue❌❌تعیین می‌کند که آیا اطلاعات سرور باید در مرورگر سرور نمایش داده شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن. بازیکنان همچنان می‌توانند به سروری که query را غیرفعال کرده بپیوندند، اما مرورگر سرور هیچ اطلاعاتی نمایش نخواهد داد.

بازی​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
game.allow_interior_weaponsbooltrue❌❌تعیین می‌کند که آیا استفاده از سلاح‌ها در interior ها مجاز است یا نه. 'true' برای فعال کردن سلاح‌ها در interior ها، 'false' برای غیرفعال کردن.
game.chat_radiusfloat200.0❌❌محدودیت شعاع برای چت تنظیم کنید. فقط بازیکنانی که در فاصله مشخصی از بازیکن باشند پیغام آنها را در چت خواهند دید. همچنین فاصله‌ای که بازیکن می‌تواند سایر بازیکنان را در نقشه در همان فاصله ببیند را تغییر می‌دهد.
game.death_drop_amountint0❌❌
game.gravityfloat0.008❌✅گرانش سراسری که سرور استفاده می‌کند.
game.group_player_objectsboolfalse❌❌اشیاء per-player و سراسری یک pool ID را در SA:MP به اشتراک می‌گذارند. اگر یک ID به بازیکنان "اختصاص" داده شود هر بازیکن می‌تواند شی منحصربه‌فردی با آن ID داشته باشد، اما اگر حداکثر اشیاء سراسری را ایجاد کنید نمی‌توانید پس از آن هیچ شی per-player ایجاد کنید.
اگر گروه‌بندی اشیاء بازیکن فعال باشد سرور سعی خواهد کرد slot شی بازیکن قبلاً استفاده شده توسط بازیکن دیگری را پیدا کند.
game.lag_compensation_modeint1✅✅0: جبران تأخیر را کاملاً غیرفعال کن.

1: جبران تأخیر را کاملاً فعال کن.

2: فقط جبران تأخیر موقعیت را فعال کن. این یعنی چرخش بازیکن برای جبران تأخیر در نظر گرفته نخواهد شد.
game.mapstring❌✅نام نقشه‌ای که در مرورگر سرور ظاهر می‌شود. این می‌تواند هر چیزی باشد، مثلاً My Stunt Map.
game.modestring❌❌مودی که در مرورگر سرور نشان داده خواهد شد. استفاده از SetGameModeText همین تأثیر را دارد و مقدار استفاده شده در config.json را نادیده می‌گیرد. اگر چندین گیم مود دارید که نیاز به متن‌های مختلف گیم مود دارند، از آن تابع استفاده کنید.
game.nametag_draw_radiusfloat70.0❌❌حداکثر فاصله برای نمایش نام بازیکنان را تنظیم کنید.
game.player_marker_draw_radiusfloat250.0❌❌شعاع marker برای همه بازیکنان را تنظیم کنید.
game.player_marker_modeint1❌❌0: حالت Marker خاموش

1: حالت Marker سراسری

2: حالت Marker stream شده

حالت‌های Marker
game.timeint12❌✅زمان سراسری که سرور استفاده می‌کند و در مرورگر سرور نشان داده خواهد شد.
game.use_all_animationsboolfalse✅❌اجازه استفاده از انیمیشن‌های گم شده از برخی نسخه‌ها. 'true' برای فعال کردن همه انیمیشن‌ها، 'false' برای غیرفعال کردن.
game.use_chat_radiusboolfalse❌❌فعال/غیرفعال کردن شعاع چت.
game.use_entry_exit_markersbooltrue✅❌فعال/غیرفعال کردن همه ورودی‌ها و خروجی‌های interior در بازی (فلش‌های زرد در درها).
game.use_instagibboolfalse❌❌instagib متغیر قابل پیکربندی قدیمی است که دیگر در کلاینت sa-mp در دسترس نیست، احتمالاً نام آن از بازی Quake گرفته شده، instagib در اصل instakill یا instant kill است، ویژگی one shot one kill را در بازی فعال می‌کند (در حال حاضر در دسترس نیست زیرا sa-mp این را در سمت کلاینت حذف کرده)
game.use_manual_engine_and_lightsboolfalse❌❌کنترل موتورها و چراغ‌های خودرو. false: از خودکار روشن/خاموش شدن موتور توسط بازی وقتی بازیکنان وارد/خارج خودروها می‌شوند و روشن شدن خودکار چراغ‌جلو در تاریکی جلوگیری می‌کند.
game.use_nametag_losbooltrue❌❌Line-Of-Sight nametag ها، نوارهای سلامتی و زره بالای بازیکنان را کنترل می‌کند.
game.use_nametagsbooltrue❌❌رسم nametag ها، نوارهای سلامتی و زره بالای بازیکنان را کنترل می‌کند.
game.use_player_marker_draw_radiusboolfalse❌❌marker های بازیکن (blip ها در رادار) را کنترل می‌کند.
game.use_player_ped_animsboolfalse❌❌از انیمیشن راه رفتن استاندارد بازیکن (انیمیشن اسکین CJ) به جای انیمیشن‌های سفارشی برای هر اسکین استفاده می‌کند (مثلاً اسکیت برای اسکین‌های اسکیت‌باز).
game.use_stunt_bonusesbooltrue❌❌پاداش‌های stunt را برای همه بازیکنان فعال یا غیرفعال می‌کند. اگر فعال باشد، بازیکنان هنگام انجام stunt در خودرو (مثلاً wheelie) پاداش پولی دریافت خواهند کرد.
game.use_vehicle_friendly_fireboolfalse❌❌آتش دوستانه برای خودروهای تیمی را فعال کنید. بازیکنان نخواهند توانست خودروهای هم‌تیمی‌هایشان را آسیب برسانند.
game.use_zone_namesboolfalse❌❌امکان روشن کردن نام‌های zone / area مثل متن "Vinewood" یا "Doherty" در پایین-راست صفحه هنگام ورود به آن منطقه را می‌دهد.
game.validate_animationsbooltrue❌❌انیمیشن‌ها را برای بازیکنان اعتبارسنجی کنید.
game.vehicle_respawn_timeint10000❌❌زمان respawn خودروها را به میلی‌ثانیه تنظیم کنید. (پیش‌فرض 10 ثانیه)
game.weatherint10❌✅آب و هوای سراسری که سرور استفاده می‌کند و در مرورگر سرور نشان داده خواهد شد.

زبان​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
languagestring❌❌زبانی که در مرورگر سرور ظاهر می‌شود. بازیکنان می‌توانند از این برای فیلتر کردن سرورها بر اساس زبان در مرورگر سرور استفاده کنند.

لاگ‌گیری​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
logging.enablebooltrue❌❌فعال/غیرفعال کردن لاگ‌گیری.
logging.filestringlog.txt✅❌مسیر و نام فایل برای ذخیره لاگ سرور.
logging.log_chatbooltrue❌❌تعیین می‌کند که آیا چت بازیکنان باید در کنسول سرور نشان داده شود. برای جلوگیری از پر شدن لاگ یا اگر راه‌حل لاگ‌گیری چت اسکریپتی دیگری دارید مفید است. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.log_connection_messagesbooltrue❌❌فعال/غیرفعال کردن پیام‌های join بازیکن و NPC.
logging.log_cookiesboolfalse❌❌لاگ‌گیری cookie های اتصال درخواست شده توسط بازیکنان تازه متصل شونده را کنترل می‌کند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.log_deathsbooltrue❌❌تعیین می‌کند که آیا مرگ بازیکنان باید در کنسول سرور نشان داده شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.log_queriesboolfalse❌❌تعیین می‌کند که آیا همه query هایی که توسط بازیکنان به سرور ارسال می‌شود باید لاگ شوند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن. در طول حمله DDoS بسیار مفید است.
logging.log_sqliteboolfalse❌❌خطاهای تابع sqlite DB_* را در کنسول سرور لاگ می‌کند.
logging.log_sqlite_queriesboolfalse❌❌همه فراخوانی‌های sqlite DB_Query شامل رشته query را لاگ می‌کند.
logging.timestamp_formatstring[%Y-%m-%dT%H:%M:%S%z]✅❌فرمت timestamp که باید استفاده شود. فرمت بر اساس فرمت strftime از C/C++ است. در اینجا چند مثال آورده شده:

[%H:%M:%S] این فقط زمان را نمایش می‌دهد.

[%d/%m/%Y %H:%M:%S] این تاریخ را به فرمت dd/mm/yyyy نشان می‌دهد و سپس زمان به فرمت hour:minute:second.
logging.use_prefixbooltrue❌❌تعیین می‌کند که آیا prefix هایی مثل [Info] باید با هر پیغام کنسول چاپ شوند. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
logging.use_timestampbooltrue❌❌تعیین می‌کند که آیا timestamp باید با هر پیغام کنسول چاپ شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.

NPC ها و بازیکنان​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
max_botsint0❌❌حداکثر مقدار NPC هایی که سرور شما می‌تواند نگه دارد. با تغییر این عدد می‌توانید تعداد slot های بازیکن قابل استفاده توسط NPC ها را تغییر دهید.
max_playersint50✅❌حداکثر مقدار بازیکنانی که سرور شما می‌تواند نگه دارد. با تغییر این عدد می‌توانید تعداد بازیکنانی که می‌توانند وارد سرور شوند را تغییر دهید. حداکثر 1000 و حداقل 1 است.

Hostname​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
namestringopen.mp server❌❌نامی که در مرورگر سرور و زمانی که بازیکن به سرور متصل می‌شود نشان داده خواهد شد.

شبکه​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
network.acks_limitint3000❌❌
network.aiming_sync_rate*int30✅❌زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام شلیک سلاح به‌روزرسانی کند.
network.allow_037_clientsbooltrue❌❌تعیین می‌کند که آیا بازیکنان با کلاینت 0.3.7 مجاز به پیوستن به سرور هستند.
network.use_omp_encryptionboolfalse❌❌رمزگذاری بسته open.mp را برای حفاظت اضافی کنترل می‌کند (پروتکل پیش‌فرض همچنان در کنار آن کار می‌کند).
network.bindstring✅❌آدرس IP که سرور باید استفاده کند. سرور مجبور خواهد شد از این آدرس IP به جای انتخاب خودکار آدرس IP آزاد استفاده کند. این آدرس IP باید با یکی از آدرس‌های اختصاص یافته به کارت شبکه در سرور مطابقت داشته باشد. برای اجرای چندین سرور در همان پورت در همان جعبه مفید است.
network.cookie_reseed_timeint300000❌❌زمان به میلی‌ثانیه که مقدار seed cookie اتصال به‌روزرسانی می‌شود.
network.grace_periodint5000❌❌این دوره مهلت برای اجازه اتصالات نامحدود از همان IP پس از شروع سرور است، عمدتاً برای NPC ها استفاده می‌شود.
به طور پیش‌فرض: 5 ثانیه
network.http_threadsint50❌❌
network.in_vehicle_sync_rate*int30✅❌زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام در خودرو بودن به‌روزرسانی کند.
network.limits_ban_timeint60000❌❌زمان ban raknet را برای بسته‌های اتصال بد به میلی‌ثانیه تنظیم می‌کند. (زمانی که حد acks/message به آن رسیده باشد.)
network.message_hole_limitint3000❌❌تنظیم سطح شبکه برای مقابله با حملات DoS.
network.messages_limitint500❌❌حداکثر تعداد پیام‌هایی که کاربر می‌تواند در ثانیه ارسال کند.
network.minimum_connection_timeint0❌❌زمان به میلی‌ثانیه که سرور قبل از پذیرش اتصال ورودی دیگر منتظر خواهد ماند. توصیه نمی‌شود از این متغیر استفاده کنید مگر اینکه سرور شما تحت حمله connection flood باشد.
network.mtuint576✅❌آن را در مقدار پیش‌فرض نگه دارید، واقعاً نیاز یا نباید آن را تغییر دهید اگر نمی‌دانید این چیست، زیرا اگر نمی‌دانید، پس چیزی در سرور شما نیست که نیاز به MTU بالاتر داشته باشد، اما اگر همچنان علاقه‌مندید: https://en.wikipedia.org/wiki/Maximum_transmission_unit
network.multiplierint10❌❌
network.on_foot_sync_rate*int30✅❌زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام پیاده بودن به‌روزرسانی کند.
network.player_marker_sync_rateint2500✅❌زمان به میلی‌ثانیه که کلاینت باید سرور را با داده‌های جدید هنگام حرکت به‌روزرسانی کند.
network.player_timeoutint10000❌❌زمان به میلی‌ثانیه که بعد از آن بازیکن timeout خواهد شد وقتی هیچ داده‌ای به سرور ارسال نکند.
network.portint7777✅❌پورتی که سرور باید استفاده کند. برای اینکه بازیکنان از خارج LAN شما به سرور بپیوندند نیاز به Port Forward دارید.
network.public_addrstring✅❌برخی دستگاه‌هایی که سرور روی آنها اجرا می‌کنید می‌توانند IP های مختلفی داشته باشند، این استفاده می‌شود تا اگر آدرسی که در config bind تنظیم کرده‌اید متفاوت است، یکی جدید تنظیم کنید. این متغیر config فقط برای سرورهای DL استفاده می‌شود، زیرا در open.mp، webserver برای دانلود مدل‌ها میزبانی خواهد کرد
network.stream_radiusfloat200.0❌❌فاصله در صفحه X,Y که بازیکنان entities سرور را stream خواهند کرد. حداکثر 400.0 و حداقل 50.0 است. مقادیر بالاتر باعث می‌شود بازیکنان entities سرور را در فاصله بیشتری ببینند، اما نیاز به پردازش بیشتر کلاینت و احتمالاً پهنای باند بیشتری دارد.
network.stream_rateint1000❌❌زمان به میلی‌ثانیه قبل از اینکه stream شدن entities سرور برای هر بازیکن دوباره تست شود. حداکثر 5000 و حداقل 500 است. مقادیر پایین‌تر پردازش سرور را افزایش می‌دهد زیرا باید شرایط streaming را برای هر بازیکن بیشتر بررسی کند.
network.time_sync_rateint30000❌❌نرخی که زمان بازی بازیکن به میلی‌ثانیه به‌روزرسانی می‌شود.
network.use_lan_modeboolfalse❌❌متغیر منسوخ شده، تأثیری ندارد.

[*] مقادیر پایین‌تر aiming_sync_rate، in_vehicle_sync_rate و on_foot_sync_rate عملکرد sync را بهبود می‌بخشد، اما پهنای باند بیشتری استفاده می‌کند.

قفل سرور​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
passwordstring❌❌رمز عبور استفاده شده برای قفل کردن سرور. هنگام استفاده از این، فقط بازیکنانی که این رمز عبور را می‌دانند خواهند توانست به سرور بپیوندند.

Pawn​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
pawn.legacy_pluginslist, string[]✅❌فایل .dll یا .so در پوشه /plugins که سرور باید برای اجرا به عنوان پلاگین استفاده کند. پلاگین‌ها اسکریپت‌هایی هستند که برای بهبود گیم مود و فیلتر اسکریپت طراحی شده‌اند.
مثال: ["mysql", "streamer"]
pawn.main_scriptslist, string["test 1"]✅❌فایل .amx در پوشه /gamemodes که سرور باید برای اجرا به عنوان گیم مود استفاده کند.
pawn.side_scriptslist, string[]✅❌فایل .amx در پوشه /filterscripts که سرور باید برای اجرا به عنوان فیلتر اسکریپت استفاده کند. فیلتر اسکریپت‌ها اسکریپت‌هایی هستند که در پس‌زمینه گیم مود شما اجرا می‌شوند. آنها برای اضافه کردن موارد اضافی به سرور بدون ویرایش گیم مود هستند. اگر می‌خواهید ویژگی خاصی را به بیش از یک گیم مود منتقل کنید بسیار مفید است.
مثال: ["filterscripts/Race_System"]

RCON​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
rcon.allow_teleportboolfalse✅❌تعیین می‌کند که آیا ادمین‌های RCON زمانی که waypoint تنظیم می‌کنند به آن تلپورت خواهند شد. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
rcon.enableboolfalse✅❌تعیین می‌کند که آیا ویژگی Remote Console باید استفاده شود. روی 'true' تنظیم کنید تا فعال شود یا 'false' برای غیرفعال کردن.
rcon.passwordstringchangeme❌❌رمز عبور استفاده شده برای مدیریت سرور و استفاده از remote console (rcon). باید مطمئن شوید که آن را به چیزی سخت برای شکستن تغییر دهید تا دیگران نتوانند کنترل سرور شما را در دست بگیرند. سرور شما شروع نخواهد شد اگر changeme رمز عبور RCON باشد!

Sleep و Tick ها​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
sleepfloat5.0❌❌زمان به میلی‌ثانیه که thread اصلی open.mp و شبکه raknet در طول هر چرخه sync به صورت بیکار "خواب" خواهد بود. مقادیر بالاتر پردازش سرور را کاهش می‌دهد، اما کیفیت sync را کم می‌کند. مقادیر پایین‌تر پردازش سرور را افزایش می‌دهد، اما کیفیت sync را بهبود می‌بخشد. تغییر این مقدار توصیه نمی‌شود مگر اینکه تعداد بازیکنان شما خیلی زیاد باشد و مشکلات پایداری fps سرور داشته باشید.
use_dyn_ticksbooltrue✅❌config dynticks در اصل برای نگه داشتن tickrate سرور در تعداد ثابت با استفاده از cpu بیشتر برای پوشاندن فاصله در صورت وجود هر گونه افت است.
با استفاده از مقدار sleep ارائه شده محاسبه می‌شود پس اگر sleep برابر 5 باشد، تعداد tick ثابت 1000 / 5 = 200 tick در ثانیه خواهد بود.
open.mp مقدار sleep داخلی را بر اساس زمان اجرای کد هر tick در پرواز تغییر می‌دهد، فقط برای نگه داشتن آن در 200 tick، و sleep پایین‌تر یعنی استفاده cpu بیشتر (که اگر کد سرور خوب نوشته شده باشد تفاوت عظیمی نیست)

Web URL​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
websitestringopen.mp❌✅وبسایتی که مردم می‌توانند بازدید کنند تا اطلاعات بیشتری در مورد سرور کسب کنند.

Discord​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
discord.invitestringhttps://discord.gg/samp❌❌آدرس discord سرور شما که در لانچر omp ظاهر می‌شود.

بنرها​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
banners.lightstring❌❌آدرس url بنر روشن سرور شما که در لانچر omp ظاهر می‌شود.
banners.darkstring❌❌آدرس url بنر تاریک سرور شما که در لانچر omp ظاهر می‌شود.

لوگو سرور​

کلیدنوعمقدار پیش‌فرضفقط خواندنیقانونتأثیر
logostring❌❌آدرس url لوگوی سرور شما که در لانچر omp و وضعیت discord ظاهر می‌شود.


یادداشت
  • مقادیری که به عنوان "فقط خواندنی" علامت‌گذاری شده‌اند نمی‌توانند در طول runtime تغییر کنند. همه مقادیر دیگر می‌توانند (موقتاً) با ارسال آنها به SendRconCommand یا از طریق کنسول سرور تغییر کنند.

  • مقادیری که به عنوان "قانون" علامت‌گذاری شده‌اند در مرورگر سرور در بخش Rules نمایش داده می‌شوند.