Not enough ratings
New for 2.3: Per-level custom assets
By Reese
A guide for level makers to using 2.3's new per-level custom asset loading, plus info about new Unicode support!
2.3 has a new super cool feature where you can load custom level assets on a per-level basis. It's very simple to use, and makes level distribution a lot simpler if your level has its own unique assets!

In other words: If you make custom graphics, sounds or music for your level, the game can now handle loading it automatically when you load your level. It'll unload once you exit your level.
Method 1 of 3 - The asset folder
This one is better for active level development since you can swap and edit your files on the fly.

Make a folder in your levels directory with the same name as your level file, minus the .vvvvvv extension. For example, if your level is called milkcan.vvvvvv, then make a folder called milkcan. This folder should use the same structure as data.zip. In the end a sample directory structure for the milkcan level would be something like this:
VVVVVV/ +- levels/ +- milkcan/ | +- graphics/ | | +- sprites.png | | +- font.png | +- sounds/ | | +- coin.wav | | +- jump.wav | | +- jump2.wav | +- vvvvvvmusic.vvv +- milkcan.vvvvvv

If you've edited one of your files in this directory while your level is open in VVVVVV, simply strike the F9 key in the level editor to reload your resources — they should update right away!

Method 2 of 3 - A ZIP file alongside your .vvvvvv file
Simply make a ZIP archive with the data.zip structure, and put it alongside your level. Name it the same as the level file, eg milkcan.zip.

Method 3 of 3 - ZIP file for everything!
This one is the most convenient for distribution. You can simply have one ZIP file that contains all the level data and its assets, and share that to people. Note, however, that levels stored in this format can't be loaded from the editor - only from the levels list.
This method is similar to Method 2, except instead of the level file being next to the ZIP, it's inside the zip. Make sure it still has the same filename! A ZIP called milkcan.zip should have the level file called milkcan.vvvvvv at its root.
Additional feature: Unicode!
VVVVVV 2.3 now supports Unicode behind the scenes. To use Unicode characters, you need a font.png with all the characters you want to use, and a font.txt alongside it in the graphics directory which contains a raw list of every character in the font.

I've made a font which pre-includes a lot of characters from European languages, Cyrillic, Greek and more (including some dingbats and assorted symbols), which you can find here[github.com]. (Note: you ONLY need the files font.png and font.txt.)

Put those files in your graphics directory in your level's asset structure. Now you can make your levels in whatever language you want, or even edit the font and use your own characters/symbols/dingbats!

P.S.: The future version 2.4[github.com] of VVVVVV has planned full localisation support, so the font will likely be pre-included with the game at that point.

Happy levelmaking!