MAATRIX GAMES / Блог / Экономика RP-сервера — базовая настройка

Экономика RP-сервера — базовая настройка

MAATRIX GAMES

Сервер поднят, фреймворк выбран, первые тестеры зашли — и тут выясняется, что все выходят с работы миллионерами через два часа, а на третий день в чате уже спрашивают, зачем вообще играть, если на всё хватает денег. Плохо настроенная экономика убивает RP-серверы тише, чем баги в скриптах: игроки не жалуются в тикеты, они просто перестают заходить. Разберём, с чего начать баланс денег на ESX/QBCore-сервере, чтобы не переделывать это через месяц с живым комьюнити на руках.

Стартовый баланс: сколько дать новому персонажу

Первое решение, которое определяет весь дальнейший баланс — сколько денег получает игрок при создании персонажа. Слишком много — и стартовая экономика обесценивается с первого дня, никто не идёт на низкооплачиваемые работы вроде таксиста или уборщика, потому что и так есть на что жить. Слишком мало — новичок не может даже прилично одеться или купить первую машину, и уходит, не разобравшись в механиках.

В ESX стартовый баланс задаётся в es_extended/config.lua через Config.StartingAccountMoney (нал) и отдельно баланс банка, либо напрямую в SQL-дампе таблицы users при создании персонажа — смотря какой скрипт мультичарактера стоит (esx_multicharacter, qb-multicharacter или их форки). В QBCore аналогичная настройка живёт в qb-core/config.lua через Config.Money, где отдельно задаются стартовые значения для cash и bank.

Рабочий ориентир, от которого можно оттолкнуться и потом подстроить под свой сервер: 1500–3000 нала на руки плюс 5000–10000 на счёте — этого хватает на базовую одежду, еду и первый дешёвый транспорт, но не хватает на квартиру и хорошую машину без пары рабочих смен. Это именно ориентир, а не измеренное значение — на комьюнити с другим темпом игры (например, тяжёлый криминальный RP с высоким входным чеком) стартовые суммы логично сдвигать в любую сторону.

Если ты ещё не поднял базовый сервер и не выбрал фреймворк — сначала пройди установку FiveM-сервера и посмотри сравнение ESX и QBCore: экономика настраивается по-разному в зависимости от того, какое ядро стоит.

Банковская система: нал, счёт и чёрный нал

Классическая схема на ESX — три типа денег у игрока: money (нал в кармане, можно ограбить), bank (счёт, недоступен для грабежа игроками напрямую), и опционально black_money (нелегальный доход с наркоторговли, требующий отмывания через скрипты вроде esx_blackmoney или аналогов под конкретный сервер). В QBCore похожая логика через cash и bank, чёрный нал обычно добавляется отдельным ресурсом поверх ядра, а не входит в core по умолчанию.

Банкоматы и банковские NPC/точки реализуются отдельными ресурсами (qb-banking, esx_atm и их форки) и обычно дают возможность снять/положить деньги, перевести другому игроку по номеру счёта и посмотреть историю операций. Практический момент, который часто упускают на старте: если не ограничить сумму перевода за раз и не завести лог транзакций в базу, читы и дюп-баги (когда деньги случайно размножаются из-за гонки запросов) находят гораздо позже и сложнее откатывают.

Минимальный набор, который стоит включить с первого дня:

-- пример конфигурации лимитов перевода (адаптируй под свой банковский ресурс)
Config.MaxTransferAmount = 50000 -- потолок за одну операцию
Config.TransferCooldown = 30 -- секунд между переводами одному игроку
Config.LogTransfers = true -- писать каждую операцию в отдельную таблицу БД

Логирование переводов в отдельную таблицу (bank_logs или аналогичную) — это не про недоверие к игрокам, а про то, что у тебя должен быть способ разобраться в споре «мне не пришли деньги» без гадания по памяти.

Поднять сервер FiveM (GTA V) за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Зарплаты по работам (jobs)

Работы — основной легальный источник дохода на старте, и от того, как расставлены зарплаты между ними, зависит, какие профессии игроки реально выбирают. В ESX работы и грейды задаются через таблицу jobs/job_grades в базе (обычно наполняется SQL-дампом при установке esx_society или аналога), в QBCore — декларативно в qb-core/shared/jobs.lua.

