Ir al contenido

Referencia de la config ​

Todas las opciones están en zaiders_appearance/shared/config.lua, el archivo que queda abierto con el escrow. Cada una tiene un comentario en inglés y en español encima. Esta página las explica todas, agrupadas por tema, con el valor con el que vienen.

Cómo aplicar un cambio

Guarda el archivo y reinicia el recurso (ensure zaiders_appearance) o el servidor entero. Los menús que se abren después usan los valores nuevos.

Cómo se revisa la config ​

Al arrancar, el recurso compara tu config.lua con sus valores de fábrica. Un error nunca frena el menú: el valor equivocado se reemplaza por el de fábrica y la consola lista cada arreglo para que corrijas el archivo.

text
[zaiders_appearance] config.lua: se arreglaron 2 valores al arrancar (el menú anda igual). Para que no aparezca este aviso, corregilos en config.lua:
  Config.Shops.near estaba escrito como texto: queda 20.0.
  Config.Wardrobe.maxOutfit no es una opción (¿un error de tipeo?): no se usa.

La consola habla en el idioma de Config.Locale; este ejemplo es con 'es'.

Qué encuentraQué hace
Falta una opciónUsa el valor de fábrica. Así funcionan también las opciones de una versión nueva con tu archivo viejo.
Un número o true/false escrito entre comillasToma el valor sin las comillas.
Un valor del tipo equivocado (texto donde va una tabla)Usa el valor de fábrica.
Una opción que no existeLa ignora y te avisa, por si es un error de tipeo.
Un valor que no está entre los permitidosUsa el valor de fábrica.

El panel de admin manda

Algunas cosas arrancan desde la config y después se manejan en el panel: las tiendas del mapa, los precios de los tatuajes, los precios y el stock de las prendas, la tienda de peds y la apariencia del menú. Una vez que las guardas en el panel, se usan los valores del panel y la config solo da el punto de partida.

General ​

Config.Locale ​

lua
Config.Locale = 'en'

El idioma de todo el script: el menú, el panel de admin, los nombres de las prendas y los tatuajes, los carteles de la E, los avisos, los subcomandos y la consola. Los jugadores no lo eligen; todos ven este.

Incluidos: 'en' inglés, 'es' español, 'pt' portugués de Brasil, 'fr' francés, 'de' alemán, 'it' italiano, 'pl' polaco, 'tr' turco y 'nl' neerlandés. Un código sin su archivo usa el inglés. Ver Idiomas y textos.

Config.Framework ​

lua
Config.Framework = 'auto'

'auto' busca Qbox, QBCore y ESX, en ese orden. Para elegir uno a mano, usa 'qbx', 'qb' o 'esx'. Sin framework el menú funciona, pero no se cobra ni se guarda nada.

Config.CloseAfterPay ​

lua
Config.CloseAfterPay = true

Al pagar, el menú se cierra solo: el jugador se queda con lo que compró y el juego avisa cuánto se cobró. false deja el menú abierto después de pagar.

Config.Sounds ​

lua
Config.Sounds = true

Los sonidos del juego al pasar prendas con las flechas, cambiar de sección, sacarse ropa y pagar. Cada jugador los puede apagar en Ajustes. false los apaga para todos.

Config.Notify ​

lua
Config.Notify = nil

Los avisos que ven los jugadores. De fábrica son los de ox_lib, con el nombre de la marca del panel (Apariencia) como título. Para usar las notificaciones de tu servidor, escribe una función. Corre en el juego del jugador:

lua
Config.Notify = function(text, kind)
    -- kind es 'inform', 'success' o 'error'
    exports['mis_avisos']:Notify(text, kind)
end

Config.CanOpenMenu ​

lua
Config.CanOpenMenu = nil

Antes de abrir un menú, el recurso ya revisa que el jugador no esté muerto, caído, esposado o cayendo, también con los estados de QBCore, Qbox y ESX. Para sumar una regla propia, escribe una función que devuelva true cuando el menú se puede abrir. Corre en el juego del jugador:

lua
Config.CanOpenMenu = function()
    return not LocalPlayer.state.enPersecucion
end

Config.HideHud ​

