Whistler — гейммод JUST RP (первая итерация)

🚀 Проект живёт при поддержке REDL.IO — AI Game Hosting: хостинг игровых серверов со встроенным ИИ-агентом, который сам устанавливает и настраивает моды. Хочешь поднять этот мод без единой команды — закажи сервер на redl.io и просто напиши ИИ в чате: «разверни мод Whistler». Живая витрина: https://game-whistler-1.redl.app · Подробнее: INSTALL.md.

Whistler — полноценный RP-гейммод для GTA V на платформе RAGE:MP: серверная логика на C#, интерфейс на Vue 2, база на MySQL. Это первая версия мода проекта JUST RP — разрабатывалась локально до перехода проекта на нынешнюю базу. Разработка остановлена в мае 2026; код сохранён здесь целиком (без секретов).

1081 C#-файл серверной логики · 790 Vue-компонентов · 108 игровых экранов · ~3.8 ГБ с клиентскими ресурсами

Стек

Слой Технологии
Сервер C# / .NET Core 3.1, RAGE:MP (bridge), EF Core (MySQL), AutoMapper, MessagePack
Интерфейс (CEF) Vue 2 + Vuex (90+ модулей стора), сборка webpack → client_packages/gui
Клиент JS (client_packages): биндинги CEF ↔ серверные события
Сервисы Node.js API (api/) — раздача локализаций (ru/en/ge)
БД MySQL: whistler (данные мира) + core-база аккаунтов

Структура репозитория

dotnet/resources/
  Whistler/                      — ядро гейммода (все игровые системы)
  Whistler.Abstractions/         — контракты/интерфейсы
  Whistler.Domain/               — доменные модели (фракции, телефон)
  Whistler.Infrastructure.Common — конфигурация, общие сервисы
  Whistler.Infrastructure.DataAccess — EF Core, доступ к БД
  Whistler.UpdateR               — обновлятор
