Stope changelog
Stope 2.3.0
Section titled “Stope 2.3.0”Mods can color blocks from their own colormap images, which resource packs can replace. Nothing changes in game until a mod uses it. Mods built for 2.0 through 2.2 run on 2.3.0 unchanged.
Colormap(experimental, client): read a colormap image and look up colors in it, reloaded whenever resources reload, the same way on Fabric and Forge.
Stope 2.2.0
Section titled “Stope 2.2.0”A mod’s creative tab can show the mod’s own icon image. Nothing changes in game until a mod uses it. Mods built for 2.0 and 2.1 run on 2.2.0 unchanged.
CreativeTabIcons(experimental, client): draw a creative tab’s icon from a texture, such as the mod’s icon, instead of an item, the same way on Fabric and Forge.
Stope 2.1.0
Section titled “Stope 2.1.0”New API for mods that add wood sets, trees, and loot: registration, block behaviors, wood
types, signs, boats, worldgen features, loot additions, and client rendering, the same on
Fabric and Forge. Nothing changes in game until a mod uses them. Mods built for 2.0 run on
2.1.0 unchanged. The api-sources jar is attached to the Fabric file only; CurseForge
rejected the copies attached to both files in 2.0.1 and 2.0.2.
RegistrarandRegistered(experimental): register a mod’s blocks, items, entity types, block entity types, worldgen features, and creative tabs the same way on Fabric and Forge.BlockBehaviors(experimental): make a mod’s blocks flammable, axe-strippable, compostable, and furnace fuel the same way on Fabric and Forge.Registrar.blockSetTypeandRegistrar.woodType: register a wood set’s block set type and wood type on both loaders, with sign materials added on the client.BlockBehaviors.sign: let a mod’s sign and hanging sign blocks use vanilla’s sign block entities.Registrar.boats(),BoatSet,BoatWood, andBoatKind: a mod’s boats and chest boats for any number of woods, with items, dispenser behavior, and rendering on both loaders.BiomeFeatures(experimental): add a mod’s placed feature to the biomes in a tag, switched on or off at server start, on both loaders.LootAdditions(experimental): add a pool to a loot table, or a chance to replace the item brushed from an archaeology table, on both loaders.BlockRendering(experimental, client): set a block’s render layer and register block and item color providers the same way on Fabric and Forge.
Stope 2.0.2
Section titled “Stope 2.0.2”The bug-report link in Mod Menu and the Forge Mods screen now opens the GitHub issue tracker (https://github.com/KillenCraft/issues) instead of Discord. No other change: the API is the same as 2.0.1’s.
Stope 2.0.1
Section titled “Stope 2.0.1”The Forge file now loads on Minecraft 1.20 (Forge 46.0.14). Stope 2.0.0 required Forge 47, which exists for 1.20.1 only, so on Forge 1.20 it stopped the game at loading. No other change: the API and the Fabric file are the same as 2.0.0’s.
Stope 2.0.0
Section titled “Stope 2.0.0”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
Section titled “Breaking”- Every callback’s
EVENTfield is Stope’s ownus.someguy.stope.api.event.Event, not Fabric API’s. Registration reads the same (EVENT.register(listener)); code that names Fabric’sEventtype, or callsinvoker(), does not compile. - Two jars, one per loader (
stope-fabric-…,stope-forge-…). Consumers depend on the file for their loader.
NetworkChannel,PacketType,ServerPacketHandler,ClientPacketHandler, and client-sideClientNetworking(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. DataReloadersdocuments 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.foldergives a mod’s config folder.BlockChangedCallback(experimental): server-side event afterLevel#setBlockchanges 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.ConfigFileadds 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.
MobControl.avoidand theavoidandfleereactions: 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.attackand thedefendandjoin_attackreactions: 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.
- 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.
Stope 1.2.0
Section titled “Stope 1.2.0”Mob groups, mob control, and a trigger-to-reaction vocabulary, for Strength In Numbers. Nothing changes in game until a mod uses them.
MobHurtCallback,MobKilledCallback,MobTargetChangedCallback,AnimalBredCallback,MobGroupChangedCallback,ReactionStartedCallback(experimental): server-side mob, group, and reaction events.MobGroups,GroupDefinition,MobGroup,LeaderChoice(experimental): same-type mob groups with leaders, centers, and loss tracking;MobGroups.anyInLineOfFiretells whether a grouped mob stands between a shooter and its target.MobControl,TargetVeto(experimental): alarm, avoid, attack, move, hold, and calm any mob, whether it runs goals or a brain;MobControl.isEngagedtells whether a mob has an attack target;MobControl.moveStoppedShorttells whether its last move ended short of an unreachable point;MobControl.leaplaunches a mob into a hop;alarmcan take a speed. A held or moving goal mob does not attack. A move to a point the mob cannot reach ends once it has walked as close as a path gets. Moving orders stop horses eating. An attack order that runs out leaves the target to the mob’s own AI, brain mobs included;calmtakes back everything Stope set.ReactionBinding,Reactions,Triggers,Reaction,ReactionContext,ReactionParams,EntityMatcher(experimental): bindings from JSON, reaction and trigger registries, and the primitive reactionsflee(with optionalspeedanddirection),avoid,defendandjoin_attack(with optionalrelease),follow_leader.PlayerGuide(experimental): copies a guide shipped in a mod’s jar to its config folder, refreshed whenever the guide changes.SettingsScreen(experimental, client): a settings screen built from toggles, number fields, and headings, with Done and Cancel; Done can apply changes on the hosted server’s thread. Escape with unsaved changes asks to save, discard, or keep editing. Now suggests Mod Menu.- Now requires the Fabric API modules
fabric-entity-events-v1andfabric-lifecycle-events-v1.
- New
api-sourcesjar holding only the public API sources, published to Maven and attached to the Modrinth upload. checknow runs strict Javadoc linting on the API package and a scan for AI-tool references in source files.
- Complete Javadoc on every public API type and member, including thread and side rules.
Stope 1.1.0
Section titled “Stope 1.1.0”MobFootfallCallback(experimental): server-side event when a mob’s feet land on a block. Mobs ridden by a player report throughPlayerMountFootfallCallbackinstead.
Stope 1.0.0
Section titled “Stope 1.0.0”First release.
PlayerFootfallCallback(experimental): server-side event when a player’s feet land on a block.PlayerMountFootfallCallback(experimental): the same for a living mount a player rides.StopeSavedData.getOrCreate(experimental): per-dimension saved data.DataReloaders.register(experimental): data-pack reload handler.VanillaBlocks.shortGrass(experimental): short grass plant across the 1.20.3 rename.