Flexi Tool Tutorial

So, you've mastered creating a Flexi Lemmix pack using the standalone player, now it's time to have a go at creating an all-in-one EXE for your pack using the Flexi Toolkit!

In order to create a Flexi Lemmix all-in-one EXE, you will need the following:
The required programs can all be downloaded from this website itself, while you've hopefully created your level pack by following the first tutorial. The Flexi Toolkit includes copies of the graphic sets, in case you don't have them handy for some reason.

So, what's different about the Flexi player in the toolkit? Not much, except that it won't load external files (though LookForLVLFiles still works if your pack allows for it); it's used for building players where everything is built into the EXE. You need a few programs to make this happen, but the Flexi Toolkit contains all of them.

The Flexi Toolkit contains an installer for a program called "Resource Hacker". If you haven't already installed it, do so now. This is the only part that requires installation. Of course, you only have to install it once; you don't have to reinstall it every time you create a new pack.

The next thing you need to do is make sure your levels are packed into DAT files. You can of course just use external LVL files, but that somewhat defeats the whole purpose of building an all-in-one EXE. You cannot embed LVL files directly into the EXE; only DATs can be embedded. Now, if you haven't already packed your levels, this can be quite tedious, right?

Fortunately, no! The Flexi Toolkit includes a program called QuikPack that quickly packs your levels into DATs for you, assuming they're named in the format that LookForLVLFiles would expect. QuikPack can work with both traditional and NeoLemmix levels; there aren't two seperate versions of it.

To use QuikPack, put it in the same folder as your level files, and run it. You'll need to specify a few options:
  1. The "filename base". When building packs for the Flexi Toolkit, always enter "level" here (without the quotes).
  2. How many ranks you have. Enter the number of ranks, pretty self-explanatory.
  3. How many levels per rank. If your pack has different numbers of levels in different ranks, enter -1 here, and you will be asked individually for each rank.
  4. The maximum number of levels in each DAT file. Since we want to pack each rank entirely into a single DAT each, just enter -1 here, which equates to no limit.
  5. How many graphic sets you are using. You don't actually need to enter this accurately; it has no impact on the output files. It's just used by QuikPack to produce a count of how many levels you have in each graphic set.
QuikPack will then pack all the levels into DAT files - if you chose to specify different level counts for each rank, it will ask you at the start of each rank how many levels the rank has. You may want to create the DAT files before you've created all your levels. If QuikPack can't find a certain level, it will give an error and crash - but there is a way around this without creating a filler level for every slot. If you simply have a level file named "0000.lvl", it will place this level in any slot where the actual level file for that slot does not exist.

So, now that you've got your level DAT files, it's time to move on to the next step. You'll notice the Flexi Toolkit comes with two folders, named "data" and "music". These by default contain all the standard styles, and all the Lemmings and Oh No! More Lemmings! musics. You'll want to place all your music files into the "music" folder, and all your DAT files (regardless of whether they're MAIN.DAT, graphic sets, VGASPECs or level packs) and TXT files into the "data" folder. Keep in mind - you MUST include all graphic sets you're using; unlike with the standalone Flexi Player, your custom all-in-one EXE will not contain anything by default once it's been built.

Once you've placed the files into the "data" and "music" folders, run LemResourceBuilder. A small window will pop up with two buttons, "Flexi Data" and "Flexi Music". Click these once each; upon clicking them, three files will be created in the same folder as LemResourceBuilder, titled "lemdata.arc", "lemdata.rc" and "lemdata.res" (or "lemmusic", for the music button). You don't actually need the ARC and RC files; you can delete these as soon as the RES file has been created - the RES is the one you need.

Once you have LEMDATA.RES and LEMMUSIC.RES, run Resource Hacker. Open the Flexi Player EXE from the toolkit with it. You'll see a few folders listed in a tree view on the left; expand the "Archive" folder. Inside this are a few more folders; the ones you're interested in are LEMDATA and LEMMUSIC (you probably guessed this). When you expand those, there'll be one item in each, in both cases titled simply "5129". Right-click on the 5129 under LEMDATA, click "Replace Resource", then in the new box that pops up, click "Open file with new resource". Find your LEMDATA.RES file, and a tree view will pop up which also contains a folder called ARCHIVE, with one inside it called LEMDATA, and finally an item in that called 5129. Click on this 5129, then click the "Replace" button. Then, repeat this with LEMMUSIC.

If you have a custom icon you want to use for your player (which must be an ICO file), you can also replace the icon. It's under the "Icon Groups" folder in the same tree view as ARCHIVE; it should be right at the bottom of the list.

It is also possible to use Resource Hacker to modify in-game texts that can't be changed through SYSTEM.DAT, but how to do this is beyond the scope of this tutorial.

Once you're finished adding LEMDATA and LEMMUSIC (and a custom icon if you wanted to), you can save your EXE and close Resource Hacker. You now have an all-in-one EXE for your level pack! Enjoy! Just for the record, you don't have to leave the filename as LemmixPlayerFlexi.exe; you can rename it to whatever you like.