-
-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC 0060: Quilt Mod Menu #60
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
|
||
## Summary | ||
|
||
This document outlines the process for creating an official Mod Menu for usage with Quilt alongside an accompanying team that would maintain it. This mod menu will act as a way to view loaded mods, change configs, read credits, and get links to contacts from within Minecraft. | ||
|
||
|
||
## Motivation | ||
As of right now, we do not supply an official Mod Menu for Quilt. The current solution is TerraformerMC's Mod Menu for Fabric, and that does not fully support our additions (Full Quilt support, Quilt Config, quilt.mod.json spec improvements, etc.). Having a standardized Mod Menu would allow for support for these features. Furthermore, it would also be an officially endorsed mod, which would help us lead players to it, and we at The Quilt Project would be able to ensure its quality. | ||
|
||
|
||
## Explanation | ||
|
||
### Why are we doing this? | ||
Native Quilt Support, which lets us add additional features from things like quilt.mod.json or Quilt Config without issue. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Native Quilt support is not required to support Quilt features |
||
Standardization, allowing an official solution compared to Fabric's unofficial Mod Menu | ||
|
||
### Why not a fork of Terraformer's Mod Menu? | ||
The author of the Mod Menu himself, Prospector, said that ModMenu is "janky" - it is likely not worth the effort to clean up code AND integrate with other Quilt Standards. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll elaborate here. Mod Menu was created as one of the first Fabric mods and as time has gone on, it has increased in scope and capability. Admittedly, a lot of the code was rather haphazardly thrown together, and many remnants of the original code is visible, especially in the rendering part. The mod was also refactored to support multiple loaders more easily at some point, which also doesn't really make sense for a native mod. There are tons of undocumented features, such as localizable mod descriptions, which you would not know about unless you happened to find it in the code (I myself forgot I added the feature until I came across it in the code once). I have advised that an official Quilt mod list screen be written from the ground up, however I will say that I am fairly happy with the UI that I have created as I put great effort into making the mod fit as seamlessly into vanilla as possible. I welcome anyone to take inspiration from or straight up rip-off my UI. |
||
|
||
### How will we deal with Fabric Mods that require configs? | ||
We will supply the Mod Menu API to allow for backwards compatibility with configs in Fabric mods. | ||
|
||
|
||
## Drawbacks | ||
|
||
### Potentially Unnecessary | ||
It maybe be considered to be unnecessary to make this as the current Mod Menu solution on Fabric works fine. It also may complicate the user experience to have multiple mod menu mods. | ||
|
||
Fabric's Mod Menu is a separate mod, however, so it can simply be removed if a user finds it distracting. | ||
|
||
### Removes User Choice | ||
|
||
Some people may not want to be forced upon a Mod Menu in that case we are taking away their choice on whether or not to have a Mod Menu. | ||
|
||
This, however, is almost a non-issue; mod menus are often lightweight, and they are often the best way to abstract access to a mod's config. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am not really clear on how the implementation of this would work, but I would suggest that it still be optional? For example, if I create a highly customized and integrated modpack, I would not want there to be a mod menu (and users should not need to access configs anyway). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can prob integreate a config option for removing the button from the main menu. |
||
|
||
### Burden of Maintenance | ||
|
||
Some people may view this as yet another Libarary / Mod to maintain every update and push new features to. | ||
|
||
This is probably the most serious issue - an official Quilt Mod Menu will require official support - that means PR triage, updating between versions, and ensuring that as changes occur to things like the QMJ, the Mod Menu is appropriately updated. We propose the creation of a new team, the Mod Menu team, that would be responsible for its management. | ||
|
||
|
||
|
||
## Rationale and Alternatives | ||
|
||
|
||
- This allows for features from Loader and QSL to be used within the mod more effectively, and it also allows for easier communication within our teams in designing necessary features | ||
- As for alternatives, we could wait for a Quilt Mod Menu to show up, we could (against the author's recommendation) fork the TerraformersMC Mod Menu (and still have to create a new team for support). The proposed path is the best option. | ||
|
||
|
||
## Prior Art | ||
|
||
- TerraformerMCs Mod Menu | ||
- Benefits | ||
- Very well designed UI. Its visually pleasing and easy to use. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Seems a little subjective, maybe instead mention what makes it well designed, such as being consistent with the vanilla game's user interface to give users an intuitive interface. |
||
- API to allow for support of other config systems | ||
- Supports showing parent/JiJed mods | ||
- Drawbacks | ||
- No native Quilt support. Thus it cant have support for features in Quilt such as support for Loader Plugin loaded mods, Quilt Config, Contributor Roles. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This isn't true, contributor roles are already supported and it's not particularly difficult to support more Quilt features without being a quilt-native mod. |
||
- Its downloaded and installed manually, causing confusion amongst new users | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Arguably can also be a benefit |
||
|
||
- Forge's Mods screen | ||
- Benefits | ||
- No installation needed, thus making it more standard and causing less confusion amongst users | ||
- Drawbacks | ||
- Not particularly well-designed - can be a bit confusing to deal with. | ||
- Does not support alternative config systems. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think this is true at all? I'm pretty sure you can supply your own config GUI just like Mod Menu using a ConfigGuiFactory https://github.com/MinecraftForge/MinecraftForge/blob/0e66b7b21757e510aef706ca320881b9eb268822/src/main/java/net/minecraftforge/client/ConfigGuiHandler.java#L19 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep, example usage here: https://github.com/Juuxel/Adorn/blob/fdb3e57c65668f27af08411a17e8fccbc7538de4/forge/src/main/kotlin/juuxel/adorn/platform/forge/client/AdornClient.kt#L22-L24 (Adorn uses the same custom config screen with both Mod Menu and Forge) |
||
- Does not support showing parent/JIJed mods | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does forge have these? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It does as of very recently |
||
|
||
|
||
## Unresolved Questions | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How will it be distributed? Is it a team under the QSL project or a separate project entirely? Will it be optional? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Atm we are thinking of having it as an option for the installer where u can toggle the installation and such. Updates will be provided via curseforge, modrinth etc. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There will maybe be a team which manages all these content mods, but this is out of scope for this rfc. |
||
- Specific details about the creation of the Mod Menu Team |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It supports all of the features except config AFAIK?