i113w's Camera Lib
ModA Lib that provides the RTS Style Camera System which is used by Better Mine Team.
Type
Mod
Modrinth Downloads
206
Modrinth ID
EW4xlj26
Last Updated
Jul 20, 2026
Description
i113w's Camera Lib
A NeoForge 1.21.1 client-side library that provides a complete RTS-style camera system — including camera movement, entity box-selection, right-click command zones, ray casting, and highlight rendering.
Designed to be consumed by other mods (e.g., Better Mine Team) via a thin API layer.
Requirements
Item Version Minecraft 1.21.1 NeoForge 21.1.209+ Java 21 Side Client-onlyImporting the Library
Local JAR (place the JAR in your mod's libs/ directory):
dependencies { implementation files('libs/i113w_camera_lib-0.0.1.jar') }Declare the dependency in META-INF/neoforge.mods.toml:
[[dependencies."your_mod_id"]] modId = "i113w_camera_lib" type = "required" versionRange = "[0.0.1,)" ordering = "BEFORE" side = "CLIENT"Key Interfaces & Classes
CameraLibAPI — singleton entry point
CameraLibAPI api = CameraLibAPI.get(); // Register your delegate api.setInteractionDelegate(new MyDelegate()); // Sync selected entity IDs to the library (drives outline rendering) api.setSelectedEntities(Set<Integer> ids); // Query hovered entity (-1 if none) int id = api.getHoveredEntityId(); // Clear selection and hover state api.clearSelection();IRTSInteractionDelegate — inject business logic
public interface IRTSInteractionDelegate { boolean isSelectable(Entity entity); ResourceLocation getCursorIcon(@Nullable Entity hoveredEntity, boolean isAttackDragging); }Register via CameraLibAPI.get().setInteractionDelegate(impl).
Events (fired on NeoForge.EVENT_BUS)
RTSBoxSelectEvent — left-click or drag-box completed
@SubscribeEvent public static void onSelect(RTSBoxSelectEvent event) { List<Entity> candidates = event.getCandidates(); // pre-filtered by isSelectable() }RTSRightClickEvent — right-click or right-drag completed
@SubscribeEvent public static void onRightClick(RTSRightClickEvent event) { if (event.isDrag()) { List<Entity> targets = event.getDragTargets(); } else { HitResult hit = event.getSingleHitResult(); // BlockHitResult or EntityHitResult } }RTSCameraController — camera state
RTSCameraController cam = RTSCameraController.get(); cam.toggleRTSMode(); // activate / deactivate cam.toggleCameraStyle(); // switch RTS <-> FREE (while active) cam.isActive(); // boolean cam.reset(); // force-exit, use on logout / level unloadCamera Modes
Mode FOV Zoom Yaw Rotation RTS 25° (fixed) Scroll wheel Hold Left Ctrl + drag (snaps by rtsSnapAngle) FREE Standard Scroll wheel (moves forward) Hold Left Ctrl + drag (continuous)Highlight Rendering
The library automatically draws entity outlines when the camera is active. No rendering code is needed in the consumer mod — just keep CameraLibAPI.setSelectedEntities(...) in sync.
Color Condition White Entity ID is in the selected set Yellow Hovered entity (not in selected set)Configuration
Player-adjustable values in .minecraft/config/i113w_camera_lib-client.toml:
Key Default Description rtsPitchMin / Max 35 / 45 Pitch clamp range in RTS mode freePitchMin / Max 10 / 90 Pitch clamp range in FREE mode rtsZoomMin / Max 10 / 80 Zoom distance clamp in RTS mode rtsZoomSpeedMultiplier 3.5 Scroll wheel zoom sensitivity rtsSnapAngle 90 Degrees per yaw snap step freeRotationSpeed 5.0 Mouse yaw sensitivity in FREE mode thresholdPx 20 Edge-pan trigger distance (pixels from screen edge) baseSpeed 1.0 WASD movement speed sprintMultiplier 2.0 Speed multiplier when sprint key is heldLicense
MIT — see LICENSE
Author: i113w
Compatibility
Mod Loaders
Game Versions
Similar Mods
Client Auto Server Joiner
This mod is designed to send players instantly to connect to server as soon as they load the game and on the server-side...
beyondinfintylib
this is the library for superheroes beyond infinity it uses palladium to add superpowers to them
Just Enough Backups (JEB)
Just Enough Backups is a Fabric mod that adds server-side world backups with a usable in-game workflow.
Doormat
Welcome to the entrance of my ideas! Wipe your feet please...
Deep Space
A mod that allows cross-dimensional travel through a space dimension players can interact with.
Jukebox Mutes Music
When a music disc plays, mutes the game music