JR DOCS/JR System Racing
BASE DE CONOCIMIENTO OFICIAL

JR System Racing

Guías de instalación, configuración y soporte para los recursos de JR Shops.

← VOLVER A DOCUMENTATION
ILLEGAL RACING · JR SHOPS

JR System Racing

Guía completa del ecosistema de carreras ilegales, tablet, pistas, competiciones y crews.

DOCUMENTACIÓN COMPLETA
DOC IDJR-RC-02VERSION / LATEST
01 · OVERVIEW

JR System Racing

A complete illegal racing system for FiveM servers running QBCore. It includes an interactive tablet, custom track creation, quick races, scheduled competitions, time trials, NPC opponents, ELO rankings, seasons, crews, and administration tools.

Most actions are performed directly from the tablet, so players and administrators do not need to learn a long list of commands.

Main features

  • NUI tablet with simple navigation and a design optimized for FiveM.
  • Custom tracks with checkpoints, a finish line, and decorative objects.
  • Quick races with lobbies, entry fees, laps, and ghost mode.
  • Scheduled competitions with registration, prizes, and cancellation refunds.
  • Global ELO ranking.
  • Seasons, rewards, badges, and police heat.
  • Time trials with best-time records.
  • Races against NPC opponents with several difficulty levels.
  • Crew system with members, ELO, and team statistics.
  • Street, Creator, and Administrator access profiles.
  • Optional police alerts and Discord logs.
  • Server-side validation and economy handling.

02
BEFORE YOU START

Requirements

Before installing the resource, make sure your server has the following:

ResourceStatusPurpose
qb-coreRequiredFramework used by the racing system.
oxmysqlRequiredDatabase connection and storage.
JR_BridgeRequiredShared compatibility for inventory, money, permissions, notifications, and dispatch.
Compatible inventoryRequired for the itemStores and allows players to use the racing tablet.
03
INSTALLATION

Step 1: Install the resource

Copy the folder named JR_System_Racing into your server's resources directory.

Do not rename the folder. Keeping the original name makes installation, updates, and support easier.

Step 2: Import the database

Import the following file into your server database:

JR_System_Racing/sql/install.sql

The resource also checks its database schema on startup to make future updates easier. However, install.sql remains the recommended method for a clean installation.

Step 3: Add the tablet item

The default item name is racing_tablet. Add it to the QBCore shared items file or to the item configuration used by your inventory.

QBCore example:

['racing_tablet'] = {
    name = 'racing_tablet',
    label = 'Racing Tablet',
    weight = 1000,
    type = 'item',
    image = 'racing_tablet.png',
    unique = false,
    useable = true,
    shouldClose = true,
    description = 'Access to the underground racing network.'
},

If your inventory displays item images, add an image using the configured file name. If you change the item name, use the same value in Config.TabletItem.

Step 4: Start order

All dependencies must start before JR System Racing. The recommended order is:

ensure oxmysql
ensure qb-core
ensure your_inventory
ensure JR_Bridge
ensure JR_System_Racing

Replace your_inventory with the actual name of your inventory resource.

Step 5: Check the startup

Restart the server and check the console. JR System Racing prints a startup summary containing the detected framework, inventory, database, currency, dispatch, JR Bridge status, and installed version.

If the console displays SQL schema: Ready, the main database structure was checked successfully.


04
CONFIGURATION · USAGE · INTEGRATIONS

Essential configuration

All public configuration options are located in:

JR_System_Racing/config.lua

Tablet

Config.TabletItem = 'racing_tablet'
Config.OpenCommand = 'racingtablet'
  • TabletItem: item required to open the tablet.
  • OpenCommand: command used to open it. The default command is /racingtablet.

The animation and the prop held by the player can be adjusted in Config.TabletAnimation.

Administrators

The resource can recognize administrators through QBCore groups, ACE permissions, or CitizenID and license allowlists.

Config.AdminGroups = {
    admin = true,
    god = true
}

Config.AdminAcePermission = 'illegalracing.admin'
Config.AdminCitizenIds = {}
Config.AdminLicenses = {}
Config.AdminIdentifiers = {}

Only configure the methods you actually need. Never publish real player identifiers or private information in shared files.

If an administrator does not receive full access, run /racingadmincheck to see how their permission is being detected.

Racing currency

JR System Racing can charge players through a QBCore money account or an inventory item.

Money account:

