Cinematic Camera

โญ โ€” (0 endorsements) ๐Ÿ“ฅ 178 downloads ๐Ÿ“Œ v3 ๐Ÿ“… 4/11/2026
๐ŸŸก Updated this year

By Frqme ยท game-mechanics

โฌ‡ Download Mod Source: Modrinth โ†— ๐Ÿ“… Updated: 4/7/2026 ๐Ÿ“… Created: 4/11/2026

๐Ÿ” Analysis

  • ๐Ÿ† #276 of 313 game-mechanics mods in this game by downloads

๐Ÿ“‹ About This Mod

# ๐ŸŽฌ CinematicCamera Plugin โ€” Full README > A Minecraft (Paper/Spigot) plugin for creating smooth, cinematic camera paths with rotation, speed zones, keyframe effects, and more. --- ## Table of Contents 1. (#quick-start) 2. (#how-it-works--core-architecture) 3. (#commands-reference) 4. (#removing-a-keyframe) 5. (#keyframe-types--full-reference) 6. (#speed-zones) 7. (#auto-play-trigger) 8. (#playback-system--how-it-works-in-code) 9. (#path-interpolation--catmull-rom-splines) 10. (#camera-rotation-interpolation) 11. (#state-management-maps) 12. (#full-workflow-example) 13. (#tab-completion) 14. (https://youtu.be/XeyuTUPXr4E) --- ## Quick Start 1. Run `/cinematicwand` to get the wand item (a Blaze Rod). 2. Walk to a position and **Left Click** to add a waypoint. Your camera's yaw (horizontal rotation) and pitch (vertical rotation) are saved with each waypoint. 3. Add at least 2+ waypoints along your desired path. 4. Run `/cinematic save mypath normal` to save it. 5. Run `/cinematic play mypath` to watch it. --- ## How It Works โ€” Core Architecture The plugin is a single class `CinematicCamera` that extends `JavaPlugin` and implements `Listener`. All state is stored in in-memory `HashMap`/`HashSet` fields (no persistence to disk between restarts). ### Core State Maps | Field | Type | Purpose | |-------|------|---------| | `paths` | `Map<String, CinematicPath>` | All saved cinematic paths, keyed by name | | `editors` | `Map<UUID, PathEditor>` | Active wand sessions per player โ€” holds their unsaved waypoints | | `playingCinematic` | `Set<UUID>` | Players currently watching a cinematic | | `originalGameModes` | `Map<UUID, GameMode>` | Stores each player's gamemode before the cinematic starts so it can be restored | | `activeAnimations` | `Map<UUID, BukkitTask>` | The running `BukkitRunnable` task for each player โ€” used to cancel on stop | | `savedLocations` | `Map<UUID, Location>` | Player's location before cinematic โ€” teleported back on end | | `savedFlying` | `Map<UUID, Boolean>` | Whether the player was flying before โ€” restored on end | | `awaitingClick` | `Set<UUID>` | Players currently paused on a `PAUSE_CLICK` keyframe, waiting for any click | --- ## Commands Reference ### `/cinematicwand` Gives you the Blaze Rod wand item. - **Left Click** (air or block): Adds your current position + rotation as a waypoint - **Right Click**: Shows current waypoint count and how to save - **Shift + Right Click**: Clears all your current unsaved waypoints ### `/cinematic save <name> <speed>` Saves your current waypoints as a named path. **Speed values:** | Input | Multiplier | |-------|-----------| | `slow` or `cinematic` | 0.3x | | `normal` or `medium` | 1.0x | | `fast` | 2.0x | | `veryfast` or `rapid` | 3.5x | | `0.1` โ€“ `5.0` | Custom | ### `/cinematic play <name>` Starts the cinematic for you. Puts you in SPECTATOR mode, applies invisibility, teleports you to waypoint 0, and begins the animation loop. ### `/cinematic stop` Immediately stops the cinematic, cancels the task, removes effects, and teleports you back to your saved location. ### `/cinematic list` Lists all saved paths with their waypoint count, speed, keyframe count, speed zone count, and auto-play status. ### `/cinematic delete <name>` Removes a saved path entirely. ### `/cinematic setspeed <name> <speed>` Changes the base speed multiplier of an existing path. ### `/cinematic toggle <name>` Toggles the auto-play trigger on or off for a path. When on, walking within 1.5 blocks of the first waypoint auto-starts the cinematic. ### `/cinematic clear` Clears your current unsaved wand waypoints (same as Shift+Right Click). ### `/cinematic settitle <name> <title> ` Sets the title shown at the beginning of a cinematic. - Use `|` to separate title and subtitle: `/cinematic settitle mypath Welcome | Enjoy the view` ### `/cinematic addkeyframe <name> <waypointIndex> <type> ` Adds an effect keyframe that triggers when the camera reaches the given waypoint. ### `/cinematic listkeyframes <name>` Lists all keyframes on a path with their index, waypoint, type, and text preview. ### `/cinematic removekeyframe <name> <index>` Removes a keyframe by its list index (shown in `/cinematic listkeyframes`). ### `/cinematic addzone <name> <startWP> <endWP> <speed>` Adds a speed zone between two waypoint indices. Overrides the base speed for that segment. ### `/cinematic listzones <name>` Lists all speed zones on a path. ### `/cinematic removezone <name> <index>` Removes a speed zone by its list index. --- ## Removing a Keyframe This is a 2-step process: **Step 1** โ€” Find the keyframe

