La tablet de carreras#
Todo lo que hace un piloto fuera del coche ocurre en la tablet: F10 o el ítem tablet la abren, ESC la cierra. En la barra superior hay cuatro páginas, y el avatar de la esquina abre el perfil del piloto.
Página | Qué hay |
|---|---|
Home | Una bienvenida con la última competición del piloto, la posición que alcanzó y su puntuación, y los 30 eventos más recientes: nuevos circuitos, nuevas competiciones y ganadores. |
Tracks | Todos los circuitos del servidor, filtrables por All, Favorite o Verified y con búsqueda por nombre. Create crea uno nuevo; cada tarjeta abre el circuito o una New Race en él. |
Races | Las próximas carreras con su hora de inicio, bote de premios, inscripción, clase y organizador, y las últimas 100 competiciones completadas con su podio y resultados completos. |
Leaderboard | Los 20 mejores pilotos por ranking de competición, con su etiqueta, carreras, competiciones y posición media. |
Profile | El nombre del piloto, el enlace del avatar, la etiqueta y dos colores: el color de los checkpoints que se ve en el mundo y el color GPS de los blips de los checkpoints. Blanco, rojo, verde, azul, violeta o naranja. |
Los nombres admiten hasta 20 caracteres. Un piloto nuevo empieza con el nombre de pila de su personaje, la etiqueta
newbiey una puntuación de 0. El avatar es un enlace a una imagen.
Crear un circuito#
Cualquier jugador puede crear un circuito. Se dibuja conduciéndolo: colocas cada checkpoint desde dentro del coche, donde está el coche, y los props se colocan por pares, uno a cada lado, como las barreras de neumáticos o las banderas que bordean una carretera.
Abre el creador
Tracks → Create. Elige Sprint (de A a B) o Circuit (vueltas) y pulsa Turn On Track Creation Mode. El panel Creator con sus teclas aparece a la derecha de la pantalla.
Recorre la ruta
Cierra la tablet y sube a un vehículo: el creador solo funciona desde dentro de uno. Conduce hasta la línea de salida y coloca ahí el checkpoint 1; después sigue la ruta colocando un checkpoint en cada curva y props donde quieras. Dos props transparentes muestran dónde caerá el siguiente par.
Ponle nombre y guarda
Vuelve a abrir la tablet, rellena Track Name, Track Description y, si quieres, Image Link (un enlace directo a una imagen, que se muestra en la tarjeta del mapa). Pulsa Create Track. El circuito aparece en la lista y en los eventos recientes.
Tecla | Acción |
|---|---|
E | Coloca un checkpoint donde está el vehículo. Los checkpoints se numeran en el orden en que los colocas. |
ENTER | Coloca un par de props, uno a la izquierda y otro a la derecha del vehículo. |
↑ ↓ | Aleja o acerca los props del vehículo, entre 1 y 20 metros. Mantén pulsado para seguir moviéndolos. |
← → | Gira los props. Mantén pulsado para seguir girándolos. |
L ALT | Cambia al siguiente prop de la lista: una pila de neumáticos y un mástil con bandera por defecto. |
L CTRL | Elimina un prop colocado. Colócate a menos de 3 metros de él; lo indica encima. |
DELETE | Elimina el checkpoint más cercano a ti. |
Un circuito se acepta cuando tiene nombre, descripción, al menos un checkpoint y al menos un prop, y su primer y último checkpoint están a más de 10 metros. Los checkpoints deben estar a 5 metros entre sí, y los props también. Delete Points and Objects borra todo lo colocado hasta el momento.
En un circuito, termina la ruta un poco antes de la línea de salida en lugar de encima: el último checkpoint debe estar al menos a 10 metros del checkpoint 1. Cada vuelta se cierra volviendo a pasar por el checkpoint 1.
La página del circuito#
Track Information en una tarjeta abre el circuito: su número de puntos y objetos, su tipo, cuántas veces se ha corrido, el porcentaje de pilotos que terminaron y sus Best Times: el tiempo de competición más rápido de cada piloto en él, con su vehículo y clase. Los botones de la esquina:
Botón | Acción |
|---|---|
Play | Crea una carrera en este circuito. |
Bandera | Pone un punto de ruta en la línea de salida. |
Mapa | Muestra todos los checkpoints en tu mapa durante 20 segundos. No está disponible mientras estás en una carrera. |
Papelera | Elimina el circuito. Se muestra al piloto que lo creó. |
La estrella de una tarjeta añade el circuito a los favoritos del piloto. El tick marca un circuito verificado: solo los administradores pueden ponerlo o quitarlo, y solo los circuitos verificados pueden albergar competiciones.
Carreras normales#
Una carrera rápida en cualquier circuito, verificado o no. New Race en la tarjeta de un circuito, Race Type Normal:
Campo | Significado |
|---|---|
Required Classes | La clase que debe tener un vehículo para participar: X, S, A, B, C o D. None admite cualquier vehículo. |
Lap Amount | 0 recorre los checkpoints una vez, de principio a fin. 1 o más vuelve a pasar por el checkpoint 1 ese número de veces. |
Time Until Start | Segundos hasta la salida, hasta 60. La inscripción se cierra en la salida. |
DNF Timer After Winner | Segundos que tienen los demás para terminar una vez que el primer piloto cruza la meta. |
Buy-In | Lo que paga cada piloto por participar. Con 0 es gratis, y no se paga nada. Consulta Pagos. |
Las carreras normales no se guardan: un reinicio elimina las que no se han corrido. Cambian la puntuación de un piloto, pero no su ranking de competición, y sus resultados no se guardan en los mejores tiempos del circuito.
Una carrera por circuito a la vez. Mientras una carrera en un circuito no haya terminado, una segunda en el mismo circuito se rechaza con Track is already in use.
Competiciones#
Las competiciones son las carreras clasificatorias. Solo se corren en circuitos verificados, se guardan para sobrevivir a un reinicio, registran el resultado de cada piloto y mueven el ranking de competición que ordena la clasificación.
El tipo de carrera Competition aparece para los pilotos cuya puntuación es al menos Config.CompetitionCreationMinElo (1250), y siempre para los administradores. Al elegirlo se abren dos partes:
Parte | Qué configuras ahí |
|---|---|
Race Settings | Total Prize (se muestra como bote de premios), Buy-In, Start Time (una hora del día, de hoy) y Required Classes. El temporizador DNF es |
Competition Series | Las competiciones ya programadas y, debajo, todos los circuitos verificados que siguen libres. Haz clic en un circuito para añadirlo a la serie: una competición por circuito, todas con los ajustes de arriba. El lápiz configura sus vueltas (un sprint empieza en 0 y un circuito en 1); la papelera lo quita. |
Create Race programa toda la serie de una vez. Cada competición recibe su blip, aparece en Races → Organized Competitions y se anuncia en los eventos recientes.
La papelera de una fila de Organized Competitions la cancela. Solo puede hacerlo su organizador o un administrador, y no en los últimos 5 segundos antes de la salida.
Resultados#
Races → Completed Races muestra las últimas 100 competiciones con su podio, organizador, cuántos pilotos participaron y qué porcentaje terminó. Haz clic en el podio para ver la hoja de resultados: posición, piloto y etiqueta, tiempo final y diferencia con el ganador, vehículo y clase, cambio de puntuación y dinero ganado. Un piloto que no terminó aparece como DNF.
Unirse a una carrera#
Cada próxima carrera tiene un blip de bandera amarilla en su línea de salida. Pasa el cursor por encima en el menú de pausa para ver su tarjeta: la imagen del circuito, el temporizador DNF, el organizador, si es una competición, la inscripción, la clase de vehículo y la descripción.
Conduce a menos de 30 metros de la línea de salida en un vehículo y los detalles de la carrera aparecen flotando sobre ella (nombre, tipo, checkpoints, vueltas, el tiempo que falta para la salida, inscripción y clase) junto con el aviso para unirte.
Regla | Detalle |
|---|---|
Unirse | Pulsa E. La inscripción se cobra de |
Clase de vehículo | La clase del vehículo debe ser exactamente la de la carrera, salvo que la carrera indique None. Una clase superior no cuenta. |
Puntuación mínima | Las competiciones automáticas pueden exigirla. Por debajo, no puedes unirte. |
Espera | Una vez dentro, el coche queda retenido en la línea hasta la salida: solo se mueve la cámara. |
Salir | Pulsa E de nuevo antes de la salida. Se te devuelve la inscripción. |
Pilotos | Sin límite. |
El día de la carrera#
A la hora de salida se cierra la inscripción y todos los pilotos en la línea pasan por la misma apertura:
El título
La pantalla se funde, la cámara se eleva sobre la parrilla y el nombre y la descripción del circuito llenan la pantalla durante cinco segundos.
La presentación de pilotos
La cámara vuela a cada coche por turnos, empezando por la puntuación más alta, con una tarjeta del piloto: avatar, nombre, etiqueta y puntuación. Cada plano se elige al azar de
Config.CameraAnimations.Tu coche
Un breve movimiento de cámara alrededor de tu propio coche te devuelve al volante.
La cuenta atrás
3, 2, 1, GO — el coche se libera y aparece el HUD de la carrera.
Dónde | Qué hay |
|---|---|
Arriba a la izquierda | Tu posición respecto al total de participantes y el orden de todos los pilotos. Las posiciones se calculan por vuelta, luego por checkpoint y después por distancia al siguiente checkpoint. |
Arriba a la derecha | El progreso en porcentaje, el tiempo de carrera, los checkpoints superados sobre el total y el temporizador DNF cuando está en marcha. |
La carretera | El siguiente checkpoint en tu color de checkpoint, con su flecha apuntando al siguiente, y una bandera a cuadros en el último. Conduce a menos de |
El mapa | Blips numerados en cada checkpoint con tu color GPS y un punto de ruta en el siguiente. |
Con Config.Ghost activado, los coches de los corredores se atraviesan entre sí. Con Config.NoNpc activado, se elimina el tráfico alrededor de cada corredor. Las pilas de neumáticos se iluminan cuando pasas junto a ellas.
La llegada#
Cruzar el último checkpoint termina tu carrera con tu tiempo, y con tu mejor vuelta en un circuito. A todos los corredores se les avisa de quién terminó y en qué puesto. Desde la primera llegada, el temporizador DNF cuenta hacia atrás para el resto; quien no haya terminado cuando llegue a cero queda eliminado y aparece como DNF.
La carrera se cierra cuando todos los pilotos han terminado o abandonado. Se actualizan las puntuaciones, se guardan los resultados de la competición y, cinco segundos después, se eliminan los checkpoints, los props y el blip.
Pagos#
Solo se paga dinero cuando la carrera tiene inscripción, en Config.MoneyType, en el momento en que un piloto termina. Lo que recibe cada puesto depende de cuántos pilotos participaron y es un porcentaje de el importe de la inscripción:
Pilotos | 1.º | 2.º | 3.º |
|---|---|---|---|
1 o 2 | 100% | — | — |
3 | 70% | 30% | — |
4 o más | 60% | 30% | 10% |
Los porcentajes para tres y para cuatro o más pilotos son Config.Splits. El Total Prize de una competición es la cifra que se muestra como su bote de premios; lo que se paga se calcula a partir de su inscripción. En Quasar Inventory, una llegada con premio también cuenta para la misión Race Winner.
-- [position] = share of the buy-in
Config.Splits = {
three = { [1] = 0.7, [2] = 0.3 }, -- exactly 3 drivers
more = { [1] = 0.6, [2] = 0.3, [3] = 0.1 } -- 4 drivers or more
}Puntuaciones y clasificación#
Cada piloto tiene dos números. Ambos cambian solo en carreras con al menos dos pilotos.
Número | Cambia con | Se usa para |
|---|---|---|
Puntuación (ELO) | Cada carrera, normal o de competición. | La etiqueta del piloto, el derecho a organizar competiciones, las competiciones con puntuación mínima y el orden de la presentación de pilotos. |
Ranking | Solo las competiciones. | La clasificación. |
Ambos se calculan igual. Cada piloto se compara con todos los demás: terminar por delante suma puntos, terminar por detrás los resta, y ganar a un piloto con más puntuación que tú vale más que ganar a uno con menos. Además se añade una bonificación por la posición final. El ganador gana como máximo 30 y el último pierde como máximo 20. Un piloto eliminado o que abandonó después de la salida cuenta como último. Los nuevos números llegan a la tablet en cuanto se cierra la carrera.
La etiqueta depende de la puntuación, según Config.Tags:
-- [minimum rating] = tag. Keep the [0] entry: it is every new driver's tag.
Config.Tags = {
[0] = 'newbie',
[500] = 'rookie',
[1000] = 'experienced',
[2000] = 'veteran',
[3000] = 'expert',
[6000] = 'master',
[20000] = 'legend',
[50000] = 'god',
}La página Leaderboard muestra los 20 mejores pilotos por ranking (solo los que tienen un ranking superior a 0), así que se llena cuando se han corrido competiciones.
Competiciones automáticas#
El servidor puede organizar competiciones por sí solo, para que siempre haya algo que correr. Cada entrada de Config.AutomatedCompetitions es una competición que se crea al arrancar, se corre y se vuelve a crear cinco segundos después de cerrarse. Las organiza el piloto Automated, cuyo nombre y avatar son Config.AutomatedUser.
Config.AutomatedCompetitions = {
{
id = 1, -- a unique number per entry
tracks = nil, -- nil: a random verified track that is free
minElo = 100, -- rating needed to join (0 = anyone)
startTime = 'every18', -- a key of Config.PredefinedTimes
vehicle_class = 1, -- 1 = any vehicle, see Vehicle classes below
prize = 50000, -- shown as the prize pool
buy_in = 10000, -- paid to enter; leave it out and it equals the prize
laps = 0 -- 0 = once through, 1 or more = laps
},
}startTime indica una entrada de Config.PredefinedTimes. Un número son los segundos desde el momento en que se crea la competición. Una tabla es una hora del día: la competición se programa a esa hora del día siguiente.
Config.PredefinedTimes = {
['2min'] = 120, -- 2 minutes after it is created
['5min'] = 300, -- 5 minutes after it is created
['every18'] = { year = date.year, month = date.month, day = date.day, hour = 18, min = 0, sec = 0 },
['every20'] = { year = date.year, month = date.month, day = date.day, hour = 20, min = 0, sec = 0 },
}Las entradas con hora del día se cuentan desde la fecha en que se inició el servidor, así que dependen de un reinicio diario, como ya hacen la mayoría de servidores. Si no hay ningún circuito verificado libre, el servidor lo vuelve a intentar cada minuto hasta que haya uno.
La configuración#
Todo lo siguiente está en shared/config.lua salvo que se indique lo contrario. Reinicia el recurso después de un cambio.
Idioma y framework
Config.Locale = 'en' -- any file name from locales/: en, es, fr, de, pt, it, ...El framework se detecta y no necesita ajuste. Una clave que falte en tu idioma usa el inglés, con un aviso en la consola que la indica.
Comportamiento de las carreras
Config.Ghost = true -- racers' cars pass through each other
Config.NoNpc = true -- clear traffic around racers
Config.CheckpointSize = 10.0 -- checkpoint size, and how close you must drive to pass it
Config.DefaultBlipImage = 'https://...' -- picture on the map card of tracks without one
Config.DnfTimer = 120 -- competitions: seconds to finish after the winnerClases de vehículos
Config.VehicleClasses asigna a cada clase de vehículo de GTA una clase de carreras. Los números de clase son los de Enums.VehicleClasses: 1 None, 2 X, 3 S, 4 A, 5 B, 6 C, 7 D. Tal como viene:
Clase de carreras | Clases de GTA |
|---|---|
X (2) | Super (7), Helicopters (15), Planes (16) |
S (3) | Sports Classics (5), Sports (6), Motorcycles (8), Boats (14) |
A (4) | SUVs (2), Muscle (4) |
B (5) | Coupes (3) |
C (6) | Sedans (1), Off-road (9), Service (17), Emergency (18), Military (19), Commercial (20), Trains (21) |
D (7) | Compacts (0), Industrial (10), Utility (11), Vans (12), Cycles (13) |
Config.VehicleClasses = {
[0] = 7, -- Compacts → D
[7] = 2, -- Super → X
-- ...
[22] = 2, -- add this line for open-wheel cars, which the list does not include
}Cámara de introducción
Config.CameraAnimations es el conjunto de planos para la presentación de pilotos; cada piloto recibe uno al azar. Un plano se mueve de una posición alrededor del coche a otra, a una distancia en metros, mientras el campo de visión cambia de fovFrom a fovTo.
{ distance = 4.0, fovFrom = 20.0, fovTo = 35.0, from = 'front-middle', to = 'front-left' },Posiciones: front-left, front-middle, front-right, back-left, back-middle, back-right, left, right, top-left, top-middle, top-right, center y las cuatro diagonales front-left-diagonal, front-right-diagonal, back-left-diagonal, back-right-diagonal.
Creador de circuitos
Config.Creator.objectDistance = 3.0 -- starting distance of the props from the car
Config.Creator.minObjectDistance = 1.0
Config.Creator.maxObjectDistance = 20.0
-- The props L ALT cycles through
Config.Creator.objects = {
joaat('prop_offroad_tyres02'),
joaat('stt_prop_flagpole_2e')
}
-- Props that flare when a racer drives past
Config.Creator.particledObjects = {
[joaat('prop_offroad_tyres02')] = true,
}Config.Creator.keys contiene las teclas como números de control de GTA. justPress = true actúa una vez por pulsación, false se repite mientras se mantiene pulsada.
Config.Creator.keys = {
objectPlace = { justPress = true, keys = 176 }, -- ENTER
pointPlace = { justPress = true, keys = 38 }, -- E
increaseObjectDistance = { justPress = false, keys = 172 }, -- Arrow up
decreaseObjectDistance = { justPress = false, keys = 173 }, -- Arrow down
turnLeftObjectRotation = { justPress = false, keys = 174 }, -- Arrow left
turnRightObjectRotation = { justPress = false, keys = 175 }, -- Arrow right
changeObject = { justPress = true, keys = 19 }, -- L ALT
deleteObject = { justPress = true, keys = 36 }, -- L CTRL
deleteCheckpoint = { justPress = true, keys = 178 }, -- DELETE
}Dinero, la tablet y competiciones
Config.MoneyType = 'money' -- account buy-ins are taken from and prizes paid into
Config.TabletItem = 'tablet' -- usable item that opens the tablet; nil to disable
Config.AccessTabletWithKey = 'F10' -- default key; nil to disable
Config.CompetitionCreationMinElo = 1250 -- rating needed to see the Competition race typeEn QBCore y Qbox, money significa la cuenta cash; bank funciona en todos los frameworks.
Formato de moneda
Cómo se escriben los importes en la tablet, usando el formato numérico del navegador:
Config.IntlSettings = {
locale = 'en-US',
options = { style = 'currency', currency = 'USD' }
}
-- Euros, German style: 1.234 €
-- Config.IntlSettings = { locale = 'de-DE', options = { style = 'currency', currency = 'EUR' } }Eventos recientes
Los textos que se escriben en las novedades de Home. %s es el nombre del circuito.
Config.RecentEvents = {
winner = 'Competition winner on track: %s',
create_track = 'Created a new track: %s',
create_competition = 'Created a new competition: %s'
}La línea "Competitions every day at 19:00" de Home es la clave de idioma dashboard.competition_date: cámbiala en tu archivo de idioma para que coincida con tu propio horario.
Nombres y colores (enums.lua)
shared/enums.lua contiene los nombres de los tipos de circuito (Sprint, Circuit), los tipos de carrera (Normal, Competition) y las clases de vehículos, y el valor RGB de cada color de checkpoint. Cambia los valores, nunca los números entre corchetes: los circuitos, las carreras y los perfiles se guardan con esos números.
Enums.CheckpointColors = {
[0] = { r = 255, g = 255, b = 255 }, -- White
[1] = { r = 255, g = 0, b = 0 }, -- Red
[2] = { r = 0, g = 255, b = 0 }, -- Green
[3] = { r = 0, g = 0, b = 255 }, -- Blue
[7] = { r = 127, g = 0, b = 255 }, -- Violet
[17] = { r = 255, g = 165, b = 0 } -- Orange
}Depuración
Config.Debug = true -- console logs and the /race_cams test command; false on a live server
Config.DebugSkipCamera = false -- skip the opening and the countdown, for testing tracks


