# Creating a Screen ## Before we begin Any pack id or config entry name MUST only contain alphabetical characters (no numbers, spaces, underscores, etc) and SHOULD be in [camelCase](https://en.wikipedia.org/wiki/Camel_case). If that is not the case, you may face unexpected issues. You can add [translations](./Translations.md) to work around this in the UI shown to users though. ### Location (ResourcePacks). > `/assets/respackopts/conf.json` ### Location (DataPacks). > `/data/respackopts/conf.json` ### What needs to be here. ```json { "id": "", "version": 8, "capabilities": ["FileFilter", "DirFilter"], "conf": { // Your config options here } } ``` ### Capabilities: > **FileFilter:** (Default Enabled)
If stated will enable file filtering functionality. > **DirFilter:** (Default Disabled)
If stated will enable folder filtering functionality. > **DirFilterAdditive:** (Default Disabled)
If stated this will enable a compatibility fix for some mods that also modify resources. ## Adding a Toggle/Boolean To add a boolean entry, add code like this: `"entryName": ` ### Example: ```json { "id": "examplePack", "version": 8, "capabilities": ["FileFilter", "DirFilter"], "conf": { "someTexture": true, "someOtherTexture": false } } ``` ### Result: ![configExampleBoolean](./img/ExamplePackBoolean.png "ConfigExampleBolean") ### See [ToggleFiles](./ToggleFiles.md) to see the logic behind this ## Adding a Free Number Box A number box follows the same principle as a boolean: `"entryName": Default Number` *please note any value can be put in here with no limit* ### Example: ```json { "id": "examplePack", "version": 8, "capabilities": ["FileFilter", "DirFilter"], "conf": { "someOption": 10 } } ``` ### Result: ![configExampleNumber](./img/ExamplePackNumber.png "ConfigExampleNumber") ## Adding a slider A slider is slightly more complicated as a minimum and a maximum need to be defined. Sliders also only support whole numbers. More information is available [here](AdvancedConfig.md) ## Select From a list To allow users to select one entry from a list, you can use a json array with string entries. *Numbers/etc are not supported* ### Example: ```json { "id": "examplePack", "version": 8, "capabilities": ["FileFilter", "DirFilter"], "conf": { "someOption": [ "optionOne", "optionTwo", "optionThree" ] } } ``` ### Result: ![configExampleEnum](./img/ExamplePackEnum.png) ## Make a category ### Example: ```json { "id": "examplePack", "version": 8, "capabilities": ["FileFilter", "DirFilter"], "conf": { "someCategory": { "someBoleanOption": true, "someNumberOption": 5, "someSelectionOption": [ "optionOne", "optionTwo", "optionThree" ], "someSliderOption": { "min": 0, "default": 5, "max": 10 } }, "someotherCategory": { "someOtherBoleanOption": true, "someOtherNumberOption": 5 } } } ``` ### Result: ![configExampleCategory](./img/ExamplePackCategory.png)