lua
Config.HideHud = {
    enabled = true,
    resources = {
        { resource = 'vayce-hud', export = 'SetHudVisible', changed = 'hud:visibleChanged' },
    },
    custom = nil,
}

Con un menú o el panel abiertos, el HUD se esconde, y al cerrarlos vuelve como estaba. El HUD del juego siempre se esconde, y muchos HUD de servidor siguen al del juego. Si otro script vuelve a prender el HUD con un menú abierto, se esconde de nuevo.

CampoQué hace
enabledfalse: solo se esconde el radar.
resourcesEl HUD de otros recursos, solo mientras ese recurso está prendido. Cada entrada lleva el recurso y un export (recibe false al abrir y true al cerrar) o un event con los valores a mandar (hide = ..., show = ...). Con changed, el nombre del evento que dispara ese HUD cuando se muestra o se esconde: un HUD escondido antes del menú queda escondido, y uno que se prende solo durante el menú se vuelve a esconder.
customTu propio código: function(hidden, menu) ... end. hidden es true al abrir y false al cerrar; menu es 'clothing', 'barber', 'tattoo', 'wardrobe', 'creator' o 'panel'.
lua
resources = {
    { resource = 'mi-hud', export = 'SetHudVisible' },
    { resource = 'otro-hud', event = 'otro-hud:toggle', hide = false, show = true },
},

Otros scripts también pueden escuchar el evento del cliente zaiders_appearance:hud. Ver Exports, eventos y hooks.

Comandos ​

lua
Config.Command = 'zappearance'
Config.CommandsForEveryone = false
Config.Subcommands = {
    clothing = { 'ropa', 'clothing' },
    barber = { 'barberia', 'barber' },
    tattoo = { 'tatuajes', 'tattoos' },
    wardrobe = { 'guardarropa', 'wardrobe' },
    creator = { 'creador', 'creator' },
    panel = { 'panel', 'admin' },
    photos = { 'fotos', 'photos' },
    shops = { 'tiendas', 'shops' },
    tattooPrices = { 'precios', 'prices' },
    reloadSkin = { 'recargar', 'reloadskin' },
    help = { 'ayuda', 'help' },
}
Config.CommandShortcuts = {}
OpciónQué hace
CommandEl único comando del chat; todo lo demás es un subcomando (/zappearance ropa). Los comandos de consola también empiezan con él (zappearance_migrar).
CommandsForEveryonefalse: abrir una tienda por comando es de admins; los jugadores van a las tiendas del mapa. true: todos pueden usar esos subcomandos.
SubcommandsLos nombres de cada subcomando. Todos funcionan, y también el del idioma de Config.Locale (/zappearance kleidung en alemán).
CommandShortcutsComandos propios para un subcomando, con sus mismas reglas. Vacío de fábrica para no pisar el comando de otro recurso. { guardarropa = 'wardrobe' } crea /guardarropa; { reloadskin = 'reloadSkin' } crea /reloadskin.

La lista completa de comandos y quién puede usarlos está en Comandos y permisos.

Permisos ​

Admins ​

lua
Config.AdminAce = 'zaiders_appearance.admin'
Config.AdminAces = { 'zaiders_appearance.admin', 'clothing.admin' }
Config.AdminQbPermissions = { 'god', 'admin' }
Config.AdminEsxGroups = { 'admin', 'superadmin' }

Quién es admin: cualquiera con uno de estos permisos ACE, estos permisos de qb-core o, en ESX, estos grupos. Los admins abren el panel, abren tiendas por comando, prueban el creador y pegan el JSON de un personaje. AdminAce es el permiso que nombra el mensaje de "sin permiso".

ini
# server.cfg
add_ace group.admin zaiders_appearance.admin allow

No agregues command

Muchos servidores les dan el permiso command a los moderadores. Usa zaiders_appearance.admin y dáselo solo a los grupos que deben editar el catálogo.

Config.CatalogEditors ​

lua
Config.CatalogEditors = {
    qb = { 'god', 'admin' },
    jobs = {},
    onDuty = false,
}

