Экономика RP-сервера — базовая настройка
Сервер поднят, фреймворк выбран, первые тестеры зашли — и тут выясняется, что все выходят с работы миллионерами через два часа, а на третий день в чате уже спрашивают, зачем вообще играть, если на всё хватает денег. Плохо настроенная экономика убивает 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 хватает с запасом для экономики любой сложности.