Skip to content

Build and install

Installing on your server

Copy the folder into resources, ensure it, restart the server, and teleport in with the command from the build page.

Install the resource

  1. 1

    Unzip into resources

    Unzip the download into your server's resources folder. The zip holds the folder mlo_corner_cafe with fxmanifest.lua directly inside it.

  2. 2

    Add it to server.cfg

    ensure mlo_corner_cafe
  3. 3

    Restart the server

    Restart the server and reconnect. The README in the zip asks for a full start of the resource, because the map files load when it starts.

Getting inside

The resource adds three chat commands, named after it:

  • /mlocornercafe

    Teleports you into the interior, one metre above the floor centre, and waits until the floor has loaded.
  • /mlocornercafe_out

    Teleports you back to Legion Square.
  • /mlocornercafe_info

    Prints your position to the F8 console, for example to find a spot for a door marker.

Anyone can use them, so treat them as a test tool. On a live server, use your own teleport or housing script, see below.

The manifest

The manifest in the zip is complete. This is the one of our cafe:

fx_version 'cerulean'
game 'gta5'

author 'SwisserAI MLO Builder'
description 'Custom interior (mlo_corner_cafe) built with the SwisserAI MLO Builder - additive, replaces nothing'

this_is_a_map 'yes'

files {
    'stream/mlo_corner_cafe.ytyp',
}

data_file 'DLC_ITYP_REQUEST' 'stream/mlo_corner_cafe.ytyp'

-- vanilla prop source ytyps (permanently loaded)
data_file 'DLC_ITYP_REQUEST' 'dummy/lev_des.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_bar.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_coin_op.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_electrical.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_minigame.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_office.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_potted.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_seating.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_seating_tables.ityp'
data_file 'DLC_ITYP_REQUEST' 'dummy/v_sports.ityp'

client_script 'client.lua'
  • data_file 'DLC_ITYP_REQUEST' loads the .ytyp that describes the shell. Without it the shell does not appear.
  • The lines with dummy/ load the GTA files that describe the props you placed. They point at files of the game, not at files in the zip.
  • this_is_a_map 'yes' tells FiveM the resource contains map data.
  • client_script 'client.lua' loads the teleport commands. Remove the line when you delete client.lua.

Your own housing or teleport script

client.lua only adds the three commands; the interior works without it. To use your own script, delete client.lua and its line in the manifest, and give your script the coordinates of the interior:

  • The build page shows them under Placed at: X and Y of the floor centre, Z of the floor.
  • Spawn or teleport players at least one metre above Z, like the command does, so they land on the floor.
  • The README in the zip lists the same coordinates.
-- SwisserAI MLO Builder - teleport helpers for 'mlo_corner_cafe'.
-- /mlocornercafe       -> teleport into the interior
-- /mlocornercafe_info  -> print the ped's current position (F8 console)
-- /mlocornercafe_out   -> teleport back to Legion Square

local POS = vector3(-5400.00, -4800.00, 1651.00)

RegisterCommand('mlocornercafe', function()
    local ped = PlayerPedId()
    RequestCollisionAtCoord(POS.x, POS.y, POS.z)
    SetEntityCoords(ped, POS.x, POS.y, POS.z, false, false, false, false)
    local deadline = GetGameTimer() + 5000
    while not HasCollisionLoadedAroundEntity(ped) and GetGameTimer() < deadline do
        Wait(50)
    end
    print('mlocornercafe: teleported - interior shell streams in around you')

ESX, QBCore and other scripts

An interior is map data plus an optional script with three commands. It does not depend on a framework and runs the same on ESX, QBCore, Qbox and standalone servers. Housing, garage and teleport scripts only need the coordinates.

Several interiors on one server

Each design becomes a resource named after it, with a command named after the resource. Give every design its own name before you build it; two designs with the same name produce the same folder and the same command.

Name the design first

A design you never named is called Untitled design and builds as mlo_untitled_design with the command /mlountitleddesign. A second one would overwrite the first on your server. Rename it in the toolbar before you build.

ensure mlo_corner_cafe
ensure mlo_back_alley_garage

With Auto spot every build draws its own place, so they practically never overlap. With custom coordinates, keep them further apart than the size of your plans. If one of them does not load, see the interior does not show up.