Pack creation crash courseThis will give a brief overview of how to create a pack with the typical layout - a few ranks, containing several levels each.
You will need:
- At least 3 levels, preferably a few more than that. 10 or so is good. You could quickly create some crappy placeholder levels in the editor if you don't have enough ready-to-use ones, or just temporarily borrow a few levels from the official games.
- NeoLemmix V12.10.X stable.
Step 1 - Create a new packGo into NeoLemmix's "levels" folder. Create a new folder here for your pack. Put all your levels in this folder.
You now have created a pack, with your levels in it. It's a very simple pack at this stage - no custom settings or graphics, no specified ordering (levels will just get sorted into alphabetical order), no ranks - but it's a pack nonetheless, and NeoLemmix will detect it and allow you to play it!
Step 2 - Divide the pack into three subgroups (ranks)Go into your pack's folder. Create three folders - one for each subgroup. Move a few levels into each one.
You now have some ranks. Yes, again, it's that simple! However, levels still aren't sorted - within each rank, they'll be in alphabetical order - and the ranks themself will just be in alphabetical order too.
Step 3 - Define a rank orderGo into the main folder of your pack. Create a new text file here called "levels.nxmi" and open it in your preferred plaintext editor (if you don't have a preference here, Notepad will do the job - avoid rich-text tools like Wordpad or Microsoft Word).
First, put on a line by itself the word "BASE" (without quotes). This line should always exist in the "levels.nxmi" of the pack's base folder. This isn't too important when the pack is directly in the "levels" folder, but if users like to sort their packs into subfolders, this "BASE" line is what identifies the base of an actual pack.
Now, for each rank, add the following template; replacing as appropriate:
$GROUP
NAME <rank name here>
FOLDER <rank folder name here>
$ENDNote that the name and folder name do not have to be the same. You could put numeric prefixes at the start of the folder names, eg "01 Fun" "02 Tricky" etc, but not have these in the specified names.
Also note that (and these rules apply in general to NeoLemmix text data files, not just to levels.nxmi):
- The first (or "only", where applicable) word, usually called the "key" or "keyword", on a line is never case-sensitive - although convention is to always uppercase them. Everything after this, usually called the "value", could be case sensitive (although it still usually isn't).
- You
may add blank lines anywhere you like.
- You
may add or remove whitespace at the start of any line.
- You should
not have a different amount of whitespace between the keyword and the value - it should always be a single space.
- You should
not add any trailing whitespace at the end of lines.
BASE
$GROUP
NAME Mutilation
FOLDER 01 Mutilation
$END
$GROUP
NAME Decimation
FOLDER 02 Decimation
$END
$GROUP
NAME Obliteration
FOLDER 03 Obliteration
$END
Now, when you play your pack, the ranks will be in the order you specified, instead of just being sorted into alphabetical order!
Step 3 - Define a level orderSimilar to the above, we probably also want to define an order for the levels within a pack. For this, we also use a "levels.nxmi" file - but this time, in the individual ranks' folders.
In this file, we do
not have the "BASE" line. This is because the ranks aren't the base of a pack - they're subgroups within the pack. Instead, we just add one line for each level file. Each line should start with the word "LEVEL", followed by a single space, then the
filename of the level. These lines should be in the order the levels are in.
Important - once a folder has a "levels.nxmi" file, the "get all levels / subgroups, sort into alphabetical order" functionality no longer triggers for that folder. This means you must specify
every level in that folder, in the levels.nxmi file. However, this does not extend to
other folders in your pack. So for example, you could have specified orders for your "Fun", "Tricky", "Taxing" and "Mayhem" ranks, while also having a "Bonus" rank with no levels.nxmi of its own - in this case, "Bonus" will fall back to the "all levels, in alphabetical order" behaviour.
You can now fire up your pack in NeoLemmix and see that your levels, too, are in the intended order!
No worries! In this case, the levels should of course be in the base folder, since there's no ranks. You would then put the "LEVEL _______" lines directly in the base folder's "levels.nxmi" file, instead of that file containing the $GROUP sections. Note that the base folder's "levels.nxmi" should still contain the line "BASE" somewhere - it doesn't matter whether this comes before or after the LEVEL lines, or even in the middle of them.
Alternatively, some people prefer to create a pack that has only one rank, and implement this rank as normal. It's completely up to you which way you prefer; NeoLemmix will accept either, and both ways are officially supported.
Step 4 - Provide some basic custom graphics for the main menuFor this, specifically, we will look at:
1. A custom title logo. For this - you will want to place a file called "logo.png" in the base folder of your pack. While there's no
enforced limit on size, in practice you will likely want to keep this under 864x144 so that it doesn't go off the edges of the screen and/or overlap other objects.
2. Custom graphics for the group sign. For this - you will want to place a ~75x~28 file called "group_graphic.png" into each rank's folder. The size is approximate in both dimensions, and may be slightly different from this. If it does not line up nicely, try adding / removing padding on the sides.
3. A custom background graphic. For this, place a file called "background.png" in the base folder of your pack. This can be any size (though it is pointless for it to exceed 864px wide and/or 486px tall), and will be tiled to fit if needed.
For #1 and #2, you may use an alpha channel, and it will blend properly in-game.
It is possible to use other custom graphics too, however, that's getting a bit more advanced and is beyond the scope of this crash course - see the above post for pointers. I suggest mastering these basics of pack creation, before worrying about all the possible advanced stuff you can do.
Step 5 - Provide some metainfoYou'd probably like to provide some other custom data - a proper pack name (instead of just copying the folder name), etc. You do this by creating a text file called "info.nxmi" in the pack's base folder.
This file follows this format:
TITLE <pack title>
AUTHOR <pack author>
VERSION <pack version - this could be a number or a codename>
$SCROLLER
LINE <scroller text 1>
LINE <scroller text 2>
LINE <scroller text 3>
$ENDSome things to note:
- Prior to V12.10.0, it was very common for pack creators to specify the pack's version number in the Author field. For example, "AUTHOR namida | V12.01". This is because NL did not yet at the time have any official way to provide a version number for a pack. This should no longer be done in new packs; use a VERSION line instead.
- You can have as many - or few - scroller texts as you want. If you don't have any at all, omit the $SCROLLER line (and the corresponding $END line) altogether.
Step 6 - Customize the music orderYou might have created levels that all specify which music they use. If that's the case, there's little point to this step. However, if you've created levels that just go through the normal music rotation based on their order, you might want to customize the order. You can do this by creating a "music.nxmi" file in the pack's base folder.
The "music.nxmi" file is, again, a plain text file. This file consists of a line for each track, starting with "TRACK" followed by the name of the music file,
without an extension. (You can put an extension, but NeoLemmix will ignore it, and instead just try every supported extension in a specific order until it finds one.)
Step 7 - Fill gaps in the level order with placeholdersNote that this is not a critical "you must know this" thing, but rather, it's a useful trick that I find myself using more often than not while making packs.
If you have an overall idea of the layout of your pack (how many levels per rank etc), you might want to have placeholder levels. While you could simply create a whole bunch of placeholder levels (or more likely, copies of the same placeholder level), you can instead put a single placeholder level in the pack's base folder, then use a relative path to point to it.
For example, let's suppose we want our first rank to have 10 levels, but we've only created 5 so far - specifically, levels 1 to 3, level 7, and level 10. We want to fill 4 to 6, plus 8 and 9, with a placeholder level. We can create a single "placeholder.nxlv" level in the pack's base folder, then our first rank's levels.nxmi file can look like this:
LEVEL level01.nxlv
LEVEL level02.nxlv
LEVEL level03.nxlv
LEVEL ../placeholder.nxlv
LEVEL ../placeholder.nxlv
LEVEL ../placeholder.nxlv
LEVEL level07.nxlv
LEVEL ../placeholder.nxlv
LEVEL ../placeholder.nxlv
LEVEL level10.nxlvBy doing this - we only have to have a copy of a single placeholder level; we just reference it more than one in our various levels.nxmi files. Don't forget to remove this placeholder level when you don't need it anymore (because all spaces have been filled in).
Note that in general, you should be careful when using relative paths in levels.nxmi files. There's generally only two good reasons to do it - placeholder levels as mentioned above, or when creating a "no ranks, all levels are in the base pack directly" pack but want to put your level files in a subfolder. In particular,
never do this to reference levels outside of your pack's folder.
Well, that should cover all the features of pack creation that the majority of people will use - and for those who want to go beyond it, this should provide a solid-enough foundation to start understanding the first post better. Hope this helps!