Cinema - Animate pixel arts or whole scenes(also animate Gifs since 1.5):
Version: v1.63

~~~~~~(anyone wants to make a gif for this place?)~~~~~~~~\\
Ever wanted to animate one of your pixel arts? Or perhaps you would like to make a building change in a more elaborate way? Even wanted to make 3d movies come to life on your server? These dreams can now come true with this plugin!

Cinema is a block moving plugin which makes scenes come to life in a full moving picture!

Is it efficient?

Yes, by skipping the confines of java, and going straight to the binary~ the amount of work your server needs to do in order to accomplish your cinema is minimal!

Well How Does it work?

Simple~ Have you ever drawn a scene on a piece of paper, then on the next sheet the next scene and so on~ by the end of it you flip through your book and you see a moving picture.
The same rules apply here! You select your "Stage", and then you begin to implement your first scene known as a frame. Each save is a frame of your cinema and in the end the cinema will go through the frames in a loop or one time (You Choose!).

Main tutorials/videos from the creator

nice demovideo from metroid4

some other videos

Step one!
Selecting your stage,

By using /cpos1 and /cpos2 you can select your stage much like using world edit to select your cuboid space. (Alternatively you can select the field with an x y z coordinate /cpos1 [x] [y] [z] world name if console )

Once your field is created you can move to step 2!

Step Two!
Creating your first frame,

You need to make your beginning piece of pixel art, or 3d scene

Once built you use the command /csavedelta (File name)
(/csave is deprecated)

Step Three!
Making more Frames,

You can repeat step two until your cinema is complete!!

Step Four!
Playing your cinema,

This command is rather long but each field is necessary\\ /cplay (playername) (filename) (set air 0/1) (play count) (restore after stop 0/1) (frame duration)

The playername IS NOT YOUR NAME it is the name cinema needs to use in order to stop the player if it is in a loop. You can use anything as a player name but again it is Not your name!

Set air is there to help latency if the player can avoid placing air blocks then there are less blocks it needs to load. (Use 0 so air is not set/ Use 1 to set air)

Play Count is the amount of times the cinema will play, using 0 will make the cinema loop endlessly

Frame Duration is in milliseconds 1000 milliseconds = 1 second
(as of 1.6 the milliseconds are recalculated to ticks. one tick is 20 ms)

Here is an example of what your command should look like

/cplay Theater1 Test 0 1 1 400

This means the cinema will play in player Theater1; use the file test1; not use air; play only once; restore to the first frame when done; and use a 400 millisecond frame duration.

