by alanjmrt94 · Leer en Español
An improved console log filter for Minecraft Forge / Fabric / NeoForge — by text, regex, log level, thread, source, and mod id. Reduce console noise on the client or dedicated server while debugging modpacks and development environments.
Current releases (mismo mod_semver 4.2.0, tags {mc}-4.2.0):
| Minecraft | Loaders | Tag |
|---|---|---|
| 1.20.1 | Forge · Fabric · NeoForge | 1.20.1-4.2.0 |
| 1.20.2 | Forge · Fabric | 1.20.2-4.2.0 |
| 1.20.3 | Forge · Fabric | 1.20.3-4.2.0 |
| 1.20.4 | Forge · Fabric · NeoForge | 1.20.4-4.2.0 |
| 1.20.5 | Fabric (sin Forge/NeoForge) | 1.20.5-4.2.0 |
| 1.20.6 | Forge · Fabric · NeoForge (Java 21) | 1.20.6-4.2.0 |
| 1.21.1 | Forge · Fabric · NeoForge (Java 21) | 1.21.1-4.2.0 |
| 1.21.2 | Fabric (sin Forge/NeoForge estables) | 1.21.2-4.2.0 |
| 1.21.3 | Forge · Fabric · NeoForge | 1.21.3-4.2.0 |
| 1.21.4 | Forge · Fabric · NeoForge | 1.21.4-4.2.0 |
| 1.21.5 | Forge · Fabric · NeoForge | 1.21.5-4.2.0 |
| 1.21.6 | Forge · Fabric (NeoForge solo beta) | 1.21.6-4.2.0 |
| 1.21.7 | Forge · Fabric (NeoForge solo beta) | 1.21.7-4.2.0 |
| 1.21.8 | Forge · Fabric · NeoForge | 1.21.8-4.2.0 |
| 1.21.9 | Forge · Fabric (NeoForge solo beta) | 1.21.9-4.2.0 |
| 1.21.10 | Forge · Fabric · NeoForge | 1.21.10-4.2.0 |
| 1.21.11 | Forge · Fabric · NeoForge | 1.21.11-4.2.0 |
| 1.19.2 | Forge · Fabric (Java 17, sin editor in-game) | 1.19.2-4.2.0 |
| 1.19.4 | Forge · Fabric (Java 17, sin editor in-game) | 1.19.4-4.2.0 |
| 1.16.5 | Forge · Fabric (Java 8, sin editor in-game) | 1.16.5-4.2.0 |
| 1.16.1 | Forge · Fabric (Java 8, sin editor in-game) | 1.16.1-4.2.0 |
| 1.12.2 | Forge · Fabric / Legacy Fabric en Modrinth (Java 8, feature set reducido, sin editor) | 1.12.2-4.2.0 |
| 1.8.9 | Forge · Fabric / Legacy Fabric en Modrinth (Java 8, feature set reducido, sin editor) | 1.8.9-4.2.0 |
| 26.1 | Forge · Fabric · NeoForge (Java 25) | 26.1-4.2.0 |
| 26.2 | Forge · Fabric · NeoForge (Java 25) | 26.2-4.2.0 |
| 26.3 | Fabric · NeoForge (Java 25; NeoForge 26.3.0.8-beta; sin Forge) |
26.3-4.2.0 |
Los tags {mc}-4.2.0 están en origin para todas las líneas de la matriz. GitHub Release, Modrinth y CurseForge se disparan con el push del tag. Si un archivo quedó mal o faltó en las tiendas, no retaguees: en Actions usá Run workflow en release.yml / publish-distribution.yml con input mc (publica desde la rama actual; ver scripts/README.md).
Discord: discord.gg/CcUNTJjPD
| Loader | CurseForge | Modrinth |
|---|---|---|
| Forge 1.20.1 | 1.20.1 · Forge | 1.20.1-4.2.0+forge |
| Fabric 1.20.1 | 1.20.1 · Fabric | 1.20.1-4.2.0+fabric |
| NeoForge 1.20.1 | 1.20.1 · NeoForge | 1.20.1-4.2.0+neoforge |
| Forge / Fabric 1.19.2 / 1.19.4 | Filtrar por versión de juego | Filtrar por game version |
| Forge / Fabric 1.20.2–1.20.3 | Filtrar por versión de juego | Filtrar por game version |
| Forge / Fabric / NeoForge 1.20.4 y 1.20.6 | Filtrar por versión de juego | Filtrar por game version |
| Fabric 1.20.5 | Filtrar por versión de juego | Filtrar por game version |
| Fabric 1.21.2 | Filtrar por versión de juego | Filtrar por game version |
| Forge / Fabric / NeoForge 1.21.3–1.21.5, 1.21.8, 1.21.10, 1.21.11 | Filtrar por versión de juego | Filtrar por game version |
| Forge / Fabric 1.21.6 / 1.21.7 / 1.21.9 | Filtrar por versión de juego | Filtrar por game version |
| Forge / Fabric / NeoForge 26.1–26.2 | Filtrar por versión de juego | Filtrar por game version |
| Fabric / NeoForge 26.3 | Filtrar por versión de juego | Filtrar por game version |
| Hub | Link |
|---|---|
| CurseForge (proyecto) | consolefilternext |
| Modrinth (proyecto) | consolefilternext |
| GitHub Releases | tags {mc}-4.2.0 (1.19.x, 1.20.1–1.20.6, 1.21.1–1.21.11, 1.16.x, 1.12.2, 1.8.9, 26.1, 26.2, 26.3) |
| Source & issues | GitHub |
Developers: run
./scripts/release.shfor environment setup, builds, and publishing (GitHub + CurseForge + Modrinth).
- Filter types: basic text, regex, log level, thread, logger/source, mod id
- Profiles:
default,debug,production— switch in-game, via TOML, or/consolefilter profile(persisted) - Modes: blacklist (hide matches) or whitelist (show only matches); optional
ignoreCase filterLatestLog: apply filters tolatest.logand other Log4j file appendersskipMessagesWithStackTrace: never hide lines with exceptions or stack traces- In-game editor (Forge/NeoForge Mods → Config; Fabric Mod Menu): paginated lists, regex validation, presets, import/export
- Commands (OP 2):
reload,list,status,export,import,profile - Statistics: per-filter-type hit counts in
/consolefilter status - Hot reload from file, commands, or Save & Apply in the config UI
| Console Filter Next | alanjmrt94 |
| Originally based on | ConsoleFilter by Matthew Czyr (MattCzyr) |
| ConsoleFilter contributors | NgLoader, MarkKoz, ChaosTheDude |
| License | CC BY-NC-SA 4.0 |
Issues and pull requests: github.com/alanjmrt94/ConsoleFilterNext
Discord: discord.gg/CcUNTJjPD
Crafted with ❤️ for modders who want a cleaner console.
The actual configuration of the mod is done in a separate file generated at runtime.
To configure the mod, you have two options:
- Go to Options → Mods (Forge / NeoForge) or open Mod Menu (Fabric)
- Find Console Filter Next
- Open Config
- Edit booleans, profiles, and filter lists; use Save & Apply to write
consolefilternext-common.tomland reload filters
Forge and NeoForge use the built-in Mods config button. Fabric uses Mod Menu when installed (optional).
- Go to the
configfolder in your Minecraft installation - Open
consolefilternext-common.toml - Edit the values according to your needs
For example, to filter all INFO messages from the Server thread, your consolefilternext-common.toml should look like this:
[general]
ignoreCase = false
whitelistMode = false
filterLatestLog = true
skipMessagesWithStackTrace = false
activeProfile = "default"
# Filters messages that contain specific text
basicFilters = ["Killed all storms"]
# Filters messages by their log level (e.g., INFO, WARN, ERROR, DEBUG)
levelFilters = ["INFO"]
# Filters messages coming from specific threads
threadFilters = ["Server thread"]
# Filters messages based on their source (logger or class name). Matches when the source **contains** the string (package prefixes work).
sourceFilters = ["net.minecraft.server"]
# Filters messages from Forge mods by mod id (e.g. jei, create)
modIdFilters = []
# Filters messages using regular expressions (advanced)
regexFilters = []Migrating from ConsoleFilter (original)? See MIGRATION.md.
Here are some useful examples to help you get started with advanced filtering:
levelFilters = ["DEBUG"]levelFilters are case-insensitive (debug matches DEBUG).
sourceFilters = ["com.example.mymod"]sourceFilters match when the logger/source contains the configured string, so package prefixes like net.minecraft.server match net.minecraft.server.MinecraftServer.
threadFilters = ["Server"]threadFilters match when the thread name contains the configured string (Server matches Server thread).
basicFilters = ["Could not resolve", "Missing texture"]regexFilters = ["^\\[Render thread\\].*Missing.*$", ".*ERROR.*\\bBlockEntity\\b.*"]Note: Regex patterns must follow Java regular expression syntax.
whitelistMode = true
basicFilters = ["ERROR", "WARN"]With whitelistMode = true, only messages that match at least one filter are shown; everything else is hidden.
ignoreCase = true
basicFilters = ["missing texture"]Applies to basicFilters, threadFilters, sourceFilters, loggerFilters, and regexFilters. levelFilters are always case-insensitive.
loggerFilters = ["net.minecraft.server"]Same as sourceFilters (contains match on logger/source name). Both lists are applied.
modIdFilters = ["jei", "create"]Matches loggers/sources belonging to the given mod id (uses Forge ModList when available).
skipMessagesWithStackTrace = trueWhen true, lines with an attached exception or stack-trace text are never hidden.
activeProfile = "production"
[profiles.debug]
levelFilters = ["DEBUG"]
[profiles.production]
levelFilters = ["WARN", "ERROR"]Profiles: default (uses [general]), debug, or production. Switch at runtime (persisted to TOML):
/consolefilter profile debug
/consolefilter profile production
/consolefilter profile default
filterLatestLog = trueWhen true, latest.log and other Log4j file appenders are filtered. When false, only console output is filtered.
/consolefilter export backups/consolefilter.toml
/consolefilter import backups/consolefilter.toml
- Forge / NeoForge: Options → Mods → Console Filter Next → Config
- Fabric: Mod Menu → Console Filter Next → Config (optional dependency)
- Paginated list editor (8 entries per page) with regex validation for
regexFilters - Presets (Debug, Silent modpack, Minimal), Import… / Export… from the config screen
- Save & Apply writes the TOML file and reloads filters without restarting
All three loaders edit the same
consolefilternext-common.toml.
On a server with OP level 2+:
/consolefilter reload
/consolefilter list
/consolefilter status
/consolefilter profile production
/consolefilter export backups/consolefilter.toml
/consolefilter import backups/consolefilter.toml
reload re-reads consolefilternext-common.toml. status shows profile, filters, hidden message count, and hits per filter type (basic, regex, level, thread, source, logger, modId).
You can combine multiple filters to fine-tune what gets shown in your console.
If any of the conditions match, the message will be filtered out.
| Minecraft | 1.19.2 / 1.19.4 (Forge/Fabric) · 1.20.1–1.20.4 (Forge/Fabric; NeoForge en 1.20.1 y 1.20.4) · 1.20.5 (Fabric) · 1.20.6 y 1.21.x (Forge/Fabric; NeoForge donde hay release estable) · 1.16.5 y 1.16.1 (Forge/Fabric, Java 8) · 1.12.2 y 1.8.9 (Forge + Fabric, Java 8) · 26.1 / 26.2 (Forge/Fabric/NeoForge, Java 25) |
| Mod loaders | Forge 64+ (26.x) · Forge 47–61 (1.20.x / 1.21.x) · Forge 43–45 (1.19.x) · Forge 36 (1.16.5) · Forge 14 (1.12.2) · Forge 11 (1.8.9) · Fabric · Legacy Fabric (1.12.2 / 1.8.9) · NeoForge |
| Java (runtime) | 8 (MC 1.16.x / 1.12.2 / 1.8.9) · 17 (MC 1.19.x / 1.20.1–1.20.4) · 21 (MC 1.20.5 / 1.20.6 / 1.21.x) · 25 (MC 26.x) |
| Side | Client and dedicated server — install on either or both; filters apply on both sides |
| Downloads | CurseForge · Modrinth · tags {mc}-4.2.0 en GitHub |
Requirements:
| Línea MC | Bytecode / toolchain | Build |
|---|---|---|
| 1.20.1 | Java 17 | ./gradlew :forge:build · cd platforms/1.20.1/fabric && ./gradlew build · cd platforms/1.20.1/neoforge && ./gradlew build |
| 1.20.2 / 1.20.3 | Java 17 | cd platforms/1.20.2/{forge,fabric} && ./gradlew build (igual 1.20.3) |
| 1.20.4 | Java 17 | cd platforms/1.20.4/{forge,fabric,neoforge} && ./gradlew build |
| 1.20.5 | Java 21 | cd platforms/1.20.5/fabric && ./gradlew build |
| 1.20.6 | Java 21 | cd platforms/1.20.6/{forge,fabric,neoforge} && ./gradlew build |
| 1.21.1–1.21.11 | Java 21 | cd platforms/1.21.4/{forge,fabric,neoforge} && ./gradlew build (celdas según matriz; 1.21.2 solo Fabric) |
| 1.19.2 / 1.19.4 | Java 17 (Gradle launcher JDK 21) | cd platforms/1.19.2/{forge,fabric} && ./gradlew build (igual 1.19.4) |
| 1.16.5 | Java 8 (Gradle con JDK 17) | cd platforms/1.16.5/forge && ./gradlew build · cd platforms/1.16.5/fabric && ./gradlew build |
| 1.16.1 | Java 8 (el servidor Forge 32 necesita JDK 8; Gradle puede ir en 17) | JAVA8_HOME=… cd platforms/1.16.1/forge && ./gradlew build · cd platforms/1.16.1/fabric && ./gradlew build |
| 1.12.2 | Java 8 (Forge: Gradle/RFG con JDK 25; Fabric: Gradle 9 + JDK 21, bytecode 8) | cd platforms/1.12.2/forge && ./gradlew build · cd platforms/1.12.2/fabric && ./gradlew build |
| 1.8.9 | Java 8 (ForgeGradle 2.1 exige JDK 8; Fabric Loom con Gradle 9 + JDK 21) | cd platforms/1.8.9/forge && ./gradlew setupCiWorkspace build · cd platforms/1.8.9/fabric && ./gradlew build |
| 26.1 / 26.2 | Java 25 | cd platforms/26.1/{forge,fabric,neoforge} && ./gradlew build (igual platforms/26.2/*) |
| 26.3 | Java 25 | cd platforms/26.3/{fabric,neoforge} && ./gradlew build |
Launcher JDK 17/21 OK para 1.20.1; Forge 1.19.x usa launcher JDK 21 (matrix.sh). Para 26.x preferí JDK 25 (Gradle 9.5+). Si Mojang no es alcanzable: USE_BMCL_MIRROR=1 (+ HTTP local de versions/minecraft-meta si hace falta).
git clone https://github.com/alanjmrt94/ConsoleFilterNext.git
cd ConsoleFilterNext
./scripts/release.sh verify # check your setup
./scripts/matrix.sh test # common + enabled matrix cells
./gradlew :forge:build
cd platforms/1.20.1/fabric && ./gradlew build
cd ../neoforge && ./gradlew build
./scripts/server-smoke.sh forge # también: fabric | neoforge | forge-26.1 | fabric-1.12.2 | fabric-1.8.9 | forge-1.20.4 | …
./scripts/lint.sh fix # autofix imports no usados / whitespaceJARs: platforms/{mc}/{loader}/build/libs/*-{forge,fabric,neoforge}.jar (Forge 1.20.1 también vía ./gradlew :forge:build).
The mod is verified for both client and dedicated server. Use Gradle from the project root:
| Command | Purpose |
|---|---|
./gradlew :forge:runClient |
Launch the Minecraft client with the mod in runs/1.20.1/forge/mods/ |
./gradlew :forge:runServer |
Launch a local dedicated server (auto-accepts EULA via runs/1.20.1/forge/eula.txt) |
The runs/ directory holds local world data, configs, and logs and is gitignored.
Tip: use the interactive setup script:
./scripts/release.shWith API tokens in scripts/.release.local and gh auth login:
./scripts/release.sh publish --dry-run # simulate
./scripts/release.sh publish # build + tag + GitHub + Modrinth + CurseForgeCopy and edit the template:
cp scripts/.release.local.example scripts/.release.local| Platform | Variable | Format | When required |
|---|---|---|---|
| Modrinth | MODRINTH_PROJECT_ID |
Base62 (e.g. tFqJGW2q) |
Required while the project is in Draft — the public API cannot resolve the slug until the project is approved |
| Modrinth | MODRINTH_PROJECT_SLUG |
URL slug (e.g. consolefilternext) |
Used for auto-resolution when MODRINTH_PROJECT_ID is empty |
| CurseForge | CURSEFORGE_API_TOKEN |
Profile API key (cfc_pat_…) |
From CurseForge profile — resolve versions/project |
| CurseForge | CURSEFORGE_AUTHOR_TOKEN |
Author API token | From curseforge.com/account/api-tokens — required to upload files |
| CurseForge | CURSEFORGE_PROJECT_ID |
Numeric ID | Optional; leave empty to resolve by CURSEFORGE_PROJECT_SLUG |
Find the Modrinth Base62 ID in Modrinth → Projects (column ID). Do not put the display name (e.g. ConsoleFilterNext) in MODRINTH_PROJECT_ID — the API expects Base62 and will reject it.
Recommended (CI-gated tag):
- Push to
masterand wait for Build to succeed ./scripts/release.sh cut— creates/pushesmod_versiontag only if Build is green- Tag push runs Actions: GitHub Release + Modrinth/CurseForge + Discord notify
Local full publish (build + tag + all platforms):
- Clean build of Forge + Fabric + NeoForge →
*-forge.jar/*-fabric.jar/*-neoforge.jar - Git annotated tag (
mod_versionfromgradle.properties) → push toorigin - GitHub Release (
gh) with three JAR assets andchangelog.txtexcerpt - Modrinth: one version per loader (
version_number=TAG+forge/TAG+fabric/TAG+neoforge) - CurseForge: one file upload per loader (gameVersions include Forge / Fabric / NeoForge)
- Discord: webhook post to the mod’s read-only channel (
DISCORD_WEBHOOK_URL)
./scripts/release.sh cut --dry-run
./scripts/release.sh cutIf one step already succeeded, skip the rest:
./scripts/release.sh publish --skip-build --skip-github # Modrinth + CurseForge only
./scripts/release.sh publish --skip-build --skip-github --skip-modrinth # CurseForge onlyTo republish from CI without moving tags: Actions → Release / Publish distribution → Run workflow → input mc (see scripts/README.md).
While status is Draft, the project page may exist at modrinth.com/project/<slug> but GET /v2/project/<slug> returns 404 without a known ID. Set MODRINTH_PROJECT_ID in .release.local, then publish. After moderation approves the project, you can clear MODRINTH_PROJECT_ID and rely on slug resolution if you prefer.
Before or during publish, publish-release.sh syncs assets/modrinth.json to the Modrinth API (description, license, links, categories, icon, gallery). Edit:
| File | Purpose |
|---|---|
assets/modrinth.json |
Short description, license, URLs, categories, gallery list |
assets/modrinth-body.md |
Long description (project body) |
assets/icon.png |
Project icon (also used as featured gallery image by default) |
Sync metadata only (no JAR upload):
./scripts/release.sh publish --modrinth-sync-onlySet "submit_for_review": true in modrinth.json to send the project to Modrinth moderators on the next metadata sync (currently enabled in this repo).
| Symptom | Cause | Fix |
|---|---|---|
Base62 decoding overflowed |
MODRINTH_PROJECT_ID set to display name instead of Base62 ID |
Use the ID from Modrinth → Projects |
404 resolving Modrinth slug |
Project is still in Draft | Set MODRINTH_PROJECT_ID |
403 / API token is malformed on CurseForge upload |
Profile API key (cfc_pat_) used for file upload |
Upload requires Author API token from curseforge.com/account/api-tokens (CURSEFORGE_AUTHOR_TOKEN). Keep cfc_pat_ as CURSEFORGE_API_TOKEN for version/project lookup only |
403 resolving CurseForge slug |
Wrong or invalid Profile API key | Copy Profile API key from console.curseforge.com/#/profile (cfc_pat_…). Update scripts/.release.local and the GitHub publish environment. Optional: set CURSEFORGE_PROJECT_ID (numeric ID from the project page sidebar, e.g. 1257873) |
EOF while parsing a string (HTTP 400) |
JSON metadata embedded in curl -F was truncated by the shell |
Fixed in publish-release.sh (payload written to a temp file) |
| CI skips Modrinth/CurseForge on tag push | Secrets stored only at repository level, or wrong environment name | Use environment publish with the secrets below; workflow must set environment: publish |
404 resolving CurseForge game versions |
Outdated API path (/minecraft/game/version) |
Fixed in publish-release.sh — uses /v1/minecraft/version/{mc} and /v1/minecraft/modloader/forge-{version} |
| Modrinth rejects Fabric for 1.8.9 / 1.12.2 | Loader fabric is invalid before 18w43b |
On master, publish-release.sh maps to legacy-fabric; re-run Publish distribution via workflow_dispatch (mc=1.8.9 / 1.12.2) |
| Tag published with old Forge paths | Workflow at the tag commit pointed at the wrong tree | Re-run Release + Publish distribution with workflow_dispatch from master (do not move the tag) |
See scripts/.release.local.example for all variables (CURSEFORGE_API_TOKEN, MODRINTH_TOKEN, RELEASE_TYPE, etc.).
| Workflow | Trigger | Purpose |
|---|---|---|
.github/workflows/build.yml |
Push and pull request (skips markdown, images, assets/**, .cursor/**) |
Job lint (Spotless + -Werror) then isolated build + smoke; Maven 502 retries via ci-retry-gradle.sh; 1.21 smoke warms userdev and uses a 480s timeout |
.github/workflows/release.yml |
Tag push ({mc}-{semver}) or workflow_dispatch (input mc) |
Build enabled cells for that MC line and create/update the GitHub Release (JARs under platforms/{mc}/) |
.github/workflows/publish-distribution.yml |
Tag push (*) or workflow_dispatch (input mc) |
Upload JARs to Modrinth/CurseForge and Discord (publish environment); dispatch uses the branch workflow, not the tag commit |
Create Settings → Environments → publish (or use an existing environment with that name). The publish-distribution job sets environment: publish so it reads environment secrets and variables — not repository-level secrets.
Environment secrets (Settings → Environments → publish → Environment secrets):
| Secret | Required for | Where to get it |
|---|---|---|
MODRINTH_TOKEN |
Modrinth upload | modrinth.com/settings/account → Personal access tokens (mrp_…; needs version upload permission) |
MODRINTH_PROJECT_ID |
Modrinth while the project is in Draft (Base62 ID, e.g. tFqJGW2q) |
modrinth.com/dashboard/projects → column ID |
CURSEFORGE_API_TOKEN |
Resolve MC/Forge versions and project (Profile API key cfc_pat_…) |
console.curseforge.com/#/profile |
CURSEFORGE_AUTHOR_TOKEN |
Upload mod files to CurseForge | curseforge.com/account/api-tokens |
CURSEFORGE_PROJECT_ID |
Optional; numeric project ID if slug resolution fails | CurseForge project page sidebar |
DISCORD_WEBHOOK_URL |
Release notify to the mod’s Discord channel | Channel → Edit → Integrations → Webhooks → Copy URL (Secret, never a public Variable) |
Environment variables (same publish environment → Environment variables):
| Variable | Default | Purpose |
|---|---|---|
MODRINTH_PROJECT_SLUG |
consolefilternext |
Slug when MODRINTH_PROJECT_ID is empty and the project is public |
CURSEFORGE_PROJECT_SLUG |
consolefilternext |
Resolve CurseForge project when CURSEFORGE_PROJECT_ID is empty |
RELEASE_TYPE |
release |
Modrinth/CurseForge release channel (release, beta, alpha) |
Local publishes use the same names in scripts/.release.local (see scripts/.release.local.example).
If neither MODRINTH_TOKEN nor CURSEFORGE_API_TOKEN is set in the publish environment, the workflow skips upload steps with a notice (no failure). If DISCORD_WEBHOOK_URL is missing, publish still succeeds and skips the Discord notify with a warning.
- Config hot-reload via
/consolefilter reloador Save & Apply re-parses rules; filters must already be registered at startup. - The in-game list editor paginates long lists (8 per page) but has no search yet.
modIdFiltersresolution depends on the loader mod list and logger/source names; edge cases may needsourceFiltersinstead.
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). See LICENSE.md for attribution and terms.
Free to download on CurseForge and Modrinth; redistribution and derivatives must follow CC BY-NC-SA 4.0 (attribution, non-commercial, share-alike).
- CurseForge — Forge · Fabric · NeoForge
- Modrinth — Forge · Fabric · NeoForge
- GitHub repository
- GitHub Releases — tags
{mc}-4.2.0(p. ej.1.20.1-4.2.0,1.19.2-4.2.0,1.21.4-4.2.0) - Report issues
- Discord
- ConsoleFilter by Matthew Czyr
- Migration guide
Contributors: PoligamerYT (#1 — Minecraft 26.3).