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_SHOW_DEBUG_OVERLAY

Default: undefined.

Controls when the Debug Overlay is shown on game startup.

  • undefined: Show the Debug Overlay if at least one Figgy Window is visible.
  • true: Always show the Debug Overlay.
  • false: Never show the Debug Overlay.

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_SPACE_REPLACER

Default: "".

Symbol used to replace spaces in variable names when generating config fields.

  • Using "" converts "Move Speed" in Setup to MoveSpeed in code.
  • Using "_" converts "Move Speed" in Setup to Move_Speed in code.
  • Set to undefined to disable replacement when not needed. Improves Setup performance at scale.

WARNING

Changing this mid-project will invalidate existing saved configs. Decide on this early.


FIGGY_LOWERCASE

Default: undefined.

Determines casing for generated config fields.

  • undefined keeps original casing from Setup and improves Setup performance at scale.
  • true forces lowercase.
  • false forces UPPERCASE.

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]".

The 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_DROPDOWN_BUTTONS

Default: true.

Whether to include -/+ cycling buttons for .Any(), .Curve(), and .Asset() 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_COMMENT_DEFAULT_SAME_LINE

Default: false.

Whether Comments 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.

WARNING

Set this to false to improve performance at scale.


FIGGY_CHANGES_DEFAULT_CALLBACK

Default: undefined.

The default function to call when a Value Widget value is changed. undefined stands for "no function".

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