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 |
LemSet Tutorial
This will explain how to create a custom graphic set with LemSet. Unfortunately, LemSet can be a bit tricky to use, but it's the only tool we have at the moment for creating custom graphic sets for DOS Lemmings, Lemmix and NeoLemmix. Firstly, you should create a folder to work in. I would recommend putting a copy of LemSet in the folder. After this, place all images you create for the style, as well as the STYLE.INI file, in the folder. A graphic set, before being compiled, consists of:
All BMPs for LemSet must be 24-bit, uncompressed BMP files. LemSet does not support 8-bit BMPs, or any non-BMP format such as PNG or GIF. As mentioned above, a graphic set has a set palette; any color that does not exist in the palette is considered to be transparent as far as LemSet is concerned (unless using RGB-based images, in which case color #7 (the 8th one in the palette) is considered to be the "transparent" color). However, it should be noted that before comparing colors, they are converted from 24-bit colors to 18-bit colors. So, if you have 252,252,252 in the palette, and a pixel that's 255,255,255 in an image, it will not be considered transparent; as once downgraded to 18-bit, these two colors are identical. It should also be noted that all terrain piece and object BMPs must have a width that is divisible by 8. This only applies to the width; the height can be any value you like, with one exception which we will see later. 1) palette.bmp Palette.bmp contains all the colors used by the graphic set. It is important to note that the first 8 colors are fixed; if you put different ones, the game will replace those colors with the standard ones. It should be an image with dimensions of either 16x1 or 32x1, with each pixel representing one palette entry. 2) t##.bmp These images contain the terrain piece. The first piece should be t00.bmp, the next t01.bmp, and so on. The maximum is 128 pieces (ie: up to t127.bmp), though traditional Lemmix can only use up to 64 pieces. LemSet will stop looking for terrain pieces when it either reaches t63.bmp, or reaches a file that does not exist - so for example, if you have up to t10.bmp, then don't have t11.bmp but do have t12.bmp; t12.bmp will not be compiled into the graphic set (because LemSet finds t11.bmp doesn't exist, and stops loading terrain pieces at that point). 3) o##.bmp These images contain the objects. The first piece is o00.bmp, the next o01.bmp, and so on. The maximum is 32 pieces (ie: up to o31.bmp), though traditional Lemmix can only use up to 16. If an object has more than one animation frame, then every frame is stored in the one BMP file, arranged vertically - the top frame is frame #0, the next is frame #1, etc. Unlike with terrain pieces, LemSet does not automatically deduce whether or not an object exists from the file's existance or lack thereof; instead it depends whether the object is defined in the style.ini file. In all cases, the frames are arranged sequentially vertically like this, with no gap inbetween; exactly what frame should be what depends on the object. 4) style.ini The style.ini file contains all the information about the style, most notably (but not solely) the data about the interactive objects. The rest of this tutorial deals with the contents of style.ini, and how it relates to the other files. Each entry in the INI file takes the form of: key = value They are not case-sensitive, and spaces are ignored. Only one entry may be on a line, but blank lines are permitted. The order of the entries does not matter; it only matters that they're all there. The types of entries that may be found in a style.ini can be divided into four types - palette info, object info, terrain info and others. We will cover them in this order, except leaving objects until last because it is by far the most complicated. Palette Info
Terrain Info
Other Info
This leaves only objects to deal with. Objects are very complicated, as there are many types of objects. There are many properties which can be set for objects; some are global to all object types, while others are only used for certain types. Global Object Properties - These properties apply to ALL objects. In all object keys (whether global or object-specific), # should be replaced with the object number; this is the same number as in its BMP filename. For example, o03.bmp is referred to here as object_3_(whatever). Do note that you must not put leading zeros on the key name.
While these apply to all objects, they do not nessecerially have to be defined (except for object_#_frames). They will default to 0 (which is the first frame, or a purely-decorative object) if not set. Type-Specific Object Properties - These properties only need to be set on certain types of objects.
First, we will cover one object type that works in a very unique way - that is, the entrance window. There is no defined value for object_#_trigger_effect that gives a window; rather, the second object in the set (o01.bmp) is always assumed to be a window, and no other object can be a window. The correct order for the frames of a window is for the first frame to be fully open, the second frame fully shut, and the remaining frames the opening animation. In DOS, the window also must be exactly 48 pixels wide, and at least 25 pixels tall (this is per frame, not all frames combined). This limitation does not exist in Lemmix (not even in traditional Lemmix), but is still enforced in LemSet versions up to V9; LemSet V10 and onwards no longer enforce it. For newer versions of NeoLemmix (V1.25n onwards), you can specify a spawn position using the trigger top and trigger left coordinates; if none is specified (or in older NeoLemmix or traditional Lemmix), a default position is used. The default position is 24, 13 in versions of NeoLemmix that do support this, 24, 14 in traditional Lemmix when playing under Original Lemmings mechanics, and 25, 14 in other NeoLemmix versions or other traditional mechanics sets. As of recent versions of NeoLemmix (V1.29n onwards), what I said about having no defined value is not quite accurate. Object #1 is still assumed to be a window (unless multi_windows, above, is set), but you can also set other objects as windows (or set object #1 as one in sets that do have multi_windows set) by giving them the trigger effect ID number 23. With that covered, we now must cover the 28 different types of "normal" objects (not including objects that do nothing, which have already been explained). First, I will list the "standard" types. These simply need a defined trigger area (using the trigger_left, trigger_top, trigger_width and trigger_height properties), do not need any special organisation of their frames, and should not have trigger_anim turned on. Any lemming that walks into their trigger area is affected (or in the case of one-way arrows / steel, any terrain within their trigger area is affected). Traditional & NeoLemmix Object type 2: One-way field left (right-facing lemmings are turned around) Object type 3: One-way field right (opposite of above) Object type 5: Water Object type 6: Fire Object type 7: One-way wall left Object type 8: One-way wall right Object type 9: Steel area Object type 10: Anti-blocker field (blockers can't be assigned in the trigger area) NeoLemmix Only Object type 16: Secret level trigger When a lemming enters the trigger area, a secret level is triggered. Object type 18: Radiation When a lemming enters the trigger area, it becomes a timed bomber with a 9 second countdown. Object type 19: One-way wall down One-way down walls can be mined (in either direction) or dug, but cannot be bashed. Object type 20: Updraft Updrafts slow fallers/floaters, and a lemming that lands while inside one will not splat. Gliders are blown upwards by them. Object type 22: Slowfreeze Slowfreeze is similar to radiation, but gives a Stoner rather than a Bomber. Object type 25: Hint These currently do nothing and are not displayed in-game; they exist only for Cheapo compatibility purposes. They are displayed in the editor so you may be able to think of creative uses for them. Object type 26: Anti-splat pad A lemming landing on these will not splat. The difference from Updraft is that they have no special effect on lemmings while falling / floating / gliding, only upon landing. Object type 27: Splat pad A lemming landing on these will splat, no matter how short the fall was. Floaters/gliders are still safe, provided they fell far enough to pull their parachute / glider out. No, object types 2, 3 and 10 are not a mistake - they really exist under traditional Lemmix, and even DOS; they just aren't used by any official objects (but Lemmings Plus II does make use of the one-way fields). Object type 9 is not a mistake either - despite the seperate steel areas, it's also possible for an object to place a steel area. It should also be noted that despite being traditional Lemmix, the secret level trigger worked in the older traditional Lemmix versions of Lemmings Plus II and Lemmings Plus II Bonus Pack; they were specially coded to add it. On the subject of secret level triggers, it should also be noted that they are not actually visible in-game, the graphic is purely for the editor. (This does NOT apply to traditional versions of LPII / LPII Bonus; in those they will be visible just like any other object, unless their graphic is entirely transparent of course.) Now, I will explain the more complicated object types. Note the following shortcuts in the below table:
Also note that except for the exit and triggered trap, all remaining object types are NeoLemmix-only. Object type 1: Exit
Object type 4: Triggered trap
Object type 11: Teleporter When triggered, the lemming is moved to the corresponding receiver or two-way teleporter.
Object type 12: Receiver Receives a teleported lemming from a teleporter or two-way teleporter.
Object type 13: Pre-placed lemming A single lemming which is pre-placed on the map instead of spawning from an entrance.
Object type 14: Pickup skill When a lemming reaches this, the skill on it is added to the skillset.
Object type 15: Locked exit This works like a normal exit, but must be unlocked by pushing all unlock buttons in the level.
Object type 17: Unlock button These are pushed in order to open a locked exit.
Object type 21: Splitter Lemmings that enter the splitter are sent out facing alternating directions - the first lemming to reach it will go right, the next will go left, and so on (it is possible to make the first one go left instead, second right, etc).
Object type 23: Window See above for details, near the start of the section on objects. Object type 24: Triggered animation Triggered animations do nothing apart from animate; you could compare them to constant no-effect objects (like the flags in the default graphic sets) in the same way you could compare triggered traps to water/fire objects.
Object type 28: Two-way teleporter These are essentially like a teleporter and receiver in one. They won't send lemmings to themself, only to a receiver or another two-way teleporter.
Object type 29: Single-object teleporter These are also like a teleporter and receiver in one; the difference from a two-way teleporter is that a single teleporter sends a lemming to it's own trigger point, not to a corresponding receiver / two-way teleporter.
Note: Use of the two-way teleporters and single-object teleporters is generally not recommended due to the limitations on only having a point, not an area, for the receiving of teleported lemmings, as well as the less-capable key frame control on two-way teleporters. You should instead split the object into a Teleporter and a Receiver. The reason these alternative types exist is mostly for Cheapo compatibility. And finally, a list of sound effects. Note that a lot of these only work properly for objects under DOS; only a limited subset of them work under Lemmix (even including NeoLemmix):
|