ConditionalVideos: Event-Driven Cinematic Playback for Minecraft
Most Minecraft servers struggle to make big moments feel big. A player kills the Ender Dragon, and the chat gets a line of text. Someone dies to a creeper for the tenth time, and nothing changes. ConditionalVideos fixes that gap by tying video playback directly to in-game events, turning ordinary triggers into short cinematic beats that players actually remember.
What ConditionalVideos Actually Does
ConditionalVideos is a client-and-server add-on that watches for specific conditions, then tells the right player to play a video. The server handles detection, the client handles playback. That split matters, because it means the mod works in singleplayer, on a LAN world, and on a fully dedicated multiplayer server without rewriting your setup for each case.
The result is a system where you configure a condition once and let it fire whenever it matters. Story maps, quest packs, roleplay servers, and SMPs with a bit of flair all benefit from the same mechanic: a video plays exactly when the moment lands.
Supported Minecraft Versions and Loaders
Version coverage is broad, which is rare for a mod that touches rendering and networking at the same time.
- Minecraft 1.20.1 — Fabric and Forge 17+
- Minecraft 1.21.1 — Fabric and NeoForge 21+
- Minecraft 1.21.11 — Fabric and NeoForge 21+
- Minecraft 26.1.2 — Fabric and NeoForge 25+
- Minecraft 26.2 — Fabric and NeoForge 25+
On 26.2 the game can run with either renderer. Videos play on both, but Vulkan support is still experimental, and since Minecraft ships that renderer as an opt-in preview, OpenGL remains the safer pick if you run into trouble. Client-side requirements include WATERMeDIA: Multimedia API, WATERMeDIA: Native Binaries, and Fabric API if you are on Fabric.
The Trigger Types You Can Wire Up
Simple Conditions
These use a single config key and cover the most common cinematic moments.
- firstJoin — fires when a player enters the world or session, and always takes priority over other conditions during world load.
- playerDeath — a fallback cinematic for any death.
- totemUsed — plays when a Totem of Undying saves someone.
- bedSleep — triggers as a player starts sleeping.
Keyed Conditions
Keyed conditions use a map of id to condition, so you can target specific entities, items, dimensions, and advancements.
- deathByEntity — a death caused by a specific killer entity, overriding playerDeath.
- entityKilled — the player defeats a configured entity.
- advancementCompleted — a chosen advancement is finished.
- dimensionChanged — the player enters a configured dimension.
- itemObtained and itemCrafted — separate detectors, so a crafted item and a picked-up item can trigger different clips.
- recipeUnlocked — a recipe is newly unlocked in the recipe book.
- scoreboard — a player's score satisfies a comparator such as equal, less, greater, lessOrEqual, or greaterOrEqual.
- custom — no built-in detector, fired only through the public API or the play command.
Scoreboard conditions are edge-triggered. A satisfied comparison fires once and only re-arms after it turns false and crosses back to true. Because scores persist with the world, a comparison already satisfied before logout will not re-fire on rejoin.
Video Sources and Playback Features
Source support runs through WATERMeDIA, which means local files, direct URLs, YouTube in high quality, Twitch and Kick clips, TikTok, SoundCloud, and plenty more. Each condition holds a playlist of VideoEntry objects, and every entry can carry its own title overlay, description, text scale, background color, opacity, and volume.
Transitions are handled per entry: cut swaps frames instantly, while fadeOut/In crossfades between clips. A nextAt value lets you cut to the next entry at a precise timestamp instead of waiting for the video to end. There is also a playback queue, so overlapping triggers play in sequence rather than interrupting each other.
If you would rather skip the manual file juggling, the foxygame.net launcher offers a one-click install path for ConditionalVideos and keeps the mod aligned with your selected loader and game version, which saves a fair amount of trial and error when you run multiple profiles.
How to Install ConditionalVideos
Setup is straightforward once your loader is in place.
- Install the correct loader for your Minecraft version, either Fabric, Forge, or NeoForge.
- Add WATERMeDIA: Multimedia API and WATERMeDIA: Native Binaries to your mods folder, plus Fabric API if you are on Fabric.
- Place the ConditionalVideos jar in the same mods folder.
- Launch the game once to generate the config files, then edit them to match your content.
Three config files matter here. The client and singleplayer rules live in config/conditionalvideos.json, the authoritative server rules live in config/conditionalvideos-server.json, and client playback behavior lives in config/conditionalvideos-common.json. On a dedicated server, treat the server file as the source of truth. Local video files are shipped to clients automatically and cached for reconnects, while URLs stream directly on each client.
Config safety deserves a mention. A single malformed entry never wipes the file. Entries are parsed leniently, so a bad one is skipped and logged while every valid entry is kept. On a JSON syntax error the file is left untouched and defaults are used only in memory for that session, letting you fix a typo without losing your work.
Server Commands and Developer API
Permission level 2 and above, including command blocks, operators, and the server console, can run /conditionalvideos play, stop, and pause against target players. The play command forces a condition to fire while ignoring the once-per-session gate, which is useful for testing or scripted events. Condition keys use a bare key for simple conditions or a type/key form for keyed ones, such as entityKilled/minecraft:warden or scoreboard/kills.
For mod developers, a small public API in the org.mateof24.conditionalvideos.api package allows registering custom conditions and controlling playback from other mods. UI strings ship in en_us, es_es, es_ar, and es_mx, and more locales can be added through a resource pack.
Final Thoughts
ConditionalVideos solves a specific problem well: making Minecraft events feel like they matter. The condition list is deep enough for serious servers, the playlist and transition system gives real control over pacing, and the lenient config parsing means a typo will not cost you an evening of work. If you want cinematic feedback without building a custom mod, download ConditionalVideos, pair it with WATERMeDIA, and start with firstJoin and playerDeath before expanding into keyed conditions.