Перейти к содержимому
Mineforgian

Preloading Tricks

A developer tool for early loader access, class transformation, and preloading hacks.

310K загрузок17 подписчиковApache-2.0fabricforgeneoforgequilt

Обновлён 29 июня 2026 г. · опубликован 4 августа 2023 г.

Overview

Preloading Tricks is a developer-only mod that enables advanced operations during the very early stage of the mod loader. It provides early hooks, Java Instrumentation-based class transformation, and SPI-driven callbacks for loader extension.

Supported environments:

  • Fabric – 1.20.1, 1.21+
  • Forge (LexForge) – 1.20.1
  • NeoForge – 1.20.6, 1.21+

You can test on more versions since it depends on the loader version instead of the Minecraft version.


Features

  • Early loader entrypoint via PreloadingEntrypoint (SPI-based)

    • Register callbacks using PreloadingTricksCallbacks events:
      • SETUP_LANGUAGE_ADAPTER – early language adapter setup stage
      • COLLECT_MOD_CANDIDATES – dynamically add mod candidate paths before discovery
      • SETUP_MODS – modify mod list (add/remove/query via ModManager API)
  • Instrumentation-powered ClassTransform Can transform already-loaded classes, including Java core and classloader classes. Configure via MANIFEST.MF on all platforms (see below).

  • Forge variant detection (Forge-like only)

    • Access ForgeVariants to detect specific Forge/NeoForge versions at runtime

Usage (Gradle)

Add the Maven repository and dependency to your build:

Kotlin DSL:

repositories {
    maven("https://raw.githubusercontent.com/settingdust/maven/main/repository/")
}

dependencies {
  // Recommended: use the base artifact (no classifier).
  // Gradle variant matching / cloche will resolve the correct platform artifact automatically.
  implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION")

  // Optional: pin to a specific classifier when you want to avoid accidentally using APIs
  // from other platforms.
  // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:fabric")
  // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:forge-service")
  // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:neoforge-modlauncher")
  // implementation("settingdust.preloading_tricks:PreloadingTricks:VERSION:neoforge-fancy-mod-loader")
}

Replace VERSION with the latest release (e.g. 3.5.9).

If you are using cloche, the corresponding variant is selected automatically based on loader/minecraft attributes.


ClassTransform Configuration

For all platforms, add the following attribute to your MANIFEST.MF:

ClassTransformConfig: xxxx.classtransform.json

Multiple configs can be specified as comma-separated values:

ClassTransformConfig: first.classtransform.json,second.classtransform.json

Example config (xxxx.classtransform.json):

{
  "package": "settingdust.preloading_tricks.neoforge.transformer",
  "transformers": [
    "mod_setup_hook.FMLLoaderTransformer"
  ]
}

Forge Variant Detection (Forge-like only)

Allows a mod to load only on a specific Forge-like loader variant. This enables bundling both LexForge and NeoForge JARs together via jar-in-jar in a single mod file.

Configuration:

Specify your mod's target variant in MANIFEST.MF:

ForgeVariant: LexForge

or

ForgeVariant: NeoForge

Mods with a ForgeVariant specified will only load when running on the matching loader variant, allowing safe coexistence of variant-specific implementations.


For developers who need to reach into the earliest moments of Minecraft’s loading process.

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
3.7.3Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge29 июня 2026 г..jar (1.7 МБ)
3.7.2Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge26 мая 2026 г..jar (1.7 МБ)
3.7.1Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge26 мая 2026 г..jar (1.7 МБ)
3.7.0Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge24 мая 2026 г..jar (948 КБ)
3.6.3Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge21 мая 2026 г..jar (946 КБ)
3.6.2Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge21 мая 2026 г..jar (946 КБ)
3.6.0Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge11 мая 2026 г..jar (1.7 МБ)
3.5.15Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge9 мая 2026 г..jar (1.7 МБ)
3.5.14Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge8 мая 2026 г..jar (1.8 МБ)
3.5.13Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge1 мая 2026 г..jar (1.8 МБ)
3.5.10Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge10 апреля 2026 г..jar (1.7 МБ)
3.5.9Релиз1.21.11, 26.1, 26.1.1, 26.1.2fabric, forge, neoforge1 апреля 2026 г..jar (1.8 МБ)
3.5.8Релиз1.21.8, 1.21.9, 1.21.10, 1.21.11fabric, forge, neoforge18 марта 2026 г..jar (1.8 МБ)
3.5.7Релиз1.21.8, 1.21.9, 1.21.10, 1.21.11fabric, forge, neoforge18 марта 2026 г..jar (1.8 МБ)
3.5.6Релиз1.21.8, 1.21.9, 1.21.10, 1.21.11fabric, forge, neoforge4 февраля 2026 г..jar (1.8 МБ)

