Detached Free Camera (Freecam / FreeLook)

Freecam_Camera_Detached Render / ESP HIGH +7 score

🎮 Minecraft Gameplay Impact

In Minecraft, the rendered viewpoint is anchored to the player entity. Every frame, Camera.update() recalculates camera position and orientation based on player coordinates, eye height, and view angles, while clipToSpace() prevents third-person cameras from clipping through solid geometry.

Freecam_Camera_Detached flags modifications that hook into Camera (class_4184) to detach the rendering perspective from the player body. In the inspected cheat module from com.larpclient.mixin.CameraFreecamMixin, @Inject targets the TAIL of Camera.update() (method_19321). When FreecamModule is active, the mixin overrides the camera's orientation with this.method_19325(freecam.getInterpolatedYaw(), freecam.getInterpolatedPitch()) and its world coordinates with this.method_19322(freecam.getInterpolatedPos()).

This allows the player to pilot an invisible detached viewpoint freely through solid walls and terrain to scout enemy bases, hidden underground chests, and caves, all while the real player character remains stationary on the server.

🔍 Functions & APIs Analyzed

@Mixin(Camera.class / class_4184)

SpongePowered Mixin hook targeting Minecraft's camera perspective controller.

Camera.setRotation / method_19325

Directly overrides camera pitch and yaw angles independently of player look direction.

Camera.setPos / method_19322

Directly updates camera coordinates, allowing the viewport to detach and fly through blocks.

⚙️ Decompiled Representation (Vineflower View)

@Inject(method = "method_19321", at = @At("TAIL"))
private void larpclient$freecam(class_1937 level, class_1297 entity, boolean detached, boolean thirdPersonReverse, float partialTick, CallbackInfo ci) {
   FreecamModule freecam = FreecamModule.get();
   if (freecam != null && freecam.isActive()) {
      this.method_19325(freecam.getInterpolatedYaw(partialTick), freecam.getInterpolatedPitch(partialTick));
      this.method_19322(freecam.getInterpolatedPos(partialTick));
   }
}

🛡️ Bytecode Signature & Static Detection

The detector inspects class annotations and method invocations, requiring two concurrent conditions:

  • A @Mixin annotation targeting the camera class: net.minecraft.client.render.Camera or Intermediary net.minecraft.class_4184.
  • A method invocation to camera manipulation methods: setPos (Intermediary method_19322 or method_19325), setRotation (Intermediary method_19325 or method_19327), or collision clipping clipToSpace (method_19318).

The detector identifies modifications that alter the camera perspective at the engine level. If a mod achieves free-camera functionality without touching Camera.class (for example, by spawning a dummy client-side spectator entity and delegating camera focus via vanilla MinecraftClient.setCameraEntity()), this Mixin-specific signature will not trigger.