Skip to content

Releases: jasonpsimon/mcgavin-minecraft-spectacam-mod

v1.16.0 — Gradle 9 + MC 26.1.2 support

Choose a tag to compare

@jasonpsimon jasonpsimon released this 24 Apr 19:18

SpectaCam v1.16.0

The "Gradle 9 and Minecraft 26" release.

This one's a structural milestone more than a feature release. v1.15.1 was on the old stack and had 26.1.2 shipping as a mojmap fallback build. v1.16.0 drags the entire build pipeline forward one generation — new Gradle, new Loom, new Stonecutter, new JDK toolchain machinery — and uses that to bring 26.1.2 in as a first-class unobfuscated build alongside the 9 yarn-mapped versions.

What's in the box

10 client-side jars, one per supported Minecraft version:

  • 1.18.2 — spectacam-mc1.18.2-1.16.0+mc1.18.2.jar
  • 1.19.2 — spectacam-mc1.19.2-1.16.0+mc1.19.2.jar
  • 1.19.4 — spectacam-mc1.19.4-1.16.0+mc1.19.4.jar
  • 1.20.1 — spectacam-mc1.20.1-1.16.0+mc1.20.1.jar
  • 1.20.4 — spectacam-mc1.20.4-1.16.0+mc1.20.4.jar
  • 1.20.6 — spectacam-mc1.20.6-1.16.0+mc1.20.6.jar
  • 1.21.1 — spectacam-mc1.21.1-1.16.0+mc1.21.1.jar
  • 1.21.4 — spectacam-mc1.21.4-1.16.0+mc1.21.4.jar
  • 1.21.11 — spectacam-mc1.21.11-1.16.0+mc1.21.11.jar
  • 26.1.2 — spectacam-mc26.1.2-1.16.0+mc26.1.2.jarnew first-class build

Gameplay behavior is unchanged from v1.15.1. Key bindings, the /spectacam command tree, camera modes, orbit/idle cameras, the v1.14.2 jitter fix, and the v1.14.1 third-person visibility fix are all intact across every version.

Why this release matters

MC 26.x without mappings

Minecraft 26.1.2 ships unobfuscated client and server jars. Names are final; there's no yarn layer to resolve against. Getting Loom to skip mapping resolution entirely required three coordinated changes:

  1. Loom ≥1.15.5 — introduces MinecraftJarProcessor.isUnobfuscated() detection
  2. fabric.loom.disableObfuscation=true — set per-version in versions/26.1.2/gradle.properties
  3. Plain implementation in place of modImplementation — when disableObfuscation=true, RemapConfigurations.setupForSourceSet returns early and never creates the mod* configurations, so you use the standard ones instead

Gradle 9 ripple effects

Upgrading Gradle forced a lockstep update on every plugin that looks at its API:

  • Gradle wrapper 8.14 → 9.4.1
  • Fabric Loom 1.13.6 → 1.15.5 (needs Gradle plugin API 9.2+)
  • Stonecutter 0.5.2 → 0.7.11chiseledBuild is auto-registered now; the old stonecutter.registerChiseled { ... } call is gone. Kotlin DSL is preferred upstream but Groovy still works with one cosmetic warning.
  • Foojay resolver 0.10.0 → 1.0.0 — compatibility release that removes the legacy IBM_SEMERU references

Per-version JDK toolchains

A toolchain { languageVersion = JavaLanguageVersion.of(javaMajor) } block in build.gradle, driven by a deps.java property in each per-version gradle.properties, lets Foojay auto-provision the right JDK per build target. MC ≤1.21.x gets JDK 21; MC 26.x gets JDK 25. This sidesteps the fact that Stonecutter's //? if >=26 preprocessor directives don't apply per-version inside a shared centralScript build.gradle.

MC 26.x source port

About 90 compile errors across 5 files, all stonecutter-gated so the yarn builds keep working untouched:

  • KeyBindings.javaKeyBindingKeyMapping, InputUtilInputConstants, KeyBindingHelperKeyMappingHelper, .wasPressed().consumeClick(), overlay message API change
  • SpectaCamCommand.java — Fabric API renamed ClientCommandManager to ClientCommands; kept the command tree readable via local lit()/arg() wrappers rather than gating all 20 call sites. Also MinecraftClientMinecraft, PlayerListEntryPlayerInfo, CommandSource.suggestMatchingSharedSuggestionProvider.suggest
  • CameraMixin.javabiggest single break: Camera.update(BlockGetter, Entity, boolean, boolean, float) collapsed into Camera.update(DeltaTracker) in 26.x. Inject signature rewritten; partial tick now pulled off DeltaTracker.getGameTimeDeltaPartialTick(true). Plus setPossetPosition, and the thirdPerson shadow field is now detached
  • IdleCameraController.javaVec3dVec3
  • SpectatorCameraController.java — the full tour: MinecraftClientMinecraft, ClientPlayNetworkHandlerClientPacketListener, PlayerEntityPlayer, Vec3dVec3, GameModeGameType, client.worldclient.level, world.getPlayers()level.players(), getCameraPosVecgetEyePosition, getPitch/getYawgetXRot/getYRot, client.interactionManagerclient.gameMode, sendChatCommandsendCommand, sendMessage(text, true)sendOverlayMessage(Component)

