Saltar al contenido
Toda la documentación

Faction

Facciones que creas por completo en el juego: cada facción es un job real con menú de jefe, garajes, almacenes, vestuario, ascensor, niveles, menú de acciones y sistema de gangwar. El script crea las tablas por sí mismo.

Requisitos
  • ESX Legacy (es_extended, probado con 1.14)
  • oxmysql
  • OneSync
  • Para el vestuario: skinchanger y esx_skin (o tus propias funciones en config/functions.lua)
  • Para el menú F6 y el menú de vehículos del gangwar: esxmenudefault (o tus propios menús mediante ClientActionMenu y ClientGangwarVehicleMenu)

Funciones

  • Creador (/fraktionen): crea facciones en el juego con rangos, sueldo, vehículos, lugares (marker o NPC), blips y acceso a partir de un rango.
  • Menú de jefe: gestionar miembros, caja con historial, comprar vehículos, permisos por rango, solicitudes y logs.
  • Solicitudes: los jugadores se postulan a facciones en los puntos de solicitud (NPC o marker del creador), la dirección acepta o rechaza en el menú de jefe.
  • GPS: los miembros se ven en el mapa, con un icono propio a pie, en coche, en moto o bicicleta, en barco, helicóptero o avión, nadando y al morir (activable por facción).
  • Vehículos de facción con estilo: prefijo de matrícula propio, pintura y xenón en el color de la facción, tuning máximo y lunas tintadas. Con llave para cerrar y abrir.
  • Garajes y almacenes: hasta 10 de cada uno por facción, acceso a partir de un rango.
  • Vestuario, ascensor (hasta 10 plantas) y niveles con XP (activables por facción).
  • Menú de acciones (F6): esposar, cachear, identificar, escoltar y acciones de vehículo, a elegir por facción.
  • Gangwar: crear zonas en el juego, modos Límite de tiempo y First Contact, dimensión propia, tienda y clasificación.
  • Logs de Discord para todas las áreas.

Instalación

  1. Pon la carpeta off_faction en resources.
  2. Añade en el server.cfg, después de oxmysql y ESX:
cfg
ensure oxmysql
ensure es_extended
ensure off_faction
  1. Abre /fraktionen, crea una facción y asigna la dirección con /setjob <ID> <name> <rango> (rango más alto = número de rangos − 1).
Nombres de job

El nombre de la facción es a la vez el nombre del job (2–20 caracteres, a–z, 0–9, _) y después ya no se puede cambiar. Si el job ya existe, no puedes crear la facción.

Configuración

config/settings/config.lua

OpciónPredeterminadoDescripción
serverInfo.name'OFF SCRIPTS'Nombre del servidor, se muestra en la interfaz en lugar de «OFF SCRIPTS»
serverInfo.locale'de'Idioma: de, en, pl, fr, es o it
serverInfo.color{ 155, 89, 255 }Color de la UI (RGB)
serverInfo.design3Diseño de la interfaz: 1 = Clásico, 2 = Ticket, 3 = Storefront
blurtrueFondo desenfocado mientras hay un menú abierto. El creador sigue nítido (vista previa)
creator.command'fraktionen'Comando del creador
creator.groups{ 'projektleitung' }Grupos con acceso al creador de facciones
creator.zoneGroups{ 'projektleitung' }Grupos con acceso al creador de zonas de gangwar
inviteSeconds60Segundos hasta que caduca una invitación
storeRange25.0Distancia máx. al guardar un vehículo (metros)
plateFormat'LLL NNN'Matrícula: L = letra, N = número, solo se aplica sin prefijo en el creador
applications.cooldown / maxOpen24 / 3Horas de bloqueo tras un rechazo, máx. solicitudes abiertas por jugador
gps.interval / scale2 / 0.8Segundos entre actualizaciones del GPS, tamaño de los blips
gps.showSelftruetrue = también ves tu propio blip de GPS
gps.typesver archivosprite y color por estado: foot, swim, car, bike, bicycle, boat, heli, plane, dead (por defecto blanco, muerto rojo)
vehicleKeys.enabled / key / rangetrue / 'U' / 10.0Sistema de llaves, tecla por defecto, alcance en metros
vehicleKeys.sharedfalsetrue = todos los miembros pueden cerrar y abrir los vehículos de facción sacados
bossLogs.days30Días que los logs se guardan en el menú de jefe
bossLogs.<área>true (acciones false)Qué áreas muestra la página de logs: members, money, garage, storage, wardrobe, gangwarShop, level, actions
levels.max / base / growth50 / 1000 / 1.15XP por nivel = base × growth ^ (Level − 1)
levels.tiers5 nivelesCon sistema de niveles: huecos de atuendos y kg de almacén a partir de un nivel
outfitSlots10Huecos de atuendos sin sistema de niveles
weaponWeight2.0Peso de un arma en el almacén
itemImagesimágenes de off_inventoryRuta de imagen para los items del almacén, %s = nombre del item
marker / blipsver archivoValores por defecto para lugares nuevos, ajustables por lugar en el creador. blips.enabled = false desactiva todos los blips

