Antes de empezar#
Antes de instalar Tattoo Creator, asegúrate de que tu servidor cumple los requisitos. Tres recursos son obligatorios y uno de ellos viene en la descarga; todo lo demás es opcional y se detecta solo.
Requisito | Estado | Notas |
|---|---|---|
FXServer con OneSync | Obligatorio | Cualquier artifact actual, Windows o Linux. El script también usa el runtime Mono integrado del servidor, que incluyen todos los artifacts actuales. |
| Obligatorio | Acceso a la base de datos. Las tablas se crean solas. |
| Obligatorio | Callbacks, zonas y utilidades compartidas. |
| Obligatorio | Viene en la descarga. Las colecciones de decoraciones sobre las que se dibuja cada tatuaje. |
Framework | Opcional |
|
Script de apariencia | Opcional | Vuelve a poner los tatuajes en el instante en que un menú de ropa reconstruye el personaje, y muestra los tatuajes exportados del catálogo en su propio menú. |
Inventario | Opcional |
|
Text UI | Opcional |
|
Todo lo específico del framework o de terceros está detrás de un pequeño archivo puente abierto, y el recurso elige el adecuado viendo lo que ya está en ejecución:
Capa | Detectado |
|---|---|
Framework |
|
Apariencia |
|
Inventario |
|
Text UI |
|
Cada integración opcional se desactiva en silencio: si falta un recurso, su parte se retira y nada da error. Integraciones tiene los detalles y cómo fijar una a mano.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Descargar Tattoo Creator#
Después de comprar Tattoo Creator, el recurso se vincula automáticamente a tu cuenta de CFX Portal.
Inicia sesión en CFX Portal con la misma cuenta que usaste al finalizar la compra, abre Granted Assets y descarga Tattoo Creator.
Tras extraer la descarga, deberías tener la siguiente carpeta:
[tattoo-creator]/
├── qs-tattoo-creator/ -- the script
├── qs-tattoo-preview/ -- the decoration collections: never edit, never restart
└── [sql]/ -- database.sql (optional) · clean.sql (uninstall)Dentro de qs-tattoo-creator, estas son las partes que puedes abrir:
qs-tattoo-creator/
├── config/config.lua -- framework, appearance and inventory detection, admin groups
├── custom/ -- yours: fonts, gallery designs, the undress list, image hosts, placement
├── client/custom/ -- bridges: appearance scripts, inventory, target (editable)
├── server/custom/ -- which appearance menus receive catalog tattoos (editable)
├── server/webhooks.lua -- Discord logging
├── locales/ -- 41 languages
└── web/ -- the interface, already builtMantén los nombres de las carpetas exactamente como están. La ruta de la interfaz, las líneas
add_acey los dos recursos complementarios (qs-tattoo-previewyqs-tattoo-data) se encuentran por nombre, así que una copia renombrada deja de encontrar sus propias partes.
Instalar el recurso#
Mueve toda la carpeta [tattoo-creator] al directorio de recursos de tu servidor. Puede estar en cualquier lugar dentro de él, incluida otra carpeta de categoría:
resources/
└── [tattoo-creator]/
├── qs-tattoo-creator/
└── qs-tattoo-preview/Luego abre tu server.cfg. Cada dependencia — y todo lo que deba detectar — debe iniciarse antes que Tattoo Creator, y las cinco líneas add_ace van por encima:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Appearance, inventory, text UI
ensure qs-appearance
ensure qs-inventory
ensure qs-textui
# Tattoo Creator
add_ace resource.qs-tattoo-creator command.ensure allow
add_ace resource.qs-tattoo-creator command.start allow
add_ace resource.qs-tattoo-creator command.stop allow
add_ace resource.qs-tattoo-creator command.restart allow
add_ace resource.qs-tattoo-creator command.refresh allow
ensure qs-tattoo-preview
ensure qs-tattoo-creatorEl orden de carga importa. La detección solo ve los recursos que ya se han iniciado, así que un script de apariencia o un inventario que se inicie después de Tattoo Creator no se encuentra y esa parte funciona en modo standalone.
Las tres carpetas#
Tattoo Creator funciona como tres recursos uno al lado del otro. Dos vienen en la descarga; el tercero lo crea el script en su primer inicio, junto a qs-tattoo-creator, y se inicia automáticamente: no necesita línea ensure.
Recurso | Qué es | Regla |
|---|---|---|
| El script: el estudio, las tiendas, el panel de administración. | Se puede reiniciar en cualquier momento. |
| Datos estáticos: los presets de la vista previa en directo y el grupo de 120 espacios en el que se dibuja cada tatuaje llevado. | No lo edites nunca ni lo reinicies con jugadores conectados. El script lo inicia si se te olvida. |
| Los datos de tu servidor: cada tatuaje que llevan tus jugadores, las imágenes que vincularon, las imágenes pendientes de un moderador y tu catálogo exportado. | No lo borres ni lo reemplaces nunca. Haz una copia de seguridad junto con tu base de datos. |
Dentro de qs-tattoo-data:
Carpeta | Contiene |
|---|---|
| La imagen de cada tatuaje llevado, un archivo por diseño. Los archivos que ya nadie lleva se limpian solos. |
| Imágenes que los jugadores vincularon en el estudio, descargadas una vez. |
| Diseños en tránsito e imágenes pendientes de un moderador. |
| El catálogo de tatuajes exportado: texturas, la colección de decoraciones y |
| Una copia del catálogo independiente del framework para conectarlo a otros scripts. |
¿Por qué
qs-tattoo-previewestá separado? Detener un recurso que posee una colección de decoraciones la desmonta, y un personaje que todavía lleve uno de sus tatuajes hace que el cliente del juego se cierre en la siguiente llamada de decoración. Mantener las colecciones en su propio recurso es lo que hace que reiniciarqs-tattoo-creatorsea siempre seguro — y lo que permite que un tatuaje nuevo se active sin reiniciar nada.
La base de datos#
No hay nada que importar. Tattoo Creator crea sus propias tablas en el primer inicio, todas con el prefijo qs_tattoo_. [sql]/database.sql contiene exactamente las mismas tablas, para quien prefiera crearlas a mano.
Tablas | Contienen |
|---|---|
| Cada personaje y lo que lleva en cada parte del cuerpo. |
| Diseños guardados, códigos para compartir e imágenes vinculadas. |
| Lo que pagó cada jugador: tatuajes, eliminaciones, comisiones, reembolsos. |
| Los estudios, sus rangos, su personal y cada turno trabajado. |
| El libro de caja de cada estudio, sus suministros y sus pedidos de suministros. |
| Tatuajes pendientes de un moderador o decididos por él. |
| El catálogo de tatuajes exportado y el historial de cada exportación. |
| Cada ajuste que cambiaste en el juego: una fila por cada valor que difiere del predeterminado. |
Las actualizaciones del esquema se ejecutan en cada inicio y cada una se aplica exactamente una vez, mostrando
Database: migrated <name>cuando lo hace. Actualizar nunca requiere un paso manual de SQL.
Obtener acceso de administrador#
Colocar estudios y cambiar ajustes se hace desde el panel de administración, que se abre con /tattoocreator. No hay un sistema de permisos aparte: un administrador es quien tu framework ya considera administrador, y la consola del servidor siempre cuenta como uno.
Cualquier jugador cuyo grupo de ESX esté en Config.AdminGroups, en config/config.lua:
Config.AdminGroups = { 'admin', 'superadmin', 'god' }Automático: jugadores con el permiso god o admin, o con el ace command.
Jugadores con el ace command: el grupo admin de txAdmin lo tiene. Para concederlo a un grupo propio:
add_ace group.admin command allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.adminEl nombre del comando es en sí un ajuste (Settings → Commands → Admin panel command); un comando renombrado se aplica tras reiniciar.
Configurar el recurso#
Casi nada se configura en archivos. Los precios, la cámara, el punto de tatuaje, las tiendas y las nóminas, el presupuesto de tinta, las imágenes, la moderación, los comandos y el idioma están en Settings dentro del juego: 133 ajustes en doce secciones, cada uno con una línea que explica lo que te cuesta. Los archivos son para la infraestructura y para tu propio contenido:
Archivo | Contenido |
|---|---|
| Lo que debe saberse antes de que responda la base de datos: el framework, la detección del script de apariencia y del inventario, y los grupos de administradores. |
| Tus propias fuentes y diseños de la galería, la ropa que el estudio quita por parte del cuerpo y la lista de hosts de imágenes permitidos. |
| Lo escribe para ti |
| URLs de webhooks de Discord por categoría y un token de Fivemanage para las miniaturas. |
| Qué menús de apariencia reciben los tatuajes exportados del catálogo. |
| Todos los textos, incluidas las etiquetas del propio panel Settings. Una clave que falte en una traducción vuelve al inglés. |
Dos valores que conviene revisar primero, ambos en config/config.lua:
Config.AppearancePin = '' -- two appearance scripts installed? name the one players use
Config.AdminGroups = { 'admin', 'superadmin', 'god' } -- ESX groups treated as adminsEl idioma predeterminado de todos los recursos de Quasar también puede fijarse una vez en server.cfg; un idioma guardado en el panel Settings sigue teniendo prioridad:
setr qs:locale "es"Los ajustes viven en tu base de datos, no en un archivo, así que una actualización nunca sobrescribe tus ajustes.
config/,custom/,client/custom/,server/custom/ylocales/quedan abiertos en el escrow, así que siguen siendo legibles y editables.
Verificar la instalación#
Reinicia tu servidor y lee la consola. Un inicio correcto muestra el framework que cargó y la comprobación de versión, y nada más de Tattoo Creator:
[INFO] Successfully loaded the framework. esx
You are using the latest version of qs-tattoo-creator!Cuando falla una comprobación de inicio, muestra una línea roja que nombra la comprobación e indica exactamente qué corregir, por ejemplo:
[qs-tattoo-creator] ✗ Preview collection qs-tattoo-preview is missing — add `ensure qs-tattoo-preview` to your server.cfgLuego entra en tu servidor y recorre el primer ciclo:
Abre el panel de administración
/tattoocreatorabre el panel en la pestaña Shops. Si faltan las líneasadd_ace, un aviso rojo te lo indica en cuanto se abre.Coloca un estudio
Pulsa +, ponle nombre, dibuja su área y coloca su punto de tatuaje y su NPC. Uso explica cada campo.
Hazte un tatuaje
Acércate al NPC del estudio y pulsa
E. Elige un diseño, arrástralo a tu brazo y paga: cualquiera que esté a tu lado lo verá en menos de un segundo.Comprueba el estudio
Ejecuta
tattoo_shopen la consola del servidor: un bloque por estudio, terminando con una lista de lo que aún falte.
A partir de aquí nada necesita reiniciar. Cada estudio, precio y ajuste se edita dentro del juego.
Actualizar#
Haz una copia de seguridad
De tu base de datos y de la carpeta
qs-tattoo-data, a la vez.Reemplaza dos carpetas
Detén el servidor y luego reemplaza
qs-tattoo-creatoryqs-tattoo-previewpor las nuevas. Nunca toquesqs-tattoo-data.Conserva tus propios archivos
Vuelve a copiar tus
config/config.lua,custom/yserver/webhooks.luasi los cambiaste, y comparacustom/config.luacon el que venía incluido: una versión nueva puede añadir un bloque ahí. Si el estudio deja de desvestir al personaje tras una actualización, falta el bloqueConfig.Studio.Revealen tu copia; la comprobación de inicio lo indica.Inicia el servidor
Los ajustes, los estudios y cada tatuaje llevado se conservan. La base de datos se actualiza sola al iniciar.
Desinstalar#
Ejecuta [sql]/clean.sql para eliminar todas las tablas qs_tattoo_, ajustes incluidos. Borra la carpeta qs-tattoo-data para quitar todas las imágenes y el catálogo exportado, y luego quita las líneas ensure y add_ace de server.cfg.



