Overview#
DefaultSettings, developed by the Jomcraft Network, is an essential tool for modpack development on both Fabric and Forge/NeoForge platforms. Its primary purpose is to solve the common issue where modpack updates reset a player's custom video settings, keybinds, and server lists. By utilizing a dedicated configuration directory, the mod ensures that 'initial' settings are applied only once, while 'permanent' updates can be pushed to all users without interfering with their personal optimizations.
In modern versions of Minecraft (1.17 and above, including 1.20.1), the mod has transitioned from a Graphical User Interface (GUI) to a robust command-based system. This change was necessitated by Mojang's overhaul of the rendering engine, leading to a more streamlined and powerful backend for managing configuration files.
Mechanics#
The mod operates by intercepting the game's startup sequence and checking for the existence of specific configuration files in the root directory.
The 'Local' Folder System
Instead of shipping options.txt or servers.dat in the root folder of a modpack, creators place these files inside the config/defaultsettings/ directory.
- First Run Logic: When a player launches the modpack for the first time, DefaultSettings detects the absence of local configuration files and copies the defaults from its own folder into the root directory.
- Update Preservation: On subsequent launches or modpack updates, the mod recognizes that the user has already established local settings. It will not overwrite these files unless specifically instructed to do so via the
-of(Override Force) flag. - Profile Management: The mod can manage multiple profiles of settings, allowing creators to ship different configurations for different hardware levels (e.g., 'Low End' vs. 'Ultra' settings).
Commands#
Interaction with DefaultSettings in version 1.20.1 is handled entirely through the /defaultsettings (or /ds) command. This is the primary tool for modpack creators to prepare their files for distribution.
| Command | Description |
|---|---|
/ds save |
Saves the current options.txt, servers.dat, and keybindings to the DefaultSettings config folder. |
/ds save -of |
Saves current settings and marks them to force-overwrite user settings on the next launch. |
/ds saveconfigs |
Saves all mod-specific configuration files into the default directory. |
/ds saveconfigs [filename] |
Saves a specific mod configuration file. Supports wildcards (e.g., *) and quotes for filenames with spaces. |
/ds clear |
Removes all currently stored default settings from the mod's configuration folder. |

Modpack Creator Guide#
To properly integrate DefaultSettings into a modpack, follow these steps to ensure user settings are preserved:
- Configure the Game: Launch your development instance and set your desired keybinds, video settings (including Optifine or Iris shaders), and add any default servers to the server list.
- Execute Save: Run the command
/ds save. This creates adefaultsettingsfolder inside yourconfigdirectory. - Verify Files: Ensure the following files appear in
config/defaultsettings/:options.txt(General game settings)servers.dat(Server list entries)keybindings.txt(Custom key assignments)
- Exporting: When exporting your modpack, DO NOT include the
options.txtorservers.datfiles from the root.minecraftfolder. Only include theconfig/defaultsettings/folder. - Mod Configs: If you wish to ship specific mod configs as defaults, use
/ds saveconfigs. This is particularly useful for mods like JourneyMap or sophisticated UI mods that store data outside the standard vanilla files.
Items and Blocks#
As DefaultSettings is a technical utility mod designed for configuration management, it does not add any items, blocks, mobs, or biomes to the game. It does not alter world generation or gameplay mechanics beyond the initial setup of the user's environment. Its footprint is entirely restricted to the config directory and the game's initialization phase.
Compatibility#
DefaultSettings is designed for maximum compatibility across the Minecraft ecosystem.
- Optifine/Iris: Fully supports saving and shipping shader configurations and performance tweaks.
- Resource Packs: Can preserve the order and selection of resource packs, ensuring the modpack's intended aesthetic is loaded by default for new players.
- JCPlugin: On Forge versions, the mod requires the
JCPluginlibrary to function as a core plugin loader. On Fabric 1.20.1, it operates as a standard mod without additional dependencies beyond the Fabric API. - External Mods: Through the
/ds saveconfigscommand, it can manage the.cfg,.toml, and.jsonfiles of virtually any other mod in the pack.