config/settings/config.gangwar.lua

OpciónPredeterminadoDescripción
times18:00 – 22:00Horas permitidas (hora del servidor), vacío = siempre
joinSeconds60First Contact: tiempo para unirse en el lobby. Límite de tiempo empieza al instante
respawnSeconds10Segundos hasta el respawn
lobbyRadius15.0Tamaño del lobby alrededor del spawn (metros)
players.min / max1 / 0Jugadores por bando (min solo First Contact, max = 0 = ilimitado)
killPoints3Límite de tiempo: puntos por kill
modes.<modo>.duration25 / 15Duración en minutos
cooldowns1 / 0 / 1Minutos: attack (pausa de la facción), zone (bloqueo de la zona), queue (hasta que caduca la cola), 0 = desactivado
rewardsver archivoPuntos de gangwar y XP para win, lose, draw y forfeit
weaponsdesactivadoenabled = true: solo estas armas en el gangwar, las tuyas vuelven después
vehicles / shopver archivoVehículos de los garajes de gangwar y artículos de la tienda

config/settings/config.actions.lua

OpciónPredeterminadoDescripción
command / key'fraktionsmenu' / 'F6'Comando (/off_faction:fraktionsmenu) y tecla por defecto del menú de acciones
reach3.0Lo cerca que debe estar delante de ti un jugador o vehículo (metros)
search.requireCuffedtrueSolo cachear a jugadores esposados
search.accounts{ 'money', 'black_money' }Cuentas que se pueden quitar al cachear
cuffedAnimsver archivoAnimaciones con las que ClientIsCuffed reconoce a los esposados
identifyver archivoTiempo de visualización y qué campos aparecen para jugador y vehículo
animationsver archivoAnimación y duración por acción

config/functions.lua

Aquí conectas tus propios scripts. Los errores en ellas llegan a la consola, el script sigue funcionando.

FunciónPara qué
Notify(message, type) / HelpNotify(text)Notificación y texto de ayuda · Servidor: Notify(source, message, type)
ClientGetFuel(vehicle) / ClientSetFuel(vehicle, fuel)Script de combustible
ClientVehicleRetrieved(vehicle, plate)Después de sacar un vehículo, p. ej. dar llaves
ClientVehicleStored(plate)Después de guardar un vehículo, p. ej. quitar llaves
ClientGetSkin() / ClientApplyOutfit(clothes) / ClientRestoreOutfit()Script de ropa para el vestuario
ClientActionMenu(title, actions, onSelect)Menú F6 (por defecto: menú ESX Default)
ClientIsCuffed()Comprobación de esposas al cachear (esposas y animaciones propias)
ClientCuffChanged(kind)Esposas propias puestas o quitadas, p. ej. bloquear el móvil
ClientGangwarDeath() / ClientGangwarRespawn()Muerte y respawn en el gangwar, p. ej. ocultar el script de ambulancia
ClientRestoreLoadout(loadout)Dar y devolver armas en el gangwar
ClientGangwarVehicleMenu(vehicles, onSelect)Menú de vehículos del garaje de gangwar
ClientGangwarVehicleSpawned(vehicle, plate)Vehículo de gangwar spawneado, p. ej. dar llaves
ServerLevelUp(faction, level)La facción sube de nivel
ServerVehicleBought(faction, model, plate)Vehículo comprado
ServerGangwarStarted(zone, attacker, defender)Empieza el gangwar
ServerGangwarEnded(zone, attacker, defender, outcome)Gangwar terminado (outcome desde el punto de vista del atacante)
ServerVehicleImpounded(source, plate)Vehículo llevado al depósito, p. ej. conectar otro script de garaje
ServerCuffedDisconnect(source, xPlayer, kind, reason)Un jugador esposado sale del servidor, p. ej. cárcel

config/settings/config.server.lua e idiomas

Webhooks de Discord por área (creator, members, money, garage, storage, wardrobe, level, gangwar, actions), url = '' desactiva un log. Todos los textos están en config/locales/ (un archivo por idioma).