Quién puede cambiar prendas desde la tienda con clic derecho: ponerles nombre, sacarlas de stock, darles un precio propio o dejarlas solo para algunos trabajos. Cualquiera con los permisos ACE de admin (o una lista propia aces = { ... }), estos permisos de qb-core, o un trabajo desde un rango, como jobs = { tiendaropa = 2 }. Con onDuty = true, solo estando de servicio.

Config.GarmentGroups ​

lua
Config.GarmentGroups = {
    { name = 'vip', label = 'VIP', ace = 'zaiders_appearance.vip' },
}

Grupos por permiso ACE, como VIP. Cada grupo aparece en Solo para… (clic derecho sobre una prenda, y el Editor del catálogo del panel), y solo los jugadores con ese permiso pueden comprar esas prendas. Nada cambia hasta que marcas una prenda. Para VIP, en server.cfg:

ini
add_ace group.vip zaiders_appearance.vip allow
add_principal identifier.fivem:123456 group.vip

Config.GarmentGroups = {} saca los grupos. Ver Tienda de ropa.

Precios ​

lua
Config.Prices = {
    hats = 80, hair = 60, tops = 250, undershirt = 90, arms = 60, pants = 180, shoes = 200, decals = 40,
    masks = 120, glasses = 100, ears = 90, chains = 150, watches = 250, bracelets = 120, vest = 180, bags = 150,
    hairColor = 40,
    parents = 150,
    features = 120,
    eyes = 60,
    overlays = {
        blemishes = 40, ageing = 40, complexion = 40, sunDamage = 40, moleAndFreckles = 40, bodyBlemishes = 40,
        eyebrows = 30, beard = 40, chestHair = 20,
        makeUp = 50, blush = 30, lipstick = 30,
    },
}

El precio de cada lugar de la tienda de ropa y de la barbería. Una prenda puede tener su propio precio, que le gana a estos: se pone con clic derecho sobre la prenda o en el Editor del catálogo del panel. Los precios de los tatuajes están en Config.Tattoos y en el panel.

ClaveLugar
hats, glasses, ears, watches, braceletsAccesorios (props): gorra, lentes, aros, reloj, pulsera
masks, hair, arms, pants, bags, shoes, chains, undershirt, vest, decals, topsRopa (componentes): máscara, pelo, brazos, pantalón, bolso, zapatillas, cadenas, remera, chaleco, calcomanías, campera
hairColorCambiar el color o los reflejos del pelo
parentsPadres (la mezcla de la cara)
featuresLa forma de la cara
eyesEl color de ojos
overlaysCada capa de la barbería: detalles de la piel, cejas, barba, pelo del pecho, maquillaje, rubor y labial

Ropa de base ​

Le dicen al menú qué ponerle a un jugador cuando se saca una prenda. Los valores son los del juego para los personajes freemode. Si tu servidor reemplaza la ropa base con un pack, ajústalos a ese pack.

Cada entrada es ['component:N'] = { drawable, texture }.

Config.Undress ​

lua
Config.Undress = {
    male = {
        ['component:1'] = { 0, 0 },    -- máscara
        ['component:4'] = { 61, 0 },   -- pantalón
        ['component:5'] = { 0, 0 },    -- bolso
        ['component:6'] = { 34, 0 },   -- zapatillas
        ['component:11'] = { 252, 0 }, -- campera
    },
    female = {
        ['component:1'] = { 0, 0 },
        ['component:4'] = { 14, 0 },
        ['component:5'] = { 0, 0 },
        ['component:6'] = { 35, 0 },
        ['component:11'] = { 74, 0 },
    },
}

Lo que ponen en cada lugar los botones rápidos para sacarse ropa, al costado del menú.

Config.UndressWithTop ​

lua
Config.UndressWithTop = {
    ['component:8'] = { 15, 0 },
    ['component:3'] = { 15, 0 },
    ['component:10'] = { 0, 0 },
}

Al sacarse la campera también se sacan la remera, los guantes y las calcomanías.

Config.Naked ​