Koala :(Was going to add a blockquote but didn't feel like reformatting it all to html~ perhaps later) Commands in this plugin:

  • /cpos1 [x] [y] [z] worldname if console :
    [spoiler]set the first corner of your cuboid, which should be saved. if you play a saved file, this will be the pos1 you used by saving. so save your pixelart where you want. and then set pos1 to the destination and play your animation.
    if no parameters were given, the position of the players feet is used(the block you are standing in)
    as player you can also specify the x, y and z. if you want to use this command from the console. you also have to specify the worldname[/spoiler]
  • /cpos2 [x] [y] [z] worldname if console :
    [spoiler]sets the second corner of your cuboid. is just used for saving. parameters are the same as in /cpos1[/spoiler]
  • /csave <filename> [frameindex] :
    [spoiler]behaves just like csavedelta. this method is deprecated. i suggest using just csavedelta[/spoiler]
  • /csavedelta <filename> [frameindex] :
    [spoiler]saves the frame selected by pos1 and pos2 to the specified file. you can optionally specify the index in the file the frame should be saved to. e.g. /csave test 1 would save the frame as second frame in the animation. 0 would be first frame. if index is out of file the frame will be saved last[/spoiler]
  • /cplay <ID> <filename> <setair 0/1> <playcount> <restore after stop 0/1> <framedurationInMillis>:
    [spoiler]plays the given file under the given ID (needed to stop this player with cstop)(ID does not refer to your own player name, but to the name you give the playing animation. it also can be 213232123 or whatever. its just for identification purposes later)
    setair specifies if air blocks should be set when animating. if this is 0 no blocks will be set to air.
    playcount is the amount of times the file will be played. it then calls stop by itself. playCount = 0 means it plays endlessy
    restore after stop means, that every block ever set by the command will be restored to that what was there before starting the player.
    the frameduration is the amount of time it takes until the next frame is drawn in your world.[/spoiler]
  • /cstop <ID> :
    [spoiler]stops the player with the given ID. this refers to the ID used in /cplay[/spoiler]
  • /cinemainfo :
    [spoiler]shows you the current pos1 and pos2. Also shows current version and give you a note if there is a new version available[/spoiler]
  • /cplayers :
    [spoiler]shows all currently playing cinemaplayers[/spoiler]
  • /cinemaremove <filename> :
    [spoiler]removes the file with the given name. this cant be undone[/spoiler]
  • /ceditopen <filename> :
    [spoiler]opens a cinema animation for editing[/spoiler]
  • /ceditremove <index> :
    [spoiler]removes the frame at position <index>. the first frame has index 0[/spoiler]
  • /ceditsave :
    [spoiler]saves the changes made to the animation[/spoiler]
  • /ceditclose :
    [spoiler]closes the editor and file. all unsaved progress will be lost[/spoiler]
  • /ceditinfo :
    [spoiler]shows you the current loaded file in the editor[/spoiler]
  • /ceditshow <index> :
    [spoiler]draws the given frame at pos1. undoes the last showed frame by this command[/spoiler]
  • /cinemagif <input file name(with extension)> <output animation name> <alignment> :
    [spoiler]converts the given image (preferably a GIF animated file) into a cinema animation. for alignment see /cinemagifalignment. input file has to be in plugins/cinema/[/spoiler]
  • /cinemagifalignment :
    [spoiler]Shows you the 5 available alignments (use the numbers shown here as parameters in /cinemagif[/spoiler]
  • /creverse <ID> :
    [spoiler]reverses a given players playdirection. so you can reverse a playing animation[/spoiler]

    • Features:

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of fredlllll fredlllll Feb 28, 2014 at 14:02 UTC - 0 likes

    @Flipperflies555: Go

    my bachelor thesis is taking more time than i thought it would. so maybe ill do it in a month if there isnt other important stuff

  • Avatar of Flipperflies555 Flipperflies555 Feb 28, 2014 at 12:19 UTC - 0 likes

    is it ever gonna get updated

  • Avatar of fredlllll fredlllll Dec 11, 2013 at 09:38 UTC - 1 like

    @Weave2: Go

    yeah it seems that this is buggy. currently i dont have time(or motivation) to fix anything. i will rewrite the plugin the coming february and fix bugs or add features and all

  • Avatar of Weave2 Weave2 Dec 11, 2013 at 03:08 UTC - 0 likes

    restores playing Cinemas after shutdown of server? can you explain how this works? I have made the cinema and i can play it. On server restart or stop. The plugin does restore the playing animation of blocks but only for one restart or stop. So in other words after the second restart you need to re set up the animation. Can we disable this or can you enlighten me on how to optimize this to better fit my needs.

    I can schedule the commands but sometimes i have my animations moving or appearing to move twice as fast and some or jumbled up because there is two of the same animation playing. the server restored the previous animation and then i had a command scheduled to play it on start. i think it would be easier to disable that and just schedule the commands.

    The plugin is great besides the restoration of animations. I also can not figure out how to stop a restored animation.

  • Avatar of blablubbabc blablubbabc Oct 07, 2013 at 12:38 UTC - 0 likes

    @fredlllll: Go

    This plugin generates 2 files (cinema.cfg and cinemafile) in my plugins folder instead of the cinema folder. Could you please fix that?

    Thanks in advance.

    Edit: And the cinema folder is called "cinema", thereas most (all other) plugins folder are high case, like "Cinema". And there is a package name called "Cinema" (high case) and class names with lower cases, thereas common java practice is to give packages lowercase and class names higher case names.

    This aren't serious problems, but would make your project appear more "professional".

    Last edited Oct 07, 2013 by blablubbabc
  • Avatar of fredlllll fredlllll Oct 01, 2013 at 16:01 UTC - 0 likes

    @MGbeenieboy: Go

    what do you mean by multiple stages?

  • Avatar of MGbeenieboy MGbeenieboy Sep 30, 2013 at 16:47 UTC - 0 likes

    Is it possible to have multiple Cinema stages??

  • Avatar of MGbeenieboy MGbeenieboy Sep 29, 2013 at 20:08 UTC - 0 likes

    Do anyone has some finished movies? :D Because it's hard to make movies on a 168x94 LD Screen :D

  • Avatar of fredlllll fredlllll Sep 12, 2013 at 14:29 UTC - 0 likes

    @jessefjxm: Go

    do you have other plugins? could there be a conflict?

  • Avatar of jessefjxm jessefjxm Sep 12, 2013 at 14:12 UTC - 0 likes

    I always get this warning:

    22:09:25 [SEVERE] Exception in thread "Thread-604" 22:09:25 [SEVERE] java.lang.IllegalStateException: Asynchronous block onPlace! 22:09:25 [SEVERE] at net.minecraft.server.v1_6_R2.Block.onPlace( 22:09:25 [SEVERE] at net.minecraft.server.v1_6_R2.Chunk.a( 22:09:25 [SEVERE] at net.minecraft.server.v1_6_R2.World.setTypeIdAndData( 22:09:25 [SEVERE] at org.bukkit.craftbukkit.v1_6_R2.block.CraftBlock.setTypeId( 22:09:25 [SEVERE] at org.bukkit.craftbukkit.v1_6_R2.block.CraftBlock.setType( 22:09:25 [SEVERE] at



Date created
Apr 13, 2012
Last update
Jan 24, 2013
Development stage
  • enUS
Public Domain
Curse link
Recent files