Cómo funcionan las integraciones#
MLO Creator necesita muy poco del resto de tu servidor. A tu framework solo se le hace una pregunta — ¿este jugador es administrador? — y a tu script de apariencia solo una tarea: volver a ponerle la ropa después de una compilación. Todo lo demás que necesita viene dentro de la carpeta [mlocreator]. La detección ocurre al iniciar y la consola muestra lo que eligió.
Capa | Compatibles | Sin ella |
|---|---|---|
Framework |
| Standalone, administradores por ACE |
Apariencia |
| Los jugadores pueden quedar con un ped por defecto tras una compilación |
Base de datos |
| Obligatoria |
Texturas |
| Todos los interiores compilados muestran texturas faltantes |
Servidor de colisiones | El servidor alojado por Quasar (predeterminado) o el tuyo | El Collision Cutter y la detección de vanos de puerta no pueden funcionar |
Cerraduras de puertas | Cualquier script que use el sistema de puertas del juego | Las puertas siguen funcionando con el estado de bloqueo definido en el editor |
Cada mapa que compilas es un recurso normal de FiveM. Los demás scripts — targets, inventarios, housing, trabajos — ven tus interiores exactamente como ven cualquier MLO que hayas comprado.
Frameworks y la regla de administrador#
El framework se detecta a partir de los recursos en ejecución. Si renombraste el tuyo, añade su nombre a la izquierda de esta lista:
-- config/main.lua
local frameworks = {
['es_extended'] = 'esx',
['qb-core'] = 'qb',
['qbx_core'] = 'qb',
}Cada framework tiene una carpeta de puente, custom/<framework>/, con un archivo de cliente y otro de servidor. La función importante es playerIsAdmin: cada herramienta, cada guardado y cada compilación la consultan primero. Cámbiala por lo que use tu sistema de staff:
-- custom/esx/server.lua
function framework:playerIsAdmin(source)
local player = self:getPlayerFromId(source)
if not player then return false end
return player.getGroup() == 'admin' or player.getGroup() == 'superadmin'
endPara admitir otro framework, copia la carpeta más parecida (por ejemplo custom/standalone), renómbrala, completa sus funciones y añade el nombre de su recurso a la lista anterior.
Scripts de apariencia#
Una compilación en vivo recarga el streaming del juego, y esa recarga también reinicia el ped del jugador. Se usa el primer script de apariencia en ejecución de esta lista para devolverle la ropa a cada jugador:
-- config/main.lua
local appearances = {
['qs-appearance'] = 'qs-appearance',
['illenium-appearance'] = 'illenium-appearance',
['fivem-appearance'] = 'fivem-appearance',
['esx_skin'] = 'esx_skin',
['qb-clothing'] = 'qb-clothing',
['qb-clothes'] = 'qb-clothes',
}La recarga real ocurre en reloadSkin dentro de custom/<framework>/client.lua. Para un script de ropa que no esté en la lista, añade ahí una rama que dispare su propio evento de recarga.
El servidor de colisiones#
Las mallas de colisión y de edificios propias de GTA no se pueden leer desde un script. El Collision Cutter, la detección de vanos de puerta en el MLO Creator y la referencia "pick a building from the world" las obtienen de un servidor de colisiones. Quasar aloja uno y el script apunta a él por defecto, así que no hay nada que configurar. Sus campos están en Settings → Collision viewer:
Campo | Predeterminado | Significado |
|---|---|---|
Collision server |
| De dónde se obtienen las mallas de colisión vanilla. |
Server key | vacío | La clave que pide ese servidor, si la hay. |
Public address | vacío | La dirección que usan los clientes, cuando difiere de la anterior. |
Request timeout | 20000 ms | Cuánto tiempo se espera una solicitud. |
Tu servidor de juego debe poder llegar a esa dirección por HTTPS. Si un firewall bloquea las solicitudes salientes, la pantalla de inicio del cutter muestra "No collision server".
Scripts de cerraduras de puertas#
Las puertas colocadas con el MLO Editor se registran en el sistema de puertas propio del juego cuando se inicia el mapa, así que cualquier script de cerraduras que funcione con puertas AddDoorToSystem puede bloquearlas y desbloquearlas. El modelo de cada puerta — y su hash de puerta — lleva el nombre del proyecto del editor, numerado en el orden en que se crearon las puertas:
-- an editor project called "Benny's workshop"
benny_s_workshop_door01
benny_s_workshop_door02
benny_s_workshop_door03_l -- a double door: one entry per leaf
benny_s_workshop_door03_rLa tarjeta de puerta del editor tiene un botón para copiar el hash exacto. El estado de bloqueo, la velocidad, la distancia de activación y el hold-open definidos en el editor se aplican al iniciar; un script de cerraduras puede sobrescribirlos en cualquier momento.
El catálogo de muebles#
El catálogo que usan el MLO Editor y el YMAP Creator es el único archivo que querrás editar: config/catalog.lua. Incluye unos 500 props en 40 categorías, en cinco pestañas superiores (Kitchen, Bathroom, Bedroom, Living, Garden). Añade tus propios props add-on de la misma forma:
-- config/catalog.lua
Config.Catalog['my_sofas'] = {
label = 'My sofas',
img = Config.CatalogImagePath .. 'decorate/categories/rooms/living/sofa.svg',
navigation = 4, -- the top tab: 4 = Living
items = {
[1] = {
object = 'my_sofa_01', -- the model name, streamed by your own resource
label = 'Leather sofa',
img = 'nui://my-props/images/my_sofa_01.png',
description = 'Three seats, dark leather.',
},
},
}También se puede colocar cualquier modelo por nombre con Custom model (Editor) o Any model (YMAP Creator), sin tocar el catálogo.
Vallas#
La herramienta de vallas del YMAP Creator lee sus familias de config/fences.lua. Una familia solo nombra sus modelos; la longitud, la dirección y la altura del panel se leen del propio modelo, así que las vallas add-on funcionan en cuanto su .ytyp se carga por streaming.
-- config/fences.lua
{
id = 'chainlink_tall',
label = 'Chain-link · 2.5 m',
panels = { 'prop_fnclink_02a', 'prop_fnclink_02g' }, -- straight pieces, any order
gates = { 'prop_fnclink_02gate5',
{ 'prop_fnclink_02gate6_l', 'prop_fnclink_02gate6_r' } }, -- a pair = double gate
-- post = 'model_name', -- optional corner post
},Una familia cuyos modelos faltan todos en un cliente simplemente se oculta en él.
Idiomas#
MLO Creator viene en 41 idiomas, del inglés y el español al japonés, el árabe y el hindi. Elige uno en Settings → General; se aplica a todos los administradores a la vez. Para añadir o corregir un idioma, copia locales/en.json a un archivo nuevo, traduce los valores y selecciónalo.



