Greasy Fork is available in English.
Library to create Custom settings on Furaffinitiy
Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greasyfork.org/scripts/475041/1617223/Furaffinity-Custom-Settings.js
Helper Script to create Custom settings on Furaffinitiy. Also see docs on Furaffinity-Custom-Settings
@require this scriptCreate Settings Object:
const customSettings = new FACustomSettings(); // Multiple Settings Pages can be created
customSettings.provider = "Midori's Script Settings"; // Change Navigation Settings Name
customSettings.headerName = "My Script Settings"; // Change the Settings Header Name
See Settings for more info
Create a new Setting:
const setting = CustomSettings.newSetting(SettingType, "Setting Name");
setting.description = "Setting Description";
setting.defaultValue = DefaultValue;
setting.inInput = (target) => { doSomething(); }; // For Action Settings when clicked otherwise every time the Setting is changed
setting.addEventListener("input", (target) => { doSomthing(); }); // Alternative to onInput
setting.verifyRegex = /Regex/; // For Text Settings only
See Settings for more info
Trigger when settings should be loaded:
CustomSettings.loadSettingsMenu(); //loads Navigation Menu & Settings if on Settings Page
| Feature | Status |
|---|---|
| Create new Settings and easily access Settings change ⠀⠀⠀⠀ | ✅ Completed |
| Have different Setting Types | ✅ Completed |
| ⠀⠀⠀⠀Number (TextField that only allows Numbers) | ✅ Completed |
| ⠀⠀⠀⠀Boolean (Checkbox with a description) | ✅ Completed |
| ⠀⠀⠀⠀Action (Button with a description) | ✅ Completed |
| ⠀⠀⠀⠀Text (TextField that allow any Characters) | ✅ Completed |
| ⠀⠀⠀⠀Option (Combobox that allows multiple options) | ✅ Completed |
| Change Settings Page Name and Header Name | ✅ Completed |
| Have multiple different Setting Pages | ✅ Completed |
| Import and Export Settings | ✅ Completed |
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.description - Description of the Setting.type - Type of the Setting. (See SettingType for more info)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.min - Minimum value for SettingType.Numbermax - Maximum value for SettingType.Numberstep - Step value for SettingType.NumberverifyRegex - Regex for validation of input for SettingType.TextSettingType can have the following values:
SettingType.Number - A TextField that only accepts Numbers. (Enables min, max, step)SettingType.Text - A TextField that allows any Character. (Enables verifyRegex)SettingType.Boolean - A Checkbox with a description.SettingType.Action - A Button with a certain Action. (Value returns the name)SettingType.Option - A Combobox with multiple OptionsThe onInput Property defines a Function that is executed when the Setting changed. It receives the Settings Element as a Parameter. It can also be used with addEventListener. Example:
customSetting.onInput = (target) => {
console.log(target.value); // Target is the HTML Element of the Setting
};
customSetting.addEventListener("input", (target) => {
console.log(target.value);
});
Here every time the Checkbox is clicked the program prints out wether it is checked or not.