From b78dd9bf1b31d2d001fd15cc837bca272161073c Mon Sep 17 00:00:00 2001 From: ThatGravyBoat Date: Fri, 7 Aug 2026 22:46:13 -0230 Subject: [PATCH 01/13] fix: missing delphi severity (#7054) --- apps/labrinth/src/database/models/delphi_report_item.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/labrinth/src/database/models/delphi_report_item.rs b/apps/labrinth/src/database/models/delphi_report_item.rs index 4ae71749b4..41bfa6b782 100644 --- a/apps/labrinth/src/database/models/delphi_report_item.rs +++ b/apps/labrinth/src/database/models/delphi_report_item.rs @@ -84,6 +84,8 @@ pub enum DelphiSeverity { High, #[serde(alias = "SEVERE")] Severe, + #[serde(alias = "MALWARE")] + Malware, } /// An issue found in a Delphi report. Every issue belongs to a report, From 0fc7cfdf02f9d2ed82a7f47f736de691a49aab4a Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Fri, 7 Aug 2026 19:05:23 -0700 Subject: [PATCH 02/13] Utils nav, new disclosures stage, ai button in rules --- packages/moderation/src/data/checklist.ts | 2 + .../disclosures/missing-disclosures/ads.md | 0 .../missing-disclosures/ai-usages.md | 1 + .../missing-disclosures/ai-usages/assets.md | 1 + .../missing-disclosures/ai-usages/code.md | 1 + .../ai-usages/functionality.md | 1 + .../missing-disclosures/ai-usages/text.md | 1 + .../disclosures/missing-disclosures/ai.md | 1 + .../missing-disclosures/archive.md | 0 .../missing-disclosures/derivative-content.md | 0 .../disclosures-selected.md | 1 + .../missing-disclosures-header.md | 5 ++ .../missing-disclosures/paid-features.md | 0 .../missing-disclosures/photosensitivity.md | 0 .../system-interactions.md | 0 .../missing-disclosures/telemetry.md | 0 .../checklist/messages/rules/ai-generated.md | 6 ++ .../src/data/stages/disclosures.tsx | 79 +++++++++++++++++++ packages/moderation/src/data/stages/rules.tsx | 2 + .../src/data/stages/status-alerts.tsx | 4 +- packages/moderation/src/utils.ts | 4 + 21 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/functionality.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md create mode 100644 packages/moderation/src/data/stages/disclosures.tsx diff --git a/packages/moderation/src/data/checklist.ts b/packages/moderation/src/data/checklist.ts index 929552718f..7f93149b5c 100644 --- a/packages/moderation/src/data/checklist.ts +++ b/packages/moderation/src/data/checklist.ts @@ -11,6 +11,7 @@ import usePermissionsStage from './stages/permissions' import usePostApprovalStage from './stages/post-approval' import useReReviewStage from './stages/re-review' import useReuploadsStage from './stages/reupload' +import useDisclosuresStage from './stages/disclosures' import useRulesStage from './stages/rules' import useStatusAlertsStage from './stages/status-alerts' import useSummaryStage from './stages/summary' @@ -37,6 +38,7 @@ export function useStages( useReuploadsStage(), usePermissionsStage(), useRulesStage(), + useDisclosuresStage(), ] return [...mainStages, useStatusAlertsStage(mainStages, globalState)] } diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md new file mode 100644 index 0000000000..21e63b5498 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md @@ -0,0 +1 @@ +Don't forget to label the inclusion of diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md new file mode 100644 index 0000000000..c49616da93 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md @@ -0,0 +1 @@ + - AI generated or assisted art, assets, or other design elements. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md new file mode 100644 index 0000000000..555f9866f0 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md @@ -0,0 +1 @@ + - AI generated or assisted code. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/functionality.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/functionality.md new file mode 100644 index 0000000000..9d407276cb --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/functionality.md @@ -0,0 +1 @@ + - Functionality that relies on or is designed by generative AI. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md new file mode 100644 index 0000000000..6dea98529e --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md @@ -0,0 +1 @@ + - AI generated or assisted writting or text, including translations. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md new file mode 100644 index 0000000000..6fed74175e --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md @@ -0,0 +1 @@ +- Per section 6.1 of %RULES% please label this %PROJECT_TYPE_FORMATTED_LOWER% as containing AI-generated content. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md new file mode 100644 index 0000000000..821ffabca0 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md @@ -0,0 +1 @@ +Currently, some applicable disclosures may be missing: diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md new file mode 100644 index 0000000000..e440e9d823 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md @@ -0,0 +1,5 @@ +## Missing Content Disclosures + +Per section 5.8 of %RULES%, we ask that you ensure all applicable %PROJECT_CONTENT_DISCLOSURES_FLINK% are filled out with accurate information. + +%DISCLOSURES_SELECTED% diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md b/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md new file mode 100644 index 0000000000..9edbd44d87 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md @@ -0,0 +1,6 @@ +## Project Withheld + +Per section 6.3 of %RULES%, this project is not suitable to be published on Modrinth. + +With this in mind, this project will remain unlisted, so you may still share it privately with a direct link. \ +We appreciate your understanding and ask that you **do not resubmit**. diff --git a/packages/moderation/src/data/stages/disclosures.tsx b/packages/moderation/src/data/stages/disclosures.tsx new file mode 100644 index 0000000000..5131345079 --- /dev/null +++ b/packages/moderation/src/data/stages/disclosures.tsx @@ -0,0 +1,79 @@ +import { TriangleAlertIcon } from '@modrinth/assets' +import { injectProjectPageContext } from '@modrinth/ui' +import { computed } from 'vue' + +import { group, markdown, md, option, stage, toggle } from '../../types/node' + +export default function () { + const { projectV3: project } = injectProjectPageContext() + + return stage('disclosures', 'Disclosures') + .hint('Has this project selected all proper content disclosures?') + .guidance('https://www.notion.so/2e15ee711bf080e4a41df61bbab49892') + .icon(TriangleAlertIcon) + .navigate('/settings/disclosures') + .children( + group().children( + toggle('missing-disclosures', 'Disclosures Missing') + .rawMessage(async (state) => { + if (state?.['missing-disclosures']) + return md( + 'checklist/messages/disclosures/missing-disclosures/missing-disclosures-header', + () => ({ + DISCLOSURES_SELECTED: md( + 'checklist/messages/disclosures/missing-disclosures/disclosures-selected', + ), + }), + )(state) + + return md( + 'checklist/messages/disclosures/missing-disclosures/missing-disclosures-header', + () => ({ + DISCLOSURES_SELECTED: '', + }), + )(state) + }) + + .children( + group() + .title('Which content disclosures are missing?') + .children( + option('ai', 'AI Usage') + .suggestedStatus('flagged') + .message() + .children( + group() + .title('What kind of AI content is present?') + .children( + option('code', 'Code').message(), + option('assets', 'Assets').message(), + option('text', 'Text').message(), + option('functionality', 'Functionality').message(), + ), + ), + + option('ads', 'Advertisements').suggestedStatus('flagged').message(), + + option('paid-features', 'Paid Features').suggestedStatus('flagged').message(), + + option('telemetry', 'Telemetry').suggestedStatus('rejected').message(), + + option('derivative-content', 'Derivative Content') + .suggestedStatus('rejected') + .message(), + + option('photosensitivity', 'Photosensitivity') + .suggestedStatus('rejected') + .message(), + + option('system-interactions', 'System Interactions') + .suggestedStatus('rejected') + .message(), + + option('archive', 'Archive').message(), + ), + ) + .collect(), + ), + ) +} diff --git a/packages/moderation/src/data/stages/rules.tsx b/packages/moderation/src/data/stages/rules.tsx index 75f2de6a7b..abb7512549 100644 --- a/packages/moderation/src/data/stages/rules.tsx +++ b/packages/moderation/src/data/stages/rules.tsx @@ -77,6 +77,8 @@ export default function () { .suggestedStatus('flagged') .message(), + toggle('ai-generated', 'AI Generated').suggestedStatus('flagged').message(), + toggle('rule-breaking-other', 'Other') .suggestedStatus('rejected') .message((state) => ({ MESSAGE: state.message })) diff --git a/packages/moderation/src/data/stages/status-alerts.tsx b/packages/moderation/src/data/stages/status-alerts.tsx index 2c61a176cc..69c93b4741 100644 --- a/packages/moderation/src/data/stages/status-alerts.tsx +++ b/packages/moderation/src/data/stages/status-alerts.tsx @@ -1,4 +1,4 @@ -import { TriangleAlertIcon } from '@modrinth/assets' +import { MegaphoneIcon } from '@modrinth/assets' import { injectProjectPageContext } from '@modrinth/ui' import type { Ref } from 'vue' import { computed } from 'vue' @@ -28,7 +28,7 @@ export default function ( .guidance( 'https://www.notion.so/2e15ee711bf080e4a41df61bbab49892#2e35ee711bf080968699c397e470eca6', ) - .icon(TriangleAlertIcon) + .icon(MegaphoneIcon) .navigate('/moderation') .children( () => ( diff --git a/packages/moderation/src/utils.ts b/packages/moderation/src/utils.ts index 3df242bf55..4df6ebde35 100644 --- a/packages/moderation/src/utils.ts +++ b/packages/moderation/src/utils.ts @@ -246,6 +246,10 @@ export function flattenProjectVariables( vars[`PROJECT_MONETIZATION_SETTINGS_LINK`] = `https://modrinth.com/project/${project.id}/settings` vars[`PROJECT_MONETIZATION_SETTINGS_FLINK`] = `[Monetization settings](https://modrinth.com/project/${project.id}/settings)` + vars[`PROJECT_CONTENT_DISCLOSURES_LINK`] = + `https://modrinth.com/project/${project.id}/settings/disclosures` + vars[`PROJECT_CONTENT_DISCLOSURES_FLINK`] = + `[Monetization settings](https://modrinth.com/project/${project.id}/settings/disclosures)` return vars } From 8af64027e9a099d6fc5ddfe83d235e580baa7047 Mon Sep 17 00:00:00 2001 From: chyzman Date: Fri, 7 Aug 2026 22:09:45 -0400 Subject: [PATCH 03/13] add prefix to collect --- .../src/data/stages/disclosures.tsx | 31 +++---------------- .../moderation/src/data/stages/metadata.tsx | 1 + .../moderation/src/types/node/capabilities.ts | 21 +++++++------ packages/moderation/src/types/node/collect.ts | 2 ++ packages/moderation/src/types/node/state.ts | 2 +- 5 files changed, 20 insertions(+), 37 deletions(-) diff --git a/packages/moderation/src/data/stages/disclosures.tsx b/packages/moderation/src/data/stages/disclosures.tsx index 5131345079..23b5149239 100644 --- a/packages/moderation/src/data/stages/disclosures.tsx +++ b/packages/moderation/src/data/stages/disclosures.tsx @@ -1,12 +1,8 @@ import { TriangleAlertIcon } from '@modrinth/assets' -import { injectProjectPageContext } from '@modrinth/ui' -import { computed } from 'vue' -import { group, markdown, md, option, stage, toggle } from '../../types/node' +import { group, option, stage, toggle } from '../../types/node' export default function () { - const { projectV3: project } = injectProjectPageContext() - return stage('disclosures', 'Disclosures') .hint('Has this project selected all proper content disclosures?') .guidance('https://www.notion.so/2e15ee711bf080e4a41df61bbab49892') @@ -15,25 +11,7 @@ export default function () { .children( group().children( toggle('missing-disclosures', 'Disclosures Missing') - .rawMessage(async (state) => { - if (state?.['missing-disclosures']) - return md( - 'checklist/messages/disclosures/missing-disclosures/missing-disclosures-header', - () => ({ - DISCLOSURES_SELECTED: md( - 'checklist/messages/disclosures/missing-disclosures/disclosures-selected', - ), - }), - )(state) - - return md( - 'checklist/messages/disclosures/missing-disclosures/missing-disclosures-header', - () => ({ - DISCLOSURES_SELECTED: '', - }), - )(state) - }) - + .message('header') .children( group() .title('Which content disclosures are missing?') @@ -50,7 +28,8 @@ export default function () { option('text', 'Text').message(), option('functionality', 'Functionality').message(), ), - ), + ) + .collect(), option('ads', 'Advertisements').suggestedStatus('flagged').message(), @@ -73,7 +52,7 @@ export default function () { option('archive', 'Archive').message(), ), ) - .collect(), + .collect(undefined, 'list-intro'), ), ) } diff --git a/packages/moderation/src/data/stages/metadata.tsx b/packages/moderation/src/data/stages/metadata.tsx index 9817081489..ed2e3c7032 100644 --- a/packages/moderation/src/data/stages/metadata.tsx +++ b/packages/moderation/src/data/stages/metadata.tsx @@ -93,6 +93,7 @@ export default function () { return md('checklist/messages/metadata/environment/inaccurate', () => ({ CORRECT: correct, }))(state) + }) .fix( fix().project((patch, state) => { diff --git a/packages/moderation/src/types/node/capabilities.ts b/packages/moderation/src/types/node/capabilities.ts index 5d89d16740..fcb5731281 100644 --- a/packages/moderation/src/types/node/capabilities.ts +++ b/packages/moderation/src/types/node/capabilities.ts @@ -108,7 +108,7 @@ export interface Messageable { this: this, content: string | ((state: Record) => string | Promise), ): this - collect(this: this, path?: string | (() => string) | GetVarsFn, getVars?: GetVarsFn): this + collect(this: this, fallback?: string | (() => string), prefix?: string | (() => string)): this } function splitPathAndVars( @@ -151,17 +151,18 @@ export function withMessaging(node: T): T & Messageable { }, collect( this: Messageable, - pathOrGetVars?: string | (() => string) | GetVarsFn, - getVarsArg?: GetVarsFn, + fallbackPath?: string | (() => string), + prefixPath?: string | (() => string), ) { - const { path, getVars } = splitPathAndVars(pathOrGetVars, getVarsArg) const fallback: MessageSegment | undefined = - path !== undefined || getVars !== undefined - ? path === undefined - ? { type: 'auto', ...(getVars && { getVars }) } - : { type: 'path', path, ...(getVars && { getVars }) } - : undefined - this._segments.push({ type: 'collect', ...(fallback && { fallback }) }) + fallbackPath !== undefined ? { type: 'path', path: fallbackPath } : undefined + const prefix: MessageSegment | undefined = + prefixPath !== undefined ? { type: 'path', path: prefixPath } : undefined + this._segments.push({ + type: 'collect', + ...(fallback && { fallback }), + ...(prefix && { prefix }), + }) return this }, }) diff --git a/packages/moderation/src/types/node/collect.ts b/packages/moderation/src/types/node/collect.ts index 3398c436eb..69849b220b 100644 --- a/packages/moderation/src/types/node/collect.ts +++ b/packages/moderation/src/types/node/collect.ts @@ -87,6 +87,8 @@ export async function evalActiveAction( } if (!collected.trim() && seg.fallback) { collected = await evalSegment(seg.fallback, entry.state, entry.statePath) + } else if (collected.trim() && seg.prefix) { + collected = (await evalSegment(seg.prefix, entry.state, entry.statePath)) + collected } result += collected } else { diff --git a/packages/moderation/src/types/node/state.ts b/packages/moderation/src/types/node/state.ts index 2812f8b8d9..773ebbd176 100644 --- a/packages/moderation/src/types/node/state.ts +++ b/packages/moderation/src/types/node/state.ts @@ -30,4 +30,4 @@ export type MessageSegment = | { type: 'fn'; fn: ContentFn } | { type: 'auto'; getVars?: GetVarsFn } | { type: 'path'; path: string | (() => string); getVars?: GetVarsFn } - | { type: 'collect'; fallback?: MessageSegment } + | { type: 'collect'; fallback?: MessageSegment; prefix?: MessageSegment } From 9d911c66226010680cd1546a1909f8e90f2d94f8 Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Fri, 7 Aug 2026 20:41:58 -0700 Subject: [PATCH 04/13] Finish up new disclosures stage --- .../disclosures/missing-disclosures/ads.md | 1 + .../missing-disclosures/ai-usages.md | 1 - .../missing-disclosures/ai-usages/assets.md | 1 - .../missing-disclosures/ai-usages/code.md | 1 - .../missing-disclosures/ai-usages/text.md | 1 - .../disclosures/missing-disclosures/ai.md | 3 +- .../ai/ai-usages/assets.md | 1 + .../missing-disclosures/ai/ai-usages/code.md | 1 + .../{ => ai}/ai-usages/functionality.md | 0 .../missing-disclosures/ai/ai-usages/text.md | 1 + .../missing-disclosures/ai/list-intro.md | 2 ++ .../missing-disclosures/archive.md | 1 + .../missing-disclosures/derivative-content.md | 2 ++ .../disclosures-selected.md | 1 - .../missing-disclosures/list-intro.md | 2 ++ .../missing-disclosures-header.md | 2 -- .../missing-disclosures/paid-features.md | 1 + .../missing-disclosures/photosensitivity.md | 1 + .../system-interactions.md | 1 + .../missing-disclosures/telemetry.md | 2 ++ .../src/data/stages/disclosures.tsx | 30 +++++++++---------- packages/moderation/src/utils.ts | 2 +- 22 files changed, 34 insertions(+), 24 deletions(-) delete mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md delete mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md delete mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md delete mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/assets.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/code.md rename packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/{ => ai}/ai-usages/functionality.md (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/text.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/list-intro.md delete mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/list-intro.md diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md index e69de29bb2..6ece4d1fd0 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ads.md @@ -0,0 +1 @@ +- Advertisements or sponsored promotions of outside content. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md deleted file mode 100644 index 21e63b5498..0000000000 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages.md +++ /dev/null @@ -1 +0,0 @@ -Don't forget to label the inclusion of diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md deleted file mode 100644 index c49616da93..0000000000 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/assets.md +++ /dev/null @@ -1 +0,0 @@ - - AI generated or assisted art, assets, or other design elements. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md deleted file mode 100644 index 555f9866f0..0000000000 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/code.md +++ /dev/null @@ -1 +0,0 @@ - - AI generated or assisted code. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md deleted file mode 100644 index 6dea98529e..0000000000 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/text.md +++ /dev/null @@ -1 +0,0 @@ - - AI generated or assisted writting or text, including translations. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md index 6fed74175e..e75129c6e8 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md @@ -1 +1,2 @@ -- Per section 6.1 of %RULES% please label this %PROJECT_TYPE_FORMATTED_LOWER% as containing AI-generated content. +- AI-generated or assisted content.
+ Proper disclosure of AI usage is strictly required per section 6.1 of %RULES%. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/assets.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/assets.md new file mode 100644 index 0000000000..f09a749f55 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/assets.md @@ -0,0 +1 @@ + - AI-generated or assisted art, assets, or other design elements. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/code.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/code.md new file mode 100644 index 0000000000..b1fbef3695 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/code.md @@ -0,0 +1 @@ + - AI-generated or assisted code. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/functionality.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/functionality.md similarity index 100% rename from packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai-usages/functionality.md rename to packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/functionality.md diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/text.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/text.md new file mode 100644 index 0000000000..1b1bcffeea --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/ai-usages/text.md @@ -0,0 +1 @@ + - AI-generated or assisted writing or text, including translations. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/list-intro.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/list-intro.md new file mode 100644 index 0000000000..b7e1b79ab8 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai/list-intro.md @@ -0,0 +1,2 @@ +
+ Don't forget to label the inclusion of: diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md index e69de29bb2..7e97f23fb7 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/archive.md @@ -0,0 +1 @@ +- Being archived, or otherwise no longer receiving updates. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md index e69de29bb2..3c9672dd35 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md @@ -0,0 +1,2 @@ +- Derivative content, such as code or assets from another project or creator.
+ Per section 4 of %RULES%, you may be required to list the origin of content you did not create here if the content's license requires attribution. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md deleted file mode 100644 index 821ffabca0..0000000000 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/disclosures-selected.md +++ /dev/null @@ -1 +0,0 @@ -Currently, some applicable disclosures may be missing: diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/list-intro.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/list-intro.md new file mode 100644 index 0000000000..6f28d49088 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/list-intro.md @@ -0,0 +1,2 @@ +
+Currently, your %PROJECT_TYPE_FORMATTED_LOWER% appears to be missing disclosure of: diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md index e440e9d823..e9a234cc2a 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md @@ -1,5 +1,3 @@ ## Missing Content Disclosures Per section 5.8 of %RULES%, we ask that you ensure all applicable %PROJECT_CONTENT_DISCLOSURES_FLINK% are filled out with accurate information. - -%DISCLOSURES_SELECTED% diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md index e69de29bb2..775d73a711 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/paid-features.md @@ -0,0 +1 @@ +- Features locked behind a paywall, donation, or other monetary exchange. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md index e69de29bb2..315a02b665 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/photosensitivity.md @@ -0,0 +1 @@ +- Content that may be dangerous to users with photosensitive epilepsy. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md index e69de29bb2..d4c8f3d41b 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/system-interactions.md @@ -0,0 +1 @@ +- Features that interact with the user's machine outside of the context of the game. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md index e69de29bb2..124d92f703 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md @@ -0,0 +1,2 @@ +- Telemetry or any other instances of data being sent to a remote server that the user did not connect to.
+ Proper disclosure of data collection is strictly required per section 1.11 of %RULES%. diff --git a/packages/moderation/src/data/stages/disclosures.tsx b/packages/moderation/src/data/stages/disclosures.tsx index 23b5149239..47a775ca1f 100644 --- a/packages/moderation/src/data/stages/disclosures.tsx +++ b/packages/moderation/src/data/stages/disclosures.tsx @@ -11,48 +11,48 @@ export default function () { .children( group().children( toggle('missing-disclosures', 'Disclosures Missing') - .message('header') + .message('missing-disclosures/missing-disclosures-header') .children( group() .title('Which content disclosures are missing?') .children( - option('ai', 'AI Usage') + toggle('ai', 'AI Usage') .suggestedStatus('flagged') .message() .children( group() .title('What kind of AI content is present?') .children( - option('code', 'Code').message(), - option('assets', 'Assets').message(), - option('text', 'Text').message(), - option('functionality', 'Functionality').message(), + toggle('code', 'Code').message('ai-usages/code'), + toggle('assets', 'Assets').message('ai-usages/assets'), + toggle('text', 'Text').message('ai-usages/text'), + toggle('functionality', 'Functionality').message('ai-usages/functionality'), ), ) - .collect(), + .collect(undefined, 'ai/list-intro'), - option('ads', 'Advertisements').suggestedStatus('flagged').message(), + toggle('ads', 'Advertisements').suggestedStatus('flagged').message(), - option('paid-features', 'Paid Features').suggestedStatus('flagged').message(), + toggle('paid-features', 'Paid Features').suggestedStatus('flagged').message(), - option('telemetry', 'Telemetry').suggestedStatus('rejected').message(), + toggle('telemetry', 'Telemetry').suggestedStatus('rejected').message(), - option('derivative-content', 'Derivative Content') + toggle('derivative-content', 'Derivative Content') .suggestedStatus('rejected') .message(), - option('photosensitivity', 'Photosensitivity') + toggle('photosensitivity', 'Photosensitivity') .suggestedStatus('rejected') .message(), - option('system-interactions', 'System Interactions') + toggle('system-interactions', 'System Interactions') .suggestedStatus('rejected') .message(), - option('archive', 'Archive').message(), + toggle('archive', 'Archive').message(), ), ) - .collect(undefined, 'list-intro'), + .collect(undefined, 'missing-disclosures/list-intro'), ), ) } diff --git a/packages/moderation/src/utils.ts b/packages/moderation/src/utils.ts index 4df6ebde35..f3d5426543 100644 --- a/packages/moderation/src/utils.ts +++ b/packages/moderation/src/utils.ts @@ -249,7 +249,7 @@ export function flattenProjectVariables( vars[`PROJECT_CONTENT_DISCLOSURES_LINK`] = `https://modrinth.com/project/${project.id}/settings/disclosures` vars[`PROJECT_CONTENT_DISCLOSURES_FLINK`] = - `[Monetization settings](https://modrinth.com/project/${project.id}/settings/disclosures)` + `[Content disclosures](https://modrinth.com/project/${project.id}/settings/disclosures)` return vars } From dee70105552f6b719817fbd6d94f3dc4e48bfda0 Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Fri, 7 Aug 2026 20:57:06 -0700 Subject: [PATCH 05/13] update r4 messages --- .../checklist/messages/reupload/insufficient-fork.md | 5 +++-- .../checklist/messages/reupload/request-proof-server.md | 7 ++++--- .../messages/checklist/messages/reupload/request-proof.md | 7 ++++--- .../data/messages/checklist/messages/reupload/reupload.md | 4 ++-- .../messages/checklist/messages/reupload/unclear-fork.md | 5 +++-- packages/moderation/src/utils.ts | 2 +- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md b/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md index 90a0f018c7..4dba0a426f 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md @@ -1,4 +1,5 @@ ## Insufficient Fork -This project does not appear to significantly diverge from the source work, or does not abide by the license of the source work as required by section 4 of %RULES%. -Please provide proof of your explicit permission to distribute this project from the creator(s) of the source work. +This project does not appear to significantly diverge from the source work, or does not abide by the license of the source work as required by section 4 of %RULES%.
+Please provide proof of your explicit permission to distribute this project from the creator(s) of the source work.
+Remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%, this may be required by the license of the source work. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md index f01171f50b..fe3998060d 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md @@ -1,5 +1,6 @@ ## Reuploads are forbidden -This server appears to have uploaded a Modpack by another creator. -Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this pack on Modrinth. -Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the pack. +This server appears to have uploaded a Modpack by another creator.
+Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this pack on Modrinth.
+Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the pack.
+Please remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md index 26296101fb..bb707f76c7 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md @@ -1,5 +1,6 @@ ## Proof of permissions -This project appears to contain content from other creators. -Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this content, or derivatives of this content in your project on Modrinth. -Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the content. +This project appears to contain content from other creators.
+Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this content, or derivatives of this content in your project on Modrinth.
+Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the content.
+Please remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%, this may be required by the license of the content. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md b/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md index 6c2cc9b7ff..85b34b93c0 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md @@ -1,5 +1,5 @@ ## Reuploads are forbidden -This project appears to contain content from %ORIGINAL_PROJECT% by %ORIGINAL_AUTHOR%. -Per section 4 of %RULES%, this is strictly forbidden. +This project appears to contain content from %ORIGINAL_PROJECT% by %ORIGINAL_AUTHOR%.
+Per section 4 of %RULES%, this is strictly forbidden.
If you believe this is an error, or you can verify you are the creator and rightful owner of this content please let us know. Otherwise, we ask that you **do not resubmit this project**. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md b/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md index ba885a2304..21347f7ef8 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md @@ -1,4 +1,5 @@ ## Forks and Reuploads -Per section 4 of %RULES%, please provide proof that this project is both license-abiding and significantly divergent from the source work. -Alternatively, please provide proof of your explicit permission from the author of the source work to distribute this content on Modrinth. +Per section 4 of %RULES%, please provide proof that this project is both license-abiding and significantly divergent from the source work.
+Alternatively, please provide proof of your explicit permission from the author of the source work to distribute this content on Modrinth.
+Please remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%, this may be required by the license of the source work. diff --git a/packages/moderation/src/utils.ts b/packages/moderation/src/utils.ts index f3d5426543..7e7dbd9477 100644 --- a/packages/moderation/src/utils.ts +++ b/packages/moderation/src/utils.ts @@ -249,7 +249,7 @@ export function flattenProjectVariables( vars[`PROJECT_CONTENT_DISCLOSURES_LINK`] = `https://modrinth.com/project/${project.id}/settings/disclosures` vars[`PROJECT_CONTENT_DISCLOSURES_FLINK`] = - `[Content disclosures](https://modrinth.com/project/${project.id}/settings/disclosures)` + `[Content Disclosures](https://modrinth.com/project/${project.id}/settings/disclosures)` return vars } From 747fb373f9b4e604940443ec4dd62bd41dc71161 Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Fri, 7 Aug 2026 21:29:31 -0700 Subject: [PATCH 06/13] new r4 msg, update showcase clarity message --- .../checklist/messages/gallery/showcase-clarity.md | 4 +++- .../checklist/messages/reupload/missing-attribution.md | 4 ++++ packages/moderation/src/data/stages/reupload.tsx | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 packages/moderation/src/data/messages/checklist/messages/reupload/missing-attribution.md diff --git a/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md b/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md index bf7c812178..c93ae5a601 100644 --- a/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md +++ b/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md @@ -5,6 +5,8 @@ Per section 2 of %RULES%, it's important that your project page accurately and h Currently, it looks like some images do not accurately represent the content of your %PROJECT_TYPE_FORMATTED_LOWER%. Please make sure you use authentic images such as in-game screenshots when showcasing the content or functionality of your work. -Images such as renders, AI generated or assisted images, or heavily modified images should not be used to demonstrate the functionality of your project in the %PROJECT_DESCRIPTION_FLINK% or %PROJECT_GALLERY_FLINK%. +Images such as renders, or heavily modified images should not be used to demonstrate the functionality of your project in the %PROJECT_DESCRIPTION_FLINK% or %PROJECT_GALLERY_FLINK%. You may still include these types of branding assets or unrelated images on your project page, so long as it is clear they are not authentic representations of the content. + +Per section 6.2 of %RULES%, the use of AI images is strictly prohibited. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/missing-attribution.md b/packages/moderation/src/data/messages/checklist/messages/reupload/missing-attribution.md new file mode 100644 index 0000000000..5952604e02 --- /dev/null +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/missing-attribution.md @@ -0,0 +1,4 @@ +## Missing Attribution + +Please ensure you've provided proper attribution to the source of all assets you have not created yourself by listing them accordingly in your project's %PROJECT_CONTENT_DISCLOSURES_FLINK%. +Per section 4 of %RULES%, this is strictly required for any content licensed with an attribution requirement clause. diff --git a/packages/moderation/src/data/stages/reupload.tsx b/packages/moderation/src/data/stages/reupload.tsx index 002f284072..6665336368 100644 --- a/packages/moderation/src/data/stages/reupload.tsx +++ b/packages/moderation/src/data/stages/reupload.tsx @@ -88,6 +88,13 @@ export default function () { OVERRIDES: state.overrides, })) .children(markdown('overrides').title('Forbidden overrides list').required()), + + toggle('missing-attribution', 'Missing Attribution') + .suggestedStatus('rejected') + .message((state) => ({ + MISSING_CREDITS: state.missing_credits, + })), + //.children(markdown('missing_credits').title('Add list of missing credits.')), ), ) } From f38d351d323a082427807f7c53d21350deca5cd3 Mon Sep 17 00:00:00 2001 From: Truman Gao <106889354+tdgao@users.noreply.github.com> Date: Sat, 8 Aug 2026 11:18:58 -0600 Subject: [PATCH 07/13] fix: version upload failing to detect mrpack loader (#7063) --- apps/frontend/package.json | 1 + apps/frontend/src/helpers/infer/infer.ts | 29 +++++++++++++++++++++++- pnpm-lock.yaml | 9 ++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 8852cd5123..fc536765e9 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -53,6 +53,7 @@ "@vue-email/components": "^0.0.21", "@vue-email/render": "^0.0.9", "@vueuse/core": "^11.1.0", + "@zip.js/zip.js": "^2.8.34", "ace-builds": "^1.36.2", "ansi-to-html": "^0.7.2", "chart.js": "^4.5.1", diff --git a/apps/frontend/src/helpers/infer/infer.ts b/apps/frontend/src/helpers/infer/infer.ts index 9bda8a8049..de5956abf1 100644 --- a/apps/frontend/src/helpers/infer/infer.ts +++ b/apps/frontend/src/helpers/infer/infer.ts @@ -19,6 +19,26 @@ export interface InferredVersionInfo { game_versions?: string[] } +async function readMrpackManifest(rawFile: RawFile): Promise { + const { BlobReader, TextWriter, ZipReader } = await import('@zip.js/zip.js') + const reader = new ZipReader(new BlobReader(rawFile)) + + try { + const entries = await reader.getEntries() + const manifest = entries.find( + (entry) => !entry.directory && entry.filename === 'modrinth.index.json', + ) + + if (!manifest || manifest.directory) { + throw new Error('Missing modrinth.index.json') + } + + return await manifest.getData(new TextWriter()) + } finally { + await reader.close() + } +} + /** * Fills in missing version information from the filename if not already present. */ @@ -56,11 +76,18 @@ export const inferVersionInfo = async function ( const simplifiedGameVersions = gameVersions .filter((it) => it.version_type === 'release') .map((it) => it.version) + const loaderParsers = createLoaderParsers(project, gameVersions, simplifiedGameVersions) + const fileName = rawFile.name.toLowerCase() + + if (fileName.endsWith('.mrpack') || fileName.endsWith('.mrpack-primary')) { + const manifest = await readMrpackManifest(rawFile) + const result = loaderParsers['modrinth.index.json'](manifest) + return fillMissingFromFilename(result, rawFile.name, project.title) + } const zipReader = new JSZip() const zip = await zipReader.loadAsync(rawFile) - const loaderParsers = createLoaderParsers(project, gameVersions, simplifiedGameVersions) const packParser = createPackParser(project, gameVersions, rawFile) const multiFileDetectors = createMultiFileDetectors(project, gameVersions, rawFile) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 614d6852ae..e0dcfd0625 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -308,6 +308,9 @@ importers: '@vueuse/core': specifier: ^11.1.0 version: 11.3.0(vue@3.5.27(typescript@5.9.3)) + '@zip.js/zip.js': + specifier: ^2.8.34 + version: 2.8.34 ace-builds: specifier: ^1.36.2 version: 1.43.6 @@ -5228,6 +5231,10 @@ packages: '@yr/monotone-cubic-spline@1.0.3': resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==} + '@zip.js/zip.js@2.8.34': + resolution: {integrity: sha512-+6a3lyqq69rpseLbvDPiVIWsZ/HdTGAAD6afFtug6ECPDGttb2dHnPC6cJgdPofYkzL9OvXizegq+DQVfL2rnA==} + engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=18.0.0'} + abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -14910,6 +14917,8 @@ snapshots: '@yr/monotone-cubic-spline@1.0.3': {} + '@zip.js/zip.js@2.8.34': {} + abbrev@2.0.0: {} abbrev@3.0.1: {} From 757ec9ab5321c0ea630b4bcf6562753e70c5171a Mon Sep 17 00:00:00 2001 From: Truman Gao <106889354+tdgao@users.noreply.github.com> Date: Sat, 8 Aug 2026 11:34:54 -0600 Subject: [PATCH 08/13] fix: mrpack exporting with zip64 (#7064) --- packages/app-lib/src/api/instance/export_mrpack.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-lib/src/api/instance/export_mrpack.rs b/packages/app-lib/src/api/instance/export_mrpack.rs index dd6605f42c..b0ba914642 100644 --- a/packages/app-lib/src/api/instance/export_mrpack.rs +++ b/packages/app-lib/src/api/instance/export_mrpack.rs @@ -184,7 +184,7 @@ pub async fn export_mrpack( let mut file = File::create(&export_path) .await .map_err(|e| IOError::with_path(e, &export_path))?; - let mut writer = ZipFileWriter::with_tokio(&mut file); + let mut writer = ZipFileWriter::with_tokio(&mut file).force_no_zip64(); let version_id = version_id.unwrap_or("1.0.0".to_string()); let mut packfile = create_mrpack_json(&metadata, version_id, description).await?; From ff8c4f16a93b51f56c1fa5479456574efa8d834f Mon Sep 17 00:00:00 2001 From: Truman Gao <106889354+tdgao@users.noreply.github.com> Date: Sat, 8 Aug 2026 13:06:42 -0600 Subject: [PATCH 09/13] fix: action bar max width (#7048) * fix: action bar max width * fix: width --- packages/ui/src/components/base/FloatingActionBar.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/components/base/FloatingActionBar.vue b/packages/ui/src/components/base/FloatingActionBar.vue index 6b69515363..3f50e745bc 100644 --- a/packages/ui/src/components/base/FloatingActionBar.vue +++ b/packages/ui/src/components/base/FloatingActionBar.vue @@ -225,7 +225,7 @@ defineOptions({ 'bar-compact': compact, 'floating-action-bar-attention': attentionRequested, }, - inline ? 'w-full' : 'mx-auto md:max-w-[60vw]', + inline ? 'w-full' : 'mx-auto md:max-w-[min(calc(100vw-120px),1050px)]', ]" @animationend="attentionRequested = false" > From 1a56233c96548fe5d2fc2a227e7a9100b4537299 Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Sat, 8 Aug 2026 12:10:41 -0700 Subject: [PATCH 10/13] changelog --- packages/blog/changelog.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/blog/changelog.ts b/packages/blog/changelog.ts index 186f72224c..1e62b822f6 100644 --- a/packages/blog/changelog.ts +++ b/packages/blog/changelog.ts @@ -10,6 +10,13 @@ export type VersionEntry = { } const VERSIONS: VersionEntry[] = [ + { + date: `2026-08-08T19:10:34+00:00`, + product: 'web', + body: `## Fixed +- Fixed action bar becoming very wide on larger displays. +- Version upload failing to detect mrpack loader.`, + }, { date: `2026-08-07T20:41:51+00:00`, product: 'app', From ae7ad56259cedbb94c6ff369879765180caa4f8a Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Sun, 9 Aug 2026 17:01:08 -0700 Subject: [PATCH 11/13] Rule placeholders with subsections & anchors, update messages. --- .../checklist/messages/description/clarity.md | 8 ++-- .../messages/description/headers-as-body.md | 2 +- .../messages/description/image-only.md | 2 +- .../description/insufficient/header.md | 2 +- .../description/non-english-server.md | 2 +- .../messages/description/non-english.md | 2 +- .../messages/description/non-standard-text.md | 2 +- .../messages/gallery/insufficient.md | 4 +- .../messages/gallery/not-relevant.md | 2 +- .../messages/gallery/showcase-clarity.md | 2 +- .../messages/license/no-source-fork.md | 6 +-- .../checklist/messages/links/header.md | 4 +- .../messages/metadata/dependencies.md | 2 +- .../metadata/environment/inaccurate.md | 4 +- .../metadata/game-version/inaccurate.md | 2 +- .../messages/metadata/loader/inaccurate.md | 2 +- .../permissions/missing-permissions.md | 2 +- .../messages/post-approval/metadata-issue.md | 3 +- .../reupload/custom-pack-verification.md | 4 +- .../messages/reupload/insufficient-fork.md | 6 ++- .../messages/reupload/request-proof-server.md | 4 +- .../messages/reupload/request-proof.md | 4 +- .../checklist/messages/reupload/reupload.md | 5 ++- .../messages/reupload/unclear-fork.md | 2 +- .../rules/cheat-or-hack-advertising.md | 2 +- .../messages/rules/excessive-languages.md | 3 +- .../rules/prohibited-content-header.md | 2 +- .../rules/server-side-opt-in-header.md | 2 +- .../messages/rules/server-side-opt-out.md | 2 +- .../corrections-applied-approved.md | 2 +- .../status-alerts/corrections-applied.md | 2 +- .../checklist/messages/summary/formatting.md | 2 +- .../messages/summary/insufficient.md | 2 +- .../checklist/messages/summary/non-english.md | 2 +- .../messages/summary/repeat-title.md | 2 +- .../checklist/messages/tags/inaccurate.md | 2 +- .../title-slug/title/minecraft-branding.md | 6 +-- .../messages/title-slug/title/similarities.md | 4 +- .../title-slug/title/similarities/fork.md | 4 +- .../messages/title-slug/title/useless-info.md | 6 +-- .../versions/alternate-versions/additional.md | 4 +- .../alternate-versions/server-additional.md | 2 +- .../versions/alternate-versions/zip.md | 4 +- .../versions/incorrect-additional-files.md | 6 ++- .../messages/versions/incorrect-loader.md | 4 +- packages/moderation/src/utils.ts | 41 +++++++++++++++++++ 46 files changed, 116 insertions(+), 68 deletions(-) diff --git a/packages/moderation/src/data/messages/checklist/messages/description/clarity.md b/packages/moderation/src/data/messages/checklist/messages/description/clarity.md index 8c59da9dd0..4990bccf3a 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/clarity.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/clarity.md @@ -1,7 +1,7 @@ ## Description Clarity -Per section 2 of %RULES% It's important that your Description accurately and honestly represents the content of your project. -Currently, some elements in your Description may be confusing or misleading. -Please edit your description to ensure it accurately represents the current functionality of your project. -Avoid making hyperbolic claims that could misrepresent the facts of your project. +%R2%, It's important that your Description accurately and honestly represents the content of your project. \ +Currently, some elements in your Description may be confusing or misleading. \ +Please edit your description to ensure it accurately represents the current functionality of your project. \ +Avoid making hyperbolic claims that could misrepresent the facts of your project. \ Ensure that your Description is accurate and not likely to confuse users. diff --git a/packages/moderation/src/data/messages/checklist/messages/description/headers-as-body.md b/packages/moderation/src/data/messages/checklist/messages/description/headers-as-body.md index 78e8366f60..3c67ab0959 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/headers-as-body.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/headers-as-body.md @@ -1,6 +1,6 @@ ## Description Accessibility -In accordance with section 2.2 of %RULES%, we request that `# header`s not be used as body text. +%R2.2%, we ask that `# header`s not be used as body text. Headers are interpreted differently by screen-readers and thus should generally only be used for things like separating sections of your Description. diff --git a/packages/moderation/src/data/messages/checklist/messages/description/image-only.md b/packages/moderation/src/data/messages/checklist/messages/description/image-only.md index 57781986e0..6539d94cdb 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/image-only.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/image-only.md @@ -1,6 +1,6 @@ ## Image Descriptions -In accordance with section 2.2 of %RULES%, we ask that you provide a text alternative to your current Description. +%R2.2%, we ask that you provide a text alternative to your current Description. It is important that your Description contains enough detail about your project that a user can have a full understanding of it from text alone. diff --git a/packages/moderation/src/data/messages/checklist/messages/description/insufficient/header.md b/packages/moderation/src/data/messages/checklist/messages/description/insufficient/header.md index 68f69b9e31..872243af5f 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/insufficient/header.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/insufficient/header.md @@ -1,4 +1,4 @@ ## Insufficient Description -Per section 2.1 of %RULES%, your %PROJECT_DESCRIPTION_FLINK% should clearly inform the reader of the content, purpose, and appeal of your %PROJECT_TYPE%.
+%R2.1%, your %PROJECT_DESCRIPTION_FLINK% should clearly inform the reader of the content, purpose, and appeal of your %PROJECT_TYPE%.
Currently, it looks like there are some missing details. diff --git a/packages/moderation/src/data/messages/checklist/messages/description/non-english-server.md b/packages/moderation/src/data/messages/checklist/messages/description/non-english-server.md index 2ddce75ab0..29ba76fbf3 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/non-english-server.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/non-english-server.md @@ -1,6 +1,6 @@ ## No English Description -Per section 2.2 of %RULES%, a server's [Summary](%PROJECT_SETTINGS_LINK%) and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for a non-english audience. +%R2.2%, a server's %PROJECT_SUMMARY_FLINK% and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for a non-english audience. You may include your non-English Description if you would like but we ask that you also add an English translation of the Description to your project page, if you would like to use an online translator to do this, we recommend [DeepL](https://www.deepl.com/translator). diff --git a/packages/moderation/src/data/messages/checklist/messages/description/non-english.md b/packages/moderation/src/data/messages/checklist/messages/description/non-english.md index 07d83a7da7..e62e614520 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/non-english.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/non-english.md @@ -1,5 +1,5 @@ ## No English Description -Per section 2.2 of %RULES%, a project's [Summary](%PROJECT_SETTINGS_LINK%) and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for non-English use, such as translations. +%R2.2%, a project's %PROJECT_SUMMARY_FLINK% and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for non-English use, such as translations. You may include your non-English Description if you would like but we ask that you also add an English translation of the Description to your project page, if you would like to use an online translator to do this, we recommend [DeepL](https://www.deepl.com/translator). diff --git a/packages/moderation/src/data/messages/checklist/messages/description/non-standard-text.md b/packages/moderation/src/data/messages/checklist/messages/description/non-standard-text.md index e7aad98962..d153e6917c 100644 --- a/packages/moderation/src/data/messages/checklist/messages/description/non-standard-text.md +++ b/packages/moderation/src/data/messages/checklist/messages/description/non-standard-text.md @@ -1,6 +1,6 @@ ## Description Accessibility -Per section 2 of %RULES%, your description must be plainly readable and accessible. +%R2.2%, your description must be plainly readable and accessible. Using non-standard text characters like Zalgo or "fancy text" in place of text anywhere in your project, including the Description, Summary, or Title can make your project pages inaccessible. diff --git a/packages/moderation/src/data/messages/checklist/messages/gallery/insufficient.md b/packages/moderation/src/data/messages/checklist/messages/gallery/insufficient.md index b061941ffb..09699f8fca 100644 --- a/packages/moderation/src/data/messages/checklist/messages/gallery/insufficient.md +++ b/packages/moderation/src/data/messages/checklist/messages/gallery/insufficient.md @@ -1,7 +1,7 @@ ## Insufficient Gallery Images -We ask that projects like yours show off their content using images in the %PROJECT_GALLERY_FLINK%, or optionally in the Description, in order to effectively and clearly inform users of its content per section 2.1 of %RULES%. -Keep in mind that you should: +%R2.1%, we ask that projects like yours show off their content using images in the %PROJECT_GALLERY_FLINK%, or optionally in the Description, in order to effectively and clearly inform users of its content. \ +Keep in mind that you should: \ - Set a featured image that best represents your project. - Ensure all your images have titles that accurately label the image, and optionally, details on the contents of the image in the images Description. diff --git a/packages/moderation/src/data/messages/checklist/messages/gallery/not-relevant.md b/packages/moderation/src/data/messages/checklist/messages/gallery/not-relevant.md index 58c4881992..be59d7fd14 100644 --- a/packages/moderation/src/data/messages/checklist/messages/gallery/not-relevant.md +++ b/packages/moderation/src/data/messages/checklist/messages/gallery/not-relevant.md @@ -1,3 +1,3 @@ ## Unrelated Gallery Images -Per section 5.5 of %RULES%, any images in your project's %PROJECT_GALLERY_FLINK% must be relevant to the project and also include a Title. +%R5.5%, any images in your project's %PROJECT_GALLERY_FLINK% must be relevant to the project and also include a Title. diff --git a/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md b/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md index bf7c812178..5068b49964 100644 --- a/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md +++ b/packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md @@ -1,6 +1,6 @@ ## Showcase Clarity -Per section 2 of %RULES%, it's important that your project page accurately and honestly represent the content of your project. +%R2%, it's important that your project page accurately and honestly represent the content of your project. Currently, it looks like some images do not accurately represent the content of your %PROJECT_TYPE_FORMATTED_LOWER%. Please make sure you use authentic images such as in-game screenshots when showcasing the content or functionality of your work. diff --git a/packages/moderation/src/data/messages/checklist/messages/license/no-source-fork.md b/packages/moderation/src/data/messages/checklist/messages/license/no-source-fork.md index ded248ea3a..f2588a7ae1 100644 --- a/packages/moderation/src/data/messages/checklist/messages/license/no-source-fork.md +++ b/packages/moderation/src/data/messages/checklist/messages/license/no-source-fork.md @@ -1,5 +1,5 @@ ## No Source Code Provided -Your project's %PROJECT_LICENSE_FLINK% of `%PROJECT_LICENSE_NAME%`, requires source disclosure. -Consider adding a Source link to your project's repository, or including a Sources file for each version as an Additional File. -Keep in mind this may be a requirement of the source work's licensing, which must be abided per section 4 of %RULES%. +Your project's %PROJECT_LICENSE_FLINK% of `%PROJECT_LICENSE_NAME%`, requires source disclosure. \ +Consider adding a Source link to your project's repository, or including a Sources file for each version as an Additional File. \ +%R4%, you may be required to publish your source work by the terms of the source work's licensing. diff --git a/packages/moderation/src/data/messages/checklist/messages/links/header.md b/packages/moderation/src/data/messages/checklist/messages/links/header.md index b7b3092d90..1ef5825e0c 100644 --- a/packages/moderation/src/data/messages/checklist/messages/links/header.md +++ b/packages/moderation/src/data/messages/checklist/messages/links/header.md @@ -1,4 +1,4 @@ ## Links -It looks like some of your %PROJECT_TYPE_FORMATTED_LOWER%'s %PROJECT_LINKS_FLINK% are misused or inaccessible.
-Per section 5.4 of %RULES%, all %PROJECT_LINKS_FLINK% must lead to correctly labeled publicly available resources that are directly related to your project. +It looks like some of your %PROJECT_TYPE_FORMATTED_LOWER%'s %PROJECT_LINKS_FLINK% are misused or inaccessible. \ +%R5.4%, all %PROJECT_LINKS_FLINK% must lead to correctly labeled publicly available resources that are directly related to your project. diff --git a/packages/moderation/src/data/messages/checklist/messages/metadata/dependencies.md b/packages/moderation/src/data/messages/checklist/messages/metadata/dependencies.md index 8498e5c58b..2a43042164 100644 --- a/packages/moderation/src/data/messages/checklist/messages/metadata/dependencies.md +++ b/packages/moderation/src/data/messages/checklist/messages/metadata/dependencies.md @@ -1,4 +1,4 @@ ## Missing Dependencies -Per section 5.6 of %RULES%, it is important that relevant dependencies be listed in the dependencies section of your project. +%R5.6%, it is important that relevant dependencies be listed in the dependencies section of your project. \ Please ensure that all relevant dependencies are included in the Dependencies section of each version of your project. diff --git a/packages/moderation/src/data/messages/checklist/messages/metadata/environment/inaccurate.md b/packages/moderation/src/data/messages/checklist/messages/metadata/environment/inaccurate.md index b0017998e4..06c5696664 100644 --- a/packages/moderation/src/data/messages/checklist/messages/metadata/environment/inaccurate.md +++ b/packages/moderation/src/data/messages/checklist/messages/metadata/environment/inaccurate.md @@ -1,8 +1,8 @@ ## Environment Metadata -Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate, including Environment Information. +%R5.1%, it is important that the metadata of your projects is accurate, including Environment Information. -We've recently overhauled how environment metadata works on Modrinth, you can now edit this in your project's [Version Settings](https://modrinth.com/project/%PROJECT_ID%/settings/versions). +We've recently overhauled how environment metadata works on Modrinth, you can now edit this in your project's [Version Settings](https://modrinth.com/project/%PROJECT_ID%/settings/versions). \ Please [read this blogpost](%NEW_ENVIRONMENTS_LINK%) for full details and information on how to ensure your project is labeled correctly. %CORRECT% diff --git a/packages/moderation/src/data/messages/checklist/messages/metadata/game-version/inaccurate.md b/packages/moderation/src/data/messages/checklist/messages/metadata/game-version/inaccurate.md index b2d18df43a..45c0665e15 100644 --- a/packages/moderation/src/data/messages/checklist/messages/metadata/game-version/inaccurate.md +++ b/packages/moderation/src/data/messages/checklist/messages/metadata/game-version/inaccurate.md @@ -1,5 +1,5 @@ ## Game Version Metadata -Per section 5.1 of %RULES%, it is important that the metadata of your project is accurate, including which Minecraft versions are selected. +%R5.1%, it is important that the metadata of your project is accurate, including which Minecraft versions are selected. %CORRECT% diff --git a/packages/moderation/src/data/messages/checklist/messages/metadata/loader/inaccurate.md b/packages/moderation/src/data/messages/checklist/messages/metadata/loader/inaccurate.md index a1cf5e0f98..43e2271581 100644 --- a/packages/moderation/src/data/messages/checklist/messages/metadata/loader/inaccurate.md +++ b/packages/moderation/src/data/messages/checklist/messages/metadata/loader/inaccurate.md @@ -1,5 +1,5 @@ ## Loader Metadata -Per section 5.1 of %RULES%, it is important that the metadata of your project is accurate, including which loaders are selected. +%R5.1%, it is important that the metadata of your project is accurate, including which loaders are selected. %CORRECT% diff --git a/packages/moderation/src/data/messages/checklist/messages/permissions/missing-permissions.md b/packages/moderation/src/data/messages/checklist/messages/permissions/missing-permissions.md index 9dc97b32b5..12cfc22f23 100644 --- a/packages/moderation/src/data/messages/checklist/messages/permissions/missing-permissions.md +++ b/packages/moderation/src/data/messages/checklist/messages/permissions/missing-permissions.md @@ -1,3 +1,3 @@ ## Permissions Incomplete -Per section 4 of %RULES%, we ask that you complete all steps requested in your project's %PROJECT_PERMISSIONS_FLINK%. +%R4%, we ask that you complete all steps requested in your project's %PROJECT_PERMISSIONS_FLINK%. diff --git a/packages/moderation/src/data/messages/checklist/messages/post-approval/metadata-issue.md b/packages/moderation/src/data/messages/checklist/messages/post-approval/metadata-issue.md index bcb9ecc59c..c2b1e0bb80 100644 --- a/packages/moderation/src/data/messages/checklist/messages/post-approval/metadata-issue.md +++ b/packages/moderation/src/data/messages/checklist/messages/post-approval/metadata-issue.md @@ -2,4 +2,5 @@ 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. +%R5.1%, it's important that all project metadata be accurate to ensure the best experience for all modrinth users. \ +Currently, some information may be incorrect. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/custom-pack-verification.md b/packages/moderation/src/data/messages/checklist/messages/reupload/custom-pack-verification.md index 47e094ce90..b71be0779a 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/custom-pack-verification.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/custom-pack-verification.md @@ -2,8 +2,8 @@ It looks like the custom modpack for your server may be distributing content from outside of the Modrinth ecosystem. -Per section 4 of [Modrinth's Content Rules](https://modrinth.com/legal/rules), we ask that you verify you are abiding by all licensing requirements and have permission to distribute the content included in your modpack. +%R4%, we ask that you verify you are abiding by all licensing requirements and have permission to distribute the content included in your modpack. By resubmitting your server while including this content, you acknowledge that you have seen this notice and have all necessary rights and permissions to upload your custom server pack to Modrinth. -Keep in mind, if your server's custom modpack is found to be in violation of [Modrinth's Content Rules](https://modrinth.com/legal/rules), your listing may be temporarily or permanently removed from Modrinth with or without warning. +Keep in mind, if your server's custom modpack is found to be in violation of %RULES%, your listing may be temporarily or permanently removed from Modrinth with or without warning. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md b/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md index 90a0f018c7..514bbec134 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/insufficient-fork.md @@ -1,4 +1,6 @@ ## Insufficient Fork -This project does not appear to significantly diverge from the source work, or does not abide by the license of the source work as required by section 4 of %RULES%. -Please provide proof of your explicit permission to distribute this project from the creator(s) of the source work. +%R4%, it is important that your project your project abides by the license of and is significantly divergent from the source work. + +Unfortunately, this project does not appear to meet these requirements. \ +For your project to be published, you can instead provide proof of your explicit permission to distribute this project from the creator(s) of the source work. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md index f01171f50b..fffe012b02 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof-server.md @@ -1,5 +1,5 @@ ## Reuploads are forbidden -This server appears to have uploaded a Modpack by another creator. -Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this pack on Modrinth. +This server appears to have uploaded a Modpack by another creator. \ +%R4%, we ask that you provide proof of your permission to distribute this pack on Modrinth. \ Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the pack. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md index 26296101fb..0d0d99d12a 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/request-proof.md @@ -1,5 +1,5 @@ ## Proof of permissions -This project appears to contain content from other creators. -Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this content, or derivatives of this content in your project on Modrinth. +This project appears to contain content from other creators. \ +%R4%, we ask that you provide proof of your permission to distribute this content, or derivatives of this content in your project on Modrinth. \ Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the content. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md b/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md index 6c2cc9b7ff..e59afcc92c 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/reupload.md @@ -1,5 +1,6 @@ ## Reuploads are forbidden -This project appears to contain content from %ORIGINAL_PROJECT% by %ORIGINAL_AUTHOR%. -Per section 4 of %RULES%, this is strictly forbidden. +This project appears to contain content from %ORIGINAL_PROJECT% by %ORIGINAL_AUTHOR%. + +%R4%, this is strictly forbidden. \ If you believe this is an error, or you can verify you are the creator and rightful owner of this content please let us know. Otherwise, we ask that you **do not resubmit this project**. diff --git a/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md b/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md index ba885a2304..09035bb205 100644 --- a/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md +++ b/packages/moderation/src/data/messages/checklist/messages/reupload/unclear-fork.md @@ -1,4 +1,4 @@ ## Forks and Reuploads -Per section 4 of %RULES%, please provide proof that this project is both license-abiding and significantly divergent from the source work. +%R4%, please provide proof that this project is both license-abiding and significantly divergent from the source work. \ Alternatively, please provide proof of your explicit permission from the author of the source work to distribute this content on Modrinth. diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/cheat-or-hack-advertising.md b/packages/moderation/src/data/messages/checklist/messages/rules/cheat-or-hack-advertising.md index fc0e232ed5..da5c4cb617 100644 --- a/packages/moderation/src/data/messages/checklist/messages/rules/cheat-or-hack-advertising.md +++ b/packages/moderation/src/data/messages/checklist/messages/rules/cheat-or-hack-advertising.md @@ -1,5 +1,5 @@ ## Prohibited Content -This project may violate section 3.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules). +This project may violate section 3.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#cheats-and-hacks). We ask that you ensure your project does not endorse, promote, or enable hacks or the use of hacks. Additionally, your project page should not contain language that endorses or promotes hacks or the use of hacks. diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/excessive-languages.md b/packages/moderation/src/data/messages/checklist/messages/rules/excessive-languages.md index 2a67e51b1d..ae4086410d 100644 --- a/packages/moderation/src/data/messages/checklist/messages/rules/excessive-languages.md +++ b/packages/moderation/src/data/messages/checklist/messages/rules/excessive-languages.md @@ -1,5 +1,6 @@ ## Supported Languages -Currently, you've selected %PROJECT_LANGUAGE_COUNT% [Languages](%PROJECT_LANGUAGE_SETTINGS%), per section 5.1 of %RULES% we ask that you confirm all selected languages are accurate. +%R5.1% we ask that you confirm all selected languages are accurate. \ +Currently, you've selected %PROJECT_LANGUAGE_COUNT% [Languages](%PROJECT_LANGUAGE_SETTINGS%). Selected languages should represent what players can expect to see on your server, and all players should be able to get the full experience out of your server even if they only understand one of the selected languages. diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content-header.md b/packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content-header.md index fc0eb4c90b..578ba2a87c 100644 --- a/packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content-header.md +++ b/packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content-header.md @@ -1,3 +1,3 @@ ## Prohibited Content -This project contains content which may violate section 1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules): +This project contains content which may violate section 1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#prohibited-content): diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in-header.md b/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in-header.md index d6c2dda8ca..f19b8b6e4b 100644 --- a/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in-header.md +++ b/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in-header.md @@ -1,3 +1,3 @@ ## Server-side opt-in required -Per section 3.3 of [Modrinth's Content Rules](https://modrinth.com/legal/rules), we ask that any features in this project that violate the following rules require a server-side opt-in: +%R3.3%, we ask that any features in this project that violate the following rules require a server-side opt-in: diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-out.md b/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-out.md index 5be794c0c5..df1c52edb4 100644 --- a/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-out.md +++ b/packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-out.md @@ -1,3 +1,3 @@ ## Server-side opt-out required -Per section 3.2 of [Modrinth's Content Rules](https://modrinth.com/legal/rules), we ask that your project implements a server-side opt-out. +%R3.3%, we ask that your project implements a server-side opt-out. diff --git a/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied-approved.md b/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied-approved.md index e278db95c5..424769f3e0 100644 --- a/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied-approved.md +++ b/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied-approved.md @@ -1,4 +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. +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% diff --git a/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied.md b/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied.md index 472e6b37cd..a1c17f862e 100644 --- a/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied.md +++ b/packages/moderation/src/data/messages/checklist/messages/status-alerts/corrections-applied.md @@ -1,4 +1,4 @@ ## Corrections Applied -Your submission contained some issues that 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. diff --git a/packages/moderation/src/data/messages/checklist/messages/summary/formatting.md b/packages/moderation/src/data/messages/checklist/messages/summary/formatting.md index 945c2afa37..09115d783a 100644 --- a/packages/moderation/src/data/messages/checklist/messages/summary/formatting.md +++ b/packages/moderation/src/data/messages/checklist/messages/summary/formatting.md @@ -1,6 +1,6 @@ ## Invalid Summary Formatting -Per section 5.3 of %RULES%, your %PROJECT_SUMMARY_FLINK% can not include any extra formatting such as lists, or links. +%R5.3%, your %PROJECT_SUMMARY_FLINK% can not include any extra formatting such as lists, or links. Your project summary should provide a brief overview of your project that informs and entices users. diff --git a/packages/moderation/src/data/messages/checklist/messages/summary/insufficient.md b/packages/moderation/src/data/messages/checklist/messages/summary/insufficient.md index 0d65ce2632..bbd362ef99 100644 --- a/packages/moderation/src/data/messages/checklist/messages/summary/insufficient.md +++ b/packages/moderation/src/data/messages/checklist/messages/summary/insufficient.md @@ -1,5 +1,5 @@ ## Insufficient Summary -Per section 5.3 of %RULES%, your project %PROJECT_SUMMARY_FLINK% should provide a brief overview of your project that informs and entices users. +%R5.3%, your project %PROJECT_SUMMARY_FLINK% should provide a brief overview of your project that informs and entices users. This is the first thing most people will see about your %PROJECT_TYPE% other than the Logo, so it's important it be accurate, reasonably detailed, and exciting. diff --git a/packages/moderation/src/data/messages/checklist/messages/summary/non-english.md b/packages/moderation/src/data/messages/checklist/messages/summary/non-english.md index 4ae933462e..05f5c381b6 100644 --- a/packages/moderation/src/data/messages/checklist/messages/summary/non-english.md +++ b/packages/moderation/src/data/messages/checklist/messages/summary/non-english.md @@ -1,5 +1,5 @@ ## No English Summary -Per section 2.2 of %RULES%, a project's %PROJECT_SUMMARY_FLINK% and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for non-English use, such as translations. +%R2.2%, a project's %PROJECT_SUMMARY_FLINK% and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for non-English use, such as translations. You may include your non-English Summary but we ask that you also add an English translation. diff --git a/packages/moderation/src/data/messages/checklist/messages/summary/repeat-title.md b/packages/moderation/src/data/messages/checklist/messages/summary/repeat-title.md index 69a8ae4cc7..23d2063df3 100644 --- a/packages/moderation/src/data/messages/checklist/messages/summary/repeat-title.md +++ b/packages/moderation/src/data/messages/checklist/messages/summary/repeat-title.md @@ -1,6 +1,6 @@ ## Insufficient Summary -Per section 5.3 of %RULES%, your %PROJECT_SUMMARY_FLINK% can not be the same as your project's Title. +%R5.3%, your %PROJECT_SUMMARY_FLINK% can not be the same as your project's Title. Your project summary should provide a brief overview of your project that informs and entices users. diff --git a/packages/moderation/src/data/messages/checklist/messages/tags/inaccurate.md b/packages/moderation/src/data/messages/checklist/messages/tags/inaccurate.md index fb523e0655..ba419c4e66 100644 --- a/packages/moderation/src/data/messages/checklist/messages/tags/inaccurate.md +++ b/packages/moderation/src/data/messages/checklist/messages/tags/inaccurate.md @@ -1,3 +1,3 @@ ## Misuse of Tags -Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate. Including that selected tags honestly represent your project. +%R5.1%, it is important that the metadata of your projects is accurate. Including that selected tags honestly represent your project. diff --git a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/minecraft-branding.md b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/minecraft-branding.md index 6c8e7f988b..fe78918b4f 100644 --- a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/minecraft-branding.md +++ b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/minecraft-branding.md @@ -1,6 +1,6 @@ ## Minecraft Project Names -Projects must not use Minecraft's branding or include "Minecraft" as a significant part of the title. -Your project's current Name of `%PROJECT_TITLE%` may be confusingly similar to, or imply association with, the game Minecraft. We encourage you to change your project's [Name](%PROJECT_SETTINGS_LINK%) to avoid a potential violation of Minecraft's Usage Guidelines. -Abbreviations like "MC" or elaborate titles that do not make the name Minecraft a significant portion of the name are okay. +Projects must not use Minecraft's branding or include "Minecraft" as a significant part of the title. \ +Your project's current Name of `%PROJECT_TITLE%` may be confusingly similar to, or imply association with, the game Minecraft. We encourage you to change your project's [Name](%PROJECT_SETTINGS_LINK%) to avoid a potential violation of Minecraft's Usage Guidelines. \ +Abbreviations like "MC" or elaborate titles that do not make the name Minecraft a significant portion of the name are okay. \ When editing your project's Name, remember to update its [URL](%PROJECT_SETTINGS_LINK%) to match. diff --git a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities.md b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities.md index 280b5f0b9c..d9fcf094b8 100644 --- a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities.md +++ b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities.md @@ -1,5 +1,5 @@ ## Project Branding -Per section 1.8 of %RULES%, your project or its branding must not imply association or be easily confused with any other person or organization. -We ask that you change your project's [Name](%PROJECT_SETTINGS_LINK%) and other relevant branding to avoid causing confusion or implying association with existing projects or individuals. +%R1.8%, your project or its branding must not imply association or be easily confused with any other person or organization. \ +We ask that you change your project's [Name](%PROJECT_SETTINGS_LINK%) and other relevant branding to avoid causing confusion or implying association with existing projects or individuals. \ When editing your project's Name, remember to update its [URL](%PROJECT_SETTINGS_LINK%) to match. diff --git a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities/fork.md b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities/fork.md index 9318c8e75f..9064caf8f5 100644 --- a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities/fork.md +++ b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/similarities/fork.md @@ -1,2 +1,2 @@ -You may reference the source work in the Description of your fork, however, you must do so in a way that is unlikely to cause confusion or imply association with or endorsement from the author of the source work. -Additionally, per section 4 of %RULES%, we ask that you ensure your project's Name and Branding abide by the license of the source work. +You may reference the source work in the Description of your fork, however, you must do so in a way that is unlikely to cause confusion or imply association with or endorsement from the author of the source work. \ +%R4%, we also ask that you ensure your project's Name and Branding abide by the license of the source work. diff --git a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/useless-info.md b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/useless-info.md index f23185bff5..c78beec0de 100644 --- a/packages/moderation/src/data/messages/checklist/messages/title-slug/title/useless-info.md +++ b/packages/moderation/src/data/messages/checklist/messages/title-slug/title/useless-info.md @@ -1,6 +1,6 @@ ## Misuse of Project Name -Per section 5.2 of %RULES%, your project's [Name](%PROJECT_SETTINGS_LINK%) should not include unnecessary information such as loaders, themes, tags, or versions. -Your project's current Name of `%PROJECT_TITLE%` appears to contain extra information. -We ask that you remove all additional information from the [Name](%PROJECT_SETTINGS_LINK%). Instead, consider including this in your project's Summary or Description, or as a part of its relevant metadata. +%R5.2%, your project's [Name](%PROJECT_SETTINGS_LINK%) should not include unnecessary information such as loaders, themes, tags, or versions. \ +Your project's current Name of `%PROJECT_TITLE%` appears to contain extra information. \ +We ask that you remove all additional information from the [Name](%PROJECT_SETTINGS_LINK%). Instead, consider including this in your project's Summary or Description, or as a part of its relevant metadata. \ When editing your project's Name, remember to update its [URL](%PROJECT_SETTINGS_LINK%) to match. diff --git a/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/additional.md b/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/additional.md index fdb9e9103d..d2cbbcbdee 100644 --- a/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/additional.md +++ b/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/additional.md @@ -1,5 +1,5 @@ ## Unsupported Project -Per section 5.7 of %RULES%, Modrinth does not support uploading multiple variations of your project as Additional files. -Having alternate versions of your content on the same project will hurt the functionality of the Modrinth App and other supported launchers as it would prevent users from updating your content, and may make it harder for your users to find the content they want. +%R5.7%, Modrinth does not support uploading multiple variations of your project as Additional files. \ +Having alternate versions of your content on the same project will hurt the functionality of the Modrinth App and other supported launchers as it would prevent users from updating your content, and may make it harder for your users to find the content they want. \ We ask that you upload each alternate version of your project as a new project, ensuring that all users will be able to access and easily find your content. diff --git a/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/server-additional.md b/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/server-additional.md index 51a9e2871e..40938be605 100644 --- a/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/server-additional.md +++ b/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/server-additional.md @@ -1,4 +1,4 @@ ## Incorrect Additional Files -Per section 5.7 of %RULES%, the additional files section should only be used for specific designated purposes such as a `Sources.jar`. +%R5.7%, the additional files section should only be used for specific designated purposes such as a `Sources.jar`. \ To ensure a smooth experience for you and your users, please upload each alternate version of your modpack as its own Modpack project, thank you. diff --git a/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/zip.md b/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/zip.md index 70fafd9316..c9ff20c6f9 100644 --- a/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/zip.md +++ b/packages/moderation/src/data/messages/checklist/messages/versions/alternate-versions/zip.md @@ -1,5 +1,5 @@ ## Incorrect Additional Files -Per section 5.7 of %RULES%, the additional files section should only be used for specific designated purposes such as a `Sources.jar`. -Modrinth does not support the upload of modpacks in the `.zip` format, as this may cause issues for Modrinth users or distribute copyrighted content without the proper permissions. +%R5.7%, the additional files section should only be used for specific designated purposes such as a `Sources.jar`. \ +Modrinth does not support the upload of modpacks in the `.zip` format, as this may cause issues for Modrinth users or distribute copyrighted content without the proper permissions. \ If you would like to upload a server-specific version of your modpack, consider creating a separate Modpack project. diff --git a/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-additional-files.md b/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-additional-files.md index 6756d8d200..ce1dd9bc28 100644 --- a/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-additional-files.md +++ b/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-additional-files.md @@ -1,5 +1,7 @@ ## Incorrect Use of Additional Files -It looks like you've uploaded multiple primary files to one Version as Additional Files. Per section 5.7 of %RULES%, each Version of your project must include only one primary file that corresponds to its respective Minecraft and loader versions. -This allows users to easily find and download the content they need for their game profile with ease. The Additional Files feature can be used for things like a `Sources.jar`. +%R5.7%, each Version of your project must include only one primary file that corresponds to its respective Minecraft and loader versions. + +It looks like you've uploaded multiple primary files to one Version as Additional Files. \ +Ensuring your project's upload scheme is correct allows users to easily find and download the content they need for their game profile with ease. The Additional Files feature can be used for things like a `Sources.jar`. \ Please upload each version of your project separately, thank you. diff --git a/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-loader.md b/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-loader.md index 17c12c713c..78fc2f57df 100644 --- a/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-loader.md +++ b/packages/moderation/src/data/messages/checklist/messages/versions/incorrect-loader.md @@ -1,4 +1,4 @@ -## Incorrect Loader Labels +## Incorrect Loaders -Per section 5.7 of %RULES%, the loader labels on each of your %PROJECT_VERSIONS_FLINK% must accurately reflect what the uploaded files support. +%R5.7%, the loader labels on each of your %PROJECT_VERSIONS_FLINK% must accurately reflect what the uploaded files support. \ Currently, some of your versions appear to use the following incorrect loader label(s). Please remove these loaders from any affected versions before resubmitting your project: diff --git a/packages/moderation/src/utils.ts b/packages/moderation/src/utils.ts index 3df242bf55..84335deb9e 100644 --- a/packages/moderation/src/utils.ts +++ b/packages/moderation/src/utils.ts @@ -115,6 +115,47 @@ export function flattenStaticVariables(): Record { const vars: Record = {} vars[`RULES`] = `[Modrinth's Content Rules](https://modrinth.com/legal/rules)` + vars[`R1`] = + `Per section 1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#prohibited-content)` + const rule1subs = 12 + for (let n = 1; n <= rule1subs; n++) { + vars[`R1.${n}`] = + `Per section 1.${n} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#prohibited-content)` + } + vars[`R2`] = + `Per section 2 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#clear-and-honest-function)` + vars[`R2.1`] = + `Per section 2.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#general-expectations)` + const rule2sub1subs = 3 + for (let n = 1; n <= rule2sub1subs; n++) { + const l = String.fromCharCode(96 + n) + vars[`R2.1${l}`] = + `Per section 2.1${l} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#general-expectations)` + } + vars[`R2.2`] = + `Per section 2.2 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#accessibility)` + vars[`R3`] = + `Per section 3 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#cheats-and-hacks)` + const rule3subs = 3 + for (let n = 1; n <= rule3subs; n++) { + vars[`R3.${n}`] = + `Per section 3.${n} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#cheats-and-hacks)` + } + const rule3sub3subs = 6 + for (let n = 1; n <= rule3sub3subs; n++) { + const l = String.fromCharCode(96 + n) + vars[`R3.3${l}`] = + `Per section 3.3${l} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#cheats-and-hacks)` + } + vars[`R4`] = + `Per section 4 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#copyright-and-legality-of-content)` + vars[`R5`] = + `Per section 5 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#miscellaneous)` + const rule5subs = 8 + for (let n = 1; n <= rule5subs; n++) { + vars[`R5.${n}`] = + `Per section 5.${n} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#miscellaneous)` + } vars[`TOS`] = `[Terms of Use](https://modrinth.com/legal/terms)` vars[`COPYRIGHT_POLICY`] = `[Copyright Policy](https://modrinth.com/legal/copyright)` vars[`SUPPORT`] = From ca8aa46eda7191f13e61a28666eed7f03d537fe0 Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Sun, 9 Aug 2026 18:52:01 -0700 Subject: [PATCH 12/13] update new messages to account for new rule and placeholder layout --- .../disclosures/missing-disclosures/ai.md | 2 +- .../missing-disclosures/derivative-content.md | 2 +- .../missing-disclosures-header.md | 2 +- .../missing-disclosures/telemetry.md | 2 +- .../checklist/messages/rules/ai-generated.md | 2 +- packages/moderation/src/utils.ts | 18 ++++++++++++++++++ 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md index e75129c6e8..bce1cfecff 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/ai.md @@ -1,2 +1,2 @@ - AI-generated or assisted content.
- Proper disclosure of AI usage is strictly required per section 6.1 of %RULES%. + %R6.1%, proper disclosure of AI usage is strictly required. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md index 3c9672dd35..dcb1e2b360 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/derivative-content.md @@ -1,2 +1,2 @@ - Derivative content, such as code or assets from another project or creator.
- Per section 4 of %RULES%, you may be required to list the origin of content you did not create here if the content's license requires attribution. + %R4%, you may be required to list the origin of content you did not create here if the content's license requires attribution. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md index e9a234cc2a..2a5390689c 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/missing-disclosures-header.md @@ -1,3 +1,3 @@ ## Missing Content Disclosures -Per section 5.8 of %RULES%, we ask that you ensure all applicable %PROJECT_CONTENT_DISCLOSURES_FLINK% are filled out with accurate information. +%R5.8%, we ask that you ensure all applicable %PROJECT_CONTENT_DISCLOSURES_FLINK% are filled out with accurate information. diff --git a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md index 124d92f703..2199aa8798 100644 --- a/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md +++ b/packages/moderation/src/data/messages/checklist/messages/disclosures/missing-disclosures/telemetry.md @@ -1,2 +1,2 @@ - Telemetry or any other instances of data being sent to a remote server that the user did not connect to.
- Proper disclosure of data collection is strictly required per section 1.11 of %RULES%. + %R1.11%, proper disclosure of data collection is strictly required. diff --git a/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md b/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md index 9edbd44d87..77ce9cd4ba 100644 --- a/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md +++ b/packages/moderation/src/data/messages/checklist/messages/rules/ai-generated.md @@ -1,6 +1,6 @@ ## Project Withheld -Per section 6.3 of %RULES%, this project is not suitable to be published on Modrinth. +%R6.2b%, this project is not suitable to be published on Modrinth. With this in mind, this project will remain unlisted, so you may still share it privately with a direct link. \ We appreciate your understanding and ask that you **do not resubmit**. diff --git a/packages/moderation/src/utils.ts b/packages/moderation/src/utils.ts index 6a5fc8e0d5..d73cf8deac 100644 --- a/packages/moderation/src/utils.ts +++ b/packages/moderation/src/utils.ts @@ -156,6 +156,24 @@ export function flattenStaticVariables(): Record { vars[`R5.${n}`] = `Per section 5.${n} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#miscellaneous)` } + vars[`R6`] = + `Per section 6 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#generative-ai)` + vars[`R6.1`] = + `Per section 6.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#disclosure-of-ai-generated-content)` + const rule6sub1subs = 2 + for (let n = 1; n <= rule6sub1subs; n++) { + const l = String.fromCharCode(96 + n) + vars[`R6.1${l}`] = + `Per section 6.1${l} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#disclosure-of-ai-generated-content)` + } + vars[`R6.2`] = + `Per section 6.2 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#prohibited-usage-of-ai)` + const rule6sub2subs = 4 + for (let n = 1; n <= rule6sub2subs; n++) { + const l = String.fromCharCode(96 + n) + vars[`R6.2${l}`] = + `Per section 6.2${l} of [Modrinth's Content Rules](https://modrinth.com/legal/rules#prohibited-usage-of-ai)` + } vars[`TOS`] = `[Terms of Use](https://modrinth.com/legal/terms)` vars[`COPYRIGHT_POLICY`] = `[Copyright Policy](https://modrinth.com/legal/copyright)` vars[`SUPPORT`] = From 24d022543e05b8d080159bef4ec8555c14a28724 Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Sun, 9 Aug 2026 19:47:01 -0700 Subject: [PATCH 13/13] Add nag for content disclosures --- packages/moderation/src/data/nags/core.ts | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/packages/moderation/src/data/nags/core.ts b/packages/moderation/src/data/nags/core.ts index 2695aeda99..165a35c819 100644 --- a/packages/moderation/src/data/nags/core.ts +++ b/packages/moderation/src/data/nags/core.ts @@ -281,4 +281,33 @@ export const coreNags: Nag[] = [ context.currentRoute !== 'type-project-settings-permissions', }, }, + { + id: 'check-disclosures', + title: defineMessage({ + id: 'nags.check-disclosures.title', + defaultMessage: 'Check content disclosures', + }), + description: (context: NagContext) => { + const { formatMessage } = useVIntl() + return formatMessage( + defineMessage({ + id: 'nags.check-disclosures.description', + defaultMessage: + 'Make sure users are aware of any important details by filling in content disclosures that apply to your {type}.', + }), + { type: formatProjectTypeSentence(formatMessage, context.project.project_type) }, + ) + }, + status: 'suggestion', + shouldShow: () => true, + link: { + path: 'settings/disclosures', + title: defineMessage({ + id: 'nags.settings.disclosures.title', + defaultMessage: 'Visit disclosure settings', + }), + shouldShow: (context: NagContext) => + context.currentRoute !== 'type-project-settings-disclosures', + }, + }, ]