lua
Config.Naked = {
    male = {
        ['component:1'] = { 0, 0 },   -- máscara
        ['component:3'] = { 15, 0 },  -- brazos
        ['component:4'] = { 61, 0 },  -- pantalón
        ['component:5'] = { 0, 0 },   -- bolso
        ['component:6'] = { 34, 0 },  -- zapatillas
        ['component:8'] = { 15, 0 },  -- remera
        ['component:9'] = { 0, 0 },   -- chaleco
        ['component:10'] = { 0, 0 },  -- calcomanías
        ['component:11'] = { 91, 0 }, -- campera
    },
    female = { ... },
}

La ropa interior que se usa donde tiene que verse la piel: la tienda de tatuajes y el creador de personaje. Con un pack que reemplaza la ropa base, elige prendas que dejen la piel al aire, o taparán los tatuajes.

Pose y cámara ​

Config.Poses ​

lua
Config.Poses = {
    stand = {
        male = { 'move_m@generic', 'idle' },
        female = { 'move_f@multiplayer', 'idle' },
        at = 0.0,
    },
    arms = {
        male = { 'missminuteman_1ig_2', 'handsup_base' },
        female = { 'missminuteman_1ig_2', 'handsup_base' },
        at = 0.0,
    },
    shops = { clothing = true, barber = true, tattoo = true, creator = true, wardrobe = true },
}

Con un menú abierto, el personaje queda parado en la animación de parado de su sexo, frenado en un cuadro. Con X o el botón de brazos levanta los brazos, también quieto, para revisar que una prenda no se rompa.

CampoQué hace
stand, armsEl diccionario y el nombre de la animación de cada sexo. at es el momento de la animación en que queda, de 0 a 1.
shopsQué menús usan la pose.

Config.Poses = false apaga la pose quieta: el personaje mantiene su movimiento normal con el menú abierto. El estudio de fotos siempre usa la pose de parado.

Config.Camera ​

lua
Config.Camera = {
    fov = 40.0,
    smoothing = 7.0,
    shots = {
        { name = 'Cara', bones = { 31086 }, z = 0.02, dist = 0.95 },
        { name = 'Pecho', bones = { 24818 }, z = 0.02, dist = 1.35 },
        { name = 'Torso', bones = { 24816 }, z = 0.0, dist = 1.85 },
        { name = 'Cuerpo', bones = { 11816 }, z = 0.08, dist = 3.2 },
        { name = 'Piernas', bones = { 63931, 36864 }, z = -0.12, dist = 1.75 },
    },
}

Los cinco planos de cámara que recorre la ruedita del mouse. Cada uno apunta a los huesos del personaje, así que funciona con cualquier ped. dist es la distancia en metros y z un ajuste de altura. name es solo una etiqueta para ti; el menú muestra sus propios nombres en cada idioma. fov es el ángulo de visión de la cámara, y smoothing qué tan suave se mueve.

Caras ​

lua
Config.ShapeMax = 45
Config.SkinMax = 45
Config.FaceRanges = {
    male = { { 0, 20 }, { 42, 44 } },
    female = { { 21, 41 }, { 45, 45 } },
}

El juego tiene las caras 0 a 45. Un pack de caras puede agregar más, por ejemplo de la 46 a la 91. En ese caso pon Config.ShapeMax = 91 y agrega sus rangos, como { 46, 68 } para hombres y { 69, 91 } para mujeres. Las pieles solo existen de la 0 a la 45.

FaceRanges separa las caras en de hombre y de mujer, porque el menú muestra esos dos grupos. En el juego, 0–20 y 42–44 son hombres y 21–41 y 45 son mujeres.

Peds ​

Config.Peds ​

lua
Config.Peds = {
    male = { { name = 'mp_m_freemode_01' } },
    female = { { name = 'mp_f_freemode_01' } },
}

Las tarjetas de Tu personaje en Peds: el hombre y la mujer freemode. Cambiar entre ellos es gratis.

Config.PedShop ​

lua
Config.PedShop = {
    enabled = true,
    price = 25000,
    exclusive = false,
    codes = true,
    categories = {
        calle = true, trabajos = true, pandillas = true, personajes = true, online = true, animales = false,
        servidor = true,
    },
    images = 'https://docs-backend.fivem.net/peds/%s.webp',
}

