Furaffinity-Custom-Settings

Helper Script to create Custom settings on Furaffinitiy

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/475041/1267274/Furaffinity-Custom-Settings.js

Author
Midori Tsume
Version
4.0.13
Created
2023-09-11
Updated
2023-10-19
License
MIT

Furaffinity Custom Settings

Helper Script to create Custom settings on Furaffinitiy

How to use

  • @require this script

  • Optional: Change Extension Settings Header Name at any Point in your Code: CustomSettings.name = "Extension Settings";
    (Defines the Navigation Header Name)

  • Optional: Change Extension Settings Name at any Point in your Code: CustomSettings.provider = "Midori's Script Settings";
    (Defines the actual Navigation Points Name)

  • Optional: Change the Settings Header Name: CustomSettings.headerName = "My Script Settings";

  • Create a new Setting: const setting = CustomSettings.newSetting("Setting Name", "Setting Description", SettingType, "Type Description", DefaultValue, Action);
    See Setting for more info

  • Trigger when settings should be loaded: CustomSettings.loadSettings();

  • Optional: Create a whole new Settings Page: const AnotherCustomSettings = new Settings();
    Next steps are the same as above. (If Name is indentical between multiple Settings it serves as a Header for the multiple subpages)

Features

  • Create new Settings and easily access Settings change
  • Have different Setting Types
    • Number (TextField that only allowes Numbers)
    • Text (TextField that allows any Character)
    • Boolean (Checkbox with a description)
    • Action (Button with a description)
  • Change Settings Page Name and Header Name
  • Have multiple different Setting Pages

Documentation

Setting

The Setting class contains following Properties:

  • id - Can only be set once. Defines the Setting elements html id. Is set to setting Name, if not set manually.
  • name - Name of the Setting. (Also defines Settings Header name)
  • description - Description of the Setting.
  • type - Type of the Setting. (See SettingTypes for more info)
  • typeDescription - Description of the Setting element itself. (Doesn't apply on SettingTypes.Number)
  • defaultValue - Default value for the Setting. (Is ignored on SettingTypes.Action)
  • action - Action that is executed when the Setting changes. (See Action for more info)
  • value - Current value of the Setting.

SettingTypes

SettingTypes can have the following values:

  • SettingTypes.Number - A TextField that only accepts Numbers (Type Description doesn't apply here)
  • SettingsTypes.Text - A TextField that allows any Character (Type Description doesn't apply here)
  • SettingTypes.Boolean - A Checkbox with a description
  • SettingTypes.Action - A Button with a certain Action

Action

The Action Parameter defines a Function that is executed when the Setting changed. It receives the Settings Element as a Parameter. Example:

new Setting("Name", "Description", SettingTypes.Boolean, "Checkbox Description", false, (target) => {
  console.log(target.checked); // In this case target is a Checkbox
});

Here every time the Checkbox is clicked the program prints out wether it is checked or not.