Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
FancyPhysics
Realistic player animations using client-side display entities — no real entities spawned.
FancyPhysics replaces vanilla player animations with smooth, physics-driven display entity rigs visible to all nearby players. Every movement is calculated client-side via PacketEvents, giving you fluid, realistic body motion without any server-side entity overhead.
Features
23 Player Animations
- Movement: Idle (breathing), Walk, Sprint, Sneak
- Physics: Jump, Fall, Land
- Combat: Attack, Shield Block, Bow Draw, Crossbow, Trident, Fishing Rod, Use Item, Totem
- Actions: Block Break (mining arm swing), Tree Fall (dramatic topple)
- States: Swim, Crawl, Climb, Elytra, Death, Respawn
10-Bone Player Rig
Head, Body, Left Arm, Right Arm, Left Forearm, Right Forearm, Left Leg, Right Leg, Left Foot, Right Foot — each bone animated independently with weighted blending.
Smooth Blending
Weight-based animation layers blend naturally between states. Walk transitions smoothly into sprint, attacks overlay on movement, and physics states layer on top.
Distance Culling
Automatic visibility management — rigs only render for players within configurable range to keep performance high.
Bedrock Edition Support
Full compatibility with GeyserMC + Floodgate. Bedrock players see a reduced 6-bone rig optimized for cross-platform rendering.
Hot Reload
Change animation settings, blend speeds, and render distances without restarting the server.
Requirements
| Dependency | Version | Type |
|---|---|---|
| Paper | 1.21 – 1.21.11+ | Required |
| Java | 21+ | Required |
| PacketEvents | 2.13.0 | Required (bundled) |
| GeyserMC | Any | Optional |
| Floodgate | 2.2+ | Optional |
Installation
- Download the latest
FancyPhysics-1.0.0-SNAPSHOT.jar - Place it in your server's
plugins/folder - Restart the server
- Edit
plugins/FancyPhysics/config.ymlto customize - Run
/fancyphysics reloadto apply changes
Commands
| Command | Description |
|---|---|
/fancyphysics reload |
Reload the configuration |
/fancyphysics debug |
Toggle debug mode (shows rig data in chat) |
/fancyphysics toggle |
Toggle FancyPhysics on/off |
Permissions
| Permission | Description | Default |
|---|---|---|
fancyphysics.command |
Use /fancyphysics commands | op |
fancyphysics.reload |
Reload configuration | op |
fancyphysics.debug |
Toggle debug mode | op |
fancyphysics.bypass |
Exempt a player from animations | false |
Configuration
animation:
blend-speed: 0.15 # How fast animations blend (0.01 - 1.0)
master-weight: 1.0 # Global animation strength
physics:
enabled: true
velocity-tracking: true
rotation-smoothing: 0.3 # Camera smoothing factor
performance:
max-render-distance: 64 # Max distance to render rigs (blocks)
tick-rate: 20 # Server ticks per second
max-players: 100 # Max tracked players
bedrock:
enabled: true # Geyser/Floodgate compatibility
reduced-bones: true # Use 6 bones instead of 10
How It Works
FancyPhysics intercepts player movement data each server tick and calculates bone positions using physics equations (velocity tracking, rotation smoothing, interpolation). Display entity spawn, teleport, and destroy packets are sent directly to nearby players via PacketEvents — no Bukkit entities are ever created on the server.
Each player gets a 10-bone rig that follows their real position. Animations are layered with configurable weights, blended smoothly, and rendered at the player's location for all observers.
Support
- Issues: GitHub Issues
- Source: GitHub Repository

