Skip to content

Configuration

This page provides an overview of all Figgy configuration macros. These settings control how the Interface is built, how config files are saved and loaded, and how various Widgets behave at runtime.

General

FIGGY_DEBUG

Default: true.

Whether to show debug messages in the Output window (true) or not (false).

FIGGY_BUILD_INTERFACE

Default: __FIGGY_IN_IDE (when running from IDE).

Whether to build the Figgy debug interface (true) or not (false). By default, this is enabled when running the game from IDE and disabled when running from EXE, using the __FIGGY_IN_IDE status macro.


FIGGY_REMOVE_SPACES

Default: false.

Whether to remove spaces from variable names (true) or not (false), e.g. "Move Speed" in Setup becomes "MoveSpeed" in code.

  • Set to true if you use variable names like "Move Speed" AND want to avoid using the struct accessor for accessing configs in code.
  • Leave as false if you use variable names like "move_speed" or "moveSpeed".

WARNING

Changing this mid-development will erase existing saved configs, so make sure to decide on this early on.

File

FIGGY_FILE_NAME

Default: "config".

The config file name.

TIP

Read about file handling in Persistence.


FIGGY_FILE_EXT

Default: ".figgy".

The config file extension.

TIP

Read about file handling in Persistence.


FIGGY_FILE_DELTA

Default: true.

Delta input/output mode. When enabled (true), only variables that differ from their default values are saved. When disabled (false), all variables are saved regardless of whether they match defaults. Useful for inspecting or exporting the full config state.

WARNING

Setting this to false may reduce input/output performance at scale.

TIP

Read about file handling in Persistence.


FIGGY_FILE_PRETTIFY

Default: true.

Whether to format the config file for readability by prettifying the output JSON (true) or keep it compact (false).

TIP

Read about file handling in Persistence.


FIGGY_FILE_OBFUSCATE

Default: false.

Whether to obfuscate (base64 encode and compress) the config file (true) or not (false). Set to true to make the config file unreadable to users.

TIP

Read about file handling in Persistence.

Controls

FIGGY_CONTROLS_NAME

Default: "[CONTROLS]".

Name of the Controls section.


FIGGY_CONTROLS_OPEN

Default: true.

Whether the Controls section starts open (true) or not (false).


FIGGY_CONTROLS_IN_EVERY_WINDOW

Default: true.

Whether to include the Controls section in every window (true) or not (false). If set to false, the Controls section will only be included in the first window.

Scope Widgets

FIGGY_WINDOW_NAME

Default: "Figgy".

  • The name of the default window that's created if no .Window() calls are made.
  • The prefix used for custom Windows (e.g. "Figgy: Player").

FIGGY_WINDOW_DEFAULT_START_VISIBLE

Default: false.

Whether Figgy Windows start visible by default (true) or not (false).


FIGGY_WINDOW_DEFAULT_X

Default: 8.

Default X position of Figgy Windows.


FIGGY_WINDOW_DEFAULT_Y

Default: 27.

Default Y position of Figgy Windows.


FIGGY_WINDOW_DEFAULT_WIDTH

Default: 400.

Default width of Figgy Windows.


FIGGY_WINDOW_DEFAULT_HEIGHT

Default: 600.

Default height of Figgy Windows.


FIGGY_SECTION_DEFAULT_OPEN

Default: true.

Whether Sections are open by default (true) or not (false).


FIGGY_GROUP_DEFAULT_ALIGN

Default: 0.

Default Group text alignment. 0 is left, 1 is center, 2 is right.


FIGGY_UNSCOPED_NAME_FORMAT

Default: "{0}".

The custom String Format for unscoped Section and Group names (with .NoScope() called beforehand).

TIP

You may want to set this to something like "[{0}]" or "-{0}-" for extra interface clarity.

Value Widgets

FIGGY_SLIDER_BUTTONS

Default: false.

Whether to include -/+ cycling buttons for .Int() and .Float() Value Widgets (true) or not (false).

WARNING

If true, might slow down Setup at scale.


FIGGY_INT_DEFAULT_STEP

Default: 1.

Default step increment for Int Value Widgets.


FIGGY_FLOAT_DEFAULT_STEP

Default: 0.1.

Default step increment for Float Value Widgets.


FIGGY_REAL_BUTTONS

Default: false.

Whether to include -/+ cycling buttons for .Real() Value Widgets (true) or not (false).

WARNING

If true, might slow down Setup at scale.


FIGGY_ANY_BUTTONS

Default: true.

Whether to include -/+ cycling buttons for Any Value Widgets (true) or not (false).

WARNING

If true, might slow down Setup at scale.

Decor Widgets

FIGGY_BUTTON_DEFAULT_SAME_LINE

Default false.

Whether Buttons should be placed on the same line with the last widget by default (true) or not (false).


FIGGY_BUTTON_DEFAULT_SAME_LINE

Default false.

Whether Buttons should be placed on the same line with the last widget by default (true) or not (false).


FIGGY_SEPARATOR_DEFAULT_ALIGN

Default: 0.

Default Separator text alignment. 0 is left, 1 is center, 2 is right.

Changes

FIGGY_CHANGES_ENABLED

Default: __FIGGY_IN_IDE (when running from IDE).

Whether to enable the Changes tracking system (true) or not (false).

By default, this is enabled when running the game from IDE and disabled when running from EXE, using the __FIGGY_IN_IDE status macro.


FIGGY_CHANGES_DEFAULT_CALLBACK

Default: undefined.

The default function to call when a Value Widgets' values are changed. undefined stands for "no function".

Arguments passed to the callback: (newValue, oldValue, variableName).