Sueta

LuigiScreen

1.3.0-alpha.1

Minecraft media screens with live streams, videos and secure in game browser broadcast control.

·Plugin
Tested MC versions
1.21, 26.1, 26.2, 26.3

LuigiScreen

Paper plugin that plays videos, YouTube, live streams, images and GIFs on walls
of maps. Everything runs on the server, players use a normal client.

It's still in alpha, so make a backup before you update and try new builds on a
test server first.

New in 1.3

  • Screens can run at up to 60 FPS, and you can change the FPS of an existing screen
  • Optional HD colours: a small resource pack with a shader that lets maps show many
    more colours. Players who decline it see the normal map colours. Only 1.21.11 for now.
  • Better default dithering, so colours look closer to the source and still parts
    of the picture stop flickering
  • Default size limit raised to 32×18 blocks (576 maps)
  • When you build a screen in Web Studio you can pick a ratio (16:9, 4:3, 21:9, 1:1, 9:16)
    and see the size as a block grid
  • /screen rp enable|disable [player] turns the HD pack off or on for one player
  • Fast, flashing videos play more smoothly

What it can play

  • Video, image and GIF files from plugins/LuigiScreen/media/
  • YouTube, Twitch and other sites through yt-dlp (you can install it from Web Studio)
  • RTMP streams from OBS, with a guided MediaMTX setup
  • MJPEG cameras
  • Images and GIFs from a URL

Sound works through Simple Voice Chat if you have it installed.

Controlling screens

You can do everything from commands, from the in-game menu (/screen menu) or from
Web Studio in the browser, which also works on a phone. /screen web gives you a
one-time login link.

Besides playing something right away you can queue items, pause and skip, and set up
playlists, events, automations, screen groups and voting.

Only the parts of the picture that changed get sent to players. Screens with the same
source share one decoder, decoding stops when nobody is near, and adaptive FPS keeps
big screens from overloading the server. /screen debug shows what's going on.

Getting started

Put the jar in plugins/ and start the server. Look at the top-left block of a wall
and run:

/screen create main 16 9
/screen play main intro.mp4
/screen play main https://www.youtube.com/watch?v=aqz-KE-bpKQ

The HD colours pack is offered to players when they join. Web Studio serves it, so
players need to be able to reach the Web Studio port (or set web-studio.public-url).
You can turn it off with hd-colors.enabled: false in the config.

Requirements

  • Paper 1.21.11 with Java 21, or Paper 26.x with Java 25
  • Windows or Linux server (x86_64)
  • Simple Voice Chat if you want sound
  • MediaMTX and OBS only if you want to stream from OBS

Commands

The screen name can be left out when you only have one screen.

CommandDescription
/screen play <screen> <file|link> [time]Play now, then go back to the program
/screen queue <screen> <file|link> [time]Play after the current item
/screen pause|skip|return <screen>Pause, next item, back to the program
/screen source <screen> [file|link]Show or change the default source
/screen playlist <screen> [name|off]Start or stop a playlist
/screen event <screen> [name|stop]Start or stop an event
/screen on|off <screen|all>Turn screens on or off
/screen list, /screen info <screen>List screens, show details
/screen create <name> [width] [height]Create a screen on the wall you're looking at
/screen clone <screen> <new-name>Copy a screen to the wall you're looking at
/screen remove <screen>Delete a screen
/screen set <screen> fps|distance|private <value>Change screen settings (FPS 0.1 to 60)
/screen rp enable|disable [player]Turn the HD colours pack on or off
/screen web [revoke]Web Studio login link, or log out your sessions
/screen menuIn-game menu
/screen reload, /screen debugReload the config, toggle the debug overlay
/screen obs <situation>Generate a MediaMTX config for OBS
/screen vote <screen> <option>Vote, or vote start|end <screen>

Operators have luigiscreen.admin, which covers everything. There's also a node for
each command (luigiscreen.play, luigiscreen.create, luigiscreen.web and so on).
luigiscreen.rp lets someone switch the pack for other players; everyone can switch
it for themselves. Private screens need luigiscreen.see.<screen>.

Known limitations

  • HD colours only work on 1.21.11 so far
  • No ARM or macOS servers
  • No Folia
  • A big screen at 60 FPS uses a lot of bandwidth, so check /screen debug with real
    players before you raise the limits

Links

Similar projects

Plugin →