Server Help FAQ - BuildLevel (.lvz)
Server Help
Question: Email
Question: Board
Download
Commands
FAQ
How To: Make a Zone
SubSpace /OS
Bomb Calc
Bot Info

FAQ Index






Descriptions and hints on how to do about everything with the BuildLevel program and their .lvz's



What is a .lvz? What does it do?11/10/2001
A .lvz file is a compressed file that the server sends to each and every client. When the client receives the file, the client will extract the data inside of it to either the zone's main folder (\Zones\Zone Name Here\) or a subfolder named that arena name (\Zones\Zone Name\ArenaName\). The client will then use any .bm2's, .wa2's, etc, to customize the client for that arena.

The .lvz's can also do special 'objects' that the client can see via the command *objon and *objoff (read FAQs on them for more help). These objects can do various things, such as place images on the screen, or put text at certain locations giving the client hints in a maze.


How do I make a .ini for BuildLevel?1/25/2002
A .ini file for use in BuildLevel must follow these formats. All lines starting with a ; will be ignored when the .ini is compiled into a .lvz.

; The very first, or highest non-comment line should contain the following:
OutFile=somename.lvz
; The somename.lvz will be the file where the data will be compressed to. If the file already exists, will override that file. The file name should end in a .lvz

; Below that should be the location where you include files into the .lvz. This is where the two BuildLevel programs will be different. I'll first show how priitk's BuildLevel.exe will work for these next two sections.

; { Start BuildLevel.exe }
File=bong200.wa2
File=commands.hlp
; This will tell the compiler to include "bong200.wa2" and "commands.hlp" into the .lvz file.

; After the File='s, the next section requires a header:
[objectimages]
; You now can freely add in the objects to be used later in the other sections. Format:
; IMAGE{number}={name}
; - or -
; IMAGE{number}={name},{x count},{y count},{display time}
; The second option allows you to do animated objects. An example would be if you had ship1.bm2 and you wanted to show the object to rotation, the x count (how many frames are in each row) would be 10, and the y count (how many frames are in each column) would be 4. If you wanted a .1 second delay between each frame of the image, you'd set the display time to 10. DisplayTime's numbers are 100 = 1 second.
IMAGE0=ship1.bm2,10,4,10
; You can have as many image objects defined as you wish.

; Please note, do NOT include the ship1.bm2 into the File= section with BuildLevel, otherwise the file will be included twice.

; { End BuildLevel.exe }

; I'll now show how to use the MakeLevel's method for the above

; { Start MakeLevel.exe }
File=ship1.bm2
File=bong*.wa2
File=commands.*
; If in the same folder this .ini is located has only these files ("new.ini", "ship1.bm2", "ship2.bm2", "bong200.wa2", "bong200.wav", "bong201.wa2", and "commands.hlp"), MakeLevel will include only those that match in the File='s.
; The File=ship1.bm2 will only find the "ship1.bm2" match, and will include that.
; File=bong*.wa2 will find both "bong200.wa2" and "bong201.wa2" and will include that. Since "bong200.wav" didn't match the * seach, won't include that here.
; File=commands.* will find "commands.hlp" and will include that.

; Please note, if you do File=ship1.bm2 and File=*.bm2, the ship1.bm2 WILL be included twice.

; Now that you have the files you want included, you can now defind some objects. Start the image header:
[objectimages]
; Now you'd use the same IMAGE# method that BuildLevel uses. The only different in the [objectimages] section between BuildLevel and MakeLevel is that MakeLevel will not auto-include the files into the .lvz. This will allow you to define all your objects into one .lvz, and have other .lvz include the files. This way you can have all your screen objects defined in one require .lvz file, and have the required images in images.lvz, and have optional images that some clients may not download in images2.lvz, and will work fine.

; { End MakeLevel.exe}

; The next two sections, the different object types, are the same for the two .exe's.

; Start the section:
[mapobjects]
; In both of these object types, they are both defined in the same format in the .ini. Just mapobject's X/Y values are in pixels for the map (0,0 is upper left, 8192,8192 is middle, and 16384,16384 is bottom right). The screen objects are in pixels for each user's own screen. More on screen objects in their section.

; Format:
; {xcoord},{ycoord},IMAGE{number},{layer}
; - or can add on extras at the end upto -
; {xcoord},{ycoord},IMAGE{number},{layer},{mode},{display time},{object id}

; Example for making the ship1.bm2 spin in the middle of the map for 10 seconds after you die:
8192,8192,IMAGE0,AfterTiles,Death,1000
; If you wanted to have it spin whenever a mod does *objon 10, you'd set it to:
8192,8192,IMAGE0,AfterTiles,Death,1000,10
; Display time here is also 100 = 1 second.

; List of all possible Layers, starting from the farthest back, towards the front:
; BelowAll, AfterBackground, AfterTiles, AfterWeapons, AfterShips, AfterGauges, AfterChat, TopMost

; List of all possible Modes:
; ShowAlways: Means will always show, or until timer ends. If you leave off the mode type, will use this.
; EnterZone: Will only begin to show after someone enters zone for the display time.
; EnterArena: Will only show whenever they enter the arena. So if you only want to show last reset's top 5 names to people who only enter zone, not everytime they re-enter arena, use EnterZone.
; Kill: This will only show after they kill someone.
; Death: Shows only after they die.
; ServerControlled: Shows only whenever the zone feels like showing it. Either a mod did a *objon # or a bot did.


; The next section:
[screenobjects]
; In this section, it is the same as above, just the X/Y idea is a bit different. Since everyone doesn't have the same resolutions, you'll need to be able to play off their screens. To do that, you can use the letter C. C stands for 'Center' (or in the actually .lvz, C stands for 20000).
; If you want an image that is 100 pixels wide to be in the very center of their screen in the X direction, you'd set the image's X coords to be: C-50
; If you want the 100 pixel image to be in the very left side of the screen, set X coords to be: 0
; If you want the 100 pixel image to be on the very right side of their screen, set X coords to be: -100

; And thats about all for the quick example.


How do I use a .lvz in my zone?2/16/2002
After you have created and uploaded a .lvz file to your zone's folder, you need to set it to be downloadable for users. To do this, in your settings (*.cfg files), list the .lvz's you wish users to download in the Misc:LevelFiles setting. Example: If you want ships.lvz to be optional download, but banners.lvz to be forced, in your .cfg, set Misc:LevelFiles:+ships.lvz,banners.lvz


How do I turn objects on / off?2/16/2002
To turn a server controlled object on or off, you can either send it publicly (turns everyone's object on/off) or privately. The format is *objon id# or *objoff id#. To find the object's id number, look in the .ini that you used to create it. Example:

.ini line:
C-150,150,IMAGE0,BelowAll,ServerControlled,2000,1

To turn if on for everyone publicly:
*objon 1

To turn it off for Joe:
:Joe:*objoff 1


My 4+ meg .lvz file never downloads, why?9/7/2002
Subspace has a limit in place so that files over 4 meg cannot be transfered. What you need to do is to make a smaller .lvz file.





Please send any questions or comments to mgb@minegoboom.com.
Need info about the staff? Staff Info Page.
Copyright © 1998 Crash, Inc.
Our addresses