Antes de empezar#
Antes de instalar Shutters Creator, asegúrate de que tu servidor cumple los requisitos mínimos. Cuatro cosas son obligatorias; todo lo demás es opcional y se detecta por sí solo.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Declarado como dependencia. Está activado por defecto en los servidores con txAdmin. |
| Obligatorio | Acceso a la base de datos. Las persianas y su estado se guardan en una tabla. |
| Obligatorio | Callbacks, las zonas alrededor de cada persiana y la prueba de habilidad de la ganzúa. |
Framework | Obligatorio |
|
Inventario | Recomendado |
|
Target | Opcional |
|
Bandas | Opcional | Las bandas de QBCore y Qbox funcionan de serie. En ESX, el acceso por banda necesita |
| Opcional | Notificaciones con el estilo de Quasar, ocultación del HUD y el aviso 3D. Sin ellos, el script usa sus propias notificaciones y el texto 3D de GTA. |
Todo lo específico del framework o del inventario está detrás de un pequeño archivo bridge, y el recurso elige el correcto observando lo que ya está en ejecución:
Capa | Recursos detectados |
|---|---|
Framework |
|
Inventario |
|
Target |
|
La detección solo ve los recursos que ya están iniciados. Integraciones tiene los detalles y cómo conectar un recurso renombrado o personalizado.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Descargar Shutters Creator#
Tras comprar Shutters 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 Shutters Creator. Con otra cuenta, el asset no aparece.
Tras extraer la descarga, deberías tener las siguientes carpetas:
[shutterscreator]/
├── qs-shutter-creator/ -- the script
│ ├── config/ -- what you may edit
│ ├── custom/ -- framework bridges, ESX and QBCore/Qbox (editable)
│ ├── server/custom/ -- the inventory bridges (editable)
│ ├── locales/ -- 27 languages (editable)
│ └── types.lua -- the data formats, for developers
├── shutters_props/ -- the six shutter models, streamed
├── [sql]/database.sql -- the qs_shutters table
└── [img]/shutter_lockpick.png -- the lockpick item pictureMantén el nombre de la carpeta
qs-shutter-creator. Sus sonidos se cargan desdenui://qs-shutter-creator/y todos los exports se llaman con ese nombre, así que una copia renombrada no reproduce sonidos y rompe cualquier script que la llame.
Instalar el recurso#
Mueve qs-shutter-creator y shutters_props al directorio de recursos de tu servidor. Pueden estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
├── qs-shutter-creator/
└── shutters_props/Una vez copiados, abre tu server.cfg y asegúrate de que todas las dependencias — y todo lo que deba detectar — arranquen antes que Shutters Creator:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory, target and optional Quasar resources
ensure ox_inventory
# ensure ox_target
# ensure qs-gangs
# ensure qs-interface
# ensure qs-textui
ensure shutters_props
ensure qs-shutter-creatorEl orden de carga importa. Un framework que arranca después de Shutters Creator no se encuentra y el recurso se detiene con un error; un inventario que arranca después no se encuentra y la lista de ítems del creador queda vacía.
La base de datos#
Shutters Creator guarda todo en una sola tabla, qs_shutters. Importa [sql]/database.sql en la base de datos de tu servidor antes del primer arranque, con HeidiSQL o cualquier cliente de MySQL / MariaDB.
database.sql
CREATE TABLE IF NOT EXISTS `qs_shutters` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`creator` VARCHAR(80) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`name` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`model` VARCHAR(64) NOT NULL DEFAULT 'sf_prop_sf_shutter_01a' COLLATE 'utf8mb3_general_ci',
`coords` LONGTEXT NOT NULL COLLATE 'utf8mb3_general_ci',
`open_offset` FLOAT NOT NULL DEFAULT '3',
`interact_points` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`item` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`job` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`job_grades` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`gang` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`gang_grades` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`enable_pin` TINYINT(1) NOT NULL DEFAULT '0',
`pin_code` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`pin_length` TINYINT NOT NULL DEFAULT '4',
`blip` LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci',
`is_closed` TINYINT(1) NULL DEFAULT '1',
PRIMARY KEY (`id`) USING BTREE,
INDEX `creator` (`creator`) USING BTREE
)COLLATE='utf8mb3_general_ci';
ALTER TABLE `qs_shutters`
ADD COLUMN IF NOT EXISTS `enable_pin` TINYINT(1) NOT NULL DEFAULT 0 AFTER `gang_grades`,
ADD COLUMN IF NOT EXISTS `pin_code` VARCHAR(10) NULL DEFAULT NULL AFTER `enable_pin`,
ADD COLUMN IF NOT EXISTS `pin_length` TINYINT NOT NULL DEFAULT 4 AFTER `pin_code`;Columnas | Contienen |
|---|---|
| Cómo se llama la persiana, qué modelo usa, dónde está y cuánto se enrolla hacia arriba. |
| Cada punto de interacción con su distancia y su opción de ganzúa, y el blip del mapa. |
| Las reglas de acceso. |
| El código del teclado numérico, si la persiana tiene uno. |
| Si la persiana está actualmente subida o bajada, y el identificador del administrador que la creó. |
¿Actualizas desde una versión anterior? Vuelve a ejecutar el archivo completo.
CREATE TABLE IF NOT EXISTSdeja tus persianas intactas y elALTER TABLEañade las columnas del PIN cuando faltan. La formaADD COLUMN IF NOT EXISTSes sintaxis de MariaDB — en MySQL, consulta Errores comunes.
Añadir el ítem de ganzúa#
La ganzúa es un ítem utilizable normal llamado shutter_lockpick. Shutters Creator registra su uso a través de tu framework; tu inventario solo necesita saber que el ítem existe.
Añade el ítem
Pega la definición para tu inventario desde Ítems de inventario.
Añade la imagen
Copia
[img]/shutter_lockpick.pngen la carpeta de imágenes de ítems de tu inventario.Mantén los nombres iguales
Para usar un ítem que ya tengas — una ganzúa genérica, por ejemplo — define su nombre en
Config.LockpickItemen su lugar.
Obtener acceso de administrador#
El creador es donde se colocan las persianas y se decide su acceso, así que es solo para administradores. /shuttercreator pregunta a tu framework si el jugador es del staff:
Jugadores del grupo admin o superadmin. Define el grupo con el propio comando de ESX, desde la consola del servidor o como administrador existente:
setgroup <server id> adminJugadores con el permiso admin o god, o con el ace command permitido — que los administradores de txAdmin ya tienen. En server.cfg:
add_ace group.admin command allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.adminCualquier otra persona que escriba el comando ve You do not have permission to do this.
Configurar el recurso#
Las persianas en sí nunca se configuran en archivos — se crean en el juego. Los archivos son para el comportamiento de todo el servidor y los bridges:
Archivo | Contenido |
|---|---|
| El idioma, el target, el ítem y el minijuego de la ganzúa, la animación de la persiana, los sonidos, el debug y los modelos que ofrece el creador. |
| Todos los textos que muestra el script, un archivo por idioma. |
| Los bridges del framework: la comprobación de administrador, los trabajos, las bandas y los ítems. |
| Las notificaciones, el aviso 3D y el HUD — donde se conecta otro recurso de notificaciones o de text UI. |
| Un bridge por inventario: de dónde lee el creador los nombres y las imágenes de los ítems. |
Los valores que conviene revisar primero:
Config.Locale = 'en' -- one of the 27 files in locales/
Config.UseTarget = false -- true: ox_target / qb-target instead of the E prompt
Config.LockpickItem = 'shutter_lockpick' -- the usable lockpick item
Config.LockpickMinigame = true -- ox_lib skill check before a pick succeeds
Config.AnimDuration = 3000 -- how long a shutter takes to roll, in ms
Config.Debug = true -- verbose console output: turn it off on a live server
Config.Debugviene comotruepara que la primera configuración sea fácil de seguir en la consola. Cámbialo afalsecuando todo funcione. Cada opción se describe en Uso → Referencia de configuración.
Verificar la instalación#
Tras completar la instalación, reinicia tu servidor y lee la consola. El servidor — y cada cliente, en la consola F8 — confirma qué bridge de framework cargó:
[INFO] Successfully loaded the framework. esxSi, en cambio, el servidor repite Using standalone inventory…, tu inventario no se detectó — muévelo por encima de ensure qs-shutter-creator. Luego entra en tu servidor y recorre el primer ciclo:
Abre el creador
Escribe
/shuttercreatorcomo administrador. En un servidor nuevo, la lista de la izquierda está vacía.Crea una persiana
Pulsa Create shutter, ponle nombre, elige un modelo, pulsa Select y colócala sobre una puerta, añade un punto de interacción y guarda. Uso explica cada paso.
Ábrela
Camina hasta el punto de interacción y pulsa
Een Press [E] to enter the shutter. La persiana se enrolla para todos los que estén cerca; pulsa de nuevo para bajarla.
A partir de aquí nada necesita un reinicio. Cada persiana, sus reglas de acceso y su blip se crean, editan y eliminan en el juego, y todos los jugadores ven el cambio al instante.



