promotional bannermobile promotional banner

Stope

This project adds a shared library for my mods, holding the code that breaks between Minecraft versions so each mod ports with less work.
Back to Files

Stope 2.0.0 for Fabric (1.20-1.20.1)

File namestope-fabric-2.0.0-1.20-1.20.1.jar
Uploader
ScottKillenScottKillen
Uploaded
Nov 8, 2026
Downloads
11
Size
242.9 KB
Mod Loaders
Fabric
File ID
9505252
Type
R
Release
Supported game versions
  • 1.20.1
  • 1.20

Curse Maven Snippet

Fabric

modImplementation "curse.maven:stope-1779366:9505252"

Learn more about Curse Maven

What's new

Native Forge: one Stope file per loader, Fabric and Forge, for Minecraft 1.20 and 1.20.1. Forge players no longer need Sinytra Connector or Forgified Fabric API. Also the capabilities that let Strength In Numbers and TrailWright reach Minecraft only through Stope, on both loaders (1.3.0 was never released; its changes are here). Nothing changes in game until a mod uses them. Mods built for Stope 1.x need a new release built against 2.0.0.

Breaking

  • Every callback's EVENT field is Stope's own us.someguy.stope.api.event.Event, not Fabric API's. Registration reads the same (EVENT.register(listener)); code that names Fabric's Event type, or calls invoker(), does not compile.
  • Two jars, one per loader (stope-fabric-…, stope-forge-…). Consumers depend on the file for their loader.

API

  • NetworkChannel, PacketType, ServerPacketHandler, ClientPacketHandler, and client-side ClientNetworking (experimental): versioned network channels. Handlers run on the main thread; malformed packets are dropped and logged once; a client with a different protocol version is refused at login, and one without the mod still joins.
  • ServerStartedCallback, DataPacksReloadedCallback (successful reloads only), LevelTickCallback, CommandRegistrationCallback (experimental): server events on every loader.
  • ClientDisconnectCallback (experimental, client): after the client leaves a world.
  • PlatformInfo (experimental): whether a mod is loaded, its version, and whether this is a development launch.
  • ConfigScreens (experimental, client): one call puts a mod's settings screen in Mod Menu (Fabric) and in the Mods screen (Forge); consumers drop their own Mod Menu entry point.
  • GameTestFunctions (experimental): GameTests written once in common code, registered on each loader.
  • Every experimental type carries @ApiStatus.Experimental.
  • DataReloaders documents its handler order per loader.
  • ConfigFile, ConfigSpec, ConfigKey, ConfigValues (experimental): a mod's JSON settings file. Strict parsing: a malformed file logs a warning and runs on defaults; a missing, wrong-typed, or out-of-range key resets alone with a warning naming it. Values are immutable; settings screens edit a copy and save it. ConfigFile.folder gives a mod's config folder.
  • BlockChangedCallback (experimental): server-side event after Level#setBlock changes a block.
  • BrushStrokeCallback (experimental): server-side event for each brush stroke a player makes on a block.
  • MobOwnership (experimental): whether a mob is tamed, owned, saddled, ridden by a player, leashed, or in a llama caravan.
  • DataReloaders.registerFiles, DataFile (experimental): a reload handler that receives the JSON files of a data-pack directory and a config folder with their sources and pack IDs, in a documented load order.
  • Ids, RegistryLookups (experimental): build and parse IDs; look up entity types, blocks, block tag contents, and tag keys.
  • DebugScreenLinesCallback (experimental, client): append lines to the F3 screen's right column, with the targeted block. Skipped under reduced debug info.
  • ConfigFile adds missing keys with their defaults, and logs them, when they are a file's only problem; it never rewrites a file with an invalid value or a malformed one.
  • A listener that throws is logged once and the other listeners still run, for every callback.

Fixes

  • MobControl.avoid and the avoid and flee reactions: a mob that had left the avoid distance no longer follows its own panic run back toward the threat when it comes inside again.
  • MobControl.attack and the defend and join_attack reactions: a goat whose ram ends without hitting the target, including a ram vanilla ends before the goat moves, rams again while the order lasts. One ram that hits is still the most an order gives.

Links

  • The mod's homepage link (Mod Menu, Forge's Mods screen) goes to its CurseForge page, and its issues link to the KillenCraft Discord, where bug reports go.