La tienda de peds en Peds. Los jugadores ven los peds del juego que tiene la versión de tu servidor, más los peds addon que agregues en el panel. Se los prueban gratis y compran los que quieran. Un ped comprado es de ese personaje para siempre, salvo que un admin se lo saque. Ver Peds y códigos.

CampoQué hace
enabledfalse: no se venden peds. Los jugadores mantienen el hombre y la mujer, y los admins el ped por nombre.
priceEl precio de cada ped, salvo los que tengan precio propio en el panel.
exclusivetrue: cada ped puede tener un solo dueño. Al siguiente comprador se le avisa que ya tiene dueño.
codesCódigos de canje: los admins los generan en el panel, y los jugadores los canjean en Peds para quedarse con un ped sin pagar en el juego. false apaga los códigos.
categoriesQué se vende: calle, trabajos, pandillas, personajes (los de la historia), online (los de GTA Online), animales (apagados: no usan ropa y tienen pocas animaciones) y servidor (tus peds addon).
imagesDe dónde salen las fotos de los peds: la documentación de FiveM, que baja cada jugador al mirarlas (%s es el nombre del ped). Las fotos sacadas con el estudio del panel van primero. false: sin fotos de internet, solo un dibujo.

La sección Peds del panel cambia todo esto. Después de guardar ahí, manda el panel.

Config.PedByName y Config.PedBlacklist ​

lua
Config.PedByName = 'admins'
Config.PedBlacklist = {
    -- 'a_c_chop',
}

Ped por nombre permite convertirse en cualquier ped que exista en el servidor escribiendo su nombre. 'todos' lo habilita para todos, 'admins' solo para admins y 'nadie' para nadie. Los peds de la lista negra no se pueden usar nunca. El servidor lo revisa de nuevo al pagar, así que nadie se queda con un ped que no puede usar.

Tiendas del mapa ​

lua
Config.Shops = {
    key = 38,
    near = 20.0,
    blips = true,
    blipLegend = 121,
    prompt = { height = 1.0, distance = 8.0, size = 0.05 },
    ball = false,
    marker = false,
    markerColor = { 55, 226, 200, 110 },
    textUI = false,
    place = { reach = 12.0 },
}

Las tiendas en sí (dónde están, sus nombres y sus blips) se configuran en el panel y se guardan en datos/tiendas.json. Mientras no guardes, se usan las 27 del juego. Ver Tiendas del mapa y blips.

CampoQué hace
keyLa tecla que abre una tienda. 38 es E.
nearDesde cuántos metros el juego revisa en cada cuadro si hay una tienda cerca.
blipsfalse esconde todos los blips de tiendas, diga lo que diga el panel.
blipLegendAgrupa los blips de cada tipo bajo un nombre en la lista del mapa grande (Tiendas de ropa, Barberías, Tatuajes, Guardarropas). Usa cuatro categorías de blips del juego, desde este número (121 a 124). Si otro script usa esas, elige otro número entre 12 y 130. false: cada blip suelto.
promptEl cartel flotante de la E: height sobre el piso en metros, distance desde dónde aparece, size como parte del alto de la pantalla (0.05 es 5%). false: sin cartel. Cada tienda también puede esconder el suyo en el panel.
ballUna esfera chica sobre la tienda. true usa el aspecto de fábrica, o escribe { size = 0.18, height = 1.0, color = { 55, 226, 200, 170 }, bob = false }.
marker, markerColorUn círculo en el piso con el radio de la tienda, y su color (RGBA).
textUIMuestra además el aviso "[E] ..." de ox_lib en pantalla.
place.reachHasta cuántos metros llega la mira al ubicar una tienda desde el panel.

Guardarropa ​

lua
Config.Wardrobe = {
    maxOutfits = 30,
    maxUniforms = 30,
    bossGrade = nil,
    gangUniforms = true,
    shareCodes = true,
    shareHours = 24,
}

El guardarropa tiene los outfits de cada jugador y los uniformes de su trabajo y de su banda. Los outfits se guardan en ps_outfits y los uniformes en ps_job_outfits; si tu servidor ya tenía esas tablas, se mantiene lo que había. Ver Guardarropa y outfits.