Пример структуры грейдов в стиле QBCore — обрати внимание, это упрощённый учебный пример, синтаксис уточняй по актуальной документации своего core:

['police'] = {
    label = 'Полиция',
    type = 'leo',
    defaultDuty = true,
    grades = {
        ['0'] = { name = 'Кадет', payment = 75 },
        ['1'] = { name = 'Офицер', payment = 90 },
        ['2'] = { name = 'Сержант', payment = 110 },
        ['3'] = { name = 'Шеф', payment = 150, isboss = true },
    },
},
['taxi'] = {
    label = 'Таксист',
    defaultDuty = true,
    grades = {
        ['0'] = { name = 'Водитель', payment = 45 },
    },
},

Здесь важен принцип, а не конкретные цифры: госслужбы (полиция, EMS, механики на контракте у города) и стабильные, но «скучные» работы обычно получают фиксированную ставку по таймеру (SetInterval на серверной стороне, платит раз в N минут за нахождение на смене), а работы с активным геймплеем (курьер, дальнобойщик, грузчик — по завершённым заказам) платят за конкретное действие. Комбинация обоих типов удерживает и тех, кто хочет фоновый доход, и тех, кто хочет активный геймплей.

Отдельно стоит продумать «потолок» легального дохода по времени: если топ-работа даёт возможность заработать на дорогую машину за один вечер, нелегальные и рискованные ветки экономики (наркоторговля, ограбления) теряют смысл — а часто именно они держат RP интересным для тех, кто уже прошёл этап адаптации.

Налоги и штрафы как источник баланса

Часть денег, которую игроки зарабатывают, должна возвращаться в систему или перераспределяться, иначе общая денежная масса на сервере растёт без остановки. Налоги в RP-контексте обычно реализуются не как абстрактный процент с зарплаты (это плохо считывается игроками и легко забывается), а как конкретные, понятные платежи:

  • Штрафы от полиции за нарушения (превышение скорости, нелегальное оружие, сопротивление аресту) — фиксированные суммы через систему выписки штрафов (billing-ресурсы вроде esx_billing или qb-billing), которые списываются со счёта нарушителя.
  • Залог/штраф за конфискованный транспорт из штрафстоянки (impound) — фиксированная плата за возврат машины, обычно растёт при повторных попытках или долгом хранении.
  • Госпошлины за оформление документов, лицензий на оружие/вождение, регистрацию бизнеса.

Практический момент: суммы штрафов стоит держать в одном конфиг-файле (а не разбросанными по коду разных ресурсов), чтобы можно было быстро скорректировать баланс, не копаясь в десятке файлов. Пример простого конфига штрафов:

Config.Fines = {
    speeding = 250,
    illegalWeapon = 1500,
    resistingArrest = 800,
    impoundBase = 500,
    impoundPerDay = 100,
}

Штрафы и госпошлины хорошо работают ещё и как ролевой инструмент: они дают полиции и госслужбам осмысленную функцию в экономике сервера, а не только «догнать и посадить в тюрьму на N минут».

Money sinks: куда должны уходить деньги

Это самая недооценённая часть настройки экономики на старте. Money sink — любой механизм, который безвозвратно выводит деньги из оборота. Без них любая RP-экономика инфлирует: игроки со временем накапливают деньги быстрее, чем тратят, цены на аукционах и в игровых магазинах ползут вверх, а новички на старте оказываются в заведомо неравных условиях по сравнению с теми, кто играет полгода.

Базовый набор money sinks, который стоит настроить сразу:

  • Аренда жилья. Периодическая плата за квартиру/дом через housing-ресурсы (esx_property, qb-housing и форки) — если не платишь вовремя, теряешь доступ или имущество выставляется на продажу. Даёт постоянный, предсказуемый отток денег у каждого активного игрока.
  • Топливо. Системы вроде LegacyFuel, ps-fuel или их аналоги под конкретный фреймворк — расход бензина при поездках и плата на заправках. Мелкая, но постоянная трата, особенно ощутимая для активных водителей (таксисты, дальнобойщики, курьеры).
  • Ремонт и износ транспорта. Повреждённая машина требует ремонта на СТО за деньги — это одновременно money sink и работа для механиков.
  • Страховка и налог на транспорт. Периодический платёж за владение зарегистрированным транспортом, аналог реального автостраха.
  • Комиссии на аукционах и биржах между игроками, если такие механики есть на сервере — небольшой процент с каждой сделки уходит «в никуда», а не другому игроку.

