Scuffed Labs Logo

Configuration

Learn how to configure SCFD Changelog to match your server.

All resource configuration is located in data/configuration.lua.

SCFD Changelog is designed to be almost entirely data-driven. Most servers will only need to configure the display options and (optionally) Discord webhook support.


Configuration Structure

The configuration file is split into several sections:

  • Display
  • Themes
  • Discord Webhook
  • Debugging

Each section is explained below.


display

The display table controls how and when players see the changelog.

config.display = {
    title = "Server Changelog",
    subtitle = "Updates, fixes, and improvements",

    onJoin = true,
    joinDelay = 1500,

    oncePerVersion = true,

    defaultCategory = "All",

    theme = "scuffed",
}

title

The title displayed at the top of the changelog.

title = "Server Changelog"

subtitle

Optional text displayed below the title.

subtitle = "Updates, fixes, and improvements"

onJoin

Whether the newest changelog should automatically open when a player joins.

onJoin = true

If disabled, players can still manually open the changelog using:

/changelog

joinDelay

The amount of time (in milliseconds) to wait after the player has loaded before opening the changelog.

joinDelay = 1500

Increasing this delay can help avoid conflicts with other resources that open menus when players spawn.


oncePerVersion

Controls whether each changelog is only displayed once.

oncePerVersion = true

When enabled:

  • Version 3.0.0 is shown once.
  • Updating to 3.1.0 automatically shows the new changelog.
  • Players can always reopen previous releases manually.

When disabled:

The changelog will open every time a player joins.

Player view history is stored locally using FiveM KVP storage.


defaultCategory

The category selected when the UI first opens.

defaultCategory = "All"

This can be any category declared in your changelog.

Examples:

defaultCategory = "Police"
defaultCategory = "Economy"

If the category does not exist for the selected release, the UI automatically falls back to All.


theme

Controls the appearance of the NUI.

theme = "scuffed"

Supported themes include:

ThemeDescription
scuffedOfficial Scuffed Labs theme
neutralDefault dark shadcn theme
blueBlue accent
greenGreen accent
orangeOrange accent
roseRose accent
violetViolet accent

Changing the theme requires restarting the resource.


Discord Webhook

SCFD Changelog can optionally publish release notes directly to Discord.

config.webhook = {
    enabled = false,
}

enabled

Enables Discord webhook publishing.

enabled = true

When disabled:

  • No webhook requests are sent.
  • The publishchangelog command still reloads the changelog locally.

Webhook URL

For security reasons, the webhook URL is not stored inside the configuration file.

Instead, add it to your server.cfg.

set scfd_changelog:webhook "https://discord.com/api/webhooks/..."

Never hardcode webhook URLs inside the resource.


Themes

Every built-in theme uses the same component layout.

Only the color palette changes.

Current themes:

Scuffed

Official Scuffed Labs branding.

Neutral

Standard shadcn dark theme.

Blue

Blue accent palette.

Green

Green accent palette.

Orange

Orange accent palette.

Rose

Pink / rose accent palette.

Violet

Purple accent palette.

Themes can also be extended if you're rebuilding the NUI yourself.


Automatic Opening

Automatic opening only occurs when all of the following are true:

  • display.onJoin is enabled
  • The player has not already viewed the current version (when oncePerVersion is enabled)
  • The resource has finished initializing
  • The NUI is not already open

This prevents duplicate changelog windows during login.


Localization

SCFD Changelog uses ox_lib localization.

Translations are stored in:

locales/

The default language is:

locales/en.json

Additional languages can be added by creating new locale files.


Debugging

When debugging is enabled, the resource provides additional logging for:

  • Changelog parsing
  • Version detection
  • Metadata parsing
  • Discord publishing
  • NUI communication

This can be useful while creating new changelog entries.


Example Configuration

config.display = {
    title = "Server Changelog",
    subtitle = "Latest Updates",

    onJoin = true,
    joinDelay = 2000,

    oncePerVersion = true,

    defaultCategory = "All",

    theme = "blue",
}

config.webhook = {
    enabled = true,
}

Next Steps

Now that the resource has been configured, learn how to write release notes.

Changelog Format

Learn how to write releases, metadata, categories, and version history.

On this page