CampoQué hace
maxOutfitsOutfits por personaje.
maxUniformsUniformes por trabajo (y por banda).
bossGradeAdemás del jefe, desde qué rango del trabajo los miembros pueden armar uniformes. Por ejemplo 3. nil: solo el jefe y los admins.
gangUniformsUniformes de la banda (QBCore y Qbox): una pestaña más en el guardarropa. false la saca.
shareCodesCompartir un outfit con un código de 6 letras. El otro jugador se lo prueba en una tienda de ropa y paga las prendas que no tiene. false lo apaga.
shareHoursCuántas horas dura cada código.

Creador de personaje ​

lua
Config.Creator = {
    enabled = true,
    events = { 'qb-clothes:client:CreateFirstCharacter' },
    skipIfStarted = { 'dx_clothing', 'illenium-appearance', 'qb-clothing', 'fivem-appearance' },
    face = {
        male = { shapeFirst = 0, shapeSecond = 21, shapeThird = 0, skinFirst = 0, skinSecond = 21, skinThird = 0, shapeMix = 0.25, skinMix = 0.5, thirdMix = 0.0 },
        female = { shapeFirst = 0, shapeSecond = 21, shapeThird = 0, skinFirst = 0, skinSecond = 21, skinThird = 0, shapeMix = 0.75, skinMix = 0.5, thirdMix = 0.0 },
    },
}

El creador se abre solo cuando el servidor crea un personaje nuevo. Ver Creador de personaje.

CampoQué hace
enabledfalse: este menú nunca abre el creador.
eventsLos eventos que dispara un multichar con un personaje nuevo. qb-multicharacter y la mayoría disparan el de qb-clothing. En ESX sin esx_skin también se atiende esx_skin:openSaveableMenu.
skipIfStartedSi uno de estos recursos está prendido, ese se ocupa de los personajes nuevos, para que no se abran dos menús.
faceLa cara con la que arranca un personaje nuevo, por sexo.

Tienda de tatuajes ​

lua
Config.Tattoos = {
    enabled = true,
    free = false,
    priceFactor = 0.25,
    maxPrice = 0,
    addonPrice = 'auto',
    fadePrice = 120,
    layerPercent = 25,
    removePrice = 150,
    maxLayers = 4,
    undress = true,
    save = true,
    owners = { 'rcore_tattoos', 'qb-tattooshop', 'esx_tattooshop', 'illenium-appearance', 'fivem-appearance' },
    fades = { ... },
}

Los tatuajes del juego con sus precios de GTA Online, los tatuajes addon de tu servidor (packs que cargan un PED_OVERLAY_FILE) y los degradados de pelo, por zona del cuerpo. Ver Tienda de tatuajes.

CampoQué hace
enabledfalse: sin tienda de tatuajes, si usas otro recurso para los tatuajes.
freeTodo gratis: los tatuajes, las capas más oscuras y sacarlos.
priceFactorMultiplica el precio del juego. En GTA Online cuestan de $1.300 a $30.000, así que 0.25 convierte un tatuaje de $10.000 en $2.500.
maxPriceUn tope para los del juego. 0: sin tope.
addonPriceLos addon y los del juego sin precio. 'auto' usa el precio típico de su zona por el factor. Un número pone un mismo precio para todos.
fadePriceEl precio de un degradado de pelo.
layerPercentCada capa más oscura cuesta este porcentaje del precio del tatuaje.
removePriceSacarse un tatuaje, o bajarle capas.
maxLayersCuántas veces se puede apilar un tatuaje. Cada capa lo oscurece, porque el juego no tiene opacidad para los tatuajes.
undressSaca la ropa (a Config.Naked) mientras se está en la tienda.
saveGuarda los tatuajes comprados en zaiders_tattoos y los pone al entrar con el personaje.
ownersOtros recursos de tatuajes. Si uno está prendido, esta tienda de tatuajes se apaga sola: sin tiendas en el mapa, sin vender y sin poner los tatuajes guardados.
fadesDegradados de repuesto, que solo se usan si falta data/tatuajes.json. No hace falta tocarlos.