Ключевой принцип: money sink должен быть предсказуемым и достаточно заметным, чтобы влиять на решения игроков, но не настолько болезненным, чтобы люди не могли позволить себе базовые вещи. Если аренда квартиры съедает половину зарплаты за смену — это перебор, если её не замечают вообще — sink не работает. Здесь нет универсальной цифры, подстраивай под темп заработка на своём конкретном наборе работ.

Как следить за здоровьем экономики и когда вмешиваться

Настроить экономику один раз и забыть не получится — баланс между доходами (зарплаты, продажа лута, нелегальные схемы) и расходами (аренда, топливо, штрафы, покупки) неизбежно смещается по мере того, как комьюнити растёт и меняется состав активных игроков. Несколько практических способов держать руку на пульсе:

Веди учёт общей денежной массы на сервере — простой SQL-запрос раз в неделю по сумме money + bank по всем персонажам покажет тренд: растёт ли средний баланс быстрее, чем появляются новые игроки. Резкий скачок обычно означает либо баг (дюп, эксплойт в каком-то из ресурсов), либо слишком щедрую работу, которую кто-то массово фармит.

Смотри на цены игрок-игрок рынка (если есть система торговли или аукционов между персонажами) — если цены на популярные предметы постоянно растут, это прямой признак избытка денег в системе относительно предложения. Поднимать money sinks стоит постепенно, малыми шагами (на 10-15% за раз), а не резко — резкое ужесточение воспринимается игроками как наказание и бьёт по удержанию сильнее, чем сама инфляция.

Отдельно стоит логировать крупные транзакции (перевод/снятие суммы выше определённого порога) в отдельный канал модерации в Discord через вебхук — это дешёвый способ ловить и явные читы, и просто нащупывать, где в экономике скрытая дыра. Если завёл кастомные скрипты для работ или money sink — проверь их на совместимость и баги перед продакшеном, отдельно про это — установка кастомных скриптов на FiveM.

Поднять сервер FiveM (GTA V) за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Можно ли настроить экономику одинаково для ESX и QBCore?

Логика (доход/налоги/sinks) переносится один в один, но синтаксис конфигов и структура таблиц разные — под ESX это чаще правки в es_extended/config.lua и SQL-таблицах, под QBCore — qb-core/config.lua и shared/jobs.lua. Готовые ресурсы под один core не встают на другой без адаптации.

Сколько денег в час должен зарабатывать игрок на средней легальной работе?

Универсальной цифры нет — зависит от цен на транспорт, жильё и предметы на конкретном сервере. Ориентируйся не на абсолютную сумму, а на соотношение: сколько смен нужно отработать до первой доступной машины и до первого жилья, и подгоняй зарплаты под желаемый темп прогрессии.

Что делать, если экономика уже разбалансирована на живом сервере?

Резкий вайп денег обычно вызывает возмущение комьюнити — лучше вводить sinks постепенно и/или временные события с повышенными налогами/ценами, чем одномоментно обнулять балансы. Полный вайп экономики имеет смысл только при перезапуске сервера с чистого листа и явным анонсом заранее.

Нужны ли отдельные ресурсы под каждый money sink или есть готовые all-in-one решения?

Есть комплексные экономические фреймворки поверх ESX/QBCore, которые сразу включают аренду, топливо, страховку и штрафы в одном пакете, но большинство серверов собирают набор из отдельных проверенных ресурсов под каждую механику — это даёт больше контроля и проще менять/заменять один компонент, не трогая остальное.

Как связаны требования к серверу (RAM) и экономические скрипты?

Сама экономика не требовательна к ресурсам сервера — основная нагрузка идёт от MySQL-запросов при частых транзакциях. Держи индексы на часто запрашиваемых полях таблиц (id персонажа, номер счёта) и не гоняй лишние синхронные запросы на каждый тик, тогда даже стартовых 4 ГБ RAM под FiveM хватает с запасом для экономики любой сложности.