Documentación de Mesas de crafteo
Otra Vida Crafteo (ov_crafteo)
Que hace
ov_crafteo agrega mesas de fabricacion a servidores FiveM con qb-core. Los jugadores convierten materiales de su inventario en armas, municion, accesorios o comida, con una interfaz propia de tres columnas, vista previa 3D del objeto y una cola de fabricacion que sigue corriendo aunque el jugador se desconecte.
Lo mas importante:
- Mesas configurables con coordenadas, radio, categorias permitidas y, opcionalmente, restriccion por trabajo o banda.
- Recetas con ingredientes, tiempo, XP y nivel requerido. Incluye 6 armas, 4 tipos de municion, 3 accesorios y 7 platos de cocina como ejemplo.
- Cola persistente guardada en base de datos: se paga al empezar, se reclama al terminar. Los pedidos de una mesa se fabrican en serie.
- Progresion por categoria (Armas, Municion, Accesorios, Cocina): nivel y XP por personaje.
- Vista previa 3D con modelos
.glbincluidos para las armas, cargadores y accesorios de ejemplo. Si no hay modelo, se muestra el icono del item. - Seguridad en el servidor: valida cercania a la mesa, grupo, nivel, ingredientes reales y espacio en el inventario, con limites de velocidad por jugador.
- Cancelar con reembolso: "Borrar todo" devuelve el 100 % de los ingredientes de lo no terminado.
- Integracion opcional con un sistema de maestria (
Config.Maestria) que se omite si ese recurso no esta iniciado. - Menu de administracion para listar mesas, teletransportarse a ellas y recargar la configuracion sin reiniciar.
Requisitos
| Requisito | Detalle |
|---|---|
| Framework | qb-core |
| Dependencias declaradas en el fxmanifest | qb-core, ox_inventory, ox_lib, oxmysql |
| Apuntado (opcional) | Config.Target = { 'ov_target', 'ox_target' }: se usa el primero que este iniciado. Si ninguno esta, el recurso muestra el texto [E] al acercarse a la mesa |
| Maestria (opcional) | Config.Maestria.recurso (por defecto sbr-mastery). Solo se usa si ese recurso esta iniciado y expone SubmitSample. Puedes desactivarlo con activo = false |
| Lua | 5.4 (lua54 'yes') |
| Base de datos | MySQL o MariaDB, mediante oxmysql |
Todos los ingredientes y resultados de las recetas deben existir como items en ox_inventory. Segun la guia del producto, una receta que usa un item inexistente se desactiva sola al arrancar y queda avisada en consola.
Instalacion
- Descarga el recurso desde el Portal de Cfx.re (seccion de assets comprados) con la cuenta Cfx.re con la que hiciste la compra. El recurso viene protegido con Asset Escrow de Cfx.re: solo funciona en servidores cuya clave de licencia pertenece a tu cuenta.
- Copia la carpeta
ov_crafteodentro deresources. - Asegurate de que los items de las recetas existen en
ox_inventory(hierroiron, acerosteel, cauchorubber, chatarrametalscrap, plasticoplastic, y los resultados que uses). Edita las recetas si tus items se llaman distinto. - Agrega en
server.cfg, despues deox_lib,oxmysql,qb-core,ox_inventoryy tu recurso de apuntado:
ensure ov_crafteo
- Da el permiso de administracion:
add_ace group.admin ov_crafteo.admin allow
- Inicia el servidor. No hay archivo .sql: al arrancar se crean solas las tablas
ov_crafteo_colayov_crafteo_xp(CREATE TABLE IF NOT EXISTS).
El codigo no lee convars de server.cfg.
Archivos editables: en el fxmanifest.lua, escrow_ignore deja sin cifrar web/** (interfaz, estilos y modelos 3D), shared/config.lua y shared/locale.lua (textos). El resto del codigo (client/ y server/) va cifrado por Asset Escrow.
Configuracion
Todo esta en shared/config.lua. Opciones principales:
| Clave | Valor por defecto | Para que sirve |
|---|---|---|
Config.AcePermiso | 'ov_crafteo.admin' | Permiso ACE de administracion (tambien salta las restricciones de grupo de las mesas) |
Config.ComandoAdmin | 'crafteo_admin' | Comando del menu de administracion |
Config.Target | { 'ov_target', 'ox_target' } | Recursos de apuntado que se prueban en orden |
Config.Tecla | 38 (E) | Tecla del aviso de texto cuando no hay apuntado |
Config.IconoTarget | 'fa-solid fa-hammer' | Icono de la opcion de apuntado |
Config.DistanciaTarget | 2.0 | Distancia de apuntado |
Config.MaxCantidad | 10 | Unidades maximas por pedido |
Config.MaxPedidosPorMesa | 6 | Pedidos en cola por mesa y jugador |
Config.MargenDistancia | 3.0 | Metros extra permitidos sobre el radio de la mesa |
Config.LimiteAccionMs | 500 | Espera minima entre acciones |
Config.LimiteAccionesMinuto | 40 | Acciones maximas por minuto |
Config.XpBase | 10 | XP necesaria para pasar del nivel 1 al 2 |
Config.XpMultiplicador | 1.5 | Crecimiento de la XP requerida por nivel |
Config.MaxNivel | 50 | Nivel maximo |
Config.Maestria | activo = true, recurso = 'sbr-mastery', actividadPorDefecto = 'fabricar', actividadPorCategoria = { armas = 'fabricar_arma' } | Integracion opcional con maestria |
Config.Blip | sprite = 566, color = 2, escala = 0.7 | Marca de cada mesa en el mapa |
Config.Categorias | armas, municion, accesorios, cocina | Categorias, con label y descripcion |
Config.Recetas | 20 recetas de ejemplo | Cada una con categoria, nivel, xp, tiempo (ms por unidad), descripcion, ingredientes y resultado |
Config.Modelos3D | 12 modelos | Receta o item resultado a modelo .glb de web/modelos/ |
Config.Mesas | 15 mesas activas y una de cocina apagada | Mesas con id, label, coords (vector4), radio, categorias y grupo |
Cada mesa acepta grupo = { 'nombre' }: solo pueden usarla jugadores cuyo trabajo o banda coincida con alguno de esos nombres. Sin grupo, la mesa es abierta. Una mesa con enable = false o sin coords no se crea.
Las mesas y recetas incluidas son un ejemplo: las coordenadas son del mapa base y los nombres de grupo (armas, municiones) deben existir como trabajos o bandas en tu servidor, o quitarse. Modifica Config.Mesas a tu gusto.
Estructura de una receta:
WEAPON_PISTOL = {
categoria = 'armas', nivel = 1, xp = 10, tiempo = 30000,
descripcion = 'Pistola semiautomatica.',
ingredientes = { { 'iron', 30 }, { 'steel', 20 }, { 'rubber', 5 } },
resultado = { 'WEAPON_PISTOL', 1 },
},
Comandos y permisos
| Elemento | Detalle |
|---|---|
/crafteo_admin | Menu de administracion (nombre en Config.ComandoAdmin). Exige el permiso ACE |
/crafteo_materiales [cantidad] | Entrega al admin todos los materiales que usan las recetas (cantidad por defecto 100, entre 1 y 1000). Exige el permiso ACE. Util para pruebas |
| Permiso ACE | ov_crafteo.admin (Config.AcePermiso) |
Tecla E | Abre la mesa cuando no hay recurso de apuntado iniciado |
| Opcion de apuntado | Aparece sobre la mesa como "Usar mesa de fabricacion" (texto definido en shared/locale.lua) |
El recurso no define exports ni eventos pensados para otros scripts.
Como se usa
- Acercate a una mesa (tiene marca en el mapa). Apunta a la mesa con el ojo de interaccion, o pulsa
Esi aparece el aviso de texto. - A la izquierda elige una categoria y una receta. Ves tu nivel y la barra de XP de la categoria.
- En el centro ves la vista previa 3D, la descripcion, el tiempo, la XP, el nivel requerido y los ingredientes con lo que tienes y lo que necesitas.
- Elige la cantidad (hasta el maximo configurado) y pulsa Fabricar. Los ingredientes se descuentan en ese momento.
- A la derecha ves tus materiales y la cola En fabricacion. Cuando un pedido termina, pulsa Reclamar.
- Puedes cerrar la interfaz y alejarte. El pedido avanza con el reloj del servidor y la cola se conserva si te desconectas.
Reclamar: entrega lo fabricado y suma la XP. Si no cabe en el inventario, el pedido sigue en la cola.
Borrar todo: cancela lo no terminado y devuelve el 100 % de los ingredientes. Si no hay espacio para devolver todo, no cancela nada. Lo ya terminado queda para reclamar.
La interfaz se cierra sola si el jugador muere o se aleja de la mesa.
Para administradores
- Escribe
/crafteo_admin(con el permiso asignado). El menu permite ver las mesas, teletransportarte a una y recargar la configuracion sin reiniciar el recurso. La edicion de mesas y recetas desde el juego no esta incluida: se hace enshared/config.lua. - Para agregar una mesa, anade una entrada a
Config.Mesascon unidunico,label,coords,radioycategorias. Para restringirla, agregagrupo. - Para agregar una receta, anade una entrada a
Config.Recetascon los items reales de tu inventario. Para su modelo 3D, usaConfig.Modelos3D(los modelos van enweb/modelos/y se declaran enweb/modelos/index.json). - Despues de editar, usa Recargar configuracion en el menu o reinicia el recurso.
- Para probar,
/crafteo_materiales 100te entrega los materiales de todas las recetas. - Los datos de los jugadores estan en
ov_crafteo_cola(pedidos) yov_crafteo_xp(XP por categoria), asociados alcitizenid.
Preguntas frecuentes
Me dice que no tengo acceso a la mesa. La mesa tiene grupo y el jugador no tiene ese trabajo ni esa banda. Cambia el grupo de la mesa o da el trabajo al jugador. Los admins con el permiso ACE saltan esta restriccion.
Reclame y no recibi nada. Si el inventario esta lleno, el pedido sigue en la cola. Hay que hacer espacio y reclamar de nuevo.
Los niveles desbloquean recetas? Cada receta tiene un campo nivel. Las recetas de ejemplo estan todas en nivel 1, asi que por defecto subir de nivel no desbloquea nada nuevo. Sube el nivel de las recetas que quieras bloquear.
Es obligatorio usar un sistema de maestria? No. Config.Maestria solo actua si el recurso indicado esta iniciado. Ponlo en activo = false para desactivarlo.
Como cambio los tiempos o el numero de unidades? Edita tiempo (milisegundos por unidad) en cada receta y Config.MaxCantidad.
Donde veo los errores? En la consola del servidor (mensajes [ov_crafteo]) y en la consola F8 del cliente.
Actualizaciones y soporte
Las versiones nuevas aparecen en el Portal de Cfx.re (en tus recursos comprados) y en la tienda. Descargalas con la misma cuenta Cfx.re de la compra y reemplaza la carpeta, conservando tus cambios en shared/config.lua y shared/locale.lua. Para soporte, abre un ticket en el Discord de la tienda: [enlace de soporte]. Indica la version del recurso, el error de consola y los pasos para reproducirlo.
