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 для разработки). Ниже — реальные снимки экранов из этого репозитория:
Полный набор — в docs/screenshots/.
Как запустить
Полная пошаговая инструкция (Linux + Windows + сервис локализации): INSTALL.md. Кратко:
- БД: развернуть две чистые базы из
db/(пошагово —db/README.md), затемsettings.example.json→settings.jsonрядом с рантаймом RAGE:MP и заполнить строки подключения. - Сервер:
dotnet build dotnet/resources/Whistler.sln(netcoreapp3.1), ресурсы подключаются черезmeta.xml; конфиг сервера —conf.example.json→conf.json(порт 22055, csharp enabled). - GUI:
cd Gui && npm i && npm run build→ бандл кладётся вclient_packages/gui(собранная версия уже в репозитории). - Локализация:
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 и ИИ-агент, который делает всё сам





















