This document is about how to put new stuff into your lbz version! :)

As you might have noticed by now: lbz now stores it's graphics and models in a ZIP file.
This is a normal zip file created with winzip or with the linux zip command.
The only trick to it is to DISABLE COMPRESSION :) lbz only takes UNCOMPRESSED zipfiles.

WHY???

1: I can easily give out patches to the data file.
2: Create mods and share them (in the future: when the network protocol gets it's update)
3: This gives me great file search capabilities: (on windows and linux...)
4: You can overwrite/edit files WITHOUT deleting the old file. (more on this below...)

HOW DOES IT WORK?

1: LBZ starts up and opens up the “lbzmain.zip” file.
2: LBZ creates a list of all the files in this zip file...
3: It then opens up and mod or patch zipfiles it can find (more below).
4: It checks for new versions of the files found in lbzmain.zip and new fresh files... these are added to the list.
5: LBZ is started: the file list is used to load files.

SO I WANT TO MAKE A MOD...... HOW?

Simple: unzip your normal lbzmain.zip.... this should create the data map etc.
Now edit all you want: (use the other HOWTO's ;)).
Now delete all the files you dont need in you mod from the data directory.
Zip the data directory and make sure you DONT USE COMPRESSION!
And last: name your zipfile to mod{number}.zip, where number is a number from 0 to 999 :)
And voila! your lbzmain.zip is COMPLETELY UNTOUCHED and you still have your mod.

OK........ AND WHAT ABOUT INSIDE THE DATA DIRECTORY????

Ok... LBZ loads the data directory based on a few rules:
1: All files that are in the “data/leveltextures” map are loaded as textures for the levels... simple huh?
2: All MAPS that are in the “data/levels” map are loaded as levels as long as they meet the requerements for levels.
3: All MAPS that are in the “data/characters” map are loaded as characters as long as there is and index.lcf file in it.

SOUND SIMPLE ENOUGH.... JUST PUT THE FILES IN THE RIGHT PLACE.... BUT WHAT ABOUT REQUEREMENTS???

It's a level when you have at least these files in the map:
levelshot.tga: This is a picture of the level. used in the menu.
level.lev: The actual level: you can create this with the ingame level editor.
Optionaly you can include:
level.mmd: a configuration file to include models on your levels.
prerender.lgs: a render script that is called BEFORE your level is drawn.. (make a nice skybox with this!)
postrender.lgs: a render script that is called AFTER your level is drawn.. (make nice fogg effects with this..)

For more info: just check out the lbzmain.zip file and the files inside of it.