Server Files
This commit is contained in:
@@ -1,2 +1,171 @@
|
||||
# YabosRageMPCore
|
||||
Everything you need to start your RageMP RP, DM or Freeroam server using performance friendly code + Rage-RPC
|
||||
<div align="center">
|
||||
|
||||
# 🔥 YabosRageMPCore
|
||||
|
||||
### A open-source **RAGE:MP** GTA V multiplayer server framework.
|
||||
|
||||
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||
[](https://rage.mp/)
|
||||
[](https://www.typescriptlang.org/)
|
||||
[](https://vuejs.org/)
|
||||
[](https://vitejs.dev/)
|
||||
|
||||
_A modern, scalable server boilerplate with a type-safe RPC system and a Hot-Module-Reloading CEF UI pipeline._
|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- **Type-safe RPC** across Server, Client, and CEF using [`@entityseven/rage-fw-rpc`](https://github.com/entityseven/rage-framework)
|
||||
- **Split architecture** — clean separation between server logic, client scripts, and UI
|
||||
- **Modern UI pipeline** — Vue 3 + Vite with Hot Module Replacement for rapid development
|
||||
- **Custom Chat UI** — in-game chat built in Vue with support for player, global, admin, system, and error messages
|
||||
- **Smart CEF routing** — automatically routes CEF to `localhost:3000` (dev) or the bundled package (production) via `settings.json`
|
||||
- **Zero boilerplate overhead** — only the code that matters
|
||||
|
||||
---
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
YabosRageMPCore/
|
||||
├── packages/
|
||||
│ └── core/ # Server-side logic (Node.js)
|
||||
│ └── index.js # Entry point: RPC handlers, player events
|
||||
│
|
||||
├── develop_client/ # Client-side TypeScript source
|
||||
│ └── src/
|
||||
│ └── index.ts # Compiled to client_packages/client.js
|
||||
│
|
||||
├── develop_cef/ # Vue 3 SPA for all in-game UI
|
||||
│ └── src/
|
||||
│ ├── App.vue
|
||||
│ └── components/
|
||||
│ └── Chat.vue # Custom chat system
|
||||
│
|
||||
├── client_packages/ # [BUILD OUTPUT] — loaded by RAGE:MP
|
||||
│ ├── index.js # Loader entrypoint
|
||||
│ ├── client.js # Compiled client bundle
|
||||
│ └── cef/ # Compiled Vue SPA
|
||||
│
|
||||
└── settings.json # Database, debug, and CEF environment config
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Node.js](https://nodejs.org/) >= 18.x
|
||||
- [RAGE:MP Server](https://rage.mp/)
|
||||
|
||||
### 1. Clone the repository
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yabooo666/YabosRageMPCore
|
||||
cd YabosRageMPCore
|
||||
```
|
||||
|
||||
### 2. Configure `settings.json`
|
||||
|
||||
```json
|
||||
{
|
||||
"mysql": {
|
||||
"host": "localhost",
|
||||
"port": 3306,
|
||||
"user": "root",
|
||||
"password": "",
|
||||
"database": "ragempcore"
|
||||
},
|
||||
"debugger": true,
|
||||
"cef": "dev"
|
||||
}
|
||||
```
|
||||
|
||||
> Set `"cef": "dev"` to use the Vite dev server, `"cef": "build"` to use the compiled bundle.
|
||||
|
||||
### 3. Install dependencies
|
||||
|
||||
```bash
|
||||
# Server core
|
||||
npm install
|
||||
|
||||
# Client script
|
||||
cd ../../develop_client && npm install
|
||||
|
||||
# CEF UI
|
||||
cd ../develop_cef && npm install
|
||||
```
|
||||
|
||||
### 4a. Development Mode (with HMR)
|
||||
|
||||
```bash
|
||||
# Terminal 1 — Watch & compile client script
|
||||
cd develop_client && npm run dev
|
||||
|
||||
# Terminal 2 — Start Vite dev server for CEF
|
||||
cd develop_cef && npm run dev
|
||||
```
|
||||
|
||||
### 4b. Production Mode
|
||||
|
||||
```bash
|
||||
# Compile client script
|
||||
cd develop_client && npm run build
|
||||
|
||||
# Compile CEF UI
|
||||
cd develop_cef && npm run build
|
||||
|
||||
# Start the RAGE:MP server
|
||||
./ragemp-server.exe
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔌 RPC Communication
|
||||
|
||||
Cross-environment communication is handled by [RageFW RPC](https://github.com/entityseven/rage-framework).
|
||||
|
||||
| From | To | Method |
|
||||
| ------ | ------ | ----------------------------------------- |
|
||||
| Server | Client | `rpc.callClient(player, 'event', [args])` |
|
||||
| Client | Server | `rpc.callServer('event', [args])` |
|
||||
| Client | CEF | `rpc.callBrowser('event', [args])` |
|
||||
| CEF | Client | `chatRpc.callClient('event', [args])` |
|
||||
|
||||
To register a handler:
|
||||
|
||||
```js
|
||||
rpc.register("my:event", (player, arg1) => {
|
||||
// handle it
|
||||
return true;
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is licensed under the **GNU General Public License v3.0**.
|
||||
See the [LICENSE](LICENSE) file for details.
|
||||
|
||||
```
|
||||
YabosRageMPCore — RAGE:MP Server Framework
|
||||
Copyright (C) 2025
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Made with ❤️ for the RAGE:MP community**
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user