-
Notifications
You must be signed in to change notification settings - Fork 18
§5. Help
Common problems and how to fix them. If none of this helps, please open an issue with your Minecraft version, loader, and (if server-side) your plugin log.
| Message | Likely cause | What to try |
|---|---|---|
| "Network error" | The stream host is unreachable or timed out | Retry; check your / the server's internet connection |
| "Playback error" | The video decoded incorrectly | Retry, or try a different quality |
| "Video not found" | The link is dead, private, or was deleted | Set a new link |
| "Region-locked" | The video is geo-restricted where the server is hosted | Try a different video / mirror |
| "Timed out" | The source took too long to respond | Retry |
| "Couldn't load this video" | Generic / unknown failure | Retry; if it keeps happening, report it if reporting is enabled, or open an issue |
| "Please do not enter YouTube Kids videos" | YouTube Kids videos can't be played due to YouTube-side restrictions | Use a regular YouTube link instead |
Important
If YouTube is blocked or throttled by your ISP entirely (not just one video) — this affects several countries, including Russia, where the government prefers to decide what its citizens can watch. Use a VPN or proxy at the network level.
Try to disable shaders or update your GPU drivers.
This usually self-corrects within a second or two after a seek or quality change. If it persists:
- Try seeking slightly, which forces a resync
- Report it as a bug with the video link and roughly how far off it drifted — this is actively being tuned
YouTube periodically tightens bot detection, which can temporarily wall off certain quality options. Dream Displays automatically falls back between two independent extraction paths and retries in the background — most of the time this resolves itself within a few minutes. If it's persistent across many videos:
- Make sure you're on the latest plugin/mod version
- Try a different video to confirm it's not just that one link being blocked / region-locked
You tried /display fullscreen ... server <name|global>, but this backend isn't talking to a proxy. Network setup has two halves, and it's usually the first one that's missing:
- On the proxy —
dreamdisplays-velocity-<version>.jar(ordreamdisplays-bungeecord-<version>.jar) has to be in itsplugins/folder, and the proxy restarted afterwards. For example, the mod's Paper jar does not cover this; it's a separate download - On every backend —
[proxy] enabled = trueinconfig.toml, then restart. A backend that was missed stays an island and will keep showing this message even while the others work
If both are in place and it still fails, check that the proxy and the backends are on the same Dream Displays version.
Well, your server has max_displays_per_player set in [display]. Delete an old display, ask an admin to raise the limit, or ask them to grant you dreamdisplays.create.bypass permission. See Permissions.
Direct video links (anything that isn't YouTube / Twitch / Vimeo / Kick — see Supported platforms) are gated by [custom_media] and the dreamdisplays.custom permission. Ask your admin to enable it, allow the host, or grant you the permission.
Run /display reload (needs dreamdisplays.reload), or restart the server. If reload reports a failure, check your TOML syntax — a single misplaced quote or bracket will make the whole file fail to parse.
And never will. Dream Displays is a Java Edition mod for desktop platforms (Windows, macOS, Linux). See #185.
Open an issue on the project's GitHub repository with your Minecraft version, loader (Fabric / NeoForge / Paper), plugin / mod version, and steps to reproduce.
These are JVM system properties for the client mod. They're useful if you're diagnosing a playback or performance issue for yourself or a modpack. Add them as -D flags to your JVM launch arguments (e.g. in your launcher's "JVM arguments" field).
| Property | Effect |
|---|---|
-Ddreamdisplays.native=false |
Disable the native (Rust) media pipeline and force the pure-JVM one |
-Ddreamdisplays.allowPrivateUrls=true |
Disable the SSRF guard so custom media links can resolve to private / loopback addresses |
-Ddreamdisplays.resolve.overlapFallback=false |
Disable the speculative parallel yt-dlp fallback used when YouTube's extractor is walled |
-Ddreamdisplays.warmPark.max=<n> |
Override how many off-screen displays are kept "warm" for instant resume (auto-detected otherwise) |
-Ddreamdisplays.warmPark.replayOnly=true |
Never keep displays fully warm; always fall back to the lighter replay-snapshot cache |
-Ddreamdisplays.warmPark.demoteMs=<n> |
Delay (ms) before a warm display is demoted to a replay snapshot |
-Ddreamdisplays.warmPark.ttlMs=<n> |
How long (ms) a dormant / replay display survives before full teardown |
Caution
allowPrivateUrls disables a security guard (SSRF protection). Only set it if you're intentionally hosting media on a private / internal network — otherwise leave it off.
When you walk away from a display and back, Dream Displays tries to resume instantly instead of re-buffering from scratch, by keeping recently-viewed displays "warm" (decoder + audio kept alive in the background) or, failing that, by replaying a short cached snapshot while it reconnects. The warmPark.* flags above control how aggressive that caching is — raising warmPark.max uses more memory but keeps more displays instantly resumable; lowering it (or replayOnly=true) trades that off for a smaller memory footprint.