The key documents are public: site rules, terms of use, privacy policy and cookie policy. These links open in the currently selected site language.
One normalized IP confirmed by the trusted proxy counts as one approximate unique visitor in the selected rolling window, regardless of account, browser or device. A shared IP can merge several people, while a changing IP can count one person more than once.
The server immediately converts the IP into an HMAC-SHA256 pseudonym: it stores no raw IP and creates no new cookie or other browser storage. Sessions are retained for 731 days. This is pseudonymised, not anonymous, data; see the privacy policy and cookie policy.
Yes. Ordinary curl, python-requests, undici, and other standard HTTP clients can anonymously browse and search the catalog, read mods, versions, and files, resolve install plans, and resolve public downloads. No developer account, API key, OAuth client registration, special User-Agent, X-Moddingflow-* headers, or access token is required. OAuth starts with one button only when a tool acts for a signed-in user, such as profile or write operations; the app registers its public client and manages tokens without asking the user to copy them. v1 also provides creator uploads, webhooks, and delegated Agent Gateway tools. Upload sessions expose status/complete/abort lifecycle endpoints and async job processing through GET /v1/uploads/{upload_id}. Catalog pagination uses opaque cursor-first v1 tokens bound to the resource, normalized filters, and first-page insertion snapshot; changing that context returns 400.
A successful version write confirms a committed private/no-store result. Anonymous catalog/version GET revalidates shared cache on every reuse; the catalog freshness p95 SLO is 15 seconds and search index is 30 minutes. Mod/ModVersion PATCH sends a strong ETag in If-Match: missing returns 428 and a stale validator returns 412 with the current ETag. Before provider signing, download resolve limits concurrency to 2 anonymous or 4 authenticated leases per actor and 16 per client. The cached PublicModVersion artifact expansion requires scan_status=clean, lifecycle=ready, and publication state=published and remains eventual. Direct download resolve and install plan are private point-in-time reads over an eligible target whose established database state may be approved or published; direct targets are not published-only and not legacy-only. Upload status shows current database state at request time, worker transitions are eventual, and progress.available=false means unknown, not zero. Webhooks are feature-gated: when enabled, delivery is eventual, at-least-once, replayable, and unordered; while either gate is disabled, no delivery is promised.
Current status, available endpoints, and future integration rules are collected on the API page.
The Upload API is for authors, teams, CI pipelines, and tools that want Publish to Moddingflow without walking through the browser form for every release. Build locally or with GitHub Actions, upload direct-to-cloud, wait for scan/validation, and publish a new version only when the API returns ready.
Use individual API keys or OAuth/PAT tokens instead of sharing the main account password. Before creating a session, CI can call POST /v1/uploads:validate; this validate-only check neither creates an upload nor writes bytes. Create with one stable Idempotency-Key per logical upload: retrying the same body reuses the same durable reservation without charging the byte quota twice, while a changed body conflicts. Large archives use resumable Cloudflare R2 multipart upload: poll status.progress and completedParts, refresh only missing part URLs, and keep the same session for up to 48 hours while each signed URL stays short-lived. If a file fails validation, hits quota, duplicates a version, or enters quarantine/review, the client gets a machine-readable status, an error code such as duplicate_version, and a request_id for support; an aborted session returns lifecycleStatus cancelled. In production, publication requires a clean malware verdict: dangerous, infected, encrypted, or structurally hostile archives are rejected, while engine limits, scanner failures, and other indeterminate results remain in private quarantine until MFA-authenticated staff review. The account inbox may notify the author about transport or checksum failures and successful publication, but malware detections and scanner outages are shown only through lifecycle/card state; administrators receive separate restricted review notifications. Notification arrival is not the lifecycle acknowledgement, so clients must keep polling the machine-readable status.
When complete returns an AsyncJob, the service has first isolated the uploaded bytes in a private server-only seal; checksum, validation, scan, and final copy read that immutable seal rather than the client-writable staging key. You never receive or manage the seal key. Poll job.statusEndpoint: queued and processing are non-terminal; succeeded, rejected, failed, and cancelled are terminal. job.progress reports a truthful 0/1 completion unit instead of an estimated scanner percentage. Use createdAt, updatedAt, startedAt, completedAt, retry.attempt, retry.maxAttempts, retry.nextAttemptAt, retry.retryable, and Retry-After to diagnose waiting or retrying work. A terminal failure returns a stable reason code, never raw provider prose.
Automation should also use complete's HTTP status: queued or processing returns 202 Accepted with Location equal to job.statusEndpoint. An already terminal job, including a replay of the same completed result with the original Idempotency-Key, returns 200 OK without repeating the operation.
Each team member creates an individual resource-scoped key through POST /v1/api-keys and never receives the owner session cookie. Create and rotate require Idempotency-Key. Reusing the same header with the same request never repeats the credential mutation; because the raw secret is never persisted, a completed replay returns idempotency_replay_unavailable without operation-shaped committed metadata. Inspect the key through GET /v1/api-keys or revoke it before starting a new mutation. The raw secret is a one-time reveal, the server stores only token_hash and a safe fingerprint, and GET /v1/api-keys/capabilities shows available scopes and projects. owner, maintainer, publisher, and reviewer roles bound mods:write, versions:write, files:upload, versions:publish, versions:archive, files:manage, and teams:admin. Rotate with POST /v1/api-keys/{api_key_id}/rotate, revoke with DELETE /v1/api-keys/{api_key_id}, and use last_used_at plus key id/fingerprint in audit without any secret.
Do not share one owner key, owner password, or session cookie. Give each person an individual resource-scoped key for the target mod with the smallest scopes needed for their role. Assign owner, maintainer, publisher, or reviewer access in Settings > Developer. The raw secret is a one-time reveal.
Review last_used_at and the safe key fingerprint, rotate a key during planned replacement, and revoke it immediately after suspected exposure or when a teammate leaves. Audit records identify the actor and key without storing or displaying the secret.
An integration can call private no-store GET /v1/me with its own account key to confirm the presented credential type, id, safe fingerprint, scopes, and resource-scope mode. This self-check never returns the raw secret and does not grant permission to list, create, rotate, or revoke other credentials.
Do not publish, rename, or repackage an archive to bypass a failed scan. A rejected or uncertain file stays private with failed or quarantined/review status. Open Settings > Developer or call GET /v1/uploads/{upload_id}, then keep supportCorrelationId (also returned as X-Upload-Correlation-Id), request_id, trace_id, and an error code such as av_scan_rejected for support. The correlation id is safe to share with support but never replaces authorization.
Known dangerous or infected archives are rejected. Files that need more evidence remain private for manual review. Follow the returned recovery details, wait for review when requested, and create a new session only after fixing the identified source or archive problem.
Both paths use the same upload-session backend, private Cloudflare R2 storage, validation, scan, and quarantine/review gates. The manual browser form is a guided choice for occasional releases. API upload is designed for repeatable local tools and CI, with Idempotency-Key retries, resumable multipart transfer, status.progress, and machine-readable failures.
Automation does not weaken the security checks or make a file public earlier. Choose the interface that fits the workflow; the same security gates must report ready before publish.
For a signed single PUT, both clients must send every returned header, including If-None-Match: *. A conditional 412 means an ambiguous existing write, not permission to overwrite: call the same complete endpoint, then server verification through HEAD, the immutable seal, and SHA-256 determines the outcome.
Yes. Use the official GitHub Action or CLI and store MODDINGFLOW_API_KEY in a GitHub environment or repository secret. Never place it in workflow YAML, repository variables, logs, command arguments, artifacts, or a committed state file.
Use a resource-scoped, least-privilege key, prefer a protected environment with approval for staging and production, keep permissions: contents: read unless the workflow proves it needs more, and pin the Action to a reviewed 40-character commit SHA. Rotate or revoke the key after exposure. See the API docs for the complete workflow.
Start with the API docs, then open the API reference or download the OpenAPI JSON. The SDK is a repo-only source artifact until package publishing and is not published to npm, PyPI, or NuGet yet; open the SDK source page, then use local imports from sdk/csharp/Moddingflow.PublicApi, sdk/typescript/src/moddingflow-public-api.ts, or sdk/python/moddingflow_public_api.
The current support and EOL matrix is documented in docs/public-api/SDK-SUPPORT-AND-EOL.md. These are Preview source artifacts: package and contract versions are separate, and no registry publication, support SLA, signature, or stable EOL promise is implied before an immutable stable release.
No. Deprecation is a migration signal, not an immediate runtime behavior change. Stable v1 keeps old clients working during at least 90 days or two stable API releases of notice, whichever gives the safer migration window.
Deprecated operations or capabilities use the Deprecation and Sunset response headers when they can be signaled at HTTP response time, plus a migration guide and changelog entry. During the notice window old clients keep the same status codes, same field types, aliases, scopes, Problem Details codes, cursor semantics, and upload/download/webhook lifecycle behavior. The repository release gate rejects Sunset unless a committed migration guide, a ready non-deprecated replacement, dated telemetry evidence, and a support plan with an explicit owner and approver are bound to the same deprecation and sunset dates.
Release notes, migration guides, and changelog entries for deprecation paths are tracked on the API changelog.
Catalog search, public-artifact reads, install-plan resolution, and public-mod download resolution start anonymously, without sign-in, an API key, a special User-Agent, client registration, or a Bearer token. Only when account-scoped content returns 401/403 does the Mod Manager start sign-in and retry with a Bearer access token. A desktop app uses the system browser, Authorization Code + PKCE S256, and an exact loopback callback on 127.0.0.1; passwords, client secrets, the Website session, and tokens are never passed through a deep link or shown to the user. Fluxora uses client_id desktop_mod_manager, while each third-party manager registers its own public client and redirect URI through POST https://moddingflow.com/oauth/register and persists its own client_id.
Installed apps receive no client_secret because they are public clients. Registration returns registration_client_uri and a one-time mfrg_ management token. If metadata will never be changed, the app discards it; otherwise a protected product backend stores it and passes it to the SDK as managementToken. The user never sees or copies this credential. A server or local integration that can protect a secret may instead create a confidential OAuth application in Settings > Developer > OAuth applications. Its masked mfoc_ secret is revealed once; rotation immediately invalidates the previous secret, refresh sessions, and pending grants, while deletion revokes the application. Already-issued access tokens expire within 15 minutes. Public-client GET reads metadata, PUT rotates its management token, and DELETE disables it. Base scopes need no developer account or manual approval; sensitive scopes require AAL2/2FA and review, while agent:* and admin:* stay forbidden. Refresh tokens stay in protected credential storage. A user can revoke a connected app in Account Security. Validate OpenID Connect ID tokens through discovery/JWKS, RS256, and nonce. Existing Personal Access Tokens remain compatible for user-owned automation but are not needed for the public API. The API-key tab now shows one compact Account key row: it is provisioned lazily on first open, remains masked by default, can be revealed again or copied without visual disclosure, never expires, and rotation invalidates the previous key immediately after AAL2 confirmation. Current Premium, roles, resources, and limits are still recomputed on every request.API page.
The public API applies route, body-size, byte-budget, per-user, per-application, and per-token limits before storage, signing, upload, download, RPC, or Agent Gateway side effects. Oversized request bodies return 413. Overloaded or abusive clients receive 429 as application/problem+json with Retry-After plus RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset when a bucket is available; retry with backoff after that window. For a download-specific 429, keep download_job.id, grant_id, bytes_received, etag, and next_attempt_at, then resend job_id with monotonic progress after Retry-After; the server keeps the same job and reserved grant without another provider effect.
Operational dashboards and audit trails group these events by client_id, actor_user_id, token_id_or_api_key_id, scope, and token_kind so maintainers can distinguish normal traffic spikes from token abuse.
Public API webhooks use owner-scoped subscriptions and stable event names: mod.updated, version.published, file.ready, file.failed, upload.completed, scan.completed, token.changed, app.changed, and account.access.changed. Each delivery body includes delivery_id, kind, created_at, and data, and each request is signed with X-Moddingflow-Signature using HMAC-SHA256 over `${timestamp}.${raw_body}` plus X-Moddingflow-Timestamp. account.access.changed contains only a monotonic access revision and safe change categories; deduplicate it and refetch /me.
Webhook delivery is at-least-once, replayable, and unordered. A receiver should return 2xx quickly, process asynchronously, reject stale timestamps, deduplicate business effects by event_id, keep delivery_id for diagnostics, and fetch the latest resource state before applying changes. Use GET /v1/webhook-deliveries for attempt history and POST /v1/webhook-deliveries/{delivery_id}/redeliver with Idempotency-Key for a linked redelivery. Repeated terminal failures can disable the subscription. The full contract is on the API page.
Only through delegated Agent Gateway tokens. The agent receives a short-lived token with audience agent-gateway, narrow scopes, and actor/delegation metadata; it does not receive your full user session token.
Read tools can search mods, read mod details, resolve install plans, compare versions, and safely resolve downloads. Write-capable tools run as dry-runs by default, and publish, delete/archive, permission, or paid/restricted access changes require explicit confirmation.
Fluxora is a Windows Skyrim mod manager that brings together mods, plugins, Nexus Mods, archive installation, VFS launch, MO2 import and FluxPack. The current stable installer is available on the Fluxora page; its download button points directly to the FluxoraSetup.exe asset in the latest GitHub Release.
Windows SmartScreen can show this warning when an installer is not yet signed with a certificate that has established reputation. Download Fluxora only from the official page, check that the file is named FluxoraSetup.exe, and cancel if the source or file name differs.
The official desktop app sends managed Fluxora AI requests through the Moddingflow Website to OpenAI's Europe Responses endpoint for GPT-5.6 Luna, using a short-lived OAuth token and the agent:run scope. The Website verifies the official client, token, entitlement, rate limits and quota. Requests use store:false and background:false and the flow can be activated only for an OpenAI Europe project with approved MAM, ZDR or an accepted equivalent retention control.
The current allowance is 40% of the net paid amount, capped at EUR 2 per service month, prorated where applicable, with no rollover, up to 24 Web Search queries and two concurrent generations. Prompts, responses, OAuth tokens, local paths and local tool payloads/results are not stored in managed accounting; only identifiers, a request HMAC, aggregate uncached/cached/cache-write input, output and Web Search usage/cost, status and timestamps are retained, normally for 24 months after the service period. Reasoning is included in output once; uncertain usage stays reserved until reconciliation.
There is no local API-key or BYOK mode. The OpenAI key stays in server-side Vault and is never sent to Fluxora. OpenAI responses, citations and Web Search sources remain untrusted and cannot authorize a local change.
No. The Public API uses stable UUIDs or lifecycle ids for games, mods, builds, versions, logical files, physical blobs, upload sessions, download grants, tokens, and webhook deliveries where those resources are public. Internal forum/topic IDs remain website details and are not the external contract.
This lets old pages keep working while the Mod Manager and integrations receive canonical resources without forum naming leaks. Slugs, filenames, storage object names, and hashes are aliases or verification data, not durable external keys. Renames, metadata rebuilds, and slug changes keep public IDs; replacing file bytes creates a new physical blob and may create a new logical artifact/version binding.
The site supports Russian, English and German. The main interface language is selected in Settings and saved in your profile and cookie.
Content language selection remains only in regular forum sections, where it helps show topics in the chosen language. Mod catalogs, build catalogs, and search show every language by default.
While you type, the site shows lightweight suggestions from titles, authors, games and tags. The same site and API engine normalizes Russian, English and German queries, corrects supported keyboard layouts, and considers transliteration, German letter variants, aliases and typos. An exact title or alias always ranks above prefix, full-text and fuzzy matches; semantic search runs only when confident lexical results are insufficient. The selected content language remains an explicit filter and is never inferred from the query language.
New mods, builds, topics and replies enter the search index through a background worker. This is usually quick, but a newly published item can appear in search after a short delay.
No. Public IDs are opaque UUIDs and do not depend on a slug, title, filename, URL, CDN, hash, or storage address. Renames and metadata-only edits keep the ID. New bytes create a new Blob and, when the logical file or version changes, a new Artifact or Version ID.
Archived and withdrawn resources can be restored through an allowed lifecycle transition. Permanent deletion leaves a tombstone: lookup returns HTTP 410 Gone, and the old ID and source binding are never assigned to another resource.
Wait a moment, then use the manual open button if your browser blocked the new tab. Keep the Moddingflow page open until the download link appears.
If the download still fails, try again after changing your network or VPN route. The site checks the primary Cloudflare route before using the backup CDN.
Cloudflare R2 remains the main source for mod archives. Bunny CDN is only a pull-CDN fallback when the primary route is unavailable for you.
Fallback links are short-lived and file-specific. They are not permanent public mirrors and do not bypass download limits, content warnings or account checks.
After the existing safety checks and server-enforced wait (30 seconds when signed out, 15 seconds for a standard account, and 0 seconds with Premium), Download (Mod Manager) passes only the canonical moddingflow://download?v=1&artifact_id=<uuid> URI to the operating system. The browser never downloads a file, opens an HTTP URL or a new tab, or replaces manager flow with a direct or archive download. The click is recorded separately as manager_handoff_attempt and is not counted as a download.
If the manager does not open, retry the handoff, install or choose a compatible manager in system settings, or close the notice. That notice has no manual fallback: the separate Download button remains an independent action. An external artifact is available to the manager only while its rollout is enabled and its reference is fresh and verified; otherwise the manager button is unavailable and manager flow never switches to a browser, direct HTTP, or archive download.
After activation, the manager strictly parses the URI, reads GET /v1/artifacts/{artifact_id} anonymously, shows a local game/profile confirmation, obtains the install plan, and calls POST /v1/downloads/{artifact_id}/resolve only after confirmation. On 401/403 for account-scoped content it starts OAuth and retries with a Bearer token. A download is counted only after successful API download-job activation; receiving a deep link never starts downloading or installing by itself.
On a Minecraft mod page the Downloads tab opens a picker instead of a file list. Choose the loader first — Fabric, Forge, NeoForge, or Quilt — then the Minecraft version, and press Download in the same window. Only combinations the author actually published are offered: if the selected loader never shipped a build for the current game version, the picker moves you to that loader's newest one.
The picker opens on the newest maintained version. When there is only one loader or one version, nothing has to be chosen—press Download straight away. Files with no loader or version set fit every combination, and older builds of the selected combination follow the current one so you can still install a mod for an earlier game version. Safety checks, the download wait, and the Mod Manager button behave exactly as they do for other games.
With an external provider reference, the archive stays at its original provider. Moddingflow does not create a permanent R2 or CDN copy and does not count those bytes as Moddingflow egress. This mode is only for public, free mods; a public URL cannot provide Premium-file protection. Ordinary creator uploads stored by Moddingflow keep working as before.
Before publication and periodically afterward, the Moddingflow server checks the provider's stable locator, downloads the file temporarily to verify size, SHA-256, and safety, stores only evidence and an attestation, and deletes the temporary bytes. The manager receives a short-lived source URL only for a fresh, verified reference and must verify the complete file's SHA-256 after a full or resumed download.
If the provider removes the file or changes its size or hash, the reference is blocked or withdrawn. Temporary 429/5xx failures are retried with backoff, but download fails closed after freshness expires. An external file has no Moddingflow mirror, Bunny/R2 fallback, or automatic manager-to-browser fallback; manual download remains a separate explicit action when the source offers it.
The technical contract and reference states are documented in the API documentation.
For an archive stored by Moddingflow, Open archive contents shows its folders and files, format, size, counts, and full SHA-256 without downloading or extracting it. Indexing runs in the background, so a newly published or older archive may briefly show that its contents are still being prepared.
SHA-256 is the cryptographic fingerprint of the complete stored archive. You can copy it and compare it with the digest calculated after download; matching values confirm that the archive bytes are identical, but they do not by themselves prove that every file is safe.
No. The preview is a read-only list of names and sizes. The website does not run, open, or extract individual archive entries, and the existing download restrictions still apply to an archive marked as unsafe.
When a website or app link supplies only an artifact UUID, the Mod Manager first calls GET /v1/artifacts/{artifact_id}. This entitlement-aware metadata-only read returns the allowlisted game, mod, exact version, clean published artifact, SHA-256, size, and stable resolve endpoint without creating a download job or grant and without returning a signed URL. Transfer starts only after the user confirms the selected local game/profile.
The Mod Manager first requests an install plan with game version, platform, loader, release channel, typed required/optional/conflict/embedded dependencies, selected artifacts, decision reasons, stable plan/item IDs, install order, expected archive layout, warnings, and per-file hashes. Identical normalized input over unchanged catalog data returns the same IDs; embedded dependencies do not add a download step, and optional steps are included only when requested. Download resolve then creates a short-lived download grant and returns the primary/fallback route, the legacy sha256 alias, hashes.sha256 as the canonical SHA-256 verifier, size_bytes, and resume policy. SHA-256 verifies the complete stored object: the client assembles every Range part, checks size_bytes, and only then verifies the digest. ETag is an opaque validator for one transport representation and conditional resume; it is not a cryptographic digest or file identity and does not carry across providers. The resolve endpoint returns a 200 JSON grant, does not use a 302 redirect, and does not stream binary data. The current signed transport does not guarantee RFC 9530 Content-Digest or Repr-Digest. SHA-1 or MD5 may appear only as optional compatibility metadata.
Every main and optional file has its own required version, and files in the same mod can use different versions. A version response may also include PublicModVersion.artifacts: read artifact.file_version as the version of the exact downloadable file; PublicModVersion.version remains for compatibility and equals the expanded artifact version. This is an optional expansion only for a managed primary artifact with size_bytes > 0, exact sha256/hashes.sha256, an actual AV scan_status=clean result from the current upload session matched by both file_id and final_blob_id, lifecycle=ready, publication state=published, and managed resolve eligibility. Stable artifact_ids remain available; for a legacy artifact, artifacts is omitted instead of being filled with fabricated metadata. download_metadata contains only a relative resolve_endpoint and truthful range_supported value: it never contains a provider URL, and clients must not construct or persist one. Resolve also returns the complete mod with its uploader, full Markdown, permanent web/API/source links, and latest_release, while version and artifact always describe the selected file and can be older than latest_release. distribution identifies Moddingflow as the distributor. primary_url lasts only until expires_at; after that the Mod Manager repeats download_grant.resolve_endpoint and never persists the temporary URL as file identity.
Under review means a managed archive cannot yet be safely verified: publication and downloads through the website, Mod Manager, and API stay blocked until a manual decision. Verified automatically means the exact SHA-256, format, policy version, engine, and signature database produced a clean result. Verified by administrators records an explicit administrator decision; both verified states use the normal protected download flow. Unsafe means quarantine because of a malware signature or dangerous archive structure—it does not necessarily mean that a virus was found. The file remains visible on its card, but cannot be downloaded.
New managed uploads up to 512 MiB receive a priority check; the general queue provides fallback and handles large files, rescans, and background archives. An external URL is not fetched by the server and remains Under review with a warning before navigation. An unknown scanner response, stale database, exhausted retries, encrypted archive, or exceeded safety limit never counts as clean: the file enters private review or quarantine. When an ordinary rescan of the current bytes returns clean, the card updates and the obsolete Unsafe notification is removed; administrator verification also removes that warning. Scan-result and manual-decision history is retained. A clean rescan of a quarantined upload specifically requested by an administrator still needs a separate publication approval.
Yes. If your VPN makes Cloudflare reachable, the download uses the primary Cloudflare R2 link.
If the browser cannot fetch the Cloudflare probe, Moddingflow can request a short-lived Bunny fallback link for the same archive.
Check that your email is typed correctly, that the password matches the form requirements and that the confirmation email is not in spam. If the confirmation link expired, start registration again.
If the account already exists, try to sign in or reset the password from the sign-in page.
An account lets you publish topics, mods, builds and guides, leave comments, react to content, watch materials and manage your public profile.
After signing in, open your account area to manage profile, security and subscription settings.
The archive uploads directly from your browser to Cloudflare R2 through a short-lived signed URL. This is Moddingflow's primary storage for mod and build archives.
The site creates an upload session and verifies the file before publication. The privacy policy explains which technical data Cloudflare/R2 and Moddingflow may process.
Regular accounts can publish up to 3 main files at 500 MB each and up to 5 optional files at 100 MB each. Premium keeps the same file slots but raises the size to 4 GB per main file and 250 MB per optional file. Minecraft uses a separate limit system.
A mod's short description can contain up to 300 characters. The full description has a budget of 100,000 visible characters, and each embedded body image counts as 100 characters. Safe rich formatting includes headings, links, lists, text styles, tables, spoilers and consent-gated YouTube embeds. You can add a GIF up to 10 MB to the full mod description or gallery; the site checks its frame count, resolution, and duration, then prepares an animated WebP and a static poster. Animation starts automatically unless reduced motion is enabled; with that setting, the static poster appears first and the GIF can be started manually. GIF covers are not supported, and cards, builds, comments, and guides remain static.
When importing from Nexus, review the files and every author or community image before publishing, and remove anything you do not have permission to redistribute.
Yes, for Imgur links, public GitHub attachments in the github.com/user-attachments/assets/… form, and repository images such as github.com/owner/repository/blob/branch/file.jpg?raw=true. A pasted link becomes a normal body image you can align, resize and drag exactly like an uploaded screenshot. Other GitHub pages and image hosts remain ordinary links. Pasting a whole description works the same way: every supported address becomes an image where it stands, while an ordinary labelled link remains a link.
The file stays on Imgur or GitHub and is never copied to Moddingflow: if it is deleted or made private there, the image disappears from your page too. The editor checks availability before insertion. The image counts toward the description image budget, and the site rules apply to it exactly as they do to an uploaded one.
Nothing to set up: an image, a GIF and a YouTube video are inserted at about a third of the description width, so there is free space on both sides from the start. Click the media to select it and pick the alignment in the editor toolbar — left, centered or right. An image that is already narrower than a third is not stretched: it keeps its own size.
Resize it by the corners: drag any of the four handles on the selected media and the proportions are kept for you. That is also how you take a video or a screenshot back to the full description width. Videos you have already published stay exactly as they were until you resize them yourself.
You return to the mod upload screen, and the fields and selected files stay in place while the tab remains open.
Temporary images and files that were uploaded during the failed attempt are cleaned up automatically. After the error, check the message on the form and try publishing again.
Change your nickname in the account profile section. After saving, check the public profile page to make sure the name, avatar and description look right.
Cancellation is available on the billing page. Use the renewal cancellation action if you want to stop the next automatic charge.
After cancellation, Premium remains active until the current paid period ends. If an exact access end date is available, it is shown in the billing section.
A 14-day contract withdrawal may be available for the first Premium checkout or a trial-to-paid conversion. Ordinary automatic renewal does not create a new automatic 14-day window.
When withdrawal is available, the billing page shows the withdrawal action and the unused-period calculation. If automatic refund processing is unavailable, the request goes to manual review or another documented remedy.
Receipts open from the billing page on Stripe-hosted pages. Card details are managed only in Stripe Portal.
If you contact support about a payment, include the account email and Stripe receipt ID. Do not send card numbers, CVC codes or screenshots with full payment details.
Open your account area. It lists your topics, posts, mods, builds and other public materials when they are connected to your account.
Profile, avatar, cover and bio are edited in the account area. Upload only supported image formats and do not use someone else's material without permission.
If you use Premium profile styling, make sure GIFs and visual effects still follow the site rules.
The public profile shows your display name, avatar, bio and public publications. Private payment data, email, security settings and internal records are not shown.
Account data handling is described in the privacy policy.
A build author can add a dedicated questions and answers block while publishing or editing a build. It is meant for installation notes, conflicts, requirements and playthrough details.
That block appears on the build page in the FAQ or Questions and answers tab. It is separate from this general support FAQ.
If you are signed in, change the password in the security settings of your account area. If you cannot sign in, use password recovery from the sign-in page.
Two-factor authentication is enabled in the security section of the account area. Keep backup access to your authenticator app before signing out.
Yes. DELETE registration_client_uri with its management token to disable a dynamically registered client and revoke its authorization codes, device requests, refresh families, consents, and future access-token use. The management token is not an OAuth access token and is never recoverable. Users can separately revoke an OAuth grant through https://moddingflow.com/oauth/revoke. Settings > Developer remains for personal access tokens and API keys; PAT rotation allows no more than a 10-minute overlap.
Start with password recovery from the sign-in page and check your email. If the account was blocked by moderation, read the reason carefully and compare it with the site rules.
Account deletion starts from the account area when that feature is available for your profile. Download any data you want to keep before deleting the account.
Some public materials may be retained or anonymized when needed for discussion integrity, safety, legal duties or moderation. Details are explained in the privacy policy.
Data export is available in the account area. It helps you get a copy of profile data and related records that the site can provide to the user.
Large record sets are exported in capped sections. If a section is capped, the JSON file includes continuation metadata so support can identify what remains.
For the legal basis of data processing, read the privacy policy.
Open the content report action from the site footer and include links to the original, the disputed publication and proof of authorship. A precise report helps moderators understand the issue faster.
Forbidden actions with other people's mods and files are described in the site rules.
You may publish a translation only when the original author, license or source platform rules allow it. Credit the author, link the original and state the usage terms.
If permission is missing or redistribution is forbidden, do not upload someone else's files. You can publish instructions and link to the original mod instead.
The full version is on the site rules page. Check it before publishing mods, builds, translations or sensitive content.
Do not publish pirated files, stolen mods, malware, stealers, miners, doxxing, harassment, illegal content, DRM cracks, warez or material that breaks game or platform rules. Do not bypass automatic inspection, re-upload blocked bytes under another name, conceal dangerous content in a nested or encrypted archive, or submit archive bombs, path-traversal payloads, or other resource-exhaustion attacks.
NSFW and 18+ content has separate restrictions. Check the site rules before publishing.
Moderation may hide content, remove a file, issue a warning, restrict account actions or block an account. The action depends on the violation, account history and risk to users.
Removing one item does not mean the rest of an author's content is automatically approved. Each questionable item can be reviewed separately.