Cómo funciona#
Outfit Bag tiene dos tipos de bolsa, y conviene saber desde el principio cuál es cuál:
Bolsa | De dónde sale | Qué hay dentro |
|---|---|---|
Bolsa personal | Un jugador usa el ítem | Los atuendos guardados del propio dueño. El dueño guarda, borra, bloquea y recoge; cualquier otro solo puede tomarlos prestados mientras está desbloqueada. |
Bolsa de uniforme |
| Los atuendos escritos en la configuración. Nadie guarda ni borra; una lista de trabajos decide quién puede abrirla. |
En ambos casos se abre la misma ventana: el jugador se acerca y se arrodilla junto a la bolsa, una cámara encuadra la escena y aparece la lista de atuendos.
Colocar y recoger una bolsa#
Usar el ítem reproduce una animación corta, deja la bolsa en el suelo un metro delante del jugador, mirando hacia él, y quita un ítem del inventario. Un jugador puede tener varias bolsas colocadas a la vez (cada una cuesta un ítem), con una pausa de dos segundos entre colocaciones.
La bolsa aparece para todos. Los jugadores ya conectados obtienen su interacción al instante; los que entran más tarde reciben todas las bolsas colocadas un par de segundos después de cargar.
Solo el dueño ve Pick Up Bag. Recogerla reproduce la misma animación, elimina la bolsa para todos y devuelve un ítem al inventario.
Target | Abrir la bolsa | Recogerla (dueño) |
|---|---|---|
| Opción Use Bag | Opción Pick Up Bag |
| Opción Use Bag, a menos de 2 m | Opción Pick Up Bag |
| E a menos de 2 m | G a menos de 2 m |
Aviso integrado | E a menos de 2 m | G a menos de 2 m |
El ciclo de vida de la bolsa#
Las bolsas colocadas viven en la memoria del servidor, no en la base de datos. Una bolsa desaparece:
cuando su dueño la recoge: el ítem vuelve;
cuando su dueño se desconecta: el ítem no vuelve;
cuando se reinicia el recurso o el servidor: el ítem tampoco vuelve.
La ventana de la bolsa#
Al abrir una bolsa, el jugador camina hasta ella, se arrodilla a su lado y una cámara encuadra la escena. La ventana muestra los atuendos de la bolsa; debajo de la lista están Save Outfit y un candado.
Acción | Cómo | Quién |
|---|---|---|
Previsualizar | Haz clic en un atuendo. El personaje aparece junto a la ventana con él puesto; todavía no cambia nada en el jugador. Haz clic de nuevo, o en cualquier otro sitio, para cerrar la vista previa. | Cualquiera que pueda ver la lista |
Aplicar | Con un atuendo abierto, haz clic en uno de sus cuatro iconos (consulta Modos de aplicación más abajo). | Cualquiera que pueda ver la lista |
Guardar | Save Outfit, escribe un nombre de hasta 50 caracteres y pulsa Enter o Confirm. Guarda lo que el jugador lleva puesto en ese momento. Escape cancela. | Dueño, bolsa desbloqueada |
Borrar | El icono de la papelera en un atuendo abierto. Inmediato: no hay confirmación. | Dueño |
Bloquear / desbloquear | El candado. | Dueño |
Cerrar | ESC o Backspace. La cámara vuelve y el jugador se levanta. | Cualquiera |
Guardar registra lo que el personaje lleva puesto en ese momento, así que vístete primero (en una tienda de ropa, un armario o aplicando partes de otros atuendos) y después abre la bolsa y guarda.
Modos de aplicación#
Cada atuendo se puede llevar entero o por partes, así que un jugador puede cambiarse la chaqueta sin tocar los pantalones:
Icono | Modo | Qué cambia |
|---|---|---|
Persona | Full Outfit | Todo lo siguiente: torso, camiseta interior, brazos, piernas, zapatos, máscara, mochila, accesorio, chaleco, sombrero, gafas, orejas, reloj y pulsera. |
Camisa | Top Only | Torso, camiseta interior y brazos. |
Calcetines | Bottom Only | Piernas y zapatos. |
Gafas | Accessories Only | Máscara, mochila, accesorio y chaleco, además de sombrero, gafas, orejas, reloj y pulsera. |
Un atuendo nunca cambia la cara, el pelo ni las calcomanías. Los props que el atuendo no lleva (un sombrero, unas gafas) se quitan al aplicar un atuendo completo o sus accesorios, para que el resultado coincida con lo guardado. La camiseta interior de buceo trae consigo su botella de aire.
Cada valor se comprueba con el propio modelo del jugador antes de ponérselo: una pieza que ese modelo no tiene se sustituye por la más cercana que sí tenga. Un atuendo guardado en un personaje masculino se puede aplicar a uno femenino, pero no se verá igual: guarda un atuendo distinto para cada uno.
Bloqueo y compartir#
Toda bolsa empieza bloqueada. Una bolsa bloqueada no muestra la lista a nadie (incluido el dueño) y no tiene botón Save. El dueño pulsa el candado para desbloquearla y, a partir de entonces:
Bolsa desbloqueada | Dueño | Cualquier otro |
|---|---|---|
Ver y previsualizar los atuendos | Sí | Sí |
Aplicar un atuendo | Sí | Sí |
Guardar un atuendo | Sí | No |
Borrar un atuendo | Sí | No |
Volver a bloquearla | Sí | No |
Recoger la bolsa | Sí | No |
Una bolsa desbloqueada es la forma en que los jugadores se prestan ropa: un miembro de la banda deja una en el punto de encuentro, la desbloquea y todos eligen un look del armario del dueño. Volver a bloquearla oculta la lista a la siguiente persona que la abra. El bloqueo pertenece a esa bolsa concreta: una bolsa recién colocada siempre empieza bloqueada.
Bolsas de uniforme#
Las bolsas de uniforme son bolsas fijas escritas en Config.DefaultBags. Cada una aparece un segundo después de que se inicie el recurso, congelada e indestructible, y se abre con los atuendos que escribiste para ella: pensadas para un vestuario de policía, una estación de EMS o el taller de un mecánico.
Config.DefaultBags = {
{
pos = vector3(441.2, -981.9, 29.7), -- where the bag stands
pedpos = { x = 441.1165, y = -981.3917, z = 29.6896, heading = 180.9981 }, -- where the player kneels
outfits = {
{
name = 'Police Uniform',
data = {
['arms'] = { item = 30, texture = 0, palette = 0 },
['t-shirt'] = { item = 15, texture = 0, palette = 0 },
['torso2'] = { item = 55, texture = 0, palette = 0 },
['pants'] = { item = 35, texture = 0, palette = 0 },
['shoes'] = { item = 25, texture = 0, palette = 0 },
['hat'] = { item = 46, texture = 0 },
['glass'] = { item = 5, texture = 0 },
}
},
},
jobs = { 'police' }, -- who may open it
public = false, -- true opens it to everybody
},
}Campo | Qué hace |
|---|---|
| La posición de la bolsa. Se deja caer al suelo bajo ese punto. |
| Dónde se arrodilla el jugador y hacia dónde mira. Sin esto, el jugador se arrodilla en la propia posición de la bolsa, así que defínelo siempre. |
| Una lista de |
| Los nombres de trabajo que pueden abrirla. Omítelo, o déjalo vacío, para permitir todos los trabajos. |
|
|
Un jugador que no tiene permiso ve You are not allowed to use this bag! y la ventana sigue cerrada. En una bolsa de uniforme la lista siempre es visible, y no hay botón Save, candado ni papelera.
Un servidor standalone no tiene trabajos, así que ahí una bolsa de uniforme con lista de trabajos no se abre para nadie. Ponla en
public.
Escribir un atuendo#
data asigna a cada hueco de ropa su drawable (item), su texture y, en la ropa, su palette. Un hueco de ropa que se omite queda como lo lleva el jugador; un hueco de prop que se omite se quita.
Clave | Hueco | ID de GTA |
|---|---|---|
| Torso / chaqueta | Component 11 |
| Camiseta interior | Component 8 |
| Brazos / guantes | Component 3 |
| Piernas | Component 4 |
| Zapatos | Component 6 |
| Máscara | Component 1 |
| Mochila / paracaídas | Component 5 |
| Cadenas, corbatas y bufandas | Component 7 |
| Chaleco antibalas | Component 9 |
| Sombrero / casco | Prop 0 |
| Gafas | Prop 1 |
| Accesorio de oreja | Prop 2 |
| Reloj | Prop 6 |
| Pulsera | Prop 7 |
Los atuendos guardados también registran face, hair, decals y chain, por eso el ejemplo incluido los muestra. Se aceptan, pero aplicar un atuendo nunca los usa.
La forma más rápida de obtener los números es dejar que el script los registre: viste el uniforme en un personaje, guárdalo en una bolsa personal y copia su columna data de la base de datos:
SELECT name, data FROM outfitbag_outfits WHERE name = 'Police Uniform';La columna contiene JSON como {"torso2":{"item":55,"texture":0,"palette":0}, ...}. Convierte cada "key":{...} en ['key'] = {...} y pégalo bajo data.
Los números de drawable pertenecen a un modelo. Un uniforme escrito para
mp_m_freemode_01muestra las piezas disponibles más cercanas enmp_f_freemode_01, así que dale a cada uno su propio atuendo: Patrol (M) y Patrol (F).
Atuendos persistentes#
Aplicar un atuendo cambia lo que el personaje lleva en ese momento. Tu recurso de ropa no se entera, así que tras reconectar el personaje carga con lo último que guardó ese recurso. Activa Config.PersistOutfitToClothing para pasarle cada atuendo aplicado:
Config.PersistOutfitToClothing = trueFramework | Se guarda mediante |
|---|---|
Cualquiera | illenium-appearance, fivem-appearance o qb-appearance, cuando alguno está en ejecución; se comprueba primero. |
ESX | skinchanger y esx_skin. |
QBCore | qb-clothing. |
Qbox | qb-clothing o qbx-clothing. |
Las vistas previas nunca se guardan, solo un atuendo que se aplica de verdad. La lista completa de recursos de ropa y cómo se llama a cada uno está en Integraciones.
Los ajustes#
Todo lo de esta página depende de unos pocos valores en shared/config.lua; la tabla completa está en Instalación → Configurar el recurso.
La configuración se lee cuando se inicia el recurso, así que reinícialo después de un cambio, y recuerda que un reinicio elimina todas las bolsas colocadas sin devolver los ítems. Hazlo cuando nadie tenga una bolsa en el suelo.



