How to Set Up VSCode for FiveM and RedM Lua Scripting
Getting VSCode setup for FiveM/RedM scripting is actually really easy. The exentions listed in this blog automatically set most of that up for you! Below we will go over some suggested extensions and addons for VSCode.
Overview
The extensions listed below will provide:
- Autocompletion for native FiveM/RedM/CFX functions.
- Type-checking using Lua LSP (via EmmyLua-style annotations).
- In-editor documentation for native functions.
- Git functionality like in-editor blame annotations, hovers, CodeLens, and more

Installation
1. Install / Open VSCode
Make sure you have Visual Studio Code installed.
2. Install the suggested extensions
Tips & Tricks
- Hover over native functions (e.g.,
GetPlayerRoutingBucket,SetEntityCoords) to view documentation - Improve IntelliSense and type safety by annotating functions
- You can download support for export autocompletes of the inventory and core resources
- ox_types adds support for export calls from Overextended resources (ox_inventory, ox_doorlock, etc)
- qbox_types adds support for export calls from QBox resources (qbx_core, qbx_medical, etc)
After downloading either of the addons, store them in a place you will remember (you will need the file path later)
The below image shows ox_types adding autocomplete for inventory exports:

The below codeblock shows a correctly annotated function:
---@param source Sourcetells the intellisense the function expects a source (aka a players server ID) as the first arg---@return booleantells the intellisense the function will return a boolean (akatrueorfalse)
-- Check if player is whitelisted, kept like this for backwards compatibility or future plans
---@param source Source
---@return boolean
function IsWhitelisted(source)
if not serverConfig.whitelist then return true end
if IsPlayerAceAllowed(source --[[@as string]], serverConfig.whitelistPermission) then return true end
return false
end
Setup & Configuration
The below codeblock shows what your library settings should look like after downloading ox_types, qbox_types or both
(To get to the settings, press F1 and type settings)
We add the locally stored ox_lib resource path as it automatically adds support for lib autocompletes such as lib.notify
"Lua.workspace.library": [
// EXISTING LIBRARYS HERE
"F:/GitHub/ox_types/types",
"F:/GitHub/qbox_types/types",
"F:/CoolRoleplayServer/resources/[ox]/ox_lib"
],
You're Ready to Code!
That’s it! Your VSCode environment is now set up FiveM/RedM Lua development. No more tab-switching to docs. Just clean, typed, and documented code... hopefully.