Config.CurrencyType = 'account'
Config.Currency = 'black_money'

Inventory item:

Config.CurrencyType = 'item'
Config.CurrencyItem = 'markedbills'

Make sure the selected account or item exists on your server. Crews can use a separate economy configuration inside Config.Crews.

Competitions

Config.Competitions.Enabled = true
Config.Competitions.AutoGenerate = false

With AutoGenerate = false, only competitions created from the Panel will exist. This is the recommended setting when the staff wants to control every event manually.

Only enable automatic generation when you want the system to create competitions using the times configured in Config.Competitions.Times.

Optional systems

The main optional systems can be adjusted through their own configuration blocks:

  • Config.NPCRaces: NPC opponents, entry fee, difficulty, and AI racing line.
  • Config.Seasons: seasons and rewards.
  • Config.Heat: police heat and bribes.
  • Config.Crews: creation cost, currency, and member limit.
  • Config.TimeTrial: time trial mode.
  • Config.GhostMode: races without collisions.
  • Config.PoliceAlert: police alerts and the jobs that receive them.
  • Config.DiscordLogs: logs sent to Discord.

Do not leave Config.Debug enabled on a public server. Use it only while testing or diagnosing a problem.


Tablet permissions

JR System Racing includes three access levels:

ProfileAvailable sectionsRecommended use
Street (Calle)Home, Races, Map, Ranking, and ProfileRegular players.
Creator (Creador)Adds Tracks and PanelAuthorized organizers who can create and manage races.
AdministratorFull accessStaff with QBCore or ACE permissions.

Only a real administrator can assign, edit, or remove tablet access from the Panel.

To grant access:

  1. Open the tablet as an administrator.
  2. Open Panel.
  3. Find the tablet permissions section.
  4. Enter the player's online ID, CitizenID, or license.
  5. Select Calle or Creador.
  6. Keep access enabled and press Guardar acceso.

Permissions are stored in the database and are also validated by the server.


Usage

Opening the tablet

Players can use the racing_tablet item or run:

/racingtablet

The tablet can also be purchased from the organizer NPC when Config.Organizer.Enabled is enabled.

Creating a track

The Creator or Administrator profile is required.

  1. Open Panel and go to the tracks section.
  2. Enter the name, location, and player limits.
  3. Start recording mode.
  4. Place the checkpoints in the correct order.
  5. Place the finish line and return to the tablet.
  6. Review the settings and save the track.

Default controls while recording:

KeyAction
EPlace a checkpoint.
GPlace the finish line.
HPlace a decorative object.
Up/down arrowsChange the gate width.
Left/right arrowsRotate the gate.
Page Up / Page DownAdjust the checkpoint radius.
ALTChange the selected object.
BackspaceDelete the last point.
Shift + BackspaceDelete the last decorative object.
EnterReturn to the tablet.

Vehicles must cross the line formed by the two objects of each gate. Use gates that are wide enough and avoid placing them in areas blocked by obstacles.

Creating a quick race

  1. Open Pistas.
  2. Select a saved track.
  3. Choose the option to create a quick race.
  4. Configure the entry fee, laps, player limit, and collision mode.
  5. Other drivers can join through Carreras.
  6. The host starts the race when everyone is ready.

Quick races remain in memory while their lobby or race is active.

Creating a competition

Authorized creators and administrators can schedule a competition from a saved track.

  1. Select the track.
  2. Choose the date, time, entry fee, and prize.
  3. Set the minimum and maximum number of drivers.
  4. Save the competition.

Administrators have access to the Competiciones section, while creators manage their own events from the Panel. When a registration has been processed and the event is cancelled correctly, the server handles the payment refund.

Time trials

Open Pistas and select Contrarreloj on an available track. This mode does not charge an entry fee or modify ELO. It records the best completion times for the leaderboard.

Races against NPCs

A track needs a valid AI racing line before Vs NPC becomes available:

  1. An administrator opens the saved track.
  2. Select Grabar trazada IA.
  3. Enter a vehicle and move to the first checkpoint.
  4. Press E and drive one clean lap along the ideal route.
  5. The racing line is validated and saved when the vehicle crosses the finish line.

Once the track displays IA optimizada, players can select a difficulty and number of opponents. Changing the checkpoints or finish line invalidates the recording, so the AI racing line must be recorded again.

Crews and profile

The resource includes crews with a code or TAG, members, statistics, and a team leaderboard. In the current tablet layout, the complete crews section is part of administrator access.

