{"id":28428331,"url":"https://github.com/twelveiterationmods/defaultoptions","last_synced_at":"2025-07-27T07:02:30.837Z","repository":{"id":136600367,"uuid":"38215341","full_name":"TwelveIterationMods/DefaultOptions","owner":"TwelveIterationMods","description":"Minecraft Mod. A way for modpacks to ship default settings without having to include an options.txt file.","archived":false,"fork":false,"pushed_at":"2025-07-17T19:15:43.000Z","size":609,"stargazers_count":11,"open_issues_count":1,"forks_count":10,"subscribers_count":2,"default_branch":"1.21.8","last_synced_at":"2025-07-17T22:23:01.226Z","etag":null,"topics":["fabricmc-mod","forge-mod","minecraft-mod","neoforge-mod"],"latest_commit_sha":null,"homepage":"https://mods.twelveiterations.com/mc/default-options/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TwelveIterationMods.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"BlayTheNinth","patreon":"BlayTheNinth","open_collective":null,"ko_fi":"BlayTheNinth","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-06-28T21:43:21.000Z","updated_at":"2025-07-17T19:15:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"24002faa-c7df-4993-8db8-3b6e9daba553","html_url":"https://github.com/TwelveIterationMods/DefaultOptions","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/TwelveIterationMods/DefaultOptions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TwelveIterationMods%2FDefaultOptions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TwelveIterationMods%2FDefaultOptions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TwelveIterationMods%2FDefaultOptions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TwelveIterationMods%2FDefaultOptions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TwelveIterationMods","download_url":"https://codeload.github.com/TwelveIterationMods/DefaultOptions/tar.gz/refs/heads/1.21.8","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TwelveIterationMods%2FDefaultOptions/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267320244,"owners_count":24068525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fabricmc-mod","forge-mod","minecraft-mod","neoforge-mod"],"created_at":"2025-06-05T12:38:03.821Z","updated_at":"2025-07-27T07:02:30.832Z","avatar_url":"https://github.com/TwelveIterationMods.png","language":"Java","funding_links":["https://github.com/sponsors/BlayTheNinth","https://patreon.com/BlayTheNinth","https://ko-fi.com/BlayTheNinth"],"categories":[],"sub_categories":[],"readme":"# Default Options\n\nMinecraft Mod. A way for modpacks to ship a default (key) configuration without having to include an options.txt file.\n\n- [Modpack Permissions](https://mods.twelveiterations.com/permissions)\n\n#### Downloads\n\n[![Versions](http://cf.way2muchnoise.eu/versions/232131_latest.svg)](https://www.curseforge.com/minecraft/mc-mods/default-options)\n[![Downloads](http://cf.way2muchnoise.eu/full_232131_downloads.svg)](https://www.curseforge.com/minecraft/mc-mods/default-options)\n\n## Contributing\n\nIf you're interested in contributing to the mod, you can check out [issues labelled as \"help wanted\"](https://github.com/TwelveIterationMods/DefaultOptions/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).\n\nWhen it comes to new features, it's best to confer with me first to ensure we share the same vision. You can join us on [Discord](https://discord.gg/VAfZ2Nau6j) if you'd like to talk.\n\nContributions must be done through pull requests. I will not be able to accept translations, code or other assets through any other channels.\n\n## Supported Mods\n\nBy default, Default Options comes with support for the following mods:\n\n- OptiFine\n- ViveCraft\n\nThis means that commands such as `/defaultoptions saveOptions` will include options files from those mods and the\ndefaults will be loaded from the main `config/defaultoptions` folder.\n\nOther mods may be supported through the use of extra default options (see below).\n\n## Extra Default Options\n\nThe default options folder includes an `config/defaultoptions/extra` folder. Upon starting Minecraft, all files within\nthis folder will be copied into the Minecraft folder while retaining their folder structure (only if the file does not\nexist in the Minecraft folder yet, i.e. just like the other default options, they only apply on the first run).\n\nThis allows support for more complex use cases or mods with custom options files that are not natively supported, such\nas JourneyMap.\n\nNote that this folder is not automatically populated when using the `/defaultoptions saveOptions` command. You are\nrequired to manually copy the folders/files into the `extra` folder after you've configured defaults.\n\nFor example, to create default options for JourneyMap, you would:\n\n1. Configure JourneyMap as you like\n2. Copy the whole JourneyMap folder into the `config/defaultoptions/extra` so the resulting path\n   is `config/defaultoptions/extra/journeymap`\n3. Within that new folder, delete all files that should not be defaulted (e.g. `journeymap.log` and the `data` folder)\n4. When running a fresh instance, the JourneyMap options will now be copied into the Minecraft folder before JourneyMap\n   loads, making them the new default\n\n## API\n\nStarting in Minecraft 1.18, Default Options provides an API for other mods to register their own default option files.\n\nTo use this API, you must specify Default Options as a build dependency in your Gradle file (see next section). You should only use classes\nfrom within the `net.blay09.mods.defaultoptions.api` package, as other classes may have unexpected breaking changes.\n\nTo plug into Default Options, create a class implementing `DefaultOptionsPlugin`. This class will be loaded by a Service\nLoader, so you must also create a new file\nunder `META-INF/services/net.blay09.mods.defaultoptions.api.DefaultOptionsPlugin` and specify the full package \u0026 class name of\nyour plugin in there. This is necessary because the normal mod loading hooks run too late for most default options to apply.\n\nWithin that class you can use `DefaultOptionsAPI.registerOptionsFile` for simple use-cases,\nor `DefaultOptionsAPI.registerOptionsHandler` for more complex use cases where you need more control over the underlying\nimplementation.\n\n### Example:\n\n```java\npackage com.example;\n\npublic class ExamplePlugin implements DefaultOptionsPlugin {\n\n    @Override\n    public void initialize() {\n        DefaultOptionsAPI.registerOptionsFile(new File(DefaultOptions.getMinecraftDataDir(), \"options.txt\"))\n                .withLinePredicate(line -\u003e !line.startsWith(\"key_\"))\n                .withSaveHandler(() -\u003e Minecraft.getInstance().options.save());\n    }\n}\n```\n\n`META-INF/services/net.blay09.mods.defaultoptions.api.DefaultOptionsPlugin`\n\n```\ncom.example.ExamplePlugin\n```\n\n## Adding Default Options to a development environment\n\nNote that you will also need to add Balm if you want to test your integration in your environment.\n\n### Using CurseMaven\n\nAdd the following to your `build.gradle`:\n\n```groovy\nrepositories {\n    maven { url \"https://www.cursemaven.com\" }\n}\n\ndependencies {\n    // Replace ${defaultoptions_file_id} and ${balm_file_id} with the id of the file you want to depend on.\n    // You can find it in the URL of the file on CurseForge (e.g. 3914527).\n    // Forge: implementation fg.deobf(\"curse.maven:balm-531761:${balm_file_id}\")\n    // Fabric: modImplementation \"curse.maven:balm-fabric-500525:${balm_file_id}\"\n    \n    // Forge: implementation fg.deobf(\"curse.maven:default-options-232131:${defaultoptions_file_id}\")\n    // Fabric: modImplementation \"curse.maven:default-options-fabric-547694:${defaultoptions_file_id}\"\n}\n```\n\n### Using Twelve Iterations Maven (includes snapshot and mojmap versions)\n\nAdd the following to your `build.gradle`:\n\n```groovy\nrepositories {\n    maven { \n        url \"https://maven.twelveiterations.com/repository/maven-public/\" \n        \n        content {\n            includeGroup \"net.blay09.mods\"\n        }\n    }\n}\n\ndependencies {\n    // Replace ${defaultoptions_version} and ${balm_version} with the version you want to depend on. \n    // You can find the latest version for a given Minecraft version at https://maven.twelveiterations.com/service/rest/repository/browse/maven-public/net/blay09/mods/balm-common/ and https://maven.twelveiterations.com/service/rest/repository/browse/maven-public/net/blay09/mods/defaultoptions-common/\n    // Common (mojmap): implementation \"net.blay09.mods:balm-common:${balm_version}\"\n    // Forge: implementation fg.deobf(\"net.blay09.mods:balm-forge:${balm_version}\")\n    // Fabric: modImplementation \"net.blay09.mods:balm-fabric:${balm_version}\"\n    \n    // Common (mojmap): implementation \"net.blay09.mods:defaultoptions-common:${defaultoptions_version}\"\n    // Forge: implementation fg.deobf(\"net.blay09.mods:defaultoptions-forge:${defaultoptions_version}\")\n    // Fabric: modImplementation \"net.blay09.mods:defaultoptions-fabric:${defaultoptions_version}\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwelveiterationmods%2Fdefaultoptions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwelveiterationmods%2Fdefaultoptions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwelveiterationmods%2Fdefaultoptions/lists"}