What hasn't changed

  • No new features
  • No behavior changes on any existing version
  • No config file migration required
  • Same key bindings (F7 cycle mode, = / - zoom, F8 clear target)
  • Same /spectacam command tree

If you're on 1.21.4 or any other yarn version that worked in v1.15.1, drop in the matching v1.16.0 jar and you're done.

Install

  1. Install Fabric Loader 0.16.9+
  2. Install Fabric API 0.110.0+
  3. Drop the matching jar into your mods/ folder
  4. Launch with the correct MC version

Client-side only. No server install needed.

Requirements by version

MC Java
1.18.2 – 1.20.4 Java 17
1.20.5 – 1.21.x Java 21
26.1.2 Java 25

Only required for running the mod; the build system now auto-provisions the right JDK via Foojay toolchains so contributors don't have to manage multiple JDKs manually.

Known cosmetic warnings (all benign)

  • Stonecutter 0.7+ prefers Kotlin DSL — one Groovy DSL warning on build
  • Gradle 9.4.1 flags some deprecations that will be removed in Gradle 10 — none are in this project's code

SpectaCam v1.15.1

Choose a tag to compare

@jasonpsimon jasonpsimon released this 24 Apr 18:28

SpectaCam v1.15.1

Adds support for three additional Minecraft versions: 1.18.2, 1.19.2, and 1.21.11.

Supported Minecraft versions

MC version Fabric API Jar
1.18.2 0.77.0+1.18.2 spectacam-mc1.18.2-1.15.1+mc1.18.2.jar
1.19.2 0.77.0+1.19.2 spectacam-mc1.19.2-1.15.1+mc1.19.2.jar
1.19.4 0.87.2+1.19.4 spectacam-mc1.19.4-1.15.1+mc1.19.4.jar
1.20.1 0.92.8+1.20.1 spectacam-mc1.20.1-1.15.1+mc1.20.1.jar
1.20.4 0.97.3+1.20.4 spectacam-mc1.20.4-1.15.1+mc1.20.4.jar
1.20.6 0.100.8+1.20.6 spectacam-mc1.20.6-1.15.1+mc1.20.6.jar
1.21.1 0.116.11+1.21.1 spectacam-mc1.21.1-1.15.1+mc1.21.1.jar
1.21.4 0.119.4+1.21.4 spectacam-mc1.21.4-1.15.1+mc1.21.4.jar
1.21.11 0.141.3+1.21.11 spectacam-mc1.21.11-1.15.1+mc1.21.11.jar

All versions require Fabric Loader 0.19.2+ and the matching Fabric API release.

Install

Download the jar matching your Minecraft version and drop it in .minecraft/mods/. Requires Fabric Loader and Fabric API.

Usage

/spectacam target <player>

Keybinds (rebindable in-game): F7 cycle mode, =/- zoom, F8 stop.

Modes: First Person, Third Person, Orbit, and a creative fly-around when the target is offline.

v1.15.0 — Multi-version support (6 Minecraft versions)

Choose a tag to compare

@jasonpsimon jasonpsimon released this 24 Apr 16:02

SpectaCam v1.15.0 — Multi-version support

First multi-version release. Previously 1.21.4-only; now ships jars for 6 Minecraft versions, built in a single pass via Stonecutter + Fabric Loom.

Supported Minecraft versions

MC version Java Download
1.19.4 17 spectacam-mc1.19.4-1.15.0+mc1.19.4.jar
1.20.1 17 spectacam-mc1.20.1-1.15.0+mc1.20.1.jar
1.20.4 17 spectacam-mc1.20.4-1.15.0+mc1.20.4.jar
1.20.6 21 spectacam-mc1.20.6-1.15.0+mc1.20.6.jar
1.21.1 21 spectacam-mc1.21.1-1.15.0+mc1.21.1.jar
1.21.4 21 spectacam-mc1.21.4-1.15.0+mc1.21.4.jar

Pick the jar matching your Minecraft version and drop it in your .minecraft/mods/ folder. Requires Fabric Loader ≥ 0.15.0 and Fabric API.

What's in it

All the v1.14.3 features — camera-lock spectator mod with first-person / third-person / orbit / creative-idle modes, /spectacam command, keybinds — now portable across the six supported MC versions.

No gameplay changes from v1.14.3. This release is purely about expanded version coverage.

Known gaps

Deferred to v1.15.1:

  • MC 1.18.2 — v1 ClientCommandManager API differences
  • MC 1.19.2 — yarn method name differences
  • MC 1.21.11 — requires newer Loom (unpick v3)
  • MC 26.1.2 (2026 snapshot) — requires mojmaps port

Build

./gradlew chiseledBuild

Produces all 6 jars under versions/<mc>/build/libs/.