La sección Tatuajes del panel cambia los precios por zona, el precio propio de cada tatuaje y su stock. Después de guardar ahí, manda el panel.

Compatibilidad ​

lua
Config.Compat = {
    loadSkin = true,
    exports = true,
    esxSkinSave = false,
}
CampoQué hace
loadSkinPone la ropa guardada al entrar con un personaje y cada vez que otro script la recarga (al revivir, la vista previa de un multichar), atendiendo los eventos de carga de siempre. Si está prendido otro recurso de ropa que los atiende, no hace nada.
exportsMientras illenium-appearance, fivem-appearance, qb-clothing o skinchanger no están prendidos, este menú contesta sus exports y eventos en su lugar, así los scripts hechos para ellos siguen funcionando. false lo apaga.
esxSkinSaveESX: esx_skin:save lo puede mandar cualquier jugador con cualquier ropa, sin pagar, así que de fábrica no guarda. true lo guarda como lo hace esx_skin.

Config.Compat = false apaga las tres. Ver Frameworks y compatibilidad.

Config.Photos ​

lua
Config.Photos = {
    enabled = true,
    resource = 'zaiders_fotos',
    onDemand = true,
    bps = 400000,
    perMinute = 1500,
    url = '',
}

El menú muestra la foto de cada prenda, o un dibujo cuando no tiene. Las fotos viven en su propio recurso, así que actualizar el script nunca las toca. Ver Fotos del catálogo.

CampoQué hace
enabledfalse: solo dibujos.
resourceEl recurso de las fotos.
onDemandLos jugadores no bajan las fotos al entrar. El menú le pide al servidor solo las que aparecen en pantalla, de a pocas, por la conexión del propio juego. Cada jugador las guarda, así que la próxima vez salen al instante. false: todos bajan todas al entrar (en ese caso, descomenta también las dos líneas de zaiders_fotos/fxmanifest.lua).
bpsA pedido: lo máximo que el servidor le manda a cada jugador por segundo, en bytes. 400000 son 400 KB/s, unas 40 fotos.
perMinuteA pedido: cuántas fotos puede pedir cada jugador por minuto.
urlOpcional: una dirección https donde subiste las carpetas fotos/ y tatuajes/ (un CDN o servidor web). Las fotos salen de ahí.

Config.Studio ​

El estudio de fotos del panel. No hace falta cambiarlo: estos valores son los que hacen que las fotos salgan limpias. Están acá para que sepas qué es cada uno.

CampoDe fábricaQué es
position, headingalto en el cielo, sobre el marDónde está el estudio: lejos de todo. El maniquí se para sobre una plataforma invisible.
platform'prop_container_01a'El objeto bajo el maniquí.
bucketBase7000Cada admin trabaja en su propia dimensión: este número más su ID de jugador.
time, weathermediodía, 'EXTRASUNNY'Luz de día fija mientras se sacan las fotos.
backgrounds, backgroundverde y magenta, 'green'Los colores de fondo, como una pantalla verde. El magenta es para prendas verdes.
fov, pedFov, crop30.0, 40.0, 0.92El ángulo de la cámara y el cuadrado de pantalla que se fotografía.
box12 × 12 × 7 mLa caja de color alrededor del maniquí.
loadTimeoutMs, settleMs6000, 200Cuánto esperar a que cargue una prenda, y un momento más para que la textura quede nítida.
face, hairColorLa cara, la piel y el color de pelo del maniquí. El color de pelo también se elige en el panel.
lightstres lucesLas luces del estudio, en metros desde el maniquí.
basecada lugar vacíoEl maniquí es invisible, así en la foto queda solo la prenda.
shotsun encuadre por lugarAdónde mira la cámara en cada lugar. glass y twoTone son para los lentes.
faceShotEl encuadre de las fotos de caras (Padres, en la barbería).
maxPhotoKb, bps400, 2000000La foto más pesada, y la velocidad de subida al servidor.
changeDistance10Verificación de packs: cuánto puede cambiar una foto y seguir contando como la misma prenda.

Relacionado ​

Soporte para los clothing packs y scripts de FiveM de Zaiders Store.