Показаны последние 15 из 88 версий. Все версии — на Modrinth.

Ченджлог

3.7.3Релиз26.1, 26.1.1, 26.1.2 · 29 июня 2026 г.

:bug: Bug Fixes

  • 9285f5d - transformer error (commit by @SettingDust)
3.7.1Релиз26.1, 26.1.1, 26.1.2 · 26 мая 2026 г.

:bug: Bug Fixes

  • 7c3f059 - build: correct embed configuration attributes and resource inclusion for jar tasks (commit by @SettingDust)

:recycle: Refactors

  • 3d8e46a - build: reconcile copier topology (commit by @SettingDust)
3.7.0Релиз26.1, 26.1.1, 26.1.2 · 24 мая 2026 г.

:sparkles: New Features

  • 6bc4e54 - add NeoForgeAdapter to use right java version on older NF (commit by @SettingDust)
3.6.3Релиз26.1, 26.1.1, 26.1.2 · 21 мая 2026 г.

:bug: Bug Fixes

  • 155757b - wrong resolver transformer 2 (commit by @SettingDust)
3.6.2Релиз26.1, 26.1.1, 26.1.2 · 21 мая 2026 г.

:bug: Bug Fixes

  • dd19a79 - wrong resolver transformer (commit by @SettingDust)
3.6.0Релиз26.1, 26.1.1, 26.1.2 · 11 мая 2026 г.

:bug: Bug Fixes

  • 80ece07 - restore module injector api files (commit by @SettingDust)

:recycle: Refactors

  • 089c55e - restore build topology after copier update (commit by @SettingDust)
  • 03196c6 - obsolete NeoForge callback artifacts (commit by @SettingDust)
  • 9f25b22 - share list-backed mod manager logic (commit by @SettingDust)
  • 4c719ff - restructure sources into api core shared platform targets (commit by @SettingDust)
  • 058d9ef - extract shared target/version constants in build script (commit by @SettingDust)
  • caaf03e - deduplicate neoforge dependency excludes and rename run regions (commit by @SettingDust)
  • eec2d95 - extract run target MOD_CLASSES env setup (commit by @SettingDust)
  • 5a8bc34 - align forge modlauncher package naming (commit by @SettingDust)
  • ae282c0 - remove unused entrypoint and module injector leftovers (commit by @SettingDust)

:wrench: Chores

  • ee23367 - copier update checkpoint B (commit by @SettingDust)
  • 5a333b4 - plans: add copier update execution artifacts and reconciliation gates (commit by @SettingDust)
  • 83bd560 - remove obsolete copier gate and NeoForge 21.10 setup (commit by @SettingDust)
  • 6757863 - remove plans (commit by @SettingDust)
  • 0a66459 - remove unused files (commit by @SettingDust)
3.5.15Релиз26.1, 26.1.1, 26.1.2 · 9 мая 2026 г.

:bug: Bug Fixes

  • af9ee68 - build output duplicated classes (commit by @SettingDust)
3.5.14Релиз26.1, 26.1.1, 26.1.2 · 8 мая 2026 г.

:bug: Bug Fixes

  • 60cc575 - resolver transformer passing wrong arg (commit by @SettingDust)

Полная история изменений — на Modrinth.

Комментарии

Загружаем…