Contents
Home
NeoLemmix
NeoLemmix
Level Packs Official Lemmings Games
NeoLemmix Editor Flexi Toolkit Format Information
Lemmings
Plus
Lemmings Plus I
Lemmings Plus II
Lemmings Plus III Lemmings Plus IV Lemmings Plus V Lemmings Plus Omega
Holiday Lemmings Plus
Lemmings Plus Flashbacks Lemmings Plus Flashbacks II
LP Packs Comparison
My
Other Levels
Doomsday
Lemmings NeoLemmix Introduction Pack
Lemmix
(Traditional)
CustLemmix
Flexi
Lemmix
Lemmix Players
Tools
Tools List NeoLemmix Graphic Set Tool
Obsolete LemMain LemSet
NeoLemEdit
|
Flexi Lemmix Tutorial - Part 3
Welcome
to the Advanced section of the Flexi Lemmix tutorial! If you've read the Intermediate Tutorial, you should know everything you need to know to make a pack using the Flexi Toolkit. This part will teach
you about manipulating the data files manually, rather than doing it
through the app, in case you wanted more direct control, don't like the
app's interface for a certain part, or perhaps even wanted to write
your own tool to manage data.
When
a project is saved from the Flexi Toolkit, it saves all the files
needed for the pack, in the format the player uses them in. There's no
packing everything into some unique obscure format, no seperate
"project info" file - everything the toolkit saves is used by the end
player, and in the same format; the only difference is that when
compiled into a pack, all these files are packed into a single NXP file.
So, what exact files are there?
- SYSTEM.DAT - This contains the information on the project's settings, texts, etc. Only Flexi itself can edit this file properly.
- TALISMAN.DAT
- This contains information, if any, on the game's talismans. Only
Flexi itself (or the now-outdated Talisman Tool) can edit this file
properly.
- xxxx.LVL - These are the level files; they're stored in a "levels" subfolder.
- levels.ini - This lists the positions of the levels. It's also stored in the "levels" subfolder.
- xxxx.LRB / xxxx.NXRP
- These are replay files. These always begin with the corresponding
level's filename (including the .lvl extension), and are listed in
replays.ini.
- replays.ini - This lists details about the replay files.
- <graphic sets>
- These files also have a .DAT extension. The format of them is unique
to NeoLemmix, though they are compressed with the same algorithm as DOS
/ traditional Lemmix.
- <music files>.ogg / .it - These are the music files for your pack.
The standard versions are stored in the main project folder, while the
music pack versions are stored in a "MusicPack" subfolder.
- ixxxx.txt / pxxxx.txt
- These contain the preview and postview texts for any levels that have
them. They're just plain ANSI text files; either CRLF or LF newline
encoding is acceptable.
- music.txt - This file contains the list of musics in the standard rotation.
- <image files>.png - These are the custom graphics for your pack. The full set of names is listed below.
- Custom Data Files - These can be anything, and are stored in a "files" subfolder.
So, how can one go about modifying these files directly? Firstly, a word of warning - never
modify the files in the project file while the tool is open. The tool
does not check for updated files, and will blindly overwrite them when
you save your project. Instead, save your project, close the tool, then
you may work with the files directly.
We'll start with levels. These are stored in a subfolder called "levels".
The levels.ini file tells the toolkit which level is at what position.
For example, if "Just Dig.lvl" is level 1 of rank 1, levels.ini would
contain a line "0101=Just Dig.lvl". The order within levels.ini doesn't
really matter, but it is important that there are no gaps (for example,
if you have up to 0105, and have 0107, but do not have 0106, it will
stop loading for that rank after 0105). You can have more than one
position point to the same level file, in case you wanted a filler
level for not-yet-filled slots in your project.
Replay
files are somewhat complicated; I strongly suggest not attempting to
modify these by hand. However, directly replacing existing replay files
rather than re-importing them is generally okay. (Do note that Flexi
won't detect they've changed and mark them as now being up-to-date;
this still has to be done through the Replay Manager). If you feel
confident enough, you can examine the replays.ini file; the hexidecimal
number is the CRC32 of the level file the last time the replay was
marked as up to date, and the rest should be easy to figure out.
Graphic
sets are once again a
matter of, just drop them in the folder. You can also edit them
directly from the folder with the NeoLemmix Graphic Set Tool if you
like. Likewise, musics work the same way - some things to keep in mind
are that if you have both an OGG and an IT file for the same track, the
OGG file has priority, and the IT will in fact get deleted if you open
then re-save the project in the Flexi Toolkit.
Next, the text
files. These should be named iRRLL.txt for a preview text, or pRRLL.txt
for a postview text, where RR is the rank number (with the first rank
being 01) and LL is the level number. These should be as two-digit
numbers, ie: put a leading zero for single-digit numbers. However, in
the event you have a rank with more than 99 levels, you simply put the
level number as three digits, so for example, Rank 3 Level 105 preview
text would be i03105.txt. The files themself are just plain text,
nothing else; do keep in mind the limit of 40 characters per line, and
18 lines total. The files may exceed this, but larger number of
characters will likely not fit on screen, while lines beyond the 18th
are outright ignored. For those who are technically-minded enough to
know what this means - it does not matter if the text files are CRLF or
LF-only, but they must ANSI, not unicode / UTF-8.
The
music.txt file is exactly the same as what you see in the Edit Music
Rotation dialog. One track per line, in the order they should be in the
rotation.
The
image files are just
standard PNG files - note that problems may occur if they're not 32-bit
PNGs; and most certianly you cannot use BMPs here (the reason
you can
use them when importing through the toolkit is because the toolkit
automatically converts then to PNGs). The full list of possible
filenames
are:
- logo.png - The title graphic for the main menu. This should be exactly 632x94 in size. Semitransparency is supported.
- background.png
- The background used in the menu / preview / postview screens. This
can be of any size, it will be tiled to fill the needed area.
Semitransparency is not supported for obvious reasons.
- sign_<type>.png - The signs on the main menu - the types are "play", "code", "rank", "config", "talisman" and "exit". The
rank sign should be blank; ie: with no actual rank's name displayed on
it. The normal size for these is 120x63, but they do not have to be
exactly that; as long as they're close to it, they should work alright.
Semitransparency is supported.
- skill_panels.png
- This is the blank skill panel, which the various icons will be drawn
onto. It should not have an area for digits, and should be 16x23 in
size. If you want more than one appearance, you can have a width that's
a multiple of 16, and NeoLemmix will loop through each panel graphic.
Masking is supported.
- empty_slot.png
- This is the graphic used for a skill panel slot that would have a
skill, but is filling space in a level with less than eight types of
skills in the skillset. Unlike the skill panels, you cannot have more
than one graphic; it must be a single 16x23 panel. Masking is supported.
- skill_count_digits.png
- These are the digits for the skill count. All of them are contained
in a single image, arranged horizontally starting from zero, with infinite and then locked at the end.The total
image should be 56x8 in size (4x8 per digit, except infinite and locked which are 8x8). Semitransparency is
supported, and it can be masked.
- skill_count_erase.png
- This is a bit misleading name; it's actually the skill digit area for
panels that have one. Semitransparency is supported but not
recommended. It can be masked, but the mask must be added as a custom
data file.
- minimap_region.png - This is the border of the minimap. It should be 111x16 in size.
- rank_<number>.png
- These are the graphics to appear on the rank sign for each rank.
These
are not the entire sign, but only a portion of it; the optimal size for
these is 72x27, but slightly differing from that should still work
(indeed, many of the official games' conversions use 73x28 images).
Semitransparency is supported.
All
mask images should have filenames matching the main image, with "_mask"
added at the end (eg: to add a mask for skill_panel.png, you would call
it skill_panel_mask.png).
The following additional image files can be added as Custom Data Files. These go in the "files" subfolder.
- menu_font.png
- This is the font used in the menu. All characters are in a single
image, arranged horizontally. Each character is 16x16, for a total size
of 1504x16. The characters are, in order: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~. Semitransparency is supported.
- talismans.png
- These are the talisman graphics as shown on the talisman list. The
image contains all six graphics (three colors, in both active and
inactive forms). The inactive ones are on the left, the active on the
right; with bronze at the top, then silver, then gold. Each talisman
graphic should be 48x48, making the total size 96x144. Semitransparency
is supported.
- scroller_lemmings.png
- These are the lemming graphics displayed on the main menu scroller.
All frames of both lemmings are combined into one single file, which is
96 x 256 in size (each frame being 48x16). The left-side lemming is on
the left, the right-side lemming is on the right, and the animation
frames are ordered from top to bottom. Semitransparency is not supported.
- scroller_segment.png - This is the graphic that is tiled to make the
actual scroller itself (the scroller_lemmings.png only contains the
lemmings at the ends). This should be 16x16 in size. Semitransparency
is not supported.
- panel_font.png
- This is the font used on the skill panel. All of them are in a single
image, arranged horizontally. Each character is 8x16, for a total size
of 352x16. The characters are, in order: %0123456789-ABCDEFGHIJKLMNOPQRSTUVWXYZ. Semitransparency and masking are both supported.
- panel_icons.png
- These are the other icons used on the skill panel. Each icon is 8x16,
for a total size of 56x16. The icons are, in order: replay mode (no
insert), lemmings to spawn, lemmings alive, save requirement, stopwatch
(time taken on no-time-limit levels), hourglass (remaining time on
time-limited levels) and replay mode (insert mode active). Semitransparency and masking are both supported.
- icon_<name>.png
- These are the graphics drawn onto the skill panels to show their
function. For the skills, the name is the name of the skill. Other
valid names are, in the order they're shown in-game, "rr_minus",
"rr_plus", "pause", "nuke", "ff", "restart", "1fb", "1ff",
"clearphysics", "directional", "load_replay" and "minimap". Note that
the split in the middle of the directional select button is in fact
part of the icon graphic itself. Semitransparency and masking are
supported.
- tick.png -
This is the green tick shown on the level select screen to mark a level
as having been completed. Semitransparency is supported.
Custom lemming sprites are also added as custom data files in the "files" folder. It is recommended to use the default sprites
as a starting point. If you simply want to make a couple of changes to
the default sprites, you can simply put a custom file with a matching
name. If you want to include a custom set, you must change the name so
the prefix matches your custom set name (eg: if your set is called
"mylems", you should have eg "mylems_walker.png", "mylems_digger.png",
and so on). Every lemming sprite supports masking, and none require a
mask (not even those that do have one in the default sprites). The
xxxx_scheme.nxmi file is important too; this defines how many animation
frames each sprite has, and where its foot position is. Generally, if
your sprites are based off the default ones, you won't need to change
anything in the scheme file, but you'll still need to include a copy of
it. For anyone who is advanced enough to be modifying the scheme file,
it should be simple enough to figure out how it works; note that the
whitespace in it before the start of each line is not significant, but
any whitespace after the first non-whitespace character on a line is
considered significant. Blank lines are also not significant, and lines
that don't have a meaningful keyword at the start, as long as they
don't start with a $ sign, will simply be ignored (though it is
recommended to start any comments with a #). So, that
concludes everything you need to know about the Flexi Toolkit. Hope
you're finding it useful, and I look forward to seeing your packs! :) |