Skip to content
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

Version Checker: Poll results and future suggestions #1098

Open
TelepathicGrunt opened this issue Jun 14, 2024 · 0 comments
Open

Version Checker: Poll results and future suggestions #1098

TelepathicGrunt opened this issue Jun 14, 2024 · 0 comments
Assignees
Labels
1.21.1 Targeted at Minecraft 1.21.1 enhancement New (or improvement to existing) feature or request request for comments For gathering opinions on some topic or subject

Comments

@TelepathicGrunt
Copy link
Contributor

TelepathicGrunt commented Jun 14, 2024

In our journey to continue to improve NeoForge for everyone, both players and modders alike, we have begun to take a look at the NeoForge Version Checker and ran a poll to get a sense of how people use it.


What is the NeoForge Version Checker:

Original goal: A modloader system to replace individual modders rolling out their own web calls to check for versions. Modders were doing this on the main thread which caused modpacks to stall for over an additional minutes if the connection failed. Modloaders tried to stop this by providing their own version checking system that does not run on main thread as well as standardize the version JSON linked by the URL so anyone can parse it if needed.

Documentation: https://docs.neoforged.net/docs/misc/updatechecker

The NeoForge Version Checker is a special system where modders specify a URL in their neoforge.mods.toml file. This URL will point to a JSON file hosted somewhere online that says what the latest version of that mod is for a given Minecraft version.

NeoForge on loading the mod, will hit this URL, get what version number of the mod is latest, and see if that version number matches the current version of the mod. If the mod on is older, NeoForge will display a green gem on the Mods button in the main menu. And will display the green gem next to the mod that has a newer version available in the mod list as well. That's it. That's all the version checker does. Let's you know when a new version of a mod is available if the modder opted into this system.

There is a versionCheck config in fml.toml that can turn on or off this system.

Many modders are using one of these two systems to auto-create and maintain the version JSON. Modrinth and CurseUpdate will scan your mods uploaded to Modrinth and CurseForge respectively and keep the JSON up to date.

https://docs.modrinth.com/#tag/misc/operation/forgeUpdates

https://curseupdate.com/#documentation:about

Results of the user poll (204 responses):

https://forms.gle/R6sjPeYWG34SRjw18

image
image
image
image

Results of the modder poll (136 responses):

#1079

image

Poll takeaways and current issues with NeoForge Version Checker:

  • Many modders are not aware of Modrinth and CurseUpdate's ability to auto-create the version JSON for their mods. (Some modders feel they have too many mods now to retroactively setup version checking for them all)

  • The above issue leads to many mods not opting into the version checker which makes the version checker not entirely correct for users that want to know what mods have updates available.

  • 22.5% of users are not aware of the version checker's existence (did not know what the green gem icon meant)

  • Out of the 77.5% of players that do know about it, 27.8% of them rely on the version checker even though it does not have ideal uptake by mods.

  • For those that knew about the version checker but don't use it, most rather use a mod launcher which is fine. However, a good portion won't use it due to forgetting about it, cumbersome to check it, or it not having good mod update (thus inaccurate for checking what needs updating)

  • People relying on the version checker and also connect to modded servers may not realize that updating could cause connection issues with the server due to mismatch mod version. This info is not communicated to players.

  • People updating mods in a modpack might now realized that pack makers may had skipped out on updating the mods due to a conflict in a future version of the mods. Though pack makers can set the versionCheck to false so player's don't see the version checker.

  • The update checker is wasting bandwidth for people that do not use it. Right now, it is on by default.

  • Some people complain about the update checker spamming logs. Especially for those that do not use it.

Suggestions:

NOTE: These are just some ideas I have. We may not go with these ideas or they could change over time.

  • Change configs to be "enableModpackVersionChecker", "enableModVersionChecker", "enableVersionCheckerLogging", "modpackVersionCheckerURL", "currentModpackVersion". Only the second would be true by default.

  • Allow pack makers to override the mods update checker to check for modpack updates only. They would set "modpackVersionCheckerURL" and "currentModpackVersion" to true and set "enableModVersionChecker" to false. Would say at top "New modpack update is available!".

  • If no pack maker override and update checker config is on, show a Diamond icon on mods button. No network requests at made at this time.

  • Mod screen shows a "Show available updates?" button at top next to Diamond icon. Default to off.

  • If player turns it on for first time, show new screen talking about server connection risks and risk of updating pre-made modpacks's mods. Button that says "I Understand".

  • Once player understands, Diamond icon is turned into a Green Gem icon and will mark mods that have an update available. Now it will make network connection checks going forward. Add a sort option to see mods with updates first. Diamond icon will never show again. If "Show available updates?" button is turned off, no gem icon shows.

  • Add a dev console warning saying update checker is not opted in. If modder intended to not implement, modder can turn it off in Neo config by setting enableModVersionChecker to false.

  • Disable logging. Or provide config for logging and have it off by default. The system seems more oriented towards mod list screen. Server owners would need to restart server to see the log entries about updates and would have to be looking at the logs too which means this logging isn't as helpful for long-uptime servers. Better to have the version checking automatically disabled on servers if the enableVersionCheckerLogging config is off even when the other two configs are true.

  • Improve/Update documentations in this area for modders, players, and pack makers. Talk about the config options and that modpack can ship with the configs off if desired. Talk about the modpack override for allowing modpacks to do their own version check. https://docs.neoforged.net/docs/misc/updatechecker

  • Doc should list modrinth docs and Curseupdate so modders do not need to maintain their own json files

  • Update MDK with the new info and examples


Improvements to the version checker is a bit of a wishlist thing at the moment as we got a lot of other stuff to complete first. However, it is good to have discussion about path forward so when we do get around to this, we know what to do. Please give feedback and suggestions below. if it is good, we definitely will consider the ideas!

@TelepathicGrunt TelepathicGrunt added enhancement New (or improvement to existing) feature or request request for comments For gathering opinions on some topic or subject 1.21 Targeted at Minecraft 1.21 labels Jun 14, 2024
@TelepathicGrunt TelepathicGrunt self-assigned this Jun 14, 2024
@sciwhiz12 sciwhiz12 pinned this issue Jun 14, 2024
@TelepathicGrunt TelepathicGrunt added 1.21.1 Targeted at Minecraft 1.21.1 and removed 1.21 Targeted at Minecraft 1.21 labels Jul 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.21.1 Targeted at Minecraft 1.21.1 enhancement New (or improvement to existing) feature or request request for comments For gathering opinions on some topic or subject
Projects
None yet
Development

No branches or pull requests

1 participant