
Greenhouse Config
Powerful codec oriented config library made for my own use case.
Обновлён 6 июля 2026 г. · опубликован 18 января 2026 г.
Greenhouse Config
The most overengineered config library out there!
Greenhouse Config is a config library pretty much made for myself (ChrysanthCow), and anyone within Greenhouse.
Featuring a rich config builder system, it utilizes Codecs/DFU to write and read config files, as well as being able to data-fix when out of date.
Configuration Language Support
* - Should not typically be used in configs. Use JSONC instead if possible.
Config languages are supported through the in house Polyamory library.
Depending on the Library
For a quick guide on how to depend on Greenhouse Config, please read the Git Repository's README.md
When depending on Greenhouse Config, please make sure to include the mod inside your JAR. This is simply to avoid making users have to download a separate dependency just to play with your mod.
If you are a player, you most likely shouldn't have to download this yourself. This library is only on Modrinth for publicity reasons, to allow users to find the issues page and for developers to find the mod.
Have you seen that one XKCD comic about standards?
Quoted from kdl.dev.
Yes. I have. Please stop linking me to it.
Greenhouse Config is not meant to be a standard, it's simply my own methodology for doing configuration which I separated from my own mods to avoid having duplicate code across them.
At the end of the day, you should mod with tools you enjoy using, whether it be Greenhouse Config or something else.
Версии
| Версия | Канал | Игра | Загрузчики | Дата | Скачать |
|---|---|---|---|---|---|
| 3.0.0+26.2.x | Релиз | 26.2 | fabric, neoforge | 6 июля 2026 г. | .jar (469 КБ) |
| 3.0.0+26.1.x | Релиз | 26.1, 26.1.1, 26.1.2 | fabric, neoforge | 6 июля 2026 г. | .jar (469 КБ) |
| 3.0.0-beta.5+26.1.x-fabric | Альфа | 26.1 | fabric | 27 марта 2026 г. | .jar (457 КБ) |
| 3.0.0-beta.5+26.1.x-neoforge | Альфа | 26.1 | neoforge | 27 марта 2026 г. | .jar (456 КБ) |
| 3.0.0-beta.4+1.21.11-fabric | Альфа | 1.21.11 | fabric | 3 марта 2026 г. | .jar (472 КБ) |
| 3.0.0-beta.4+1.21.11-neoforge | Альфа | 1.21.11 | neoforge | 3 марта 2026 г. | .jar (468 КБ) |
| 3.0.0-beta.4+1.21.10-fabric | Альфа | 1.21.9, 1.21.10 | fabric | 3 марта 2026 г. | .jar (472 КБ) |
| 3.0.0-beta.4+1.21.10-neoforge | Альфа | 1.21.9, 1.21.10 | neoforge | 3 марта 2026 г. | .jar (469 КБ) |
| 3.0.0-beta.3+1.21.11-neoforge | Альфа | 1.21.11 | neoforge | 2 марта 2026 г. | .jar (467 КБ) |
| 3.0.0-beta.3+1.21.11-fabric | Альфа | 1.21.11 | fabric | 2 марта 2026 г. | .jar (472 КБ) |
| 3.0.0-beta.3+1.21.10-fabric | Альфа | 1.21.9, 1.21.10 | fabric | 2 марта 2026 г. | .jar (472 КБ) |
| 3.0.0-beta.3+1.21.10-neoforge | Альфа | 1.21.9, 1.21.10 | neoforge | 2 марта 2026 г. | .jar (469 КБ) |
| 3.0.0-beta.2+1.21.10-fabric | Альфа | 1.21.9, 1.21.10 | fabric | 2 марта 2026 г. | .jar (472 КБ) |
| 3.0.0-beta.2+1.21.10-neoforge | Альфа | 1.21.9, 1.21.10 | neoforge | 2 марта 2026 г. | .jar (469 КБ) |
| 3.0.0-beta.1+1.21.11-fabric | Альфа | 1.21.11 | fabric | 1 марта 2026 г. | .jar (472 КБ) |
Показаны последние 15 из 54 версий. Все версии — на Modrinth.
Ченджлог
3.0.0+26.2.xРелиз26.2 · 6 июля 2026 г.
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Build Specific Changes
- There is now only one runtime JAR, with Xplat, Fabric and NeoForge JAR contents included in the universal Greenhouse Config JAR.
- Depending on Greenhouse Config has been rewritten, please read the README.md for more information.
- Added
setmethod toGreenhouseConfigHolder. Which sets the config value in-memory. This value can later be manipulated, saved, and/or synced. - Simplified equality checks for configs to just be the name and side of the config.
- This should serve to prevent inequality crashes internally.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0+26.1.xРелиз26.1, 26.1.1, 26.1.2 · 6 июля 2026 г.
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Build Specific Changes
- There is now only one runtime JAR, with Xplat, Fabric and NeoForge JAR contents included in the universal Greenhouse Config JAR.
- Depending on Greenhouse Config has been rewritten, please read the README.md for more information.
- Added
setmethod toGreenhouseConfigHolder. Which sets the config value in-memory. This value can later be manipulated, saved, and/or synced. - Simplified equality checks for configs to just be the name and side of the config.
- This should serve to prevent inequality crashes internally.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0-beta.5+26.1.x-fabricАльфа26.1 · 27 марта 2026 г.
Build Specific Changes
Breaking API Changes
- Ported the mod to 26.1.
- Modified mod ID to
greenhouse_configinstead ofgreenhouseconfig. - Removed
GreenhouseInheritedConfigHolderfrom publicly facing API. Client/dedicated side configs will now always inherit from any common side config registered with the same name.
Full Changelog
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Roadmap
- Alpha Versions may break API at any time. These should be considered unstable and not production ready. These may be incomplete with missing javadocs and implementation.
- Beta Versions will have a stable API, but may make small breaking changes if something does not work. These versions are also lacking some features such as extra config language support and backwards compatibility with the old API.
- Release 3.0.0 will be considered feature complete, but new features and minor breaking changes may come with future Minecraft versions such as 26.1.x and above.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0-beta.5+26.1.x-neoforgeАльфа26.1 · 27 марта 2026 г.
Build Specific Changes
Breaking API Changes
- Ported the mod to 26.1.
- Modified mod ID to
greenhouse_configinstead ofgreenhouseconfig. - Removed
GreenhouseInheritedConfigHolderfrom publicly facing API. Client/dedicated side configs will now always inherit from any common side config registered with the same name.
Full Changelog
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Roadmap
- Alpha Versions may break API at any time. These should be considered unstable and not production ready. These may be incomplete with missing javadocs and implementation.
- Beta Versions will have a stable API, but may make small breaking changes if something does not work. These versions are also lacking some features such as extra config language support and backwards compatibility with the old API.
- Release 3.0.0 will be considered feature complete, but new features and minor breaking changes may come with future Minecraft versions such as 26.1.x and above.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0-beta.4+1.21.11-fabricАльфа1.21.11 · 3 марта 2026 г.
Build Specific Changes
- Fixed config saving not being thread safe when multiple save processes are running.
Breaking API Changes
- Renamed ConfigRecordBuilder to ConfigMapBuilder.
- Renamed various references to "Root" within GreenhouseInheritedConfigHolder to "Inherited".
- GreenhouseConfigLang has been slightly rewritten to add
decodeandencodemethods.- The above has been done to de-hardcode the implementation from Polyamory libraries for commented configs and in preparation for legacy API support.
- The
lgbt.greenhouse.config.api.v3.lang.AbstractGreenhouseConfigPolyamoryLangclass has been renamed toGreenhouseConfigPolyamoryLang - Event classes have been moved to the
lgbt.greenhouse.config.api.v3.eventpackage.- This affects
GreenhouseConfigEventsandGreenhouseConfigEventPhases.
- This affects
- Renamed
lgbt.greeznhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#functiontolgbt.greenhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#data - Removed
lgbt.greenhouse.config.api.v3.dfu.builder.schema.TypeTemplateBuilder#mergemethod from public facing API. - Removed the
configLangfield fromGreenhouseInheritedConfigHolderBuilder. The lang is now always inherited from the base config holder. - Added
lgbt.greenhouse.config.api.v3.dfu.fix.DataFixDynamicHelper, which contains utility methods to help with data fix values.
Non-Breaking Changes
- Added more javadocs.
- Fixed configs not data fixing when a language is different but the config resolves anyways.
- Fixed Greenhouse Config meta files not deleting when the config language is changed.
- Updated to Polyamory DFU 0.1.2, which fixes the below bug.
- Fixed JSONC Codec errors log comments alongside values.
Full Changelog
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Roadmap
- Alpha Versions may break API at any time. These should be considered unstable and not production ready. These may be incomplete with missing javadocs and implementation.
- Beta Versions will have a stable API, but may make small breaking changes if something does not work. These versions are also lacking some features such as extra config language support and backwards compatibility with the old API.
- Release 3.0.0 will be considered feature complete, but new features and minor breaking changes may come with future Minecraft versions such as 26.1.x and above.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0-beta.4+1.21.11-neoforgeАльфа1.21.11 · 3 марта 2026 г.
Build Specific Changes
- Fixed config saving not being thread safe when multiple save processes are running.
Breaking API Changes
- Renamed ConfigRecordBuilder to ConfigMapBuilder.
- Renamed various references to "Root" within GreenhouseInheritedConfigHolder to "Inherited".
- GreenhouseConfigLang has been slightly rewritten to add
decodeandencodemethods.- The above has been done to de-hardcode the implementation from Polyamory libraries for commented configs and in preparation for legacy API support.
- The
lgbt.greenhouse.config.api.v3.lang.AbstractGreenhouseConfigPolyamoryLangclass has been renamed toGreenhouseConfigPolyamoryLang - Event classes have been moved to the
lgbt.greenhouse.config.api.v3.eventpackage.- This affects
GreenhouseConfigEventsandGreenhouseConfigEventPhases.
- This affects
- Renamed
lgbt.greeznhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#functiontolgbt.greenhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#data - Removed
lgbt.greenhouse.config.api.v3.dfu.builder.schema.TypeTemplateBuilder#mergemethod from public facing API. - Removed the
configLangfield fromGreenhouseInheritedConfigHolderBuilder. The lang is now always inherited from the base config holder. - Added
lgbt.greenhouse.config.api.v3.dfu.fix.DataFixDynamicHelper, which contains utility methods to help with data fix values.
Non-Breaking Changes
- Added more javadocs.
- Fixed configs not data fixing when a language is different but the config resolves anyways.
- Fixed Greenhouse Config meta files not deleting when the config language is changed.
- Updated to Polyamory DFU 0.1.2, which fixes the below bug.
- Fixed JSONC Codec errors log comments alongside values.
Full Changelog
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Roadmap
- Alpha Versions may break API at any time. These should be considered unstable and not production ready. These may be incomplete with missing javadocs and implementation.
- Beta Versions will have a stable API, but may make small breaking changes if something does not work. These versions are also lacking some features such as extra config language support and backwards compatibility with the old API.
- Release 3.0.0 will be considered feature complete, but new features and minor breaking changes may come with future Minecraft versions such as 26.1.x and above.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0-beta.4+1.21.10-fabricАльфа1.21.9, 1.21.10 · 3 марта 2026 г.
Build Specific Changes
- Fixed config saving not being thread safe when multiple save processes are running.
Breaking API Changes
- Renamed ConfigRecordBuilder to ConfigMapBuilder.
- Renamed various references to "Root" within GreenhouseInheritedConfigHolder to "Inherited".
- GreenhouseConfigLang has been slightly rewritten to add
decodeandencodemethods.- The above has been done to de-hardcode the implementation from Polyamory libraries for commented configs and in preparation for legacy API support.
- The
lgbt.greenhouse.config.api.v3.lang.AbstractGreenhouseConfigPolyamoryLangclass has been renamed toGreenhouseConfigPolyamoryLang - Event classes have been moved to the
lgbt.greenhouse.config.api.v3.eventpackage.- This affects
GreenhouseConfigEventsandGreenhouseConfigEventPhases.
- This affects
- Renamed
lgbt.greeznhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#functiontolgbt.greenhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#data - Removed
lgbt.greenhouse.config.api.v3.dfu.builder.schema.TypeTemplateBuilder#mergemethod from public facing API. - Removed the
configLangfield fromGreenhouseInheritedConfigHolderBuilder. The lang is now always inherited from the base config holder. - Added
lgbt.greenhouse.config.api.v3.dfu.fix.DataFixDynamicHelper, which contains utility methods to help with data fix values.
Non-Breaking Changes
- Added more javadocs.
- Fixed configs not data fixing when a language is different but the config resolves anyways.
- Fixed Greenhouse Config meta files not deleting when the config language is changed.
- Updated to Polyamory DFU 0.1.2, which fixes the below bug.
- Fixed JSONC Codec errors log comments alongside values.
Full Changelog
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Roadmap
- Alpha Versions may break API at any time. These should be considered unstable and not production ready. These may be incomplete with missing javadocs and implementation.
- Beta Versions will have a stable API, but may make small breaking changes if something does not work. These versions are also lacking some features such as extra config language support and backwards compatibility with the old API.
- Release 3.0.0 will be considered feature complete, but new features and minor breaking changes may come with future Minecraft versions such as 26.1.x and above.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
3.0.0-beta.4+1.21.10-neoforgeАльфа1.21.9, 1.21.10 · 3 марта 2026 г.
Build Specific Changes
- Fixed config saving not being thread safe when multiple save processes are running.
Breaking API Changes
- Renamed ConfigRecordBuilder to ConfigMapBuilder.
- Renamed various references to "Root" within GreenhouseInheritedConfigHolder to "Inherited".
- GreenhouseConfigLang has been slightly rewritten to add
decodeandencodemethods.- The above has been done to de-hardcode the implementation from Polyamory libraries for commented configs and in preparation for legacy API support.
- The
lgbt.greenhouse.config.api.v3.lang.AbstractGreenhouseConfigPolyamoryLangclass has been renamed toGreenhouseConfigPolyamoryLang - Event classes have been moved to the
lgbt.greenhouse.config.api.v3.eventpackage.- This affects
GreenhouseConfigEventsandGreenhouseConfigEventPhases.
- This affects
- Renamed
lgbt.greeznhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#functiontolgbt.greenhouse.config.api.v3.dfu.fix.GreenhouseConfigRelocateFieldsFix#data - Removed
lgbt.greenhouse.config.api.v3.dfu.builder.schema.TypeTemplateBuilder#mergemethod from public facing API. - Removed the
configLangfield fromGreenhouseInheritedConfigHolderBuilder. The lang is now always inherited from the base config holder. - Added
lgbt.greenhouse.config.api.v3.dfu.fix.DataFixDynamicHelper, which contains utility methods to help with data fix values.
Non-Breaking Changes
- Added more javadocs.
- Fixed configs not data fixing when a language is different but the config resolves anyways.
- Fixed Greenhouse Config meta files not deleting when the config language is changed.
- Updated to Polyamory DFU 0.1.2, which fixes the below bug.
- Fixed JSONC Codec errors log comments alongside values.
Full Changelog
This is the v3.0.0 Release of Greenhouse Config, which is additionally the first release to be hosted on the Greenhouse Forgejo instead of GitHub. Greenhouse Config has been rewritten from the ground up for a better experience.
Roadmap
- Alpha Versions may break API at any time. These should be considered unstable and not production ready. These may be incomplete with missing javadocs and implementation.
- Beta Versions will have a stable API, but may make small breaking changes if something does not work. These versions are also lacking some features such as extra config language support and backwards compatibility with the old API.
- Release 3.0.0 will be considered feature complete, but new features and minor breaking changes may come with future Minecraft versions such as 26.1.x and above.
Changes
- Updated mod icon and description.
- All package structure has been reworked to use
lgbt.greenhouse.config.api.v3for API, andlgbt.greenhouse.config.implfor impl. - Greenhouse Config now operates off a builder system.
- Methods to build configs may be found in
GreenhouseConfigHolderrelated interfaces.- These interfaces are found within the
lgbt.greenhouse.config.api.v3package.
- These interfaces are found within the
- Raw RecordCodecBuilder/StreamCodec/DataFixerUpperBuilder based operations are still supported via any Greenhouse Config Holder Builder. These are generally less encouraged in comparison to the builder.
- Methods to build configs may be found in
- Added
GreenhouseInheritedConfigHolder. This can be used to inherit values from a Greenhouse Config Holder or Greenhouse Config Holder Builder meant for a common client to a specifically sided environment such as the client and the server, as well as allowing for adding new values on top of these values.- The
SPLITside definition of the old config has been removed from the V3 API to better compatibility with split source-set based environments.
- The
- Added
GreenhouseConfigDataFixerBuilder, which can be used to create data fixers for your config to update between different schema versions. GreenhouseConfigDataFixerBuildernow supports defining previous config formats, these will be detected based on the config's schema version and will rewrite the file to the new format when applicable.LateHolderandLateHolderSethave been rewritten to better integrate intoGreenhouseConfigHolderBuilder. TheLateinterface has been removed.- Included built-in data fixes for ease of use when fixing config values.
- These are
GreenhouseConfigRelocateFieldsFix,GreenhouseConfigRemoveFieldsFix, andGreenhouseConfigSetFieldsFixand are found within thelgbt.greenhouse.config.v3.dfu.fixpackage.
- These are
- Schema versions are now stored within a hidden
.greenhouse_config_metafolder instead of the config's file attributes.- Configs with no schema version will be treated as V0, but will only ever be fixed in this case if the config has any errors.
- A fallback for the file attribute is included to correctly load configs made with older Greenhouse Config versions.
- Events within Greenhouse Config now use Yumi for
a better loader agnostic experience.
- All config related events are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEvents. - Greenhouse Config specific phases are within
lgbt.greenhouse.config.api.v3.event.GreenhouseConfigEventPhases.
- All config related events are within
- Swapped config reading/writing to use included libraries within
the Polyamory Project.
- You will no longer need to depend on a separate project for your specific language.
- Polyamory only supports JSONC within this current release.
- Removed Night Config support. Removing TOML, HOCON and YAML language support.
- TOML will be re-added before release whenever I'm more ready to write it.
- YAML might be re-added if there's enough demand. If so, it'll be a low priority change.
- HOCON will not be re-added due to being more of a liability and generally having low demand.
- The implementation has been entirely rewritten from the ground up. It has been tested in a lot more conditions and should generally be a lot more stable and less messy.
Полная история изменений — на Modrinth.
Комментарии
Загружаем…