Skip to content

Animated Walls

Mosaikin can display animated GIFs, videos, and other multi-frame media as animated in-world walls. Each frame of the animation is encoded as a separate set of player head textures, so animated walls generate significantly more skins than still images.

Preparing an Animated Source

The plugin can decode GIF and static WebP images directly from a URL, but video files and animated PNGs/WebPs must be converted first. Use the Mosaikin Converter at mosaikin.eu to export them as a ZIP archive, then load that archive in-game.

Animated walls take significantly longer to generate

Each unique player head texture across all frames must be submitted to MineSkin separately. An animation with many frames, or with lots of variation between frames, will generate a very large number of heads — and generation is gated by MineSkin's per-request rate limits, so more heads means more wall-clock time.

A paid MineSkin subscription is strongly recommended for animated walls — higher tiers raise the concurrency limit, which directly reduces total generation time. On the free tier, even a short animation may take many hours; a complex animation with thousands of unique heads could take a day or more.

View MineSkin subscription options →

Supported Animated Formats

FormatHow to load
Animated GIFDirect URL in-game (/mosaikin <name> image <url>)
WebP (animated)Must use the converter — direct URLs load the first frame only
APNGMust use the converter
MP4, WebM, MOVMust use the converter

Keeping Animations Manageable

Animated walls can generate a very large number of heads. A few tips to keep things fast and performant:

  • Shorter is better. Trim your animation to the essential loop before exporting. Use the converter's trim controls.
  • Smaller dimensions help a lot. A 64×64 animation generates far fewer heads than a 128×128 one.
  • Lower frame rates reduce head count. The plugin caps playback at 20 FPS regardless of source rate. Use the converter to pre-trim frame rate if your source is higher than needed.
  • Solid backgrounds are free. The plugin's region merging optimization automatically handles uniform areas (see How It Works). Animations with large solid backgrounds generate far fewer unique heads than those with full-frame motion.

Loading an Animated Archive

Export your animation from the converter website, then host the ZIP file somewhere accessible and load it:

/mosaikin create my-animation
/mosaikin my-animation image https://example.com/animation.zip
/mosaikin my-animation confirm
/mosaikin my-animation generate

confirm packs the animation locally so you can review the unique-head count; generate then submits those heads to MineSkin. The converter's export includes your density and playback speed settings, which the plugin reads automatically.

Playback Controls

Once the wall is spawned, use these commands to control playback:

CommandDescription
/mosaikin <name> playResume playback
/mosaikin <name> pausePause playback
/mosaikin <name> speed <factor>Set playback speed (e.g. 0.5 for half speed, 2 for double)
/mosaikin <name> frame <n>Jump to a specific frame (0-based). Pauses playback.

Animation Performance

In-world performance

Animated walls cycle through frames on every server tick, updating player head entities as they go. An animated wall with many frames and a large grid size requires substantial server-side work per tick and many client-side entities.

Large animated walls can cause significant frame rate drops for players viewing them, particularly on lower-end hardware. Keep animated walls small and avoid high entity counts in busy areas.

You can check how many heads and frames your wall has with:

/mosaikin <name> info

If needed, you can pause playback for walls in areas with many players to reduce server load:

/mosaikin <name> pause

The server automatically skips animation updates for walls with no players nearby (configurable via playback.pauseWhenNoNearbyPlayers in config.yml).