FPModel x Compat
A technical compatibility layer for First Person Model (FPM) that keeps first-person body rendering stable when used with combat, animation, spellcasting, roll, accessory, and cosmetic mods.
The goal is simple: your first-person body should stay aligned with the camera, avoid visual clipping, and hide obstructive head/accessory cosmetics only for you, while keeping them visible in third-person and for other players.
Compatibility Recommendation
If you use Better Combat with EMF-based player animation/resource packs such as Fresh Animations Player or Fresh Moves, installing Entity Player Compat is recommended to fix animation conflicts.
Compatibility & Integrations
Combat & Gameplay
-
- Synchronizes arm rotations and body offsets with camera pitch during attack animations.
- Detects active combat animation phases for smoother first-person rendering.
-
- Extends first-person alignment fixes to spell-casting poses.
- Helps hands, weapons, and staves follow the player’s view more naturally.
-
- Stabilizes first-person body rendering during rolls.
- Prevents camera clipping and visual jitter during movement transitions.
-
- First Person Model Priority: Prevents Punchy's FPM integration from blocking First Person Model body rendering when Punchy is disabled or when its FPM hide angle is set to
never. - Animation State Restoration: Restores Better Combat and Spell Engine first-person animation settings after Punchy's runtime hooks disable them.
- First Person Model Priority: Prevents Punchy's FPM integration from blocking First Person Model body rendering when Punchy is disabled or when its FPM hide angle is set to
Accessories, Equipment & Cosmetics
-
- Hides head-related accessory slots in first-person, such as head, hat, face, mask, and goggles.
- Keeps accessories visible in third-person and for other players.
-
Curios API (NeoForge)
- Applies the same first-person head-slot hiding behavior to Curios-based equipment.
-
- Hides head-related Essential cosmetics in first-person when FPM renders the local player body.
- Keeps Essential cosmetics visible in third-person and for other players.
- Supported on both Fabric and NeoForge.
-
Relics (NeoForge)
- Adds custom renderer fixes for Relics items such as the Piglin Mask and Chef’s Hat.
-
- Hides scarf-style renderers in first-person while allowing other artifacts to render normally.
Configuration
The mod includes an ignoredAccessorySlots option that controls which accessory/cosmetic slot names are hidden in first-person.
Project Goal
FPModel x Compat started as a bridge between First Person Model and Better Combat, but it is growing into a broader compatibility hub for first-person rendering.
Have a mod you want to see integrated?
Please open an Issue and tell us which mod integration you're looking for! We will evaluate and work on bringing it to life.
How to Install First Person Model Compat (Mod)
First Person Model Compat by Kaokod is verified for Fabric, Neoforge across Minecraft versions 1.21.1 (latest release: 1.2.1, file size: 149 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.21.1) and platform (Fabric, Neoforge).
- Make sure you have the compatible loader or environment installed for Fabric, Neoforge.
- Move the downloaded First Person Model Compat file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- Updated Dependencies:** Mods like better combat are optional now and the mod will not crash if they are not installed.
- Updated Dependencies:** Mods like better combat are optional now and the mod will not crash if they are not installed.
- Punchy Compatibility:** Added optional integration for **Punchy** on Fabric and NeoForge.
- First Person Model Priority:** When Punchy is disabled, its FPM activation handler no longer blocks First Person Model body rendering.
- Animation State Restoration:** Restores Better Combat and Spell Engine first-person animation state after Punchy is disabled, preventing Punchy's already-registered hooks from keeping external animation mods suppressed.
- FPM Hide Angle Support:** When Punchy's FPM hide angle is set to
never, Punchy is virtually disabled through itsisModEnabledboolean while in first person, letting FPM and Better Combat animation handling keep priority. - Mixin Safety:** Punchy mixins are gated through
CompatibilityRegistry, use optional@Pseudotargets withremap = false, and avoid fragile Minecraft descriptors in injection annotations.
- Punchy Compatibility:** Added optional integration for **Punchy** on Fabric and NeoForge.
- First Person Model Priority:** When Punchy is disabled, its FPM activation handler no longer blocks First Person Model body rendering.
- Animation State Restoration:** Restores Better Combat and Spell Engine first-person animation state after Punchy is disabled, preventing Punchy's already-registered hooks from keeping external animation mods suppressed.
- FPM Hide Angle Support:** When Punchy's FPM hide angle is set to
never, Punchy is virtually disabled through itsisModEnabledboolean while in first person, letting FPM and Better Combat animation handling keep priority. - Mixin Safety:** Punchy mixins are gated through
CompatibilityRegistry, use optional@Pseudotargets withremap = false, and avoid fragile Minecraft descriptors in injection annotations.
- Artifacts Fabric Support:** Moved the Artifacts scarf-hiding integration to common code so it can run on both Fabric and NeoForge.
- Essential Compatibility:** Added optional integration for **Essential** cosmetics on both Fabric and NeoForge.
- First-Person Cosmetic Hiding:** Essential head-related cosmetic slots now respect
ignoredAccessorySlots, hiding them only while FPM renders the local player's body in first person. - Integration Registry:** Centralized runtime bridge initialization and optional mixin detection in a shared
CompatibilityRegistry, so startup diagnostics and mixin gating now use the same source of truth. - Detection Fixes:** Corrected Combat Roll package detection for current versions and improved optional mixin detection for loader-specific integrations and Essential's staged loader.
- Mixin Stability:** Moved the Essential integration to the common mixin config with an optional
@Pseudotarget andremap = false, avoiding hard runtime/build dependencies when Essential is not installed.
- Essential Compatibility:** Added optional integration for **Essential** cosmetics on both Fabric and NeoForge.
- First-Person Cosmetic Hiding:** Essential head-related cosmetic slots now respect
ignoredAccessorySlots, hiding them only while FPM renders the local player's body in first person. - Integration Registry:** Centralized runtime bridge initialization and optional mixin detection in a shared
CompatibilityRegistry, so startup diagnostics and mixin gating now use the same source of truth. - Detection Fixes:** Corrected Combat Roll package detection for current versions and improved optional mixin detection for loader-specific integrations and Essential's staged loader.
- Mixin Stability:** Moved the Essential integration to the common mixin config with an optional
@Pseudotarget andremap = false, avoiding hard runtime/build dependencies when Essential is not installed.
- Major Overhaul:** Complete rewrite of the mod to develop with Fabric and Neoforge. The new architecture allows a better development for both versions.
- Versioning:** Patronized versioning to follow semantic versioning (MAJOR.MINOR.PATCH).
- Major Overhaul:** Complete rewrite of the mod to develop with Fabric and Neoforge. The new architecture allows a better development for both versions.
- Versioning:** Patronized versioning to follow semantic versioning (MAJOR.MINOR.PATCH).
- Configurable Accessory Hiding:** Added a new configuration option
ignoredAccessorySlotsinfpm_bc_compat-client.toml. Users can now customize which accessory slots (e.g., "head", "hat", "mask") are hidden in first-person mode to prevent camera obstruction. - Universal Curios Integration:** Implemented a source-level hiding mechanism for the **Curios API**. This ensures that all head-related accessories from any Curios-compatible mod are automatically hidden when the first-person body is rendered.
- Relics Mod Compatibility:** Added specialized fixes for the **Relics** mod to hide items that use custom renderers, specifically targeting the **Piglin Mask** and **Chef's Hat**.
- Artifacts Mod Compatibility:** Added a targeted fix for **Artifacts** to hide **Scarves** in first-person view. The logic uses texture-path detection to hide only the scarves while allowing other necklace-type items to remain visible.
- Enhanced Hiding Logic:** Refactored accessory hiding to use more stable injection points, improving compatibility across different mod versions and reducing the risk of Mixin application errors.
- Removed EMF Support:** Due to the existence of **Entity Player Compat** mod that solve the EMF compatibility issues.
- Files Renamed:** Files renamed to reflect new project name.
- Updated README to reflect current mod compatibility.
- Update project directory structure / mod id / artifact
- changed neoforge version to 21.1.219 instead of 21.1.221 to support more clients.
- Updated README tasks board with a new task: Support Two hands weapons of bc with EMF models.
- Intelligent Head Hiding:** Added a context-aware visibility system that hides the local player's head and accessories in first-person (supporting custom EMF bone names) while keeping them fully visible for other players and in third-person view.
- Multiplayer Safety:** Refactored all rendering offsets (Torso Z-axis, leg stabilization) to apply exclusively to the local player in first-person, preventing visual glitches on other players.
- Enhanced Logging System:** Added a structured startup banner and unified diagnostic prefixes (
[Bridge],[Lifecycle]) for better troubleshooting. - Improved Initialization:** Implemented explicit initialization for all compatibility bridges to provide immediate feedback on mod detection during startup.
# 0.0.4
- Integrated with Entity Model Features (EMF).
- Implemented a dynamic pause condition for EMF animations during combat actions (attack/roll).
- Broadened model part detection to handle both camelCase and snake_case naming conventions.
- Refactored Better Combat, Spell Engine, and Combat Roll bridges for universal player entity support.
- Optimized state detection logic to improve reliability across all rendered player models.
- Enhanced logging system with a structured startup banner and unified diagnostic prefixes (
[Bridge],[Lifecycle]). - Implemented explicit initialization for all compatibility bridges to provide immediate feedback on mod detection.
- Compatibility with Accessories mod (Curious and Accessories head items).
- Dependency update to NeoForge 1.21.1 using Modrinth Maven repositories.
- Updated Pipeline to automatically download resource packs automatically.
- Changed default config values.
# 0.0.2
- Implementation of dynamic Z-axis scaling to prevent camera arm clipping.
- Optimization of reflection handles (Caching).
- Stability improvements and fine-tuning of default alignment values.
- fix visual bugs between curious/accessories head items rendering on head.
# 0.0.1
- Initial technical release.
- Implementation of dynamic kinematics for arm alignment.
- Added in-game configuration menu via Cloth Config.
- Individual arm offset support (Left/Right).
- Trigonometric curvature and biased smoothing for extreme look angles.