Skip to content

Configuración

Todas las opciones de Cuxial PvP explicadas: reglas, límites, mapas, armas, Gun Game y zonas.

Todo lo que puedes ajustar está en la carpeta data. Reinicia el recurso después de cualquier cambio.

ArchivoQué contiene
data/config.luaComportamiento general, comandos, límites, integraciones
data/settings.luaCantidad de chaleco y las horas de día y noche
data/modes.luaQué modalidades están abiertas y su mínimo de jugadores
data/maps.luaArenas de duelo
data/weapons.luaArmas de duelo
data/gungame.luaEscalera y tiempos de Gun Game
data/gungame_zones.luaZonas de Gun Game, escritas por la herramienta de zonas

General ​

data/config.lua
lua
return {
    debug = false,
    weatherSystem = 'av',
    exitCoords = vector4(0.0, 0.0, 72.0, 0.0),
    -- ...
}
OpciónTipoPor defectoQué hace
debugbooleanfalsetrue imprime trazas en la consola.
weatherSystemstring'av'Script con el que se congela la hora del día durante la partida. 'av' = av_weather, 'cd' = cd_easytime.
exitCoordsvector4ejemploAdónde van los jugadores al acabar una partida. Cámbialo por un lugar de tu mapa.
zoneToolAcestring'cuxialpvp.zones'Permiso ACE necesario para guardar una zona dibujada con la herramienta de zonas.

Comandos · commands ​

OpciónTipoPor defectoQué hace
openMenustring'Cuxiall'Comando que abre el menú. Es también la entrada a la que los jugadores asignan una tecla.
exitDuelstring'exitduel'Comando para salir de la partida actual.
createZonestring'pvpzone'Comando que abre la herramienta de zonas.

Pared de la zona · boundary ​

La pared que marca el borde de una zona de Gun Game.

OpciónTipoPor defectoQué hace
nearnumber15.0Distancia en metros al borde a partir de la cual se ve la pared.
risenumber9.0Altura de la pared por encima del jugador, en metros, en zonas guardadas sin techo.
dropnumber2.5Profundidad de la pared por debajo del jugador, en metros, en zonas guardadas sin suelo.

Valores de respaldo · defaults ​

Los aplica el servidor cuando un duelo se crea sin un valor válido.

OpciónTipoPor defectoQué hace
gameTypestring'rounds'Tipo de juego. 'rounds' (rondas) o 'time' (tiempo).
roundsnumber3Rondas necesarias para ganar.
timeMinutesnumber5Duración de un duelo por tiempo, en minutos.
dayTimestring'day'Hora del día. 'day' (día) o 'night' (noche).

Límites · limits ​

OpciónTipoPor defectoQué hace
maxTeamSizenumber30Máximo de jugadores por equipo en un duelo.
maxRoundsnumber99Máximo de rondas que puede pedir un anfitrión.
maxTimeMinutesnumber60Duración máxima de un duelo por tiempo, en minutos.
maxLobbiesnumber50Máximo de salas abiertas en todo el servidor.
maxLobbiesPerHostnumber1Salas que puede tener abiertas un mismo jugador.
createCooldownMsnumber3000Milisegundos que espera un jugador antes de crear otra sala.

Fotos de Discord · discord ​

OpciónTipoPor defectoQué hace
botTokenstring''Token de bot de Discord con el que se cargan la foto real, el banner y el color de acento de cada jugador. Vacío = se muestra el avatar por defecto de Discord.

El bot no necesita permisos ni estar en ningún servidor de Discord.

Un token de bot es una contraseña. No compartas nunca data/config.lua con el token dentro, y regenera el token en el portal de desarrolladores de Discord si el archivo sale de tus manos.

Revivir · revive ​

Cómo devuelve el script la vida a un jugador entre rondas y al acabar una partida.

OpciónTipoPor defectoQué hace
enabledbooleantruetrue lanza los eventos de abajo. false no lanza ninguno.
eventsstring[]dos ejemplosEventos de cliente de tu script de ambulancia que reviven al jugador. Deja solo el que use tu servidor.
delaynumber500Milisegundos de espera antes de revivir al acabar una partida.

Clasificación · leaderboard ​

OpciónTipoPor defectoQué hace
clearOnRestartbooleanfalsetrue borra la clasificación cada vez que arranca el recurso.
maxEntriesnumber30Jugadores que muestra cada clasificación.

Ajustes de partida · data/settings.lua ​

OpciónTipoPor defectoQué hace
armor.armorValuenumber100Chaleco que se da cuando la partida se juega con chaleco. De 0 a 100.
dayTime.hours.daynumber12Hora del reloj en una partida de día.
dayTime.hours.nightnumber0Hora del reloj en una partida de noche.

Modalidades · data/modes.lua ​

Un bloque por modalidad: duel y gungame.

