Personalización
Dos archivos guardan todo lo que configuras, y la división entre ellos se reduce a una pregunta: ¿pasaría algo si un jugador lo leyera? shared/config.lua se envía a todos los clientes. shared/keys.lua se carga solo como script de servidor y nunca sale del servidor.
Qué archivo decide qué
Sección titulada «Qué archivo decide qué»Todas las rutas están dentro de mic_cloth_designer salvo que se indique otra cosa.
| Dónde | Qué decide | Editable |
|---|---|---|
shared/config.lua | Comando, tecla, permiso, idioma, biblioteca compartida o por jugador, resolución, el ítem, debug | Sí |
shared/keys.lua | Tus claves y tokens, los ajustes de la IA, el alojamiento de fotos, la lista de componentes diseñables — solo servidor | Sí |
locales/*.lua | Cada texto del estudio y de sus notificaciones; locales/locale.lua es el resolvedor | Sí |
items/ox.lua, items/qb.lua | La definición del ítem cloth_design para ox_inventory y QBCore | Sí |
html/ | La interfaz del estudio; html/patterns/ contiene los estampados, html/previews/ las miniaturas de prendas en caché | Sin escrow, pero los scripts vienen ofuscados |
base/addon_templates/ | Plantillas que usa el estudio para crear prendas nuevas. No las toques | Sí |
client/, server/, bridge/ | La lógica, el escritor de archivos, los bridges | Con escrow |
mic_cloth_addons/import/ | Donde pones tus propias prendas .ydd | Sí |
mic_cloth_addons/stream/, metas/, fxmanifest.lua | Las prendas generadas. El estudio las reescribe — no las edites a mano | Generado |
Los archivos abiertos son los que aparecen en escrow_ignore en fxmanifest.lua.
shared/config.lua
Sección titulada «shared/config.lua»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.Framework | 'esx' o 'qb'. Ponlo según tu servidor; el bridge de ítems también detecta el framework por sí solo. Usa 'qb' en QBCore, en QBox (a través de su compatibilidad con QBCore) y en un servidor standalone | 'qb' |
Config.Locale | Idioma del estudio y de sus notificaciones | 'en' |
Config.Command | Comando que abre el estudio | clothdesigner |
Config.Keybind | Una tecla que lo abre, como 'F7'. false para ninguna. Los jugadores pueden cambiarla en los ajustes de teclas de FiveM | false |
Config.OpenPermission | El ACE que necesita un jugador para abrir el estudio. false deja entrar a todo el mundo | mic_clothdesigner |
Config.GlobalContent | true: todos los que tienen acceso comparten una biblioteca de diseños, ítems y conjuntos. false: cada diseñador solo ve los suyos | true |
Config.TextureResolution | Tamaño de textura por defecto: 256, 512 o 1024. El desplegable del editor lo cambia por diseño, y la IA lo sigue | 512 |
Config.MaxDesignsPerPlayer | Un límite de diseños guardados. Está en el archivo, pero la versión actual no lo aplica | 50 |
Config.Items.Enabled | Activa o desactiva los ítems que se pueden poner, los conjuntos y los ítems de tienda | true |
Config.Items.Name | El ítem genérico que lleva un diseño | cloth_design |
Config.Items.Label | Se mantiene como referencia. Cada ítem se muestra con el nombre de su propio diseño | Clothing Design |
Config.Debug | Imprime en la consola lo que hace el estudio. Viene activado — desactívalo en un servidor en producción | true |
shared/keys.lua
Sección titulada «shared/keys.lua»Tus claves
Sección titulada «Tus claves»| Clave | Qué hace |
|---|---|
GeminiAPIKey | Activa el generador con IA. Vacía = sin IA |
FivemanageToken | Sube las fotos de los diseños y de los ítems a Fivemanage y guarda solo el enlace. Vacío = las fotos se guardan en la base de datos, que crece más rápido |
DiscordWebhook | Publica cada generación con IA con el prompt y un coste estimado. Vacío = desactivado |
ClothNetworkKey | Déjala vacía. Compartir en la Cloth Network funciona de serie |
El generador con IA — Config.AI
Sección titulada «El generador con IA — Config.AI»Viene ya ajustado. El que merece la pena conocer es Model, que equilibra coste y calidad.
| Opción | Qué hace | Por defecto |
|---|---|---|
Enabled | IA activada o desactivada, haya clave o no | true |
Provider | 'gemini', o 'openai' para DALL·E (en ese caso la clave de GeminiAPIKey se usa para OpenAI) | 'gemini' |
Model | gemini-3.1-flash-lite-image es el más barato, gemini-3.1-flash-image el equilibrado, gemini-3-pro-image el más caro | gemini-3.1-flash-image |
GeminiImageSize | Tamaño de salida de reserva. Normalmente no se usa: lo marca la resolución del editor | 512px |
ImageSize | Tamaño de salida solo para OpenAI | 1024x1024 |
AspectRatio | Las texturas son cuadradas | 1:1 |
Pricing | USD por millón de tokens de entrada y de salida, usado solo para el coste estimado del log de Discord | 0.50 / 60.00 |
Se ejecuta una sola generación a la vez por jugador, con un cooldown corto entre ellas.
Alojamiento de fotos — Config.Fivemanage
Sección titulada «Alojamiento de fotos — Config.Fivemanage»Enabled y el token de arriba. Las fotos son el render en 3D de cada diseño, y se usan en la biblioteca, en los ítems (ox_inventory lo muestra como imagen del ítem) y en las tarjetas de la red.
Componentes diseñables — Config.Components
Sección titulada «Componentes diseñables — Config.Components»Las doce ranuras de ropa de GTA para las que el estudio puede diseñar — cabeza, máscara, pelo, brazos, piernas, guantes, zapatos, accesorio, bolsas, chaleco, decals y parte de arriba — cada una con el prefijo de archivo que usan sus prendas. Está en el servidor para que no se pueda cambiar desde un cliente. Déjalo tal como viene.
Permisos
Sección titulada «Permisos»| Permiso | Dónde | Qué permite |
|---|---|---|
El ACE de Config.OpenPermission (mic_clothdesigner) | server.cfg — a un grupo o a un identificador | Abrir el estudio y cada acción dentro de él. Se comprueba en el servidor cada vez |
command.refresh, command.ensure, command.start, command.stop para resource.mic_cloth_designer | Principio de server.cfg | Permite al estudio recargar mic_cloth_addons después de una exportación |
Escritura en el sistema de archivos de mic_cloth_designer a mic_cloth_addons | Principio de server.cfg | Le permite guardar prendas, sin más |
importaddons | Consola del servidor | Comando restringido: la consola, o un admin con el ACE correspondiente |
Comandos
Sección titulada «Comandos»| Comando | Quién | Qué hace |
|---|---|---|
/clothdesigner | Jugadores con el ACE | Abre el estudio. El nombre es Config.Command |
importaddons | Consola del servidor | Convierte los archivos .ydd que esperan en mic_cloth_addons/import/ en prendas diseñables. Consulta 👕 Prendas |
Idiomas
Sección titulada «Idiomas»Vienen once en locales/: en, es, fr, de, it, pt, pl, ru, tr, nl, cs. Pon Config.Locale y reinicia. Un texto que falte en un idioma se muestra en inglés.
Para añadir uno:
- Copia
locales/en.luaalocales/<code>.luay cambiaLocales['en']por tu código. - Traduce los valores, nunca las claves, y mantén cada
%s. - Añade el archivo a
shared_scriptsenfxmanifest.luaantes delocales/locale.lua— el resolvedor tiene que cargarse después de todos los idiomas. Luego hazrefresh. - Pon
Config.Localeen el nuevo código.
La interfaz se traduce sustituyendo su texto en inglés por el tuyo, así que los valores en inglés de en.lua tienen que quedarse exactamente como están.
El bridge
Sección titulada «El bridge»Los dos archivos del bridge tienen escrow; esto es lo que hacen, para que sepas qué esperar.
| Archivo | Para qué sirve |
|---|---|
bridge/server_bridge.lua | Detecta qb-core o es_extended, registra los ítems usables (ESX RegisterUsableItem / QBCore CreateUseableItem, que ox_inventory respeta), y da los ítems con su diseño asociado — a través de ox_inventory cuando está en marcha, y si no, del framework |
client/bridge.lua | Notificaciones. Dentro del estudio son sus propios toasts; fuera, el notify de ox_lib cuando está en marcha, luego ESX o QBCore, y luego el feed de GTA |
Los jugadores se identifican por su identificador license:, sea cual sea el framework.