# ๐ŸŽฌ CinematicCamera Plugin โ€” Full README

> A Minecraft (Paper/Spigot) plugin for creating smooth, cinematic camera paths with rotation, speed zones, keyframe effects, and more.

## Table of Contents

1. (#quick-start) 2. (#how-it-works--core-architecture) 3. (#commands-reference) 4. (#removing-a-keyframe) 5. (#keyframe-types--full-reference) 6. (#speed-zones) 7. (#auto-play-trigger) 8. (#playback-system--how-it-works-in-code) 9. (#path-interpolation--catmull-rom-splines) 10. (#camera-rotation-interpolation) 11. (#state-management-maps) 12. (#full-workflow-example) 13. (#tab-completion) 14. (https://youtu.be/XeyuTUPXr4E)

## Quick Start

1. Run `/cinematicwand` to get the wand item (a Blaze Rod). 2. Walk to a position and Left Click to add a waypoint. Your camera's yaw (horizontal rotation) and pitch (vertical rotation) are saved with each waypoint. 3. Add at least 2+ waypoints along your desired path. 4. Run `/cinematic save mypath normal` to save it. 5. Run `/cinematic play mypath` to watch it.

## How It Works โ€” Core Architecture

The plugin is a single class `CinematicCamera` that extends `JavaPlugin` and implements `Listener`. All state is stored in in-memory `HashMap`/`HashSet` fields (no persistence to disk between restarts).

### Core State Maps

| Field | Type | Purpose | |-------|------|---------| | `paths` | `Map` | All saved cinematic paths, keyed by name | | `editors` | `Map` | Active wand sessions per player โ€” holds their unsaved waypoints | | `playingCinematic` | `Set` | Players currently watching a cinematic | | `originalGameModes` | `Map` | Stores each player's gamemode before the cinematic starts so it can be restored | | `activeAnimations` | `Map` | The running `BukkitRunnable` task for each player โ€” used to cancel on stop | | `savedLocations` | `Map` | Player's location before cinematic โ€” teleported back on end | | `savedFlying` | `Map` | Whether the player was flying before โ€” restored on end | | `awaitingClick` | `Set` | Players currently paused on a `PAUSE_CLICK` keyframe, waiting for any click |

## Commands Reference

### `/cinematicwand` Gives you the Blaze Rod wand item. - Left Click (air or block): Adds your current position + rotation as a waypoint - Right Click: Shows current waypoint count and how to save - Shift + Right Click: Clears all your current unsaved waypoints

### `/cinematic save ` Saves your current waypoints as a named path.

Speed values: | Input | Multiplier | |-------|-----------| | `slow` or `cinematic` | 0. 3x | | `normal` or `medium` | 1. 0x | | `fast` | 2. 0x | | `veryfast` or `rapid` | 3. 5x | | `0. 1` โ€“ `5. 0` | Custom |

### `/cinematic play ` Starts the cinematic for you. Puts you in SPECTATOR mode, applies invisibility, teleports you to waypoint 0, and begins the animation loop.

### `/cinematic stop` Immediately stops the cinematic, cancels the task, removes effects, and teleports you back to your saved location.

### `/cinematic list` Lists all saved paths with their waypoint count, speed, keyframe count, speed zone count, and auto-play status.

### `/cinematic delete ` Removes a saved path entirely.

### `/cinematic setspeed ` Changes the base speed multiplier of an existing path.

### `/cinematic toggle ` Toggles the auto-play trigger on or off for a path. When on, walking within 1. 5 blocks of the first waypoint auto-starts the cinematic.

### `/cinematic clear` Clears your current unsaved wand waypoints (same as Shift+Right Click).

### `/cinematic settitle [| subtitle]` Sets the title shown at the beginning of a cinematic. - Use `|` to separate title and subtitle: `/cinematic settitle mypath Welcome | Enjoy the view`</p><p>### `/cinematic addkeyframe <name> <waypointIndex> <type> ` Adds an effect keyframe that triggers when the camera reaches the given waypoint.</p><p>### `/cinematic listkeyframes <name>` Lists all keyframes on a path with their index, waypoint, type, and text preview.</p><p>### `/cinematic removekeyframe <name> <index>` Removes a keyframe by its list index (shown in `/cinematic listkeyframes`).</p><p>### `/cinematic addzone <name> <startWP> <endWP> <speed>` Adds a speed zone between two waypoint indices. Overrides the base speed for that segment.</p><p>### `/cinematic listzones <name>` Lists all speed zones on a path.</p><p>### `/cinematic removezone <name> <index>` Removes a speed zone by its list index.</p><p>## Removing a Keyframe</p><p>This is a 2-step process:</p><h4 class="mod-section-title">Step 1 โ€” Find the keyframe</h4></div><div class="ai-enrichment"><span class="ai-label">๐Ÿค– AI-enhanced โ€” based on mod data</span></div></div></section> <section class="mod-stats"><h2>๐Ÿ“Š Mod Details</h2><dl class="stats-grid"> <div><dt>Game</dt><dd>Minecraft Plugins</dd></div> <div><dt>Author</dt><dd>Frqme</dd></div> <div><dt>Version</dt><dd>3</dd></div> <div><dt>Downloads</dt><dd>178</dd></div> <div><dt>Endorsements</dt><dd>0</dd></div> <div><dt>Category</dt><dd>game-mechanics</dd></div> <div><dt>Created</dt><dd>4/11/2026</dd></div> <div><dt>Updated</dt><dd>4/7/2026</dd></div> <div><dt>Game Versions</dt><dd>1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4</dd></div> <div><dt>Tags</dt><dd>game-mechanics, management, utility</dd></div> </dl></section> <section class="mod-install"><h2>๐Ÿ”ง How to Install Minecraft Plugins Mods</h2><div class="install-content"><p>Download from Modrinth. Use Prism Launcher or drop into your mods folder.</p><p>๐Ÿ“– <a href="/minecraft-plugins/install/" style="color:var(--accent);font-weight:600">Full step-by-step install guide for Minecraft Plugins โ†’</a></p><p>Visit the <a href="https://modrinth.com/mod/cinematic-camera" rel="nofollow noopener" target="_blank">official mod page</a> for specific installation instructions for this mod.</p><p style="margin-top:.5rem;font-size:.85rem">๐ŸŽฎ Need cheat codes or console commands? Check <a href="https://urgamingwiki.com/" target="_blank" rel="noopener">ur gaming wiki</a> for Minecraft Plugins commands, item IDs, and more.</p></div></section> <section class="mod-faq"><h2>โ“ Frequently Asked Questions</h2><details class="faq-item" open><summary>Which Minecraft Plugins versions does Cinematic Camera support?</summary><p>The author lists 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5. Other versions may work but are untested by the author.</p></details><details class="faq-item"><summary>What is the latest version of Cinematic Camera?</summary><p>Version 3, published 2026-04-07 with 178 downloads recorded at the source.</p></details></section> <section class="mod-related"><h2>๐Ÿ”— You Might Also Like</h2><div class="related-group"><h4>๐Ÿ“ฆ More game-mechanics Mods</h4><div class="related-grid"><a href="/minecraft-plugins/totembarrelplugin/" class="related-mod-link"><span class="related-mod-name">TotemBarrelPlugin</span><span class="related-mod-meta">347 dl ยท game-mechanics</span></a><a href="/minecraft-plugins/easy-anvils-by-hexafoxx/" class="related-mod-link"><span class="related-mod-name">Easy Anvils by HexaFoxx</span><span class="related-mod-meta">347 dl ยท game-mechanics</span></a><a href="/minecraft-plugins/arabic-fixer-for-bedrock/" class="related-mod-link"><span class="related-mod-name">Arabic Fixer for Bedrock</span><span class="related-mod-meta">339 dl ยท game-mechanics</span></a><a href="/minecraft-plugins/cmspeed/" class="related-mod-link"><span class="related-mod-name">CustomMinecartSpeed</span><span class="related-mod-meta">334 dl ยท game-mechanics</span></a></div></div><div class="related-group"><h4>๐Ÿ”Ž Similar Mods (by tags)</h4><div class="related-grid"><a href="/minecraft-plugins/time-limiter/" class="related-mod-link"><span class="related-mod-name">Time Limiter</span><span class="related-mod-meta">347 dl ยท bukkit</span></a><a href="/minecraft-plugins/anyfortune/" class="related-mod-link"><span class="related-mod-name">AnyFortune</span><span class="related-mod-meta">342 dl ยท bukkit</span></a><a href="/minecraft-plugins/viperx/" class="related-mod-link"><span class="related-mod-name">ViperX</span><span class="related-mod-meta">316 dl ยท bukkit</span></a><a href="/minecraft-plugins/ultimate-auth/" class="related-mod-link"><span class="related-mod-name">ULTIMATE AUTH</span><span class="related-mod-meta">308 dl ยท bukkit</span></a></div></div><div class="related-group"><h4>๐Ÿ”ฅ Popular in Minecraft Plugins</h4><div class="related-grid"><a href="/minecraft-plugins/cauthon-sit/" class="related-mod-link"><span class="related-mod-name">Cauthon Sit</span><span class="related-mod-meta">352 dl ยท bukkit</span></a><a href="/minecraft-plugins/vanish-plugin/" class="related-mod-link"><span class="related-mod-name">Vanish Plugin</span><span class="related-mod-meta">349 dl ยท paper</span></a><a href="/minecraft-plugins/scoreboardy-api/" class="related-mod-link"><span class="related-mod-name">ScoreboardY-api</span><span class="related-mod-meta">347 dl ยท bukkit</span></a><a href="/minecraft-plugins/custom-shop/" class="related-mod-link"><span class="related-mod-name">Custom Shop</span><span class="related-mod-meta">342 dl ยท economy</span></a></div></div></section> <section style="text-align:center;padding:1.5rem 0;border-top:1px solid var(--border);margin-top:1rem"> <p style="color:var(--text-muted);font-size:.85rem;margin-bottom:.75rem">Keep browsing โ€” more Minecraft Plugins mods await</p> <div style="display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center"> <a href="/minecraft-plugins/" class="btn-secondary">๐Ÿ“‹ All Minecraft Plugins Mods</a> <a href="/minecraft-plugins/top/" class="btn-secondary">๐Ÿ† Top 25</a> <a href="/minecraft-plugins/c/game-mechanics/" class="btn-secondary">๐Ÿ“‚ More game-mechanics</a> <a href="/minecraft-plugins/author/Frqme/" class="btn-secondary">๐Ÿ‘ค More by Frqme</a> <a href="/minecraft-plugins/cinematic-camera/similar/" class="btn-secondary">๐Ÿ”Ž Similar Mods</a> <a href="/best/game-mechanics/" class="btn-secondary">๐ŸŒ Best game-mechanics (All Games)</a> <a href="/minecraft-plugins/compat-check/?a=cinematic-camera" class="btn-secondary">๐Ÿ”€ Check Compatibility</a> <a href="/compare/" class="btn-secondary">โš–๏ธ Compare Mods</a> <a href="/new/" class="btn-secondary">๐Ÿ†• New Mods</a> </div> </section> </article> <div id="collModal" style="display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9999;align-items:center;justify-content:center"> <div style="background:#1a1a1a;border:1px solid #333;border-radius:10px;padding:1.25rem;width:380px;max-width:92vw"> <h3 style="color:#fff;margin:0 0 .75rem">โž• Add to Collection</h3> <div id="collList" style="max-height:240px;overflow:auto;margin-bottom:.75rem"></div> <div style="display:flex;gap:.5rem;margin-bottom:.75rem"> <input id="newCollName" placeholder="New collection name" style="flex:1;background:#111;border:1px solid #333;border-radius:6px;padding:.5rem;color:#fff"> <button onclick="createColl()" style="background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.5rem .75rem;cursor:pointer;font-weight:600;white-space:nowrap">Create</button> </div> <div style="display:flex;justify-content:flex-end"><button onclick="document.getElementById('collModal').style.display='none'" style="background:#333;color:#ccc;border:none;border-radius:6px;padding:.4rem .75rem;cursor:pointer">Close</button></div> </div> </div> <script> (function(){ var CUR={k:"cinematic-camera",t:"Cinematic Camera",gs:"minecraft-plugins",d:178,e:0,p:"https://cdn.modrinth.com/data/3VR11Oq8/3a888405c55b86090ca7cd1cc0fafd73681e87b5_96.webp"}; function uuid(){var u=localStorage.getItem('dm_uuid');if(!u){u=(window.crypto&&crypto.randomUUID?crypto.randomUUID():'u'+Math.random().toString(36).slice(2)+Date.now().toString(36));localStorage.setItem('dm_uuid',u)}return u} function colls(){try{return JSON.parse(localStorage.getItem('dm_colls')||'[]')}catch(e){return[]}} function saveColls(c){localStorage.setItem('dm_colls',JSON.stringify(c))} function post(path,body){return fetch(path,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(Object.assign({uuid:uuid()},body))}).then(function(r){return r.json()})} window.openCollModal=function(){ var c=colls();var box=document.getElementById('collList'); box.innerHTML=c.length?c.map(function(x){return '<button onclick="addToColl(''+x.id+'')" style="display:block;width:100%;text-align:left;background:#222;border:1px solid #333;border-radius:6px;padding:.6rem .75rem;margin-bottom:.4rem;color:#ddd;cursor:pointer">๐Ÿ“ฆ '+x.name.replace(/</g,'<')+'</button>'}).join(''):'<p style="color:#888;font-size:.85rem">No collections yet. Create one below.</p>'; document.getElementById('collModal').style.display='flex'; }; window.createColl=function(){ var n=document.getElementById('newCollName').value.trim();if(!n)return; post('/api/collection/create',{name:n,game:"Minecraft Plugins"}).then(function(col){ if(col.error){alert(col.error);return} var c=colls();c.push(col);saveColls(c); addToColl(col.id); }); }; window.addToColl=function(id){ post('/api/collection/add',{collId:id,mod:CUR}).then(function(r){ if(r.error){alert(r.error);return} alert('Added to collection ('+r.count+' mods)'); document.getElementById('collModal').style.display='none'; }); }; })(); </script> </main><footer class="site-footer"><div class="footer-inner"> <div class="footer-col"><h3>Top Games</h3><ul> <li><a href="/news/">Modding News</a></li> <li><a href="/skyrim/">Skyrim Mods</a></li><li><a href="/fallout-4/">Fallout 4 Mods</a></li> <li><a href="/cyberpunk-2077/">Cyberpunk 2077 Mods</a></li> <li><a href="/baldurs-gate-3/">BG3 Mods</a></li> <li><a href="/stardew-valley/">Stardew Valley Mods</a></li> </ul></div> <div class="footer-col"><h3>More Games</h3><ul> <li><a href="/starfield/">Starfield Mods</a></li><li><a href="/witcher-3/">Witcher 3 Mods</a></li> <li><a href="/elden-ring/">Elden Ring Mods</a></li><li><a href="/rdr2/">RDR2 Mods</a></li> <li><a href="/gta-v/">GTA V Mods</a></li> </ul></div> <div class="footer-col"><h3>Discover</h3><ul> <li><a href="/search">Search Mods</a></li><li><a href="/skyrim/">Skyrim Mods</a></li><li><a href="/new/">New Mods</a></li><li><a href="/players/">Live Player Counts</a></li><li><a href="/servers/">Game Servers</a></li><li><a href="/blog/">Modding Blog</a></li><li><a href="https://urgamingwiki.com/" target="_blank" rel="noopener">๐ŸŽฎ Gaming Wiki โ†’</a></li> </ul></div> </div><div class="footer-bottom"><p>ยฉ 2026 discovermods.com โ€” Not affiliated with any game publisher. All trademarks belong to their respective owners.</p></div></footer> <script>(function(){var p=null;function show(e){var c=e.target.closest('.mod-card');if(!c)return;var im=c.querySelector('.mod-card-img img');if(!im||!im.src)return;if(!p){p=document.createElement('div');p.className='mod-preview';document.body.appendChild(p);}var t=c.querySelector('h3'),m=c.querySelector('.mod-card-meta');p.innerHTML='<img src="'+im.src+'"><div class="mp-title">'+(t?t.textContent:'')+'</div><div class="mp-meta">'+(m?m.textContent:'')+'</div>';p.style.opacity='1';}function move(e){if(p){p.style.left=(e.clientX+18)+'px';p.style.top=Math.max(8,e.clientY-20)+'px';}}function hide(e){if(e.target.closest('.mod-card')){if(p)p.style.opacity='0';}}document.addEventListener('mouseover',show);document.addEventListener('mousemove',move);document.addEventListener('mouseout',hide);})();</script><script>window.toggleNsfw=function(on){document.querySelectorAll('[data-nsfw="1"]').forEach(function(el){el.style.display=on?'':'none';});};document.querySelectorAll('[data-nsfw="1"]').forEach(function(el){el.style.display='none';});</script></body></html>