Some authors of popular Minecraft mods (such as Sodium and Mod Menu) have stopped uploading new versions of their mods to CurseForge, opting instead to post them on sites like Modrinth. This is all well and good, but it complicates things for modpack authors. The only mechanism available on CurseForge to include a non-CF mod file is to make it part of the zip file you upload to the site. However, even when the license of these projects explicitly allows such distribution and the change notes include mention of this fact, the files are automatically rejected on a regular basis. The modpack author must then go through the manual review process, which can take anywhere from several hours to several days.
Here is a suggestion for how it could work in a way that would keep the existing protections in place but dramatically simplify the process for modpack authors. I will use Sodium and Mod Menu for this example, because both of them are no longer hosted on CurseForge.
Side note: this suggestion is specific to Minecraft modpacks, but it may apply more broadly to other areas of the CurseForge site.
A modpack author uploads a new version of their pack to CurseForge. The zip file includes the following files (in addition to the usual manifest, modlist, configs, etc):
overrides/mods/modmenu-7.1.0.jar
overrides/mods/sodium-fabric-mc1.20-0.4.10+build.27.jar
After processing, the file is placed into "Under Review" status.
CurseForge's automated moderation detects these files and performs the following steps for each one:
Is (FILE)
included in some global (i.e. all of CurseForge) list of third-party libraries/plugins which have already been approved for inclusion in modpacks? (Ideally this check would be done using a hash of the file contents rather than something like filename.)
If YES: no further checking is needed. Move on to the next file in the list.
If NO: go to the next step.
Is (FILE)
included in a project-specific list of third-party libraries/plugins which have been approved for inclusion in just the current modpack? (I suspect this is unlikely to be a common case, but it is at least theoretically possible.)
If YES: no further checking is needed. Move on to the next file in the list.
If NO: go to the next step.
Is (FILE)
included in some global (i.e. all of CurseForge) list of third-party libraries/plugins which have been explicitly prohibited to be included in modpacks?
If YES: no further checking is needed. Add (FILE)
to a list of prohibited files which will be part of the final rejection message.
If NO: add (FILE)
to a list of files which require human moderation
If there are more files to check, go back to step 1.
If the list of files which are explicitly prohibited is not empty, the upload is automatically rejected. The modpack author is notified and told exactly which files are prohibited. No further action is needed, other than possible human intervention as part of an appeal (see below).
If the list of files requiring human review is not empty, the upload is placed into a new state: "Awaiting Moderator Review". The modpack author is notified and told exactly which files have triggered this step.
A moderator is going through some list of uploads which could not be automatically approved or denied. For the purpose of this suggestion, I will omit other scenarios which can trigger human moderation and focus on this particular use case. The moderator is presented with a list of files which need to be verified as allowable in a modpack's zip file and performs the following steps for each one:
Is (FILE)
explicitly mentioned in either the project's description, README, or change log, AND does the file have a license or other notice which allows third-party distribution? (This is critical. It puts the burden on modpack authors to verify permission and provide proof in the form of links to FAQs, GitHub repositories with appropriate licensing, etc.)
If YES: no further checking is needed. The file can be added to CurseForge's global list of approved third-party libraries/plugins. Note: this should likely be limited to exact files rather than named projects (e.g. modmenu-7.1.0.jar
instead of any Mod Menu
file), since licenses can change, but hashes are forever.
If NO: go to the next step
Does the modpack author include some other relevant information about (FILE)
which provides evidence that it can be included in this project specifically?
If YES: no further checking is needed. The file can be added to a list of third-party libraries/plugins approved for this project (but not the global list).
If NO: the file cannot be verified one way or another. The moderator should flag it as such (i.e. don't mark it as approved or prohibited)
If there are more files to check, go back to step 1.
If the list of files which could not be verified is not empty, the upload is marked as "Rejected", and the modpack author is notified. The notification should include exactly which files were not verifiable, to give them a chance to find the required information for possible appeal.
If all files were able to be verified as allowed (whether for "everyone" or "just this project"), the upload is approved, and the modpack author is notified.
After a modpack author has acquired the necessary information for the file(s) which caused their upload to be rejected, they can file an appeal via the current/standard process. The moderator/support person handling the appeal then follows the same basic process described in the "Human Moderation" section above.
for game or mod suggestions go to our discord
This board is being moderated, if you wish for your idea(s) to go public, please consider the following:
If your idea already exists, vote for it, this will increase the chances for the idea to become reality. Duplicate ideas only split and lower votes
This board is for new ideas and feature suggestions, for technical issues or bug reports, visit/contact CurseForge Support
This ensures that the idea is accessible to a wider audience and makes it easier for others to understand and vote for the idea
Any ideas posted with foul language will not be published and get deleted
Avoid posting 'lists' of different ideas, we won't be able to address them with a proper status and they will get less votes from others, each idea should have its own post
Posts with multiple ideas can not be merged and prevent us from opening these posts for upvotes
I think you're on the right track here, I hope the integrate at least some of this into the review process soon. A bit more transparency in the file review process would probably also reduce some of the frustration that leads mod developers to stop uploading to curseforge in the first place. I've known of a few cases where some developers I play with got frustrated with the slow and opaque process, just like "oh not this again, they rejected me for that? Why?!"
One concern I have though: before adding a hash to the global list, I think it's important to verify that the license linked is "official", not some fork or clone of the github made to fool the moderators