Updating
On this page9
Version numbers
We use semantic versioning: MAJOR.MINOR.PATCH.
| Part | Changes when | What it means for you |
|---|---|---|
| PATCH (1.0.1) | A bug is fixed. | Drop the new folder in, keep your open files. Nothing to read. |
| MINOR (1.1.0) | A feature or config key is added. | New keys appear in config.lua with safe defaults. Merge them in when you want them. |
| MAJOR (2.0.0) | Something changes shape — a renamed key, a changed export signature, a schema change that needs a decision. | Read the changelog before updating. |
The script checks for updates at boot and prints one line:
[5code-recognition] Up to date (1.0.0).
[5code-recognition] Update available: 1.0.0 -> 1.0.1The files you may have edited
Only these stay open after escrow, and only these can hold your changes:
| File / folder | Yours to edit |
|---|---|
config.lua | Every gameplay setting, integration selector, item name and HUD default. |
config_server.lua | Secrets, webhooks, photo hosting, data retention and other server-only settings. |
locales/*.lua | Translations. |
bridge/*.lua | The adapters — including every 'custom' branch you wrote. |
Everything else in the zip is replaced wholesale on an update.
The update procedure
- Stop the resource (or the server).
- Copy your four open files out —
config.lua,config_server.lua,locales/,bridge/. - Replace the folder with the new one. Keep the name
5code-recognition. - Merge your settings back in. See below.
- Start it and watch the console:
Schema ensured,Integrations:,Resource started successfully (vX.Y.Z). - Run
recognition:selftestin the server console. Every line PASS.
Merging config.lua and config_server.lua
Do not simply copy your old file over the new one — you would lose every key the update added, and the script would fall back to built-in defaults for them without telling you which.
The reliable way round:
- Start from the new file.
- Diff it against your old one (VS Code, WinMerge,
git diff— anything). - Carry your values across, key by key.
- Leave every new key at its shipped default unless the changelog says otherwise.
Merging bridge/*.lua
The bridge files change more often than you would like, because new adapters land in them. If you wrote your own branch:
- Take the new bridge file.
- Re-apply only your
'custom'branch into it — that block is written to be self-contained for exactly this reason. - Never keep an old bridge file wholesale: it may be missing functions the new core calls, and the resource will error at load.
If you never touched bridge/, just take the new files.
Merging locales/*.lua
en.lua gains keys with new features. Your translation file will be missing them,
and a missing key shows in English until you translate it.
Diff your language file against the new en.lua, add the new keys, translate them.
The same goes for en_settings.lua, which holds the titles and tips of the admin
panel's Settings page. See Localization.
The database
Nothing to do. The schema is re-ensured at every start, so an update that adds a column adds it for you, and nothing is ever dropped automatically. A migration that needs your hand is named in the changelog.
After the update
- Watch the Integrations boot line — an adapter that changed detection order may have resolved differently.
- Watch the Full scan time line — if you carried a
Config.Scanvalue across wrongly, it shows up here first. - Do a two-player scan (the First Test takes five minutes).
Changelog
Every release is listed newest-first in the Changelog.