Every player can use Perfil to review their ELO, wins, history, badges, heat, and public name. Some actions, such as changing the public name, can have a configurable cost.


Integrations

JR Bridge

JR_Bridge centralizes shared operations with QBCore and external resources, including players, inventory, money, permissions, notifications, logs, and dispatch. It must start before JR System Racing.

Do not duplicate these integrations inside the racing resource. When changing to a compatible inventory or external system, configure the relevant provider through JR Bridge first.

Police alerts

Config.PoliceAlert controls the dispatch provider, base alert chance, and police jobs that receive notifications.

Config.PoliceAlert = {
    enabled = true,
    chance = 35,
    dispatch = 'origen',
    jobs = {
        police = true,
        sheriff = true
    }
}

The participants' heat can increase the final alert chance. Administrators can run /racingpolicetest to test the integration without starting multiple races.

Discord

Discord webhooks are optional. You can use one general webhook or configure separate webhooks for each category inside Config.DiscordLogs.Webhooks.

Never share a config.lua file containing real webhook URLs. Use /jrwebhooktest as an administrator, or jrwebhooktest from the server console, to test the configuration.


Commands

CommandAccessPurpose
/racingtabletPlayers with a tabletOpens the racing tablet.
/racingcloseEveryoneCloses the tablet and releases NUI focus.
/racingadmincheckAdministratorDisplays how the administrator permission was resolved.
/racingpolicetestAdministratorSends a test police alert.
/jrwebhooktestAdministrator or consoleTests the Discord webhook configuration.

Some command names can be changed in config.lua. The NPC testing command is intended for development and balancing, not normal server use.


05
TROUBLESHOOTING · SUPPORT

Common issues

The tablet does not open

  • Make sure JR_Bridge, qb-core, and oxmysql start before the resource.
  • Check that the inventory item name matches Config.TabletItem.
  • Review F8 and the server console for errors.
  • Run /racingclose and reopen the tablet if NUI focus became stuck.

An administrator does not have full access

  • Check Config.AdminGroups and the ACE permissions.
  • Make sure the player's actual group matches the configured group.
  • Run /racingadmincheck and review the result on screen and in the console.
  • Avoid adding personal identifiers when the QBCore group or ACE permission already works correctly.

“You do not have enough money” appears

The account selected in Config.Currency must exist in your QBCore setup. If your server represents dirty money as an item, use Config.CurrencyType = 'item' and configure Config.CurrencyItem.

Deleted competitions return

Keep this setting disabled:

Config.Competitions.AutoGenerate = false

When automatic generation is enabled, the system can recreate competitions using the configured schedule.

The “Vs NPC” button is disabled

The track does not have a valid AI racing line, or the track was modified after recording it. Select Grabar trazada IA or Regrabar trazada IA and complete one clean lap.

Police alerts are not received

  • Make sure Config.PoliceAlert.enabled is enabled.
  • Check the provider name selected in dispatch.
  • Make sure the configured job names match your QBCore jobs.
  • Check that police officers are on duty when required by the integration.
  • Run /racingpolicetest to get a direct test result.

Discord logs do not appear

  • Enable Config.DiscordLogs.Enabled.
  • Configure either a general webhook or a webhook for the required category.
  • Make sure the webhook URL is still valid.
  • Run /jrwebhooktest and review the server console.

Database-related error

  • Make sure oxmysql starts before JR System Racing.
  • Import sql/install.sql into the correct database.
  • Restart the resource and review the startup summary.
  • Do not delete tables containing player data to update the resource. Create a backup and apply only safe migrations.

Support

When requesting support, include:

  • JR System Racing version.
  • JR Bridge version.
  • QBCore version and inventory resource.
  • Complete server console or F8 error.
  • Exact steps required to reproduce the problem.

Never send passwords, tokens, webhooks, private licenses, or complete files containing credentials.

JR SHOPS SUPPORT

¿Necesitas ayuda con la instalación?

Abre un ticket e incluye las versiones, el error completo y los pasos para reproducirlo. No compartas contraseñas, tokens ni webhooks.

ABRIR SOPORTE ↗
🎃 ESPECIAL HALLOWEEN 20% EN TU PRIMERA COMPRA

Descubre tu próximo sistema para FiveM y estrénalo con un descuento especial.

CÓDIGOHALLOWEEN20
VER SCRIPTS →