Gui/            — исходники интерфейса (Vue 2), 108 экранов в src/views
client_packages/ — собранный клиент: gui-бандл, звуки, картинки
Client/, client-side/ — клиентские JS-исходники
api/            — Node-сервис локализации (public/api/localize: ru, en, ge)
maps/           — карты/объекты
Configs/, ParsedConfigs/ — конфиги одежды и парсер
GenerateMeta/   — генератор meta для ресурсов
conf.example.json      — пример конфига RAGE:MP (порт 22055, voice-chat, C#)
settings.example.json  — пример настроек сервера (строки подключения — заполнить)
db/             — ЧИСТЫЕ схемы обеих баз MySQL + история EF-миграций (см. db/README.md)

Игровые системы (серверное ядро)

Аккаунт и вход: авторизация логин/пароль с привязкой Social Club (Core/Authorization), восстановление пароля через почтовый сервис, реферальная система (ReferralSystem), стартовый квест (StartQuest), выбор языка (ru/en/ge — Localization).

Персонаж: до 3 слотов персонажей (доп. слоты продаются), кастомизация внешности (Customization, ClothesCustom), паспорт, лицензии, эффекты игрока (PlayerEffects).

Экономика и имущество:

  • Businesses — покупаемые бизнесы: автосервис, барбершоп, BurgerShot, автосалон, мойка, магазин одежды, ферма и др.
  • Houses / Possessions — недвижимость и владение имуществом
  • PriceSystem — централизованные цены
  • VehicleSystem / VehicleTrading / VehicleRent — транспорт: владение, продажа между игроками, аренда
  • Банк, банкоматы, переводы (GUI: Bank, CashMachine, TransfersConfirmation)
  • NewDonateShop — донат-магазин (валюта Coin)

Работы (Jobs): автобус, дальнобойщик (TruckersJob), перевозчик (Transporteur), ферма, охота (Hunting), рыбалка (Fishing), угонщик (CarThief), ограбления домов (HomeRobbery), сталевар (SteelMaking), техник (Technician) + мини-игры (WorkMiniGame).

Фракции (Fractions): армия (с системой атак AttackArmy), FBI, EMS, правительство (GOV), полиция; доступы (AccessManager), склады, крафт (Fabrication), подписки фракций. Банды (Gangs) и семьи (Families) с захватами территорий (GUI: Captures, War, WarForEnterprice).

Развлечения: казино (Casino — рулетка, покер, обмен фишек, владелец казино как бизнес), арена/батлграунды (BattlegroundReg/Stats), бар с алкоголем (AlcoholBar), свадьбы (Marriage + WeddingMenu), выборы/парламент (CityHallWeb, ParliamentPortal, VoteMenu).

Мир: дома с мебелью (FurnitureShop), доки (Docks), двери (DoorsSystem), сцены (Scenes), окружение (Enviroment), телефон (Whistler.Domain/Phone + Smartphone/PDA в GUI), голосовой чат (Voice), радио.

Технические: античит (AntiCheat), GarbageCollector, ServerQuery, SDK, серверные команды и админ-инструменты (DevTools).

Интерфейс — 108 экранов

Все экраны в Gui/src/views. Ключевые: Auth (вход/регистрация/восстановление), CharacterSelect, Customization (создание внешности), SpawnSelect, Hud, Inventory, Smartphone/PDA, Bank, дилерский центр, тюнинг, магазины (оружие/одежда/маски/тату/парикмахерская/24-7), казино (рулетка/покер), донат-магазин, семьи/фракции, паспорт, мэрия, автошкола, рыбалка, крафт и т.д.

Скриншоты

Интерфейс живой — рендерится в браузере (в Gui/main.js встроен мок mp для разработки). Ниже — реальные снимки экранов из этого репозитория:

Вход Вход Выбор персонажа Выбор персонажа
Создание внешности Создание внешности Выбор точки спавна Спавн
Инвентарь Инвентарь Смартфон Смартфон
Банк Банк Автосалон Автосалон
Оружейный Оружейный магазин Магазин одежды Магазин одежды
Тату-салон Тату-салон Барбершоп Барбершоп
Рулетка Казино: рулетка Покер Казино: покер
Донат-магазин Донат-магазин Паспорт Паспорт
Мэрия Портал мэрии Автошкола Автошкола
Крафт Крафт Семья Меню семьи
Выбор языка Выбор языка HUD HUD

Полный набор — в docs/screenshots/.

Как запустить

Полная пошаговая инструкция (Linux + Windows + сервис локализации): INSTALL.md. Кратко:

  1. БД: развернуть две чистые базы из db/ (пошагово — db/README.md), затем settings.example.jsonsettings.json рядом с рантаймом RAGE:MP и заполнить строки подключения.
  2. Сервер: dotnet build dotnet/resources/Whistler.sln (netcoreapp3.1), ресурсы подключаются через meta.xml; конфиг сервера — conf.example.jsonconf.json (порт 22055, csharp enabled).
  3. GUI: cd Gui && npm i && npm run build → бандл кладётся в client_packages/gui (собранная версия уже в репозитории).
  4. Локализация: api/ — Node-сервис, раздаёт public/api/localize/{ru,en,ge}.json; адрес прошит в Gui/src/store/localization/index.js (apiURL).

Безопасность

Все реальные креды вычищены: строк подключения, паролей и токенов в репозитории нет (settings.json в .gitignore, вместо него — settings.example.json). Прод-домен локализации указывает на play.just-rp.com — замените на свой.


Проект законсервирован: последние правки — 2026-05-03. Хранится как основа/референс: архитектура слоёв, системы и интерфейс пригодны для reuse в новых проектах.


Powered by REDL.IO — AI Game Hosting · игровые серверы, VDS и ИИ-агент, который делает всё сам

S
Description
Whistler — первый гейммод JUST RP (RAGE:MP, C#/.NET Core 3.1 + Vue 2). Законсервирован, креды вычищены.
Readme
2.2 GiB
Languages
JavaScript 75.9%
C# 15.2%
Vue 8.8%