Skip to the content
Docs

Updating

On this page9

Version numbers

We use semantic versioning: MAJOR.MINOR.PATCH.

PartChanges whenWhat 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:

Code
[5code-recognition] Up to date (1.0.0).
[5code-recognition] Update available: 1.0.0 -> 1.0.1

The files you may have edited

Only these stay open after escrow, and only these can hold your changes:

File / folderYours to edit
config.luaEvery gameplay setting, integration selector, item name and HUD default.
config_server.luaSecrets, webhooks, photo hosting, data retention and other server-only settings.
locales/*.luaTranslations.
bridge/*.luaThe adapters — including every 'custom' branch you wrote.

Everything else in the zip is replaced wholesale on an update.

The update procedure

  1. Stop the resource (or the server).
  2. Copy your four open files out — config.lua, config_server.lua, locales/, bridge/.
  3. Replace the folder with the new one. Keep the name 5code-recognition.
  4. Merge your settings back in. See below.
  5. Start it and watch the console: Schema ensured, Integrations:, Resource started successfully (vX.Y.Z).
  6. Run recognition:selftest in 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:

  1. Start from the new file.
  2. Diff it against your old one (VS Code, WinMerge, git diff — anything).
  3. Carry your values across, key by key.
  4. 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:

  1. Take the new bridge file.
  2. Re-apply only your 'custom' branch into it — that block is written to be self-contained for exactly this reason.
  3. 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.Scan value 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.