Cushion Screens!СкачатьСкачатьСкачать
ВЕРСИИ (3)
release
Cushion Screens!
0.8.127 июл. 2026 г.138Minecraft: 26.3-snapshot-3fabric
Что нового
# Changelog
## 0.8.1
**New**
- `{safemode:true}` attribute for `/cushionscreens video` - loads and plays very long videos in 5-minute chunks instead of decoding the whole file upfront, so they start quickly and don't use huge amounts of memory. Works together with `loop`, `audio`, and `seek` (as the starting point). There's a short pause between chunks while the next one loads, since chunks aren't pre-fetched ahead of time yet.
## 0.8.0
First public release under the CushionScreens name. This version brought a large number of changes on top of the original private fork - grouped by topic rather than by internal build number, since 0.1.0–0.7.0 were never distributed anywhere.
**New commands**
- `/cushionscreens url <link> [{attrs}]` - download and show an image or GIF directly from an http(s) link (detected by file signature, not URL extension).
- `/cushionscreens pause` / `/cushionscreens resume` - freeze and continue the current frame/pattern (and audio) without reloading anything.
- `/cushionscreens maxframes <number>` - configurable cap on how many video frames get decoded (global setting, default 2000).
**New `{attributes}` syntax**
- Options that used to be separate literal flags (`colors=64`, `bake`) are now a single trailing NBT compound, e.g. `{colors:176,loop:true,volume:75,seek:30,scaling:fit}` - same style Minecraft uses for item components.
- `colors`: `16` (default), `17` (16 + one true black), `64` (copper bulb oxidation stages), `80` (64 + a non-glowing variant), `176` (all supported light levels).
- `loop`: video/GIF repeats forever (audio included) instead of stopping on a blank screen after playing once (new default: stop after one play-through).
- `volume`: 0-100, applied via the client's own audio gain control, independent of Minecraft's sound sliders.
- `seek`: start video (and its audio) partway in, using FFmpeg's fast input-side seeking.
- `scaling`: `stretch` (default, unchanged), `crop` (fill without distortion), `fit` (letterbox/pillarbox with black bars).
**Extended color system**
- Every screen now sits on a lit waxed copper bulb by default, so it glows at night even without using an extended color count.
- Colors 64/80/176 place a different light-emitting block under each cushion to unlock extra brightness levels per color; values are based on real in-game color measurements rather than a theoretical brightness curve.
**Persistence & lifecycle**
- A built screen is now remembered across server restarts and rejoining (previously had to be rebuilt every time).
- `bake` (image only): shows the image, then stops tracking those cushions as "the screen" - they become a permanent fixture, untouched by future commands.
**Audio**
- Video can now stream synced audio to players over the network (optionally to specific players/selectors only).
- Audio now stops automatically on disconnect/return to the title screen, and pauses/resumes together with the game's own pause menu (singleplayer only, as expected).
**Fixes**
- Fixed videos silently restarting/looping after roughly 2 minutes regardless of actual length (old hardcoded frame cap).
- Fixed a crash ("Invalid player data") that occurred specifically in creative mode / with cheats enabled, caused by an unregistered custom command argument type.
- Fixed a command parser error when combining `audio` with a target selector and trailing attributes.
**Renaming**
- Project, package, command name, author, and all identifiers changed from the original private fork to CushionScreens / atrixx.
release
Cushion Screens!
0.8.023 июл. 2026 г.13Minecraft: 26.3-snapshot-3fabric
Что нового
# Changelog
## 0.8.0
First public release under the CushionScreens name. This version brought a large number of changes on top of the original private fork — grouped by topic rather than by internal build number, since 0.1.0–0.7.0 were never distributed anywhere.
**New commands**
- `/cushionscreens url <link> [{attrs}]` — download and show an image or GIF directly from an http(s) link (detected by file signature, not URL extension).
- `/cushionscreens pause` / `/cushionscreens resume` — freeze and continue the current frame/pattern (and audio) without reloading anything.
- `/cushionscreens maxframes <number>` — configurable cap on how many video frames get decoded (global setting, default 2000).
**New `{attributes}` syntax**
- Options that used to be separate literal flags (`colors=64`, `bake`) are now a single trailing NBT compound, e.g. `{colors:176,loop:true,volume:75,seek:30,scaling:fit}` — same style Minecraft uses for item components.
- `colors`: `16` (default), `17` (16 + one true black), `64` (copper bulb oxidation stages), `80` (64 + a non-glowing variant), `176` (all supported light levels).
- `loop`: video/GIF repeats forever (audio included) instead of stopping on a blank screen after playing once (new default: stop after one play-through).
- `volume`: 0-100, applied via the client's own audio gain control, independent of Minecraft's sound sliders.
- `seek`: start video (and its audio) partway in, using FFmpeg's fast input-side seeking.
- `scaling`: `stretch` (default, unchanged), `crop` (fill without distortion), `fit` (letterbox/pillarbox with black bars).
**Extended color system**
- Every screen now sits on a lit waxed copper bulb by default, so it glows at night even without using an extended color count.
- Colors 64/80/176 place a different light-emitting block under each cushion to unlock extra brightness levels per color; values are based on real in-game color measurements rather than a theoretical brightness curve.
**Persistence & lifecycle**
- A built screen is now remembered across server restarts and rejoining (previously had to be rebuilt every time).
- `bake` (image only): shows the image, then stops tracking those cushions as "the screen" — they become a permanent fixture, untouched by future commands.
**Audio**
- Video can now stream synced audio to players over the network (optionally to specific players/selectors only).
- Audio now stops automatically on disconnect/return to the title screen, and pauses/resumes together with the game's own pause menu (singleplayer only, as expected).
**Fixes**
- Fixed videos silently restarting/looping after roughly 2 minutes regardless of actual length (old hardcoded frame cap).
- Fixed a crash ("Invalid player data") that occurred specifically in creative mode / with cheats enabled, caused by an unregistered custom command argument type.
- Fixed a command parser error when combining `audio` with a target selector and trailing attributes.
**Renaming**
- Project, package, command name, author, and all identifiers changed from the original private fork to CushionScreens / atrixx.
beta
Cushion Screens! 0.7.0
0.7.022 июл. 2026 г.13Minecraft: 26.3-snapshot-3fabric
Что нового
# CushionScreens
Turn a wall of cushions into a working screen. Show static images, animated GIFs, and videos — with synced audio — directly inside your Minecraft world.
> **Beta.** This is an early release. Commands, defaults, and the exact color values may still change between versions. Feedback and bug reports are very welcome.
## Features
- **Images** — any PNG/JPG, dithered down to the cushion color palette.
- **GIFs** — full animation support, frame timing preserved.
- **Video** — plays any video file FFmpeg can decode, at a frame rate you choose.
- **Audio** — video playback can stream synced audio to players' game clients (no resource pack needed).
- **Up to 176 colors** — instead of just the 16 cushion dye colors, the mod can place a different light-emitting block *underneath* each cushion (copper bulbs in various oxidation stages, a lit furnace, a respawn anchor, crying obsidian, a sculk catalyst, a magma block...) to get extra brightness levels per color. All screens glow at night by default, even without this.
- **Survives restarts** — a built screen is remembered across server restarts and rejoining; no need to rebuild it every time.
- **Bake** — turn a specific image into a permanent, un-managed picture, then build a new screen somewhere else.
- **Command hook** — other commands/datapacks can check whether something is currently playing via a scoreboard value, e.g. for `/execute if score`.
## Requirements
| | |
|---|---|
| Minecraft | `26.3-snapshot-3` |
| Fabric Loader | `>=0.19.3` |
| Fabric API | Required |
| Java | `25+` |
| Environment | **Client AND server both required** (audio playback and a render-distance fix run on the client) |
| FFmpeg | Required **only** for `/video` and audio extraction — must be installed and available on `PATH`. Images and GIFs don't need it. |
## Getting started
```
/cushionscreens build <width> <height>
```
Builds a screen directly in front of you. Put your images/GIFs/videos in the `cushionscreens/` folder inside your game/server directory (it's created automatically the first time you use a command), then:
```
/cushionscreens image cat.png
/cushionscreens gif dance.gif
/cushionscreens video 20 trailer.mp4
```
## Full command list
| Command | Description |
|---|---|
| `/cushionscreens build <width> <height>` | Create a screen in front of you |
| `/cushionscreens image <file> [colors=64\|176] [bake]` | Show an image |
| `/cushionscreens gif <file> [colors=64\|176]` | Play a GIF |
| `/cushionscreens video <fps> <file> [colors=64\|176]` | Play a video (needs FFmpeg) |
| `/cushionscreens video <fps> <file> [colors=64\|176] audio [targets]` | Play a video with synced audio, optionally only for specific players/selectors (`@a`, `@p`, a player name...) |
| `/cushionscreens play <pattern> <speed>` | Play a generated animation: `plasma`, `rainbow`, `bars`, or `noise` |
| `/cushionscreens range <chunks>` | Set how far away the screen renders from, then rebuild to apply |
| `/cushionscreens stop` | Stop whatever is currently playing |
| `/cushionscreens clear` | Remove the screen entirely |
| `/cushionscreens help` | In-game command reference |
## Colors
By default every screen uses all 16 cushion colors, sitting on a lit copper bulb (so it glows at night). Two optional upgrades trade performance for a bigger color range:
- `colors=64` — adds the 4 copper bulb oxidation stages under each cushion (64 total combinations).
- `colors=176` — adds all 11 supported light-level blocks under each cushion (176 total combinations).
Higher color counts look noticeably better for photos/video, but changing the block under a cushion is much more expensive than just changing its color — expect more lag on `/video` and `/gif` at `colors=176`, especially on large screens. Static `/image` is unaffected by this since it's a one-time change.
## Bake
```
/cushionscreens image cat.png bake
```
Shows the image like normal, then the mod "forgets" that spot is a screen — the cushions and blocks stay exactly as they are forever, unaffected by `/stop`, `/clear`, or future `/image`/`/video`/`/gif` calls, and aren't tracked for restart persistence. Use this to permanently commit a picture and free up the screen for something else.
## Playing sound with video
```
/cushionscreens video 24 trailer.mp4 audio
/cushionscreens video 24 trailer.mp4 colors=176 audio @a
```
Audio is extracted from the video and streamed to players over the network — it plays through their own game client, so it works even on a dedicated server with players far from each other. Without a target selector, audio plays for every player on the server.
## Checking playback state from other commands/datapacks
The mod keeps a scoreboard value in sync with whether anything is currently playing:
```
/execute if score CushionScreens cc_playing matches 1 run say something is playing!
```
## Known limitations (beta)
- Only one screen is tracked at a time.
- The color values used for `colors=64`/`colors=176` are based on real in-game measurements, but may still be refined in future updates.
- After a server restart, restoring a saved screen can take a little while if the area isn't already loaded (up to ~60 seconds before it gives up).
## License
MIT