Skip to content

Creating your first script with classes!

Create your resource folder

In this case, my resource will be named tutorial

Your directory will look like this:

tutorial
|   fxmanifest.lua
|
+---client
|       main.lua
|
\---server
        main.lua

Let's import the classes to our resource!

Inside your fxmanifest.lua

fx_version 'cerulean'
games { 'gta5' }

client_scripts {
    -- DEPRECATED AFTER 0.2.0
    --[[ '@classes/common/utils.lua',
    '@classes/client/utils.lua',
    '@classes/client/statebag.lua',
    '@classes/client/coords.lua',
    '@classes/client/vehicle.lua',
    '@classes/client/player.lua',
    '@classes/client/ped.lua',
    '@classes/client/marker.lua', ]]
    '@classes/import.lua',
    'client/main.lua'
}

server_scripts {
    -- DEPRECATED AFTER 0.2.0
    --[[ '@classes/common/utils.lua',
    '@classes/server/utils.lua',
    '@classes/server/statebag.lua',
    '@classes/server/coords.lua',
    '@classes/server/vehicle.lua',
    '@classes/server/player.lua',
    '@classes/server/ped.lua', ]]
    '@classes/import.lua',
    'server/main.lua'
}

dependency 'classes'
-- if we want to use ESX
--[[
dependencies {
    'classes',
    'es_extended'
}
]]

Inside your client-server side .lua file

import '*'                  -- this get all classes
import 'ped'                -- this get ped class
import {'ped', 'player'}    -- this get ped and player classes

-- now you can use the imported classes as before 0.2.0!
local ped = Ped(--[[ params ]])

Adding this to snippets for VSCode

Adding a snippet on VSCode to write our fxmanifest.lua file will be very useful.

  • Go to File > Preferences > User Snippets
  • Create a New Global Snippets file...
  • Remove all from the snippet file
  • Copy and paste this inside the snippet file:
Snippet
{
    "fxmanifest":{
        "scope": "lua",
        "prefix": "fxmanifest",
        "body": [
            "fx_version 'cerulean'",
            "games { 'gta5' }",
            "",
            "client_scripts {",
            "\t'@classes/import.lua',",
            "\t'client/*.lua',",
            "}",
            "",
            "server_scripts {",
            "\t'@classes/import.lua',",
            "\t'server/*.lua',",
            "}",
            "",
            "dependency 'classes'"
        ]
    },
}

Once this is done, we just need to write fxmanifest and press enter.