1
0

Coolbot/reports remoderation environments (#4313)

* Update reports quick responses.

* Edit env messages, add post approval stage.

* Update moderation checklist and nags to account for environments overhaul

* intl fix
This commit is contained in:
coolbot
2025-08-31 16:53:07 -07:00
committed by GitHub
parent 5a699eec22
commit 6f34130633
33 changed files with 265 additions and 40 deletions

View File

@@ -5,6 +5,7 @@ import description from './stages/description'
import gallery from './stages/gallery'
import license from './stages/license'
import links from './stages/links'
import postApproval from './stages/post-approval'
import reupload from './stages/reupload'
import ruleFollowing from './stages/rule-following'
import sideTypes from './stages/side-types'
@@ -29,4 +30,5 @@ export default [
modpackPermissionsStage,
statusAlerts,
undefinedProject,
postApproval,
] as ReadonlyArray<Stage>

View File

@@ -0,0 +1,3 @@
## Missing Dependencies
Since your project may require [%DEPENDENCY_NAME%](%DEPENDENCY_LINK%), please ensure that it and any other relevant dependencies are included in the Dependencies section for all applicable %PROJECT_VERSIONS_FLINK%.

View File

@@ -0,0 +1,4 @@
## Inconsistent Licensing
Your project's files, source, or listings outside of Modrinth may list licensing information that does not match your %PROJECT_LICENSE_FLINK% settings.
We strongly encourage you to ensure your licensing is listed consistently anywhere your project can be found, and your licensing on Modrinth should match any in-file licensing.

View File

@@ -0,0 +1,6 @@
## Supported Loaders
Some %PROJECT_VERSIONS_FLINK% of your project may be labeled with loaders that are not properly supported.
Please ensure that your project's supported loaders are listed accurately for all %PROJECT_VERSIONS_FLINK%.
%SPECIFICS%

View File

@@ -0,0 +1,6 @@
## Supported Minecraft Versions
Some %PROJECT_VERSIONS_FLINK% of your project may be labeled with Game Versions that are not properly supported.
Please ensure that your project's supported Game Versions are listed accurately for all %PROJECT_VERSIONS_FLINK%.
%SPECIFICS%

View File

@@ -0,0 +1,5 @@
---
Please note that failure to address these concerns in a timely manner may result in this project being temporarily or permanently unlisted or removed by moderation.</br>
If you believe the above notice has been issued in error or with incorrect information, feel free to send a message in this moderation thread letting us know.</br>
If you have other questions or need additional assistance, %SUPPORT%

View File

@@ -0,0 +1,5 @@
## Incorrect Metadata
Unfortunately, it has come to our attention that there may be issues with your project that require attention.
Some information may be incorrect, per section 5.1 of %RULES% it's important that all project metadata be accurate to ensure the best experience for all modrinth users.

View File

@@ -0,0 +1,2 @@
In accordance with the above notice, this project will be temporarily %STATUS%.</br>
We ask that you resubmit this project once all moderation concerns have been addressed.

View File

@@ -0,0 +1,3 @@
Thank you for your report.
After additional verification, we have taken this project down from Modrinth accordingly.

View File

@@ -1,3 +1,3 @@
Unfortunately, anti-virus software has consistently been found to be an unreliable tool for Minecraft mods.
Unfortunately, anti-virus software has consistently been found to be an unreliable tool for Minecraft content.
If you have evidence of malicious activity concerning a specific mod, or of malicious code decompiled from a mod on Modrinth, please create a new Report and provide the required details, thank you.
If you have evidence of malicious activity concerning a specific project, or of malicious code decompiled from a project on Modrinth, please create a new report and provide the required details, thank you.

View File

@@ -0,0 +1,3 @@
Thank you for your report.
We have alerted the creator(s) to this issue and asked them to ensure full compliance with [Modrinth's Content Rules](https://modrinth.com/legal/rules).

View File

@@ -1,3 +0,0 @@
Thank you for your report.
This project was confirmed to be malicious after a detailed investigation. Luckily, thanks to your report and quick action from our team, we have reason to believe this did not impact a significant amount of users and we have taken precautions to prevent this malicious code from appearing on Modrinth again.

View File

@@ -0,0 +1,3 @@
Upon review, this project appears to accurately and fully disclose its potentially hazardous features, and we believe no action is necessary at this time.
If you have reason to believe a project on Modrinth may include undisclosed and potentially hazardous functionality, we ask that you create a new report with significant evidence of malicious activity or of malicious code from the decompiled project.

View File

@@ -2,5 +2,5 @@ Unfortunately, the Moderation team is unable to assist with your issue.
The reporting system is exclusively for reporting issues to Moderation staff; only violations of [Modrinth's Content Rules](https://modrinth.com/legal/rules) should be reported. The members of the project you're reporting do not see that you have submitted a report.
If you are having issues with crashes, please check out [our FAQ section](https://support.modrinth.com/aen/articles/8792916) to learn how to diagnose and fix crashes.
If you are having issues with crashes, please check out our helpful guide to [Debugging Minecraft Crashes](https://support.modrinth.com/aen/articles/8792916) to learn how to diagnose and fix crashes.
For other project-specific issues consider asking the project's own community, check for a Discord or Issues link on the project page.

View File

@@ -0,0 +1,3 @@
Thank you for your report.
After additional verification we have alerted the creator(s) and corrected the mislabeled information.

View File

@@ -0,0 +1,3 @@
Upon review, this project's metadata appears to be reasonably accurate.
If you have reason to believe this project's information may be mislabeled in some way which makes its use or compatibility with Modrinth services needlessly inconvenient, or that this project has been intentionally mislabeled, or otherwise violates [Modrinth's Content Rules](https://modrinth.com/legal/rules) we ask that you create a new report and provide the relevant information, thank you.

View File

@@ -0,0 +1,4 @@
Thank you for your report, we understand your concerns.
Currently, Modrinth does not prohibit "%TERM%" style mods or consider these to de facto violate section 3 of [Modrinth's Content Rules](https://modrinth.com/legal/rules) due to their considerable legitimate use-cases.
If you have reason to believe a project on Modrinth is intentionally enabling or promoting cheating, we ask that you create a new report and provide sufficient evidence.

View File

@@ -2,4 +2,4 @@ Unfortunately, the Moderation team is unable to assist with your issue.
The reporting system is exclusively for reporting issues to Moderation staff; only violations of [Modrinth's Content Rules](https://modrinth.com/legal/rules) should be reported.
Please reach out to the [Modrinth Help Center](https://support.modrinth.com/) so we can better assist you and bring up your concerns with our platform tean,
Please visit the [Modrinth Help Center](https://support.modrinth.com/) and click the green bubble to contact support so our support agents can better assist you.

View File

@@ -0,0 +1,11 @@
If you have reason to believe that a project on Modrinth is reuploading code or assets without permission, or otherwise violating section 4 of [Modrinth's Content Rules](https://modrinth.com/legal/rules), we ask that you create a new report and provide the necessary details for our Moderation team to take any applicable actions.
We ask that you provide examples of identical or significantly derived code or assets likely to have been copied from an original work.
Be sure to include:
- A link to the original work and its licensing, if available.
- The relative file path of the identical class(es) or asset(s) for the infringing and source work.
- Explanation of a reasonable belief that this content is copied from the provided source work, and not likely to have mutually originated or derived from another source.
Keep in mind that our Moderation team only enforces [Modrinth's Content Rules](https://modrinth.com/legal/rules) and can not arbitrate copyright disputes.
For more information, please read our [Copyright Policy](https://modrinth.com/legal/copyright).

View File

@@ -1,3 +1,3 @@
The reporting system is exclusively for reporting issues to Modrinth staff; only violations of [Modrinth's Content Rules](https://modrinth.com/legal/rules) should be reported. The members of the project you're reporting do not see that you have submitted a report.
Please ensure you are using the Reports system appropriately, repeated misuse may result in account suspension.
Please ensure you are using the reporting system appropriately, repeated misuse may result in account suspension.

View File

@@ -1,3 +1,3 @@
We haven't received a response in some time, so we're closing this report thread.
We haven't received a response in some time, so this report thread is being closed.
If you have additional information to share we ask that you create a new report.

View File

@@ -0,0 +1,4 @@
Thank you for your report, we understand your concerns.
At this time, Modrinth does not prohibit the use of any specific tool, including AI tools, in the creation of project pages or content on Modrinth.
If you have reason to believe that this project does not or cannot function as advertised, may be intentionally misleading, or otherwise violates [Modrinth's Content Rules](https://modrinth.com/legal/rules) please create a new report with the relevant evidence.

View File

@@ -1,9 +1,5 @@
## Environment Information
## Environment Metadata
Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate, including whether the project runs on the client or server side.
Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate, including %PROJECT_ENVIRONMENT_FLINK%.
For a brief rundown of how this works:
- **Client side** refers to a mod that is only required by the client, like [Sodium](https://modrinth.com/mod/sodium).
- **Server side** mods change the behavior of the server without the client needing the mod, like Datapacks, recipes, or server-side behaviors, like [Falling Tree](https://modrinth.com/mod/fallingtree).
- A mod that adds features, entities, or new blocks and items, generally will be required on **both** the server and the client, for example [Cobblemon](https://modrinth.com/mod/cobblemon).
We've recently overhauled how environment metadata works on Modrinth, please [Read this blogpost](%NEW_ENVIRONMENTS_LINK%) for full details and information on how to ensure your project is labeled correctly.

View File

@@ -1,10 +1,5 @@
## Incorrect Environment Information
## Environment Metadata
Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate, including whether the project runs on the client or server side.
Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate, including %PROJECT_ENVIRONMENT_FLINK%.
For a brief rundown of how this works:
- Some modpacks can be client-side, usually aimed at providing utility and optimization while allowing the player to join an unmodded server, for instance, [Fabulously Optimized](https://modrinth.com/project/1KVo5zza).
- Most other modpacks that change how the game is played are going to be required on both the client and server, like the modpack [Aged](https://modrinth.com/project/i4XHCd7Q).
When in doubt, test for yourself or check the requirements of the mods in your pack.
We've recently overhauled how environment metadata works on Modrinth, please [Read this blogpost](%NEW_ENVIRONMENTS_LINK%) for full details and information on how to ensure your project is labeled correctly.

View File

@@ -0,0 +1,4 @@
## Corrections Applied
These have been corrected by our Moderation Team so your project can remain Approved, be sure to read and understand each issue listed below to ensure a smooth review for your next submission.
If you have further questions, %SUPPORT%

View File

@@ -1,4 +1,4 @@
## Corrections Applied
Your submission contained some issues which may have prevented your project from being published.
Your submission contained some issues that may have prevented your project from being published.
These have been corrected by our Moderation Team so your project can be Approved, be sure to read and understand each issue listed below to ensure a smooth review for your next submission.

View File

@@ -232,7 +232,7 @@ export const coreNags: Nag[] = [
return formatMessage(
defineMessage({
id: 'nags.select-environments.description',
defaultMessage: `Select whether the {projectType} functions on the client and/or server-side.`,
defaultMessage: `Select the environments your {projectType} functions on.`,
}),
{
projectType: formatProjectType(context.project.project_type).toLowerCase(),

View File

@@ -2,33 +2,69 @@ import type { ReportQuickReply } from '../types/reports'
export default [
{
label: 'Antivirus',
message: async () => (await import('./messages/reports/antivirus.md?raw')).default,
label: '✅⚖️ Action Taken',
message: async () => (await import('./messages/reports/action-taken.md?raw')).default,
private: false,
},
{
label: 'Spam',
label: '✅⚠️ Author Alerted',
message: async () => (await import('./messages/reports/author-alerted.md?raw')).default,
private: false,
},
{
label: '✅🏷️ Metadata Corrected',
message: async () => (await import('./messages/reports/metadata-corrected.md?raw')).default,
private: false,
},
{
label: '❌🏷️ Metadata Insufficient',
message: async () => (await import('./messages/reports/metadata-insufficient.md?raw')).default,
private: false,
},
{
label: '❌📤 Reupload Insufficient',
message: async () => (await import('./messages/reports/reupload-insufficient.md?raw')).default,
private: false,
},
{
label: '❌🏳️‍🌈 Spam',
message: async () => (await import('./messages/reports/spam.md?raw')).default,
private: false,
},
{
label: 'Gameplay Issue',
label: '❌🛡️ Antivirus',
message: async () => (await import('./messages/reports/antivirus.md?raw')).default,
private: false,
},
{
label: '❌👻 Functionality Disclosed',
message: async () =>
(await import('./messages/reports/functionality-disclosed.md?raw')).default,
private: false,
},
{
label: '❌🤖 Suspected AI',
message: async () => (await import('./messages/reports/suspected-ai.md?raw')).default,
private: false,
},
{
label: '❌👩‍💻 Not a Hack',
message: async () => (await import('./messages/reports/not-a-hack.md?raw')).default,
private: false,
},
{
label: '❌🕹️ Gameplay Issue',
message: async () => (await import('./messages/reports/gameplay-issue.md?raw')).default,
private: false,
},
{
label: 'Platform Issue',
label: '❌🎧 Platform Issue',
message: async () => (await import('./messages/reports/platform-issue.md?raw')).default,
private: false,
},
{
label: 'Stale',
label: '❌🪦 Stale',
message: async () => (await import('./messages/reports/stale.md?raw')).default,
private: false,
},
{
label: 'Confirmed Malware',
message: async () => (await import('./messages/reports/confirmed-malware.md?raw')).default,
private: false,
},
] as ReadonlyArray<ReportQuickReply>

View File

@@ -0,0 +1,117 @@
import { ScaleIcon } from '@modrinth/assets'
import type { ButtonAction } from '../../types/actions'
import type { Stage } from '../../types/stage'
const postApproval: Stage = {
title: 'Issue warnings, notices, or takedowns?',
id: 'post-approval',
icon: ScaleIcon,
guidance_url: 'https://modrinth.com/legal/rules',
shouldShow: (project) => project.status === 'approved',
actions: [
{
id: 'issue_warning',
type: 'button',
label: 'Issue warning',
weight: 3000,
suggestedStatus: 'approved',
severity: 'low',
message: async () => (await import('../messages/post-approval/issue-warning.md?raw')).default,
},
{
id: 'missed_deadline',
type: 'button',
label: 'Missed due date',
weight: -999,
suggestedStatus: 'flagged',
severity: 'high',
message: async () =>
(await import('../messages/post-approval/missed-deadline.md?raw')).default,
disablesActions: ['issue_warning', 'metadata_issue'],
relevantExtraInput: [
{
label: 'What status is the project being set to?',
variable: 'STATUS',
required: true,
},
],
},
{
id: 'metadata_issue',
type: 'button',
label: 'Incorrect metadata',
weight: 0,
suggestedStatus: 'approved',
severity: 'low',
message: async () => (await import('../messages/gallery/insufficient.md?raw')).default,
enablesActions: [
{
id: 'dependencies',
type: 'button',
label: 'Missing Dependencies',
weight: 1,
severity: 'low',
message: async () =>
(await import('../messages/misc-metadata/dependancies.md?raw')).default,
relevantExtraInput: [
{
label: 'Dependency Name',
variable: 'DEPENDENCY_NAME',
required: true,
},
{
label: 'Dependency Link',
variable: 'DEPENDENCY_LINK',
required: true,
},
],
},
{
id: 'mc_versions',
type: 'button',
label: 'Game versions',
weight: 2,
severity: 'low',
message: async () =>
(await import('../messages/misc-metadata/mc-versions.md?raw')).default,
relevantExtraInput: [
{
label: 'Provide more details about game versions issue?',
variable: 'SPECIFICS',
required: false,
large: true,
},
],
},
{
id: 'loaders',
type: 'button',
label: 'Loaders',
weight: 3,
severity: 'low',
message: async () => (await import('../messages/misc-metadata/loaders.md?raw')).default,
relevantExtraInput: [
{
label: 'Provide more details about loaders issue?',
variable: 'SPECIFICS',
required: false,
large: true,
},
],
},
{
id: 'license',
type: 'button',
label: 'Inconsistent Licensing',
weight: 4,
severity: 'low',
message: async () =>
(await import('../messages/misc-metadata/inconsistent-license.md?raw')).default,
},
],
} as ButtonAction,
],
}
export default postApproval

View File

@@ -8,7 +8,7 @@ const sideTypes: Stage = {
id: 'environment',
icon: GlobeIcon,
guidance_url: 'https://modrinth.com/legal/rules#miscellaneous',
navigate: '/settings',
navigate: '/settings/environment',
text: async () => (await import('../messages/checklist-text/side_types.md?raw')).default,
actions: [
{

View File

@@ -19,8 +19,20 @@ const statusAlerts: Stage = {
weight: -999999,
suggestedStatus: 'approved',
disablesActions: ['status_private_use', 'status_account_issues'],
shouldShow: (project) => project.status !== 'approved',
message: async () => (await import('../messages/status-alerts/fixed.md?raw')).default,
} as ButtonAction,
{
id: 'status_corrections_applied-approved',
type: 'button',
label: 'Corrections applied',
weight: -999999,
suggestedStatus: 'approved',
disablesActions: ['status_private_use', 'status_account_issues'],
shouldShow: (project) => project.status === 'approved',
message: async () =>
(await import('../messages/status-alerts/fixed-approved.md?raw')).default,
} as ButtonAction,
{
id: 'status_private_use',
type: 'button',

View File

@@ -123,7 +123,7 @@
"defaultMessage": "Select correct resolution"
},
"nags.select-environments.description": {
"defaultMessage": "Select whether the {projectType} functions on the client and/or server-side."
"defaultMessage": "Select the environments your {projectType} functions on."
},
"nags.select-environments.title": {
"defaultMessage": "Select environments"

View File

@@ -313,6 +313,7 @@ export function flattenProjectVariables(project: Project): Record<string, string
`[Markdown Formatting Guide](https://support.modrinth.com/en/articles/8801962-advanced-markdown-formatting)`
vars[`LICENSING_GUIDE`] =
`our guide to [Licensing your Mods](https://modrinth.com/news/article/licensing-guide)`
vars[`NEW_ENVIRONMENTS_LINK`] = `https://modrinth.com/news/article/new-environments`
// Navigation related variables
vars[`PROJECT_PERMANENT_LINK`] = `https://modrinth.com/project/${project.id}`
@@ -322,7 +323,7 @@ export function flattenProjectVariables(project: Project): Record<string, string
vars[`PROJECT_SLUG_FLINK`] = `[URL](https://modrinth.com/project/${project.id}/settings)`
vars[`PROJECT_SUMMARY_FLINK`] = `[Summary](https://modrinth.com/project/${project.id}/settings)`
vars[`PROJECT_ENVIRONMENT_FLINK`] =
`[Environment Information](https://modrinth.com/project/${project.id}/settings)`
`[Environment Information](https://modrinth.com/project/${project.id}/settings/environment)`
vars[`PROJECT_TAGS_LINK`] = `https://modrinth.com/project/${project.id}/settings/tags`
vars[`PROJECT_TAGS_FLINK`] = `[Tags](https://modrinth.com/project/${project.id}/settings/tags)`
vars[`PROJECT_DESCRIPTION_LINK`] =