MovieTheatreCore is a commercial, closed-source multi-room cinema plugin for Minecraft servers. It lets you build theatres with multiple screens, schedule shows, and stream media across your network with reliable, container-friendly dependency management.
See the full MovieTheatreCore User Guide for installation, setup, and command examples.
MovieTheatreCore is proprietary software owned by 650a. Usage is licensed per server/network and is subject to the terms in LICENSE. License violations void permission to use the software. No redistribution, resale, modification, or public forks are permitted.
- Licensed per server or network instance.
- Reverse engineering, modification, redistribution, resale, and public forks are prohibited.
- Personal backups are permitted for recovery purposes only.
- License violations immediately terminate permission to use the software.
MovieTheatreCore is distributed only through official marketplace listings. Installations must comply with both the MovieTheatreCore license and the SpigotMC / BuiltByBit marketplace terms.
- Multi-room theatres with scheduled shows and audience zones.
- Screen, media, and playback management from a single command surface.
- Automatic, offline-friendly dependency installer for ffmpeg/ffprobe/yt-dlp/deno.
- Automatic resource pack generation with a single rolling pack for all media.
- Compatible with Minecraft 1.8.8 (Java 17) through the latest releases.
MovieTheatreCore enforces permissions on every command and GUI action:
movietheatrecore.command— Access/mtc.movietheatrecore.admin— Reload and admin tool access (/mtc admin).movietheatrecore.screen.manage— Create/delete screens and change scale.movietheatrecore.playback— Play/pause/stop playback.movietheatrecore.media.manage— View/manage cached media entries.movietheatrecore.media.admin— Add/remove media URLs and play direct URLs.
-
Install the plugin jar
- Download from the official marketplace listing and place
MovieTheatreCore-<version>.jar(orMovieTheatreCore.jar) inplugins/.
- Download from the official marketplace listing and place
-
Disk space
- Minimum free space: 512 MB (configurable via
dependencies.install.min-free-mb). - Recommended: 2 GB+ free to allow ffmpeg/ffprobe downloads and media cache growth.
- Minimum free space: 512 MB (configurable via
-
Start the server once
- MovieTheatreCore will create
plugins/MovieTheatreCore/and install runtime binaries into:plugins/MovieTheatreCore/runtime/bin(default)- If the plugin folder is mounted
noexec, it falls back to the exec-safe path independencies.install.exec-directory(default:/home/container/MovieTheatreCore/runtime/bin).
- Temporary files are written to
plugins/MovieTheatreCore/tmp(oradvanced.tmp-dir).
- MovieTheatreCore will create
-
Verify dependencies
- Run
/mtc deps statusto confirm ffmpeg/ffprobe/yt-dlp/deno.
- Run
-
Configure the public pack URL (required for audio)
- Create a pack subdomain (e.g.,
pack.yourdomain.example) with HTTPS. - Terminate HTTPS with NGINX + certbot.
- Set it in
configuration.yml:pack: public-base-url: "https://pack.yourdomain.example"
- Use the base HTTPS URL (no trailing slash required). The plugin appends
/pack.zip. - The pack will be served at
https://pack.yourdomain.example/pack.zip. - See docs/USER_GUIDE.md for the full NGINX + certbot example.
- Create a pack subdomain (e.g.,
- Install the plugin into
plugins/and start the server. - Dependency installer will stage binaries in
plugins/MovieTheatreCore/runtime/bin. - Confirm with
/mtc deps statusand proceed to create screens.
If YouTube playback is blocked, export cookies from your browser and save them as:
plugins/MovieTheatreCore/youtube-cookies.txt
MovieTheatreCore will warn you if the cookies are expired and continue to run yt-dlp in tiered mode.
MovieTheatreCore automatically extracts audio for new media and builds a single rolling resource pack. Players download it from:
https://pack.yourdomain.example/pack.zip
Set the public pack URL in configuration.yml:
pack:
public-base-url: "https://pack.yourdomain.example"The built-in pack server can still be used internally, but the public URL must be HTTPS and reachable by players.
Video rendering is always map/itemframe-based and does not depend on the resource pack (audio only).
MovieTheatreCore can automatically download and manage runtime binaries for:
- ffmpeg / ffprobe
- yt-dlp
- deno
These binaries are installed into plugins/MovieTheatreCore/runtime/bin (or the configured exec-safe path) when auto-install is enabled.
MovieTheatreCore ships with an installer for third-party tools, but those binaries are provided by their respective authors. Your use of ffmpeg/ffprobe, yt-dlp, and deno is governed by their own licenses and terms. You are responsible for compliance and any required redistribution notices in your environment.
- Ensure the plugin data directory is on a volume with enough space.
- Increase free space or lower caches.
- Adjust
dependencies.install.min-free-mbif you have limited disk. - Set
advanced.tmp-dirto a larger, persistent disk path (avoid small/tmptmpfs volumes).
- If the plugin folder is mounted
noexec, MovieTheatreCore falls back todependencies.install.exec-directory. - Make sure the fallback path supports execution and is writable.
- You can override it in
configuration.yml:
dependencies:
install:
exec-directory: "/home/container/MovieTheatreCore/runtime/bin"- Confirm
pack.public-base-urlis set to a public HTTPS pack URL. - Run
/mtc debug packto see pack size, SHA1, and curl test output. - Verify the pack URL returns a ZIP:
curl -I https://your-pack-domain.example/pack.zip
- Ensure a player is within render range (
general.maximum-distance-to-receive). - Run
/mtc debug screen <screenName>for per-screen details. - Confirm item frames still exist and the screen was not broken.
- Ensure the update URL is set to the official marketplace download endpoint.
- Run
/mtc update checkto see the URL and status. - If you do not want auto-updates, set
general.auto-update: false.