# FiveRP An open **FiveM roleplay base** — account registration, login and character identity, written by an AI agent on a live server, on camera, and free for anyone to take and build on. > 🇷🇺 Русская версия — ниже / Russian version below. Not a framework fork: `fiverp-auth`, `fiverp-characters` and `fiverp-loadscreen` are written for this server. No ESX, no QBCore. The only things that come from outside are the stock Cfx resources (`mapmanager`, `chat`, `spawnmanager`, `sessionmanager`, `hardcap`) and `oxmysql` — the installer fetches both, so this repository stays small and readable. ## What it does today - **Two-step registration** — account first (email, username, password), identity second (first and last name, issued once, printed onto a passport). - **Login** that returns you to your resident, with the character loaded from the database. - **Loading screen** with real progress from the game's own streaming events. - **Passwords hashed with scrypt**, per-password salt, stored as `scrypt$salt$hash`. The client never decides anything: registration, login and spawning are all server side. - **`basic-gamemode` is deliberately off** — it force-respawns on map start, which would drop a player into the world behind the auth screen. `fiverp-auth` owns spawning instead. | Loading | Sign in | Register | Identity | |---|---|---|---| | ![Loading](docs/screens/loading.png) | ![Sign in](docs/screens/signin.png) | ![Register](docs/screens/register.png) | ![Identity](docs/screens/identity.png) | The whole interface follows one design system — a light, glassy theme on **Unbounded**, with the city visible behind the panels. Every colour, radius and font is a token; the rules are in [`docs/DESIGN.md`](docs/DESIGN.md), and the fonts ship with the resources (a NUI page has no guaranteed internet). ## Install Ubuntu 22.04 / 24.04 or Debian 12, and a free server key from [keymaster.fivem.net](https://keymaster.fivem.net). ```sh git clone https://github.com/RedlHosting/redl-fivem-rp.git cd redl-fivem-rp sudo sh install.sh --licence cfxk_your_key_here ``` The installer fetches the recommended FXServer build, clones `cfx-server-data`, installs `oxmysql`, sets up MariaDB with the schema and a generated password, copies the FiveRP resources in, writes `server.cfg`, adds a boot entry and waits until the server has registered with Cfx. Then connect to `:30120`. Options: `--dir`, `--hostname`, `--port`, `--name` (a second server on the same box), `--db-name`, `--db-user`, `--db-pass`, `--build`, `--no-start`. Run `sh install.sh --help`. Day to day: ```sh service fiverp start|stop|restart|status # systemd boxes: systemctl ... rcon status # command into the live console tail -f /opt/fivem/logs/server.log ``` ## Layout resources/[local]/fiverp-auth registration and login (NUI + scrypt + oxmysql) resources/[local]/fiverp-characters identity, character load and spawn resources/[local]/fiverp-loadscreen loading screen sql/schema.sql accounts, characters server.cfg.example main config bin/ keep-alive supervisor, rcon, init script docs/DESIGN.md the design system every screen follows ## What's not built yet Everything after the spawn: chat, HUD, inventory, money, jobs, vehicles. The `characters` table already carries model, appearance, position and heading, so gameplay has somewhere to write. Issues and pull requests welcome — this is meant to be used, not admired. ## How it was made Built on a [REDL](https://redl.io) VDS, where an AI agent lives on the server itself with root access. The task is given in plain words, the agent writes the code, fixes its own mistakes and restarts the service. The whole process is recorded — including the parts where it broke. ## Licence MIT for the FiveRP code. `cfx-server-data` and `oxmysql` keep their own licences; Unbounded is under the SIL Open Font License. --- # FiveRP (RU) Открытая **ролевая база для FiveM** — регистрация аккаунта, вход и личность персонажа, написанные ИИ-агентом на живом сервере, в кадре, и выложенные бесплатно для всех. Это не форк фреймворка: `fiverp-auth`, `fiverp-characters` и `fiverp-loadscreen` написаны под этот сервер. Никакого ESX и QBCore. Извне берутся только штатные ресурсы Cfx (`mapmanager`, `chat`, `spawnmanager`, `sessionmanager`, `hardcap`) и `oxmysql` — установщик скачивает их сам, поэтому репозиторий остаётся маленьким и читаемым. ## Что уже работает - **Регистрация в два шага** — сначала аккаунт (почта, логин, пароль), потом личность (имя и фамилия, выдаются один раз и печатаются на паспорте). - **Вход**, который возвращает к своему персонажу — данные поднимаются из базы. - **Загрузочный экран** с настоящим прогрессом из событий стриминга игры. - **Пароли на scrypt**, соль на каждый пароль, хранение в виде `scrypt$соль$хеш`. Клиент ничего не решает: регистрация, вход и спавн — на сервере. - **`basic-gamemode` намеренно выключен** — он делает принудительный респавн при старте карты и выбрасывал бы игрока в мир за экраном авторизации. Спавном занимается `fiverp-auth`. Весь интерфейс живёт по одной дизайн-системе — светлая «стеклянная» тема на шрифте **Unbounded**, город виден за панелями. Каждый цвет, радиус и шрифт — токен; правила в [`docs/DESIGN.md`](docs/DESIGN.md), шрифты лежат внутри ресурсов (у страницы NUI нет гарантированного интернета). ## Установка Ubuntu 22.04 / 24.04 или Debian 12 и бесплатный ключ сервера с [keymaster.fivem.net](https://keymaster.fivem.net). ```sh git clone https://github.com/RedlHosting/redl-fivem-rp.git cd redl-fivem-rp sudo sh install.sh --licence cfxk_ваш_ключ ``` Установщик скачает рекомендованную сборку FXServer, склонирует `cfx-server-data`, поставит `oxmysql`, поднимет MariaDB со схемой и сгенерированным паролем, положит ресурсы FiveRP, напишет `server.cfg`, пропишет автозапуск и дождётся регистрации сервера в Cfx. Дальше — `connect <ваш ip>:30120`. Параметры: `--dir`, `--hostname`, `--port`, `--name` (второй сервер на той же машине), `--db-name`, `--db-user`, `--db-pass`, `--build`, `--no-start`. Список — `sh install.sh --help`. Повседневное: ```sh service fiverp start|stop|restart|status # на машинах с systemd — systemctl ... rcon status # команда в живую консоль tail -f /opt/fivem/logs/server.log ``` ## Что где лежит resources/[local]/fiverp-auth регистрация и вход (NUI + scrypt + oxmysql) resources/[local]/fiverp-characters личность, загрузка персонажа и спавн resources/[local]/fiverp-loadscreen загрузочный экран sql/schema.sql accounts, characters server.cfg.example основной конфиг bin/ супервизор, rcon, init-скрипт docs/DESIGN.md дизайн-система, по которой сделаны все экраны ## Чего ещё нет Всего, что после спавна: чат, HUD, инвентарь, деньги, работы, транспорт. В таблице `characters` уже есть модель, внешность, позиция и поворот — геймплею есть куда писать. Issues и pull request'ы приветствуются — это сделано, чтобы этим пользовались. ## Как это сделано Собрано на VDS [REDL](https://redl.io), где ИИ-агент живёт прямо на сервере с root-доступом. Задача ставится обычными словами, агент пишет код, чинит свои же ошибки и перезапускает сервис. Весь процесс записан — включая моменты, где всё ломалось. ## Лицензия MIT на код FiveRP. У `cfx-server-data` и `oxmysql` свои лицензии; Unbounded — под SIL Open Font License.