Antes de empezar#
Antes de instalar Advanced Racing, asegúrate de que tu servidor cumple los requisitos mínimos. Tres cosas son obligatorias; el resto es opcional y se detecta solo cuando está en ejecución.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Acceso a la base de datos para circuitos, competiciones, resultados y perfiles. |
| Obligatorio | Callbacks, notificaciones y funciones auxiliares compartidas. |
Framework | Obligatorio | ESX, QBCore o Qbox — se detecta automáticamente. Paga las inscripciones y los premios, pone nombre a los pilotos y decide quién es administrador. |
| Opcional | Añade dos misiones: Race Entry y Race Winner. |
| Opcional | La app Racing: carreras, circuitos, la clasificación y unirse a una carrera desde el teléfono. |
El framework se encuentra buscando su recurso entre los ya iniciados, y cada uno lo atiende un pequeño bridge de código abierto:
Framework | Recurso que busca | Bridge |
|---|---|---|
ESX |
|
|
QBCore |
|
|
Qbox |
|
|
Descargar Advanced Racing#
Después de comprar Advanced Racing, el recurso se vincula automáticamente a tu cuenta del CFX Portal.
Inicia sesión en el CFX Portal con la misma cuenta que usaste al finalizar la compra, abre Granted Assets y descarga Advanced Racing.
Después de extraer la descarga, deberías tener la siguiente carpeta:
qs-advancedracing/
├── shared/
│ ├── config.lua -- what you may edit: every setting
│ └── enums.lua -- names of track types, race types and classes
├── custom/ -- framework bridges, notifications and quests (open source)
├── locales/ -- 28 translations
├── client/ -- the race, the track creator and the map cards
├── server/ -- races, results, ratings and the database
├── html/ -- the tablet and the race HUD
├── race.sql -- the database tables
└── fxmanifest.luaMantén el nombre de la carpeta
qs-advancedracing. La app Racing del teléfono y las llamadasexports['qs-advancedracing']de otros scripts la buscan por ese nombre.
Instalar el recurso#
Mueve la carpeta qs-advancedracing al directorio de recursos de tu servidor. Puede estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
└── qs-advancedracing/Después abre tu server.cfg y asegúrate de que todas las dependencias se inicien antes:
ensure oxmysql
ensure ox_lib
# Framework — only the one you use
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Optional
# ensure qs-inventory
# ensure qs-smartphone
ensure qs-advancedracingEl orden de carga importa. El framework solo se detecta si ya está iniciado cuando se inicia Advanced Racing. Si no se encuentra, el recurso se detiene al arrancar con un error de framework; consulta Errores comunes.
La base de datos#
Advanced Racing guarda todo en seis tablas. Importa race.sql una vez, antes del primer inicio, con HeidiSQL, phpMyAdmin o cualquier cliente de MySQL / MariaDB.
Tabla | Contiene |
|---|---|
| Un perfil de carreras por personaje: nombre, avatar, puntuación, ranking, etiqueta y colores, además del organizador Automated que usa el servidor para sus propias competiciones. |
| Cada circuito: sus checkpoints, props, imagen, tipo y si está verificado. |
| Cada competición, programada o pasada. |
| El resultado de cada piloto en una competición: tiempo, vehículo, clase, posición, cambio de puntuación y dinero. |
| Los circuitos que cada jugador marcó como favoritos. |
| Las novedades de la página Home de la tablet: nuevos circuitos, nuevas competiciones y ganadores. |
El archivo solo crea lo que falta (
CREATE TABLE IF NOT EXISTS,ADD COLUMN IF NOT EXISTS), así que importarlo de nuevo después de una actualización es seguro y conserva todos los circuitos, resultados y perfiles. Esas últimas líneas usan sintaxis de MariaDB; en MySQL 8 consulta Unknown column 'image'.
No hace falta registrar a nadie a mano. El perfil de un piloto se crea la primera vez que abre la tablet o se une a una carrera, con el nombre de pila de su personaje.
El ítem de la tablet#
La tablet de carreras se abre de dos formas: con F10 (Config.AccessTabletWithKey), que no necesita nada más, y usando el ítem indicado en Config.TabletItem — tablet por defecto. El script hace que ese ítem se pueda usar, pero no lo crea: tiene que existir en la lista de ítems de tu inventario.
Ejecuta esto una vez en tu base de datos:
INSERT INTO `items` (`name`, `label`, `weight`) VALUES ('tablet', 'Tablet', 1);Añádelo a qb-core/shared/items.lua:
tablet = { name = 'tablet', label = 'Tablet', weight = 500, type = 'item', image = 'tablet.png', unique = false, useable = true, shouldClose = true, description = 'A racing tablet' },Añádelo a ox_inventory/data/items.lua:
['tablet'] = {
label = 'Tablet',
weight = 500,
stack = false,
close = true,
},Añádelo a qs-inventory/shared/items.lua:
['tablet'] = {
name = 'tablet',
label = 'Tablet',
weight = 500,
type = 'item',
image = 'tablet.png',
unique = false,
useable = true,
shouldClose = true,
description = 'A racing tablet'
},¿Ya tienes un ítem tablet que usa otro script? Apunta Config.TabletItem a otro nombre. Ponlo en nil para abrir la tablet solo con la tecla, o pon Config.AccessTabletWithKey en nil para abrirla solo con el ítem.
Acceso de administrador#
Los administradores verifican circuitos (lo que hace que un circuito esté disponible para competiciones), pueden eliminar cualquier carrera y siempre pueden organizar competiciones, sea cual sea su puntuación. No hay nada que configurar: el rango de administrador se lee de tu framework.
Framework | Cuenta como administrador |
|---|---|
ESX | Grupo |
QBCore · Qbox | Permiso |
La comprobación es framework:playerIsAdmin en custom/esx/server.lua o custom/qb/server.lua. Ambos son de código abierto: cámbiala ahí para usar tu propia lista de staff o ace.
Configurar el recurso#
Todos los ajustes están en archivos de código abierto. Los cambios se aplican tras reiniciar el recurso.
Archivo | Contenido |
|---|---|
| El idioma, las puntuaciones y etiquetas, el comportamiento de las carreras, las clases de vehículos, la cámara de introducción, las teclas y props del creador, el dinero, la tablet, los pagos, el formato de moneda, los textos de eventos recientes, la depuración y las competiciones automáticas. |
| Los nombres de los tipos de circuito, tipos de carrera y clases de vehículos, y los colores de los checkpoints. |
| Todos los textos que leen los jugadores, un archivo por idioma. |
| Bridges de framework, notificaciones y las misiones del inventario. |
Los valores que conviene revisar primero:
Config.Locale = 'en' -- a file name from locales/
Config.MoneyType = 'money' -- money, bank or black_money
Config.TabletItem = 'tablet' -- nil to disable the item
Config.AccessTabletWithKey = 'F10' -- nil to disable the key
Config.CompetitionCreationMinElo = 1250 -- rating needed to organise competitions
Config.DnfTimer = 120 -- seconds left to finish after the winner (competitions)
Config.Debug = true -- set to false on a live server
Config.Debugviene comotrue. Desactívalo en un servidor en producción: muestra cada evento de carrera en la consola y registra el comando de prueba/race_cams. La referencia completa está en Uso → La configuración.
Verificar la instalación#
Reinicia tu servidor y lee la consola. Un inicio correcto muestra el framework elegido y el resultado de la comprobación de versión:
[INFO] Successfully loaded the framework. esx
You are using the latest version of qs-advancedracing!Si existe una versión más reciente, la segunda línea lo indica y enumera los cambios. Después entra en tu servidor y recorre el primer ciclo:
Abre la tablet
Pulsa F10 o usa el ítem de la tablet. Home te saluda con el nombre de tu personaje y muestra los eventos recientes.
Crea un circuito
Tracks → Create. Activa Track Creation Mode, cierra la tablet, sube a un coche y recorre la ruta: E coloca un checkpoint, ENTER un par de props. Vuelve a abrir la tablet, ponle nombre y pulsa Create Track.
Haz una carrera
En la tarjeta del circuito pulsa New Race, dale 60 segundos y un temporizador de DNF, y créala. Conduce hasta la línea de salida (el blip está en tu mapa) y pulsa E para unirte. La introducción, la cuenta atrás y la carrera siguen por sí solas.
Las competiciones necesitan un circuito verificado. Como administrador, haz clic en el tick de la tarjeta de un circuito para verificarlo; consulta Uso → Competiciones.



