This is the only place to discuss it for now. The main ways to know what it can do and how to do it is by looking at the demo level and reading the "Animation Instructions.txt" both included in the download. "Animation Instructions" includes not only instructions for making Override Custom Objects (OCO) and Custom Characters, but also all the new World.ini commands. I'll copy the current text here for convenience.
____________________________________________________________
Override Custom Objects_____________________________________
Step 1.) Create sprite sheet accroding to instructions below
Step 2.) Add image to Custom Objects folder
Step 3.) Add instructions to World.ini
[Custom Object 1]
Image=YourSpriteSheet.png
TileWidth=48
Bank=4
Object=9
;This would give your sprite the behavior of the purple spider object
____________________________________________________________
Override Custom Objects sprite sheet instructions___________
Must be a .png file
Use an alpha channel or RGB(255,0,255) for transparancy
Frame size is 24x24 pixels unless specified.
Opacity is 100 (0% transparent) unless specified.
Objects that face left and right should be drawn facing right.
Some objects with identical animations have been listed together.
If a sprite sheet has 4 frames of animation they are identified as 0-3 (0, 1, 2, 3.)
Sprite sheet frames are ordered left to right, then top to bottom (see figure 1.)
Figure 1.) Sprite sheet ordering example
0 1 2 3
4 5 6 7
For objects that kill on touch, the original animations dictate collision.
Bank 1 Liquids
Objects 1, 2, 14
Frames 0-15 water motion
Objects 3, 4, 15
Frames 0-17 waterfall motion, opacity 61%
Object 5
Frames 0-38 lava motion
Objects 6, 13, 16
Frames 0-9 water motion, opacity 61%
Objects 10, 12
Frames 0-31 water motion
Objects 19, 22
Frames 0-23 water motion
Objects 20, 23
Frames 0-20 waterfall motion, opacity 61%
Objects 7, 8, 9, 11, 17, 18, 21, 24
Not implemented
Bank 2 Flyers
Objects 1, 2, 5, 6, 7, 14, 22
Frames 0-8 flight
Object 3
Frame 0 stopped
Frames 1-2 flying
Object 4
Frame 0 stopped
Frames 1-4 flying
Objects 9, 10
Frames 0-11 flight
Object 11
Frames 0-9 normal flight
Frames 10-17 In wall flight, opacity 71.9%
Object 12
Frames 0-9 normal flight
Frames 10-17 In wall flight, opacity 71.9%
Objects 15
Frames 0-3 flight
Objects 16, 17
Frames 0-3 flight
Objects 20, 21
Frame 0 stopped
Frames 1-6 flight
Object 24
Frames 0-3 random flight
Frames 4-7 attack flight
Objects 25, 27
Frame 0 stopped
Frames 1-10 flight
Object 26
Frame 0 stopped
Frames 1-8 flight
Object 28
Frame 0 stopped
Frames 1-10 hopping
Object 29
Frame 0 stopped, this frame only faces left
Frames 1-12 flight
Object 30
Frame 0-6 standing
Frames 7-13 opens beak
Frames 14-18 blinks
Object 31
Frame 0-7 slow flight, opacity 53.1%
Frames 8-15 fast flight, opacity 53.1%
Object 32
Frames 0-3 flight
Objects 8, 13, 18, 19, 23
Not implemented
Bank 3 Knytt & Fluff
Objects 1, 5, 7, 16, 17, 18
Frame 0 stopped
Frames 1-5 walking
Objects 2, 8
Frame 0 stopped
Frames 1-5 walking
Frames 6-13 running
Objects 3, 23, 25
Frame 0 stopped
Frames 1-6 walking
Objects 4, 33
Frame 0 stopped 500
Frames 1-5 walking 400
Frames 6-10 extend spikes
Frames 11-15 retract spikes
Cannot be made harmless
Objects 6, 22
Frame 0 stopped
Frames 1-6 walking
Frames 7-11 extend spikes
Frames 12-16 retract spikes
Cannot be made harmless
Object 9, 10
Frame 0 stopped
Frames 1-8 walking
Object 11
Frame 0 stopped
Frames 1-9 walking
Object 12
Frames 0-2 blinks
Frames 3-11 wavers
Frames 12-20 hops
Object 13
Frames 0-2 blinks
Frames 3-10 looks sideways
Frames 11-16 wavers
Objects 14, 26, 38, 41
Frame 0 stopped
Objects 15, 28, 31, 40
Frame 0 stopped
Frames 1-10 walking
Objects 19, 36, 44
Frames 0-3 stopped
Frames 4-8 walking
Object 20
Frames 0-15 stopped
Frames 16-31 walking
Object 21
Frames 0-2 blinks 200 1
Frames 3-9 wavers 150 1
Frames 10-24 wavers 200 1
Object 24
Frames 0-3 sit
Frames 4-7 stand
Frames 8-13 walking
Object 27
Frames 0-2 blinks
Frames 3-11 wavers
Frames 12-20 hops
All frames facing left
Object 30
Frames 0-5 flying
Objects 34, 35
Frame 0 stopped
Frames 1-11 walking
Object 37
Frame 0-2 blinks
Frames 3-7 closes eyes
Object 39
Frames 0-2 blinks
Frames 3-11 wavers
Frames 12-22 hops
Objects 42, 43
Frames 0-2 blinks
Frames 3-10 moves tail
Frames 11-14 moves ears
Bank 4 Meanies
Objects 1, 6, 7
Frame 0 stopped
Frames 1-4 walking
Objects 2, 8, 13
Frame 0 stopped facing up
Frames 1-4 walking facing up
Frame 5 stopped facing down
Frames 6-9 walking facing down
Objects 3, 16
Frames 0-5 stopped
Frames 6-12 walking
Objects 4, 5
Frames 0-4 stopped
Frames 5-8 walking
Object 9
Frame 0 stopped
Frames 1-11 walking
Object 10
Frames 0-3 walking up
Frames 4-7 walking down
Frames 8-18 shooting
Object 11
Frames 0-3 walking up
Frames 4-7 walking down
Frames 8-18 shooting
All frames face left
Object 12, 15
Frame 0 stopped
Frames 1-7 walking
Object 14
Frame 0 stopped
Frames 1-10 walking
Object 17
Frame 0 stopped
Frames 1-6 walking
Object 18
Frames 0-3 stopped
Frames 4-8 extend spikes
Frames 9-13 retract spikes
Cannot be made harmless
Objects 19, 20
Frame 0 stopped
Frames 1-5 walking
Frames 6-10 sits
Frames 11-15 stands
Cannot be made harmless
Object 21
Frames 0-5 walking up
Frames 6-11 walking down
Frames 12-22 shooting
All frames face left
Object 22
Frames 0-5 walking up
Frames 6-11 walking down
Frames 12-22 shooting
Bank 5 Not implemented
Bank 6 Traps
Object 1
Frame 0 static
Tile Width=96
Objects 2, 3, 4
Frame 0 static
Object 5
Frame 0 hiding
Frames 1-5 eating
Tile Width=48
Cannot be made harmless
Object 6
Frames 0-7 waiting
Frames 8-15 shooting
Objects 7, 9
Frame 0 waiting
Frames 1-9 shooting
Object 8
Frame 0 waiting
Frames 1-5 dropping
Cannot be made harmless
Objects 10, 11, 12, 13
Frame 0-3 hide
Frames 4-7 show
Cannot be made harmless
All frames facing correct direction
Bank 7 Nature Effects
All Objects use color replacement instead of image replacement
Like custom skin and clothes for Juni calculate the color:
Red+(Green*256)+(Blue*256*256)
Red, Green, and Blue are on a scale of 0 to 255
A value of 0 makes the object invisible
Use 8 for black
Declare the object in the World.ini as in this example:
[Custom Object 1]
Bank=7
Object=8
Color=65535
;creates yellow rain
Bank 8
Object 6, 11, 14
Frames 0-7 flickers
Object 7
Frames 0-8 flickers
Tile Width=48
Object 8
Frames 0-8 flickers
Object 9
Frames 0-4 pulsates
Object 10
Frames 0-5 sparkle 1
Frames 6-11 sparkle 2
Frames 12-17 sparkle 3
Frames 18-23 sparkle 4
Object 13
Frames 0-12 rotates
Objects 1, 2, 3, 4, 5, 12, 17, 15, 16
Not implemented
Bank 9
Objects 1, 2, 4, 5
Frame 0 stopped
Frames 1-3 opens
Frames 4-7 closes
Object 3
Frame 0 stopped
Frames 1-2 pulsates
Frames 3-6 shoots
Bank 10
Objects 1, 2, 3, 8
Frame 0 begin ground collision
Frame 1 squashed on ground
Frame 2 begin jump
Frame 3 in the air
Object 5
Frame 0 squashed on ground
Frames 1-2 begin jump
Frame 3 in the air
Objects 6, 7
Frame 0 stopped
Frames 1-5 walking
Frames 6-8 jumping
Object 9
Frames 0-18 movement
Object 10
Frames 0-17 movement
Object 11
Frames 0-2 blinks
Frames 3-6 jumps
Frames 7-10 blinks, loops 4 times
Object 12
Frames 0-2 blinks
Frames 3-14 big jump
Frames 15-18 small jump, loops 2 times
Object 13
Frames 0-2 blinks
Frames 3-11 small jump
Frames 12-28 big jump
Bank 11
Objects 1, 3, 4, 5, 7, 8, 10
Frame 0 stopped
Frames 1-4 walking
Object 2, 6, 9
Frames 0-3 shooting
Frames 4-7 walking
Bank 12
Not Implemented
Bank 13
Objects 1, 2, 14
Frames 0-6 stopped
Object 3
Frame 0 laser off
Frames 1-3 laser on
Cannot be made harmless
Object 4
Frame 0 stopped
Frames 1-8 shooting
Object 5
Frames 0-3 stopped
Frames 4-5 moving
Object 6
Frames 0-8 stopped
Objects 7, 8, 10, 11
Frames 0-2 flickering
Cannot be made harmless
Objects 9, 12
Frames 0-2 flickering
Object 13
Frames 0-15 flying
Bank 14
Object 1
Frames 0-5 prepares to slide, opacity 68.75%
Frames 6-11 slides, opacity 68.75%
Object 2
Frames 0-5 prepares to slide
Frames 6-11 slides
Objects 3, 4, 6, 8
Frame 0 stopped
Frames 1-6 moving
Object 5, 7
Frames 0-3 blinks
Frames 4-11 jumps
Object 9
Frame 0 stopped
Frames 1-7 moving
Object 10
Frames 0-2 blinks
Frames 3-14 walking
Frames 15-16 jumps
Object 11
Frame 0 stopped
Frames 1-9 moving
Object 16
Frames 0-3 blinks
Frames 4-9 extend spikes
Frames 10-15 retract spikes
Tile Width=120
Tile Height=72
Offset Y=-24
____________________________________________________________
Custom Characters___________________________________________
Step 1.) Create a sprite sheets following the template.
Frames 0-9 Walking
Frames 10-21 Running
Frames 22-28 Climbing
Frame 29 Slide
Frames 30-41 Falling
Frames 42-46 Jumping
Frame 47 Stopped
Frames 48-49 hologram
Frames 50-97 Same as 0-47 but 66.6% transparent, opacity 33.4%
Step 2.) Add sprite sheets to Custom Objects folder.
Step 3.) Declare sprite sheets in world.ini as follows:
[Custom Character]
Image1=MySpriteSheet.png
Image2=AnotherCharacter.png
...
Image255=YetAnother.png
Note: The Image number doesn't matter, this section is just for caching.
Step 4.) Set the starting character in the [World] group.
[World]
Character=MySpriteSheet
Note: It's the name of your image file minus the ".png"
Note: Leave blank or write "Juni" to use the default character
Now you have a custom character, but if you want to change characters during play
Step 5.) Use Shifts to change the character.
[x1000y1000]
ShiftCharacter(A)=MySpriteSheet
Note: It's the name of your image file minus the ".png"
Note: Write "Juni" to switch to the default character.
____________________________________________________________
List of new commands________________________________________
Trigger: Spawns an object on the screen
TrigBank(A) bank number of object to create
TrigObject(A) object number of object to create
TrigSpawnX(A) x location to create object
TrigSpawnY(A) y location to create object
TrigAbsoluteTarget(A) True by default, set False to spawn relative to Trigger object
TrigEffect(A) True by default, set False to disable spawn visual effect
TrigEffectX(A) x offset for effect, use with objects larger than 24x24 pixels
TrigEffectY(A) y offset for effect, use with objects larger than 24x24 pixels
TrigTouch(A) False by default, set True to trigger on touch
TrigType(A) Changes the shape of the Trigger object
0 by default, set to 0, 1, 2, or 3 for Spot, Floor, Circle, or Square
TrigVisible(A) True by default, set False to hide trigger
TrigDenyHologram(A) False by default, set True to disable Trigger-on-touch when hologram is on
TrigSound(A) default sound by default, set to none, switch, door, electronic, or make a custom sound
To make a custom sound for Shifts and Triggers:
Step 1.) Create folder "Sounds" in your level's folder
Step 2.) Add .ogg audio file to Sounds folder, eg. Foo.ogg
Step 3.) Edit the World.ini to use your sound, eg. TrigSound(A)=Foo
TrigAsOne(A) Makes multiple Triggers of same ID; A, B, or C; act like a single entity --like a wall of Shifts
True by default, set False to have each Trigger spawn it's own creature.
Shift
ShiftSound(A) Now capable of custom sounds
To make a custom sound for Shifts and Triggers:
Step 1.) Create folder "Sounds" in your level's folder
Step 2.) Add .ogg audio file to Sounds folder, eg. Foo.ogg
Step 3.) Edit the World.ini to use your sound, eg. ShiftSound(A)=Foo
ShiftCharacter(A) Changes player character, set to Juni to use default character
See "Custom Character" section above for more details
Sign
Sign2(A) Contains a second message
Increase the number for more messages
The number of messages is unlimited
If Sign2(A) exists but Sign(A) does not,
then the sign field will be hidden until the first down press
SignShift(A)= 2, Executes Shift A if down is pressed when message 2 is visible
Signs A, B, and C automatically associate with Shifts A, B, and C
The appropriate Shift instructions must be included
The appropriate Shift object must be on screen
Preferably invisible and out of player's reach
SignTrig(A)= 2, Executes Trigger A if down is pressed when message 2 is visible
Signs A, B, and C automatically associate with Triggers A, B, and C
The appropriate Trigger instructions must be included
The appropriate Trigger object must be on screen
Preferably invisible and out of player's reach
Cutscene Fade Color
[Cutscene Color]
Intro=8
Ending=8
;creates black fade transitions
Works just like Cutscene Music
Default color is white
Like custom skin and clothes for Juni calculate the color:
Red+(Green*256)+(Blue*256*256)
Red, Green, and Blue are on a scale of 0 to 255
A value of 0 makes the object invisible
Use 8 for black