A object of registered game settings for this scope
Registered settings menus which trigger secondary applications
The storage interfaces used for persisting settings Each storage interface shares the same API as window.localStorage
Return a singleton instance of the Game Settings Configuration app
Register a new game setting under this setting scope
The namespace under which the setting is registered
The key name for the setting under the namespace
Configuration for setting data
game.settings.register("myModule", "myClientSetting", {
name: "Register a Module Setting with Choices",
hint: "A description of the registered setting and its behavior.",
scope: "client", // This specifies a client-stored setting
config: true, // This specifies that the setting appears in the configuration view
requiresReload: true // This will prompt the user to reload the application for the setting to take effect.
type: String,
choices: { // If choices are defined, the resulting setting will be a select menu
"a": "Option A",
"b": "Option B"
},
default: "a", // The default value for the setting
onChange: value => { // A callback function which triggers when the setting is changed
console.log(value)
}
});
game.settings.register("myModule", "myWorldSetting", {
name: "Register a Module Setting with a Range slider",
hint: "A description of the registered setting and its behavior.",
scope: "world", // This specifies a world-level setting
config: true, // This specifies that the setting appears in the configuration view
requiresReload: true // This will prompt the GM to have all clients reload the application for the setting to
// take effect.
type: new foundry.fields.NumberField({nullable: false, min: 0, max: 100, step: 10}),
default: 50, // The default value for the setting
onChange: value => { // A callback function which triggers when the setting is changed
console.log(value)
}
});
Register a new sub-settings menu
The namespace under which the menu is registered
The key name for the setting under the namespace
Configuration for setting data
game.settings.registerMenu("myModule", "mySettingsMenu", {
name: "My Settings Submenu",
label: "Settings Menu Label", // The text label used in the button
hint: "A description of what will occur in the submenu dialog.",
icon: "fas fa-bars", // A Font Awesome icon used in the submenu button
type: MySubmenuApplicationClass, // A FormApplication subclass which should be created
restricted: true // Restrict this submenu to gamemaster only?
});
Get the value of a game setting for a certain namespace and setting key
The namespace under which the setting is registered
The setting key to retrieve
game.settings.get("myModule", "myClientSetting");
Set the value of a game setting for a certain namespace and setting key
The namespace under which the setting is registered
The setting key to retrieve
The data to assign to the setting key
Optional
options: object = {}Additional options passed to the server when updating world-scope settings
The assigned setting value
game.settings.set("myModule", "myClientSetting", "b");
Private
#assertPrivate
#setCreate or update a Setting document in the World database.
The setting key
The desired setting value
Optional
options: objectAdditional options which are passed to the document creation or update workflows
The created or updated Setting document
Private
#setCreate or update a Setting document in the browser client storage.
The setting key
The desired setting value
A registered setting onChange callback
A Setting document which represents the created setting
A class responsible for managing defined game settings or settings menus. Each setting is a string key/value pair belonging to a certain namespace and a certain store scope.
When Foundry Virtual Tabletop is initialized, a singleton instance of this class is constructed within the global Game object as game.settings.
See