PiTyUs.Hire me

Business

Writing documentation for FiveM resources

Write documentation that cuts support tickets: a README structure (requirements, installation, configuration), a config reference, exports and events API docs, framework notes, troubleshooting and FAQ, changelogs, and choosing a docs site.

Updated 9 min readBy PiTyUs · FiveM developer

Overview

Every question a buyer asks in your Discord is a missing sentence in your documentation. Good docs are the cheapest support you will ever have: they turn “it does not work” into a successful install, and they make a script look professional before anyone runs it.

A README template

README.mdmd
# my_garage

Persistent garages with impound and job vehicles.

## Requirements
- ox_lib (latest release)
- oxmysql
- ESX Legacy, QBCore or Qbox

## Installation
1. Import `install.sql`.
2. Put `my_garage` in your resources folder.
3. Add to server.cfg after your framework:
   ensure ox_lib
   ensure my_garage

## Configuration
See `config.lua` — every option is described below.

## Commands
| Command | Who | What |
|---|---|---|
| /impound | police | Impound the nearest vehicle |

## Exports
`exports.my_garage:GetVehicles(source)` → list of the player’s vehicles.

## Troubleshooting
| Error | Fix |
|---|---|
| `attempt to index a nil value (global 'lib')` | ox_lib not started before my_garage |

## Changelog
- 1.2.0 — Qbox support, impound fees

Documenting configuration

For every option: name, type, default, what it does and an example. Group related options. If your config is well structured with annotations, most of this can be copied from it — see config.lua best practices and Lua annotations.

Documenting exports and events

IncludeExample
Name and sideGetVehicles (server export)
Parameterssource: number
Return value{ plate: string, model: string }[]
Example calllocal cars = exports.my_garage:GetVehicles(src)
Events emittedmy_garage:vehicleStored (server, args: source, plate)

Troubleshooting that saves tickets

Collect the errors people report and write the fix next to the exact message they see in F8 or the server console. Common ones for any script are covered in common Lua errors and F8 and server errors — link to them.

Where to host docs

  • README in the resource — always, even with a docs site.
  • A docs site (GitBook, Docusaurus, VitePress) for large or multiple products.
  • Pin the docs link in your Discord support channel and Tebex listing.

Frequently asked questions

What should FiveM script documentation include?

Requirements, installation steps, a full config reference, commands and items, exports and events, troubleshooting, FAQ and a changelog.

Do escrowed scripts need documentation?

Even more — buyers cannot read the code, so the docs are all they have.

Where should I publish documentation?

In the resource’s README, and on a docs site for bigger products, linked from your store and Discord.

How do I reduce support requests?

Turn every repeated question into a troubleshooting or FAQ entry.

Need this built, not just explained?

Ten years of FiveM work, from Lua to NUI

Custom resources, React NUI, ESX / QBCore / Qbox integration, OneSync performance audits and security reviews — plus the websites and SEO around your server brand.

Related guides