Skip to content
This repository was archived by the owner on Aug 19, 2026. It is now read-only.

Custom Live2D

Tegas Aziz edited this page Dec 30, 2024 · 16 revisions

Introduction

In this mod, you can add your own Custom Live2Ds (Recollection Lobbies) besides Live2D Repository.

This guide also related/similar with Farhan's NekoUI and BetSoi2411's BetMC UI which It could be applicable on this mod.

Package Structure

Structure of live2d.zip is look like this:

live2d.zip
├── l2d
│   └── *number ordered frames.png*
├── soundtrack.ogg / soundtrack.mp3
└── live2d.hjson / live2d.json
  • l2d: folder that contains of frames
  • soundtrack.ogg / soundtrack.mp3: custom soundtrack/music. if "isSoundTrackLocal" is false, It will load. Support .ogg and .mp3 file.
  • live2d.hjson / live2d.json: Live2D(Recollection Lobby) metadata. You can use hjson, that act like as json did.

Put these .zip file on:

  • Linux: ~/.local/share/Mindustry/live2d/
  • Steam: steam/steamapps/common/Mindustry/live2d/
  • Windows: %appdata%/Mindustry/live2d/
  • MacOS: ~/Library/Application Support/Mindustry/live2d/

For naming of the .zip file, Recommended to use camelCase style naming:

  • Yes: takanashiHoshino.zip
  • No: Takanashi Hoshino.zip

The name must match in the metadata, especially on name value

Metadata

name: characterName
displayName: Character Name
author: Author
description: Lorem ipsum dolor sit amet
frameSpeed: 1f
isSoundTrackLocal: true
localSoundTrack: fightForJustice
  • name: it will refers on .zip filename, be careful of naming these.
  • displayName: the name thats displayed on User Interface.
  • author: the person who made this frame, not the zip file.
  • description: description of Recollection Lobby (Animated Background)
  • frameSpeed: Play speed of Recollection Lobby (Animated Background), how fast could it run.
  • isSoundTrackLocal: boolean that Live2D package use internal mod soundtrack as main menu music.
  • localSoundTrack: music name of local mod soundtrack.

Frames

To generate frames from a video, you must have a video to frame tool, you can do it online or offline.

EzGif

for EzGif user, your video must be 200mb maximum to convert, It take so much time for publish your video to their server. After that, adjust the duration of video it could match for a loop, also adjust the framerate to 10fps for less frames and /l2d/ folder size, but it isn't smooth enough. if you want to make it smooth, you can choose between 20-30fps. it produces more frames and the folder size bigger. If you feel not smooth enough, EXCEED THE FRAMERATE INTO 60FPS FOR YOUR PC'S DEATH TORMENT.

Resolution

Resolution of the frames affects on memory comsumption and zip size, please adjust the frames into intended sizes, such as HD and FHD Resolution. IF YOU DID 4K, YOU'RE DOOMED.

Import Existing Frames From Other Project

For NekoUI/BetMC UI user, you can import the frames to ArchiveDustry with extract the .mcpack and find the subpack that contains frames inside:

  • BetMC UI: /subpacks/<res>/betmc_background/betmc_background_frame -> betmc_image_[numeric frame order]_frame.png

  • NekoUI: /subpacks/<packs>/.hans_common_files/.hans_animated_background -> hans_common_[numeric frame order].png

You must rename it again to work in ArchiveDustry.

Frame Naming

After got some frames, it was named by the service that converted video to frame in default. You must rename it with regex power. I use PowerRename from Powertoys to rename all of the frames into number-based frame name. the index must be started from 1 not 0.

This is example the frame name looks like:

  • 1.png
  • 2.png
  • 3.png
  • etc..

All the frames are inside in /l2ds/ folder

Publishing

If you completed all of the guide, pack all of files (/l2d/, live2d.(h)json and soundtrack.ogg/soundtrack.mp4(optional)) into a zip file, the zip filename must same as name inside of metadata.

for Publishing, you can publish your pack on:

Clone this wiki locally