En el juego

  • Creador (/fraktionen): crea una facción, coloca los lugares con Usar mi posición, ajusta markers, NPC y blips con Ajustar, y en Ajustes activa el sistema de niveles, el garaje, el almacén, el gangwar y las acciones del menú F6. Solo Guardar aplica todo. Arriba cambias a Solicitudes y Zonas de Gangwar.
  • Ajustar NPC: elige un modelo de una lista con imágenes de todos los peds de GTA (búsqueda y categorías), además del escenario y la orientación, todo con vista previa en directo en el juego. Un ped addon lo eliges escribiendo el nombre exacto del modelo en la búsqueda.
  • Estilo de vehículo (Creador → Vehículos): prefijo de matrícula de hasta 5 caracteres, p. ej. BALLA da BALLA 48. Si cambia el prefijo, al guardar todos los vehículos de la facción reciben una matrícula nueva y los vehículos sacados se eliminan. Además: pintura en el color de la facción, tuning máximo, lunas tintadas y xenón en el color de la facción.
  • GPS (Creador → Ajustes): los miembros se ven entre sí en el mapa. El icono cambia según el estado, los colores e iconos están en gps.types. El blip solo muestra la orientación a pie y nadando, los iconos de vehículos siempre están rectos.
  • Llaves: quien saca un vehículo de facción puede cerrarlo y abrirlo con U (se puede cambiar en los controles de FiveM). Con vehicleKeys.shared = true pueden hacerlo todos los miembros.
  • Solicitudes: los puntos de solicitud los creas en el creador en Solicitudes (hasta 20), como NPC o marker y, si quieres, con blip para todos los jugadores. Sirven para todas las facciones. En el punto, E abre la lista de todas las facciones que aceptan solicitudes, allí envías un texto. Tu propia facción no aparece en la lista. Los miembros con el permiso Invitar miembros reciben un mensaje y ven la solicitud en el menú de jefe en Miembros → Solicitudes. Allí también se pueden cerrar las solicitudes. Aceptar funciona aunque el jugador esté desconectado.
  • Registros (menú de jefe, botón inferior): todo lo que pasa en la facción, p. ej. ingresos y retiradas, vehículos sacados, guardados o comprados, almacén, vestuario, miembros, solicitudes, tienda de gangwar y nivel. Los ataques de gangwar no aparecen ahí. Visible para la dirección y los rangos con el permiso Ver registros.
  • Lugares: en el menú de jefe, garaje, almacén, vestuario y ascensor, E abre el menú.
  • Menú de acciones (F6): actúa sobre el jugador o vehículo que tienes justo delante.
  • Esposas duras: solo mirar alrededor. Esposas suaves: andar, pero no correr, saltar ni atacar. Volver a seleccionarlas las quita.
  • Cachear: solo a jugadores esposados, solo puedes quitar.
  • Escoltar: llevar delante de ti a un jugador esposado. Meter en vehículo / Sacar del vehículo para esposados.
  • Vehículo: lavar, reparar, llevar al depósito (los vehículos privados acaban en el depósito de off_garage) e identificar. X cancela.
  • Gangwar: en el punto de gangwar, E abre el menú. Una facción pone una zona en cola, otra acepta. Te unes con E en el punto de gangwar.
  • Límite de tiempo: empieza al instante, puntos por kill, respawn, te puedes unir hasta el final.
  • First Contact: tiempo para unirse en el lobby, luego una vida por jugador.

Para desarrolladores

lua
exports.off_faction:AddXP('vagos', 250)
exports.off_faction:SetLevel('vagos', 5, 0)
local level, xp, needXp = exports.off_faction:GetLevel('vagos')
local faction = exports.off_faction:GetFaction('vagos')
local list = exports.off_faction:GetFactions()
local isFaction = exports.off_faction:IsFaction('vagos')
local name, grade = exports.off_faction:GetPlayerFaction(source)
local allowed = exports.off_faction:HasPermission(source, 'withdraw')
exports.off_faction:AddBalance('vagos', 5000, 'Recompensa')
exports.off_faction:RemoveBalance('vagos', 5000, 'Strafe')
  • Todos los exports son del lado del servidor.
  • Evento de servidor off_faction:levelUp con (faction, level) al subir de nivel.
  • Statebags: offGangwar (ID de la zona en el gangwar), offCuffed ('hard', 'soft' o false), offEscorted (ID de servidor de quien escolta).

Problemas frecuentes

Al arrancar, el script muestra errores y avisos en la consola del servidor.

ProblemaSolución
«Ya existe un trabajo de ESX con este nombre»Elige otro nombre, los jobs existentes no se reutilizan.
Nadie ve el marker o el NPCSolo los miembros ven los lugares. Coloca la posición y guarda, revisa el rango mínimo.
El vestuario no pone ropaInicia skinchanger/esx_skin o ajusta las funciones de ropa.
F6 no abre ningún menúActiva una acción en Ajustes, inicia esxmenudefault.
Falta un vehículo en el garajeEn el creador, en Garajes, asígnalo al garaje. Los vehículos sin garaje están en todos los garajes. Si tiene precio, la dirección primero tiene que comprar el vehículo en el menú de jefe.
El GPS no muestra a nadieEn el creador, en Ajustes, activa GPS. Solo muestra a los miembros conectados.
U no cierraSolo quien sacó el vehículo, o todos con vehicleKeys.shared = true. Revisa la tecla en los controles de FiveM.
Falta la solicitud en el menú de jefeSolo aparece en el menú de jefe de la facción a la que se postuló, y solo para rangos con el permiso Invitar miembros.
La página de logs está vacíaPon el área en true en bossLogs. Las entradas solo se crean a partir de ahora, no hay acciones anteriores.
«Ahora mismo no se permiten Gangwars»Hora fuera de times. Para siempre: times = {}.
En el gangwar, el script de ambulancia reviveDesactiva la pantalla de muerte en ClientGangwarDeath.

¿Aún no lo has comprado?

Ver Faction en la tienda