OpciónTipoPor defectoQué hace
availablebooleantruefalse rechaza la creación de salas de esa modalidad.
minPerTeamnumber1Duelos. Jugadores necesarios en cada equipo para empezar.
minPlayersnumber2Gun Game. Jugadores necesarios para empezar.
lateJoinbooleantrueGun Game. true permite entrar en una partida ya empezada.
spectatebooleantruetrue lista las partidas de la modalidad como partidas en vivo y permite verlas como espectador.

Mapas de duelo · data/maps.lua ​

Cada entrada es una arena. Las incluidas son ejemplos: sustitúyelas por arenas de tu servidor.

data/maps.lua
lua
{
    value = 'warehouse',
    label = 'Almacén',
    spectatorSpawn = vector4(0.0, 0.0, 80.0, 0.0),
    coords = {
        team1 = {
            vector4(10.0, 0.0, 72.0, 90.0),
            vector4(10.0, 2.0, 72.0, 90.0),
        },
        team2 = {
            vector4(-10.0, 0.0, 72.0, 270.0),
            vector4(-10.0, 2.0, 72.0, 270.0),
        },
    },
},
CampoTipoQué hace
valuestringIdentificador único del mapa. También es el nombre de su imagen.
labelstringNombre que se muestra en el menú.
spectatorSpawnvector4Dónde se coloca a los espectadores. Sin él se usa el primer punto del equipo 1.
coords.team1, coords.team2vector4[]Puntos de aparición de cada equipo. Con más jugadores que puntos, los puntos se reutilizan en orden.

La imagen de un mapa es web/build/maps/<value>.png.

Armas de duelo · data/weapons.lua ​

data/weapons.lua
lua
return {
    { value = 'WEAPON_PISTOL',       label = 'Pistola',           roll = false },
    { value = 'WEAPON_COMBATPISTOL', label = 'Pistola de combate', roll = false },
}
CampoTipoQué hace
valuestringNombre del arma. Debe existir en tu servidor.
labelstringNombre que se muestra en el menú.
rollbooleantrue hace que el arma solo se pueda elegir cuando el anfitrión activa la opción de rola de la sala.

La imagen de un arma es web/build/weapons/<value>.png.

Gun Game · data/gungame.lua ​

OpciónTipoPor defectoQué hace
killsPerWeaponnumber3Bajas necesarias para subir un peldaño.
ladderstring[]12 armasArmas en orden, de la primera a la última, sin el remate. El anfitrión elige cuántas se juegan; la lista se recorta por el final.
finisherstring'WEAPON_MACHETE'Última arma de todas las partidas, sea cual sea la longitud de la escalera.
respawnSecondsnumber5Segundos que espera un jugador muerto antes de reaparecer.
spawnProtectSecondsnumber3Segundos de invulnerabilidad al aparecer. Disparar la termina.
outOfBoundsSecondsnumber6Segundos que un jugador puede estar fuera de la zona antes de que se le devuelva dentro.
boundsCheckMsnumber1000Milisegundos entre comprobaciones de quién está fuera de la zona. Más bajo es más preciso y cuesta más.

Con ox_inventory en marcha, las armas de la escalera toman de él su nombre y su icono.

Zonas de Gun Game · data/gungame_zones.lua ​

Este archivo lo escribe la herramienta de zonas. Dibuja las zonas dentro del juego con /pvpzone gungame <nombre>; consulta Comandos y permisos.

La herramienta de zonas reescribe el archivo entero cada vez que se guarda una zona. Edítalo a mano solo para quitar o renombrar una zona, y respeta el formato.

CampoTipoQué hace
valuestringIdentificador, creado a partir del nombre: gg_ más el nombre en minúsculas. También es el nombre de su imagen.
labelstringNombre que se muestra en el menú.
pointsvector2[]Esquinas de la zona, tres o más.
minZ, maxZnumberSuelo y techo de la zona.

La imagen de una zona es web/build/zones/<value>.webp. Una zona sin imagen muestra su nombre y un icono.

Banners de jugador ​

La ficha de reaparición de Gun Game muestra un banner detrás del nombre de quien te mató. Para dar uno propio a un jugador, añade una imagen con su ID de Discord como nombre:

web/build/banners/123456789012345678.webp

Con un token de bot configurado, el banner de Discord del jugador tiene prioridad.

Cambios habituales ​

Abrir solo los duelos ​

data/modes.lua
lua
gungame = {
    id = 'gungame',
    available = false,
    -- ...
},

Gun Game más corto y rápido ​

data/gungame.lua
lua
killsPerWeapon = 2,
respawnSeconds = 3,

Renombrar los comandos ​

data/config.lua
lua
commands = {
    openMenu = 'pvp',
    exitDuel = 'salirpvp',
    createZone = 'pvpzone',
},

Usar cd_easytime y tu propio evento de revivir ​

data/config.lua
lua
weatherSystem = 'cd',

revive = {
    enabled = true,
    events = { 'esx_ambulancejob:revive' },
    delay = 500,
},

© Cuxial