How ragemp-pro/redage_v3 works
Purpose and Runtime
RedAge/NeptuneEvo is a full RAGE:MP GTA V role-play gamemode. It runs as a packaged RAGE:MP server with a .NET Core 3.1 authoritative game resource, JavaScript client scripts, and an embedded Chromium (CEF) Svelte UI. Server launch/runtime artifacts include ragemp-server.exe, conf.json, dotnet/settings.xml, and dotnet/resources/NeptuneEvo/meta.xml.
Entry Points and Composition
The game server loads the NeptuneEvo resource, whose C# entry point is dotnet/resources/NeptuneEvo/Main.cs, built through dotnet/resources/NeptuneEvo/NeptuneEvo.csproj within dotnet/resources/NeptuneEvo.sln. Client-side RAGE:MP scripts enter through src_client/index.js / src_client/main.js; deployed client package wiring is client_packages/index.js and client_packages/main.js. The browser UI starts at src_cef/src/main.js and src_cef/src/App.svelte, compiled into client_packages/interface/build/bundle.js.
Server Authority and Lifecycle
The C# resource owns game state, player lifecycle, validation, and persistence. Connection/session flow is centered on dotnet/resources/NeptuneEvo/Players/Connect/Events.cs, dotnet/resources/NeptuneEvo/Players/Session/Repository.cs, and account/character flows under dotnet/resources/NeptuneEvo/Accounts/Autorization/Events.cs and dotnet/resources/NeptuneEvo/Character/Load/Events.cs. Gameplay modules expose RAGE:MP events/repositories; clients and CEF are presentation/input layers rather than authorities.
Domain Systems
Major stateful domains are organized by bounded folders:
• Economy, donations, banking, casino: dotnet/resources/NeptuneEvo/MoneySystem/Bank.cs, dotnet/resources/NeptuneEvo/MoneySystem/Donations.cs, dotnet/resources/NeptuneEvo/NewCasino/Roulette/Roullete.cs.
• Social/property organizations: dotnet/resources/NeptuneEvo/Businesses/Repository.cs, dotnet/resources/NeptuneEvo/Houses/HouseManager.cs, dotnet/resources/NeptuneEvo/Fractions/Manager.cs.
• Player-owned state and interaction: dotnet/resources/NeptuneEvo/Chars/Repository.cs, dotnet/resources/NeptuneEvo/Inventory/Drop/Repository.cs, dotnet/resources/NeptuneEvo/Players/Phone/Repository.cs.
• Jobs, quests, and timed/world events: dotnet/resources/NeptuneEvo/Jobs/WorkManager.cs, dotnet/resources/NeptuneEvo/Quests/qMain.cs, dotnet/resources/NeptuneEvo/Events/AirDrop/Events.cs.
Client and CEF Boundary
src_client translates engine events into local GTA behavior—camera, vehicles, sync, world rendering—and invokes CEF/UI and server events. Key integration points are src_client/utils/cef.js, src_client/synchronization/index.js, and src_client/player/auth.js. The Svelte CEF app routes views and maintains browser-side state via src_cef/src/router/index.js, src_cef/src/store/server.js, and the RAGE bridge src_cef/src/api/rage.js. UI encompasses auth/character creation, HUD/phone, inventory/menu, businesses, factions, and casino; e.g. src_cef/src/views/player/newauthentication/index.svelte, src_cef/src/views/player/hudevo/index.svelte.
Persistence, Settings, and Services
MySQL-backed models/configuration reside in dotnet/resources/NeptuneEvo/Database/ConnectionInfo.cs and dotnet/resources/NeptuneEvo/Database/Models/Repository.cs; initial schemas are database/main.sql, database/mainconfig.sql, and database/mainlogs.sql. Runtime economy/server settings are file-driven under settings/, notably settings/serverSettings.json and settings/moneySettings.json. Redis supports transient workflows such as email confirmation (dotnet/resources/NeptuneEvo/Utils/Redis/Repository.cs), while Google Analytics integration exists in dotnet/resources/NeptuneEvo/Utils/Analytics/GoogleAnalyticsHelper.cs.
Assets and Deployment Shape
GTA client resources are shipped in client_packages/game_resources/; the compiled UI is under client_packages/interface/. Source UI and client code are separate from deployed package outputs, so changes generally require rebuilding and copying/bundling into client_packages. Shared gameplay data is duplicated or mirrored as JSON for server/client/UI consumption, including json/itemsInfo.js, src_cef/src/json/itemsInfo.js, and dotnet/vehicleData.json.
Main entry points: Main.cs NeptuneEvo Resource · Events.cs Account & Character · index.js Client Entry · main.js Svelte UI
Components 20
RAGE:MP Runtime
- RAGE:MP Server · Hosts the packaged NeptuneEvo resource.
ragemp-server.exe
Authoritative Server
- NeptuneEvo Resource · Authoritative game composition and lifecycle entry point.
dotnet/resources/NeptuneEvo/Main.cs - Connection & Session · Establishes connections and player sessions.
dotnet/resources/NeptuneEvo/Players/Connect/Events.cs - Account & Character · Authenticates accounts and loads characters.
dotnet/resources/NeptuneEvo/Accounts/Autorization/Events.cs - Gameplay Domains · Economy, property, factions, inventory, phone, jobs, quests, and world events.
dotnet/resources/NeptuneEvo/MoneySystem/Bank.cs - MySQL Models · Database connection and model repositories.
dotnet/resources/NeptuneEvo/Database/Models/Repository.cs - Redis Workflows · Supports transient flows such as email confirmation.
dotnet/resources/NeptuneEvo/Utils/Redis/Repository.cs
Client Scripts
- Client Entry · Receives engine events and initializes local client behavior.
src_client/index.js - Local Sync & World · Handles synchronization, local GTA behavior, and rendering.
src_client/synchronization/index.js - Client Auth · Coordinates player authentication presentation.
src_client/player/auth.js - CEF Bridge · Invokes browser UI and bridges CEF events.
src_client/utils/cef.js
CEF Svelte UI
- Svelte UI · Browser-side UI application root.
src_cef/src/main.js - Views & Router · Routes auth, HUD, phone, inventory, organization, and casino views.
src_cef/src/router/index.js - UI Server State · Maintains browser-side state received from the game.
src_cef/src/store/server.js - RAGE Browser API · Sends UI actions through the RAGE bridge.
src_cef/src/api/rage.js
Data & Deployment
- Deployed Client Package · Runtime wiring for deployed JavaScript client scripts.
client_packages/index.js - Compiled UI Bundle · Built Svelte UI loaded by the deployed client package.
client_packages/interface/build/bundle.js - Server Settings · File-driven economy and server settings.
settings/serverSettings.json - MySQL Schema · Initial game database schema.
database/main.sql - Game Resources · Shipped GTA client resources.
Connections 25
- RAGE:MP Server → NeptuneEvo Resource: loads
- NeptuneEvo Resource → Connection & Session: handles lifecycle
- Connection & Session → Account & Character: starts login
- Account & Character → Gameplay Domains: loads player state
- NeptuneEvo Resource → Gameplay Domains: authoritative events
- Connection & Session → MySQL Models: persists sessions
- Account & Character → MySQL Models: reads accounts and characters
- Gameplay Domains → MySQL Models: persists game state
- Account & Character → Redis Workflows: uses transient workflows
- MySQL Schema → MySQL Models: defines storage
- Server Settings → NeptuneEvo Resource: configures
- Client Entry → Local Sync & World: initializes
- Client Entry → Client Auth: initializes
- Local Sync & World → CEF Bridge: opens and updates UI
- Client Auth → CEF Bridge: drives auth UI
- CEF Bridge → Svelte UI: loads and messages
- Svelte UI → Views & Router: renders routes
- Svelte UI → UI Server State: maintains state
- Views & Router → RAGE Browser API: submits UI actions
- RAGE Browser API → CEF Bridge: browser events
- Client Entry → NeptuneEvo Resource: RAGE:MP events · Clients are presentation and input layers; server validates actions.
- Deployed Client Package → Client Entry: packages source runtime
- Deployed Client Package → Compiled UI Bundle: loads
- Compiled UI Bundle → Svelte UI: built from
- Game Resources → Deployed Client Package: ships alongside