Post by ADMIN on Mar 9, 2009 15:24:08 GMT -5
Instructions for STARSIEGE Mission Editor
IMPORTANT NOTE: The Starsiege mission editor is an unsupported tool for advanced users to create their own missions. We have created a forum for users to discuss tips, tricks, and ideas, and to help users support one another at www.starsiegeplayers.com. You can use the mission editor to create single player missions, entire single player campaigns, and multiplayer missions. The caveat is that this program is most useful for those individuals with programming experience. It is not intended to be user-friendly to the casual dabbler.
To enable the mission editor:
Start Starsiege with the "-me" argument. If Starsiege is installed to the default directory from the windows command prompt, type: c:\dynamix\starisege\starsige.exe -me. An available option is to create a shortcut to Starsiege and then add the '-me' to the target field. When you create a server and enter the mission, the console and mission editor will automatically become enabled, and the console will be enabled permanently.
Only run the mission editor on a local server. When you run Starsiege in mission edit mode, do not try to join a game or to play the campaign. In this mode, engaging the campaign and vehicle lab components could easily crash the game. You should also probably make sure time limit is turned off on your server so the mission doesn't activate while you are editing. A password for your server is also a good idea in order to prevent players from entering while you are editing (a good way to crash everything).
Save often. The mission editor is infinitely flexible and therefore allows you to create situations never anticipated by the designers of Starsiege. It is undefined what will happen under such situations, so save frequently to minimize data loss in case of a crash.
Controls for the camera and misc. controls
Some of the following commands are for TED, some are for the mission editor, and others move the camera or relate to general functionality.
Key Stroke Action
W Move Camera Up
S Move Camera Down
A Move Camera Left
D Move Camera Right
E Camera Up
C Camera Down
1 through 0 Change Camera Speed
~ Toggle Console On/Off
Shift+Mouse Rotate Selected Object/Group
(left click and hold on an object then depress the shift key)
Ctrl+Mouse Raise/Lower Selected Object/Group
(left click and hold on an object then depress the control key)
F1 Hide Mission Editor
F2 Show Inspector
F3 Show creator
F4 Show Ted
F5 Game Mode
F9 Toggle help
O Options window
Ctrl+C Copy selection
Ctrl+X Cut selection
Ctrl+V Paste selection
Ctrl+D Drop
Ctrl+N New Group
Ctrl+Z Undo
Delete Delete Selection
Using TED (Terrain EDitor)-- F4
TED is the tool for editing terrain. It gives you the capacity to completely customize a map's terrain. You can even make their own terrain tiles. (This process is complex beyond the scope of this document, but if you wish to experiment artistically, you may indeed change even the terrain tiles.)
To access TED: hit F4.
The Controls:
[New]
New will generate a new TED volume according to your preferences. It's often a good place to start. Another good starting location is to load an already existing mission and edit it. Rename the mission in Windows before you start editing since the name cannot be changed once you begin. New missions are saved in the Starsiege root directory; before editing, you must fully exit Starsiege and move the new mission file (.mis file and .ted.vol file) to the multiplayer directory.
To edit pre-existing missions: This only needs to be done if you are going to modify the terrain. If you are just making a new mission file, changing buildings, adding units,etc, you dont have to go through this. Only if you plan to change the terrain. Relighting counts as changing the terrain.
First copy and rename the .mis and .ted.vol in the multiplayer dir. DM_City_on_the_Edge.ted.vol becomes New_jack_city.ted.vol and do the same with the .mis file. Now create a server with the new mission and change the ted volume the mission uses. Go to MissionGroup/Volumes/tedVolume bring up its inspect window (F2) and change the volume name to the new volume name. Now SAVE, then exit. All the way to windows, it wont bite. Then restart, Starsiege and you are ready to edit both your new mis file and your new ted.vol file. See how easy that was.
[Save]
When save is pressed, two files are saved: the .ted.vol file (the terrain, or TED volume); and the .mis file (the mission file, which contains all the mission elements).
Note: If you change any of the .ted.vol files included with Starsiege you may not be able to join other peoples multiplayer games. Starsiege may notice that the file on you local machine has been changed and not allow you to join a server. Make a complete back-up of your multplayer directory in case the included missions become broken.
[Relight]
Changes the terrain lighting based on the lighting preferences from your lightsource (see Planet in "Using the Mission Editor/Sky and Planet").
[Level x]
(where x= a value from 1 to 6) changes the brush size. You can manipulate large numbers of tiles at once using larger brushes. However, levels 5 and 6 brushes will bog down machines. Try not to use anything larger than level 4. The brush appears as framed tiles (though this feature can be changed in the options menu) with each tile having a reference line pointing to the corner to be affected by location-specific changes (i.e., raiseHeight by 10 will not raise the whole tile into a mesa, but will raise that specific corner creating a small pyramid with the surrounding tiles). What the brush actually does is dependent on the action assigned to it.
[1 - Clumpy Vegetation] (or other terrain type)
This is the terrain type that will be applied if you use setTerrainType.
[--Selection Action--]
If you are using "select" ascribed to the mouse button and are using selection tiles, this pull-down menu will choose the effect to be imposed on the current selection.
[Clear Sel]
This deselects (clears) all the currently selected tiles. You can also choose "deselect" to ascribe to a button and deselect tiles one at a time.
[Clear Pin]
This clears all pins.
[TED Light]
Same as relight.
[xxxx.bmp]
This is the material pulldown menu. It chooses the texture of the tile you will manually place with the setMaterial command. Orders like GGGG.bmp will place grass in all four corners of your selected tile, whereas GGBB.bmp will create a blend of half grass and half rock. All the textured tiles should match when told to, using the command: " LS::ApplyTextures();".
Example 1: You set a GGGG tile against a GGBB tile at the GG side so there is a smooth transition from grass to rock. The bad news is that not all terrain tiles match all the time and so some have to be placed manually like pavement or the cybridy metallic texture found on the Pluto maps.
Example 2: I want to make a paved road. I click on the material pulldown menu and from the menu, I choose rd_p_srt.bmp. (I assume it's a straight paved road.) I ascribe "select" to my mouse button and select an L shaped group of tiles with the mouse, then I click on [--Selection Action-]. From that menu, the correct choice is "setMaterial ".
Bam! It replaces all the tiles I had selected with the paved road texture, but they are all askew. The road didn't follow the L. In fact, some of the road doesn't even match up on the same sides of the L. Now is the time for LS::ApplyTextures, right?
Wrong. The road must be rotated manually. Ascribe "rotate" to one of the mouse buttons and click the tiles that don't match. Rotate the ones that should be going north-south in that direction, and the ones that should go east-west to line up that way.
Now for the corner. Click [Clear Sel] to clear the road selection. Ascribe "select" back to the mouse button and click on the tile that should be the corner. The corner is a different material than the straight road, so from the material list, it should be something like rd_p_crn.bmp. Now, with the corner and the proper material selected, choose " setMaterial " from [--selection action--]. Now isn't a bad time to type "LS::ApplyTextures();" into the console. This command should transition the road tiles to the surrounding dirt, rock, or whatever was there before you chose to lay down a road.
Easy, wasn't it? If you really want to, you can try and make the road end correctly. Did you see rd_p_end.bmp in the texture menu? Enjoy!
The convoluted example above provides an additional plug for the usefulness of Ctrl+Z for undo. Ctrl+C for copy and Ctrl+V for paste are also available. Good test use: To lengthen the legs of either side of the L shaped road you just made. "Select" a few straight road tiles from either part of the L (don't include the corner or the end if you put one on) and hit Ctrl+C. Now hit Ctrl+V, and wherever you click next will be slathered with exactly what you just copied, so copy the new selection onto the end of the road. This process can be repeated and works with roads (or any material textures) AND elevations, meaning you can copy and paste mountains and canyons.
NOTE: Whether you are cutting and pasting materials, heights, or both is configurable in the options menu.
[mouse]
The two boxes to the right of the materials box are commands the left mouse buttons can be ascribed to. Just right-click on the current function and choose a different one if you need it. You have two choices for your left-mouse button, so you can toggle back and forth between the functions ascribed with a single click. I always have one button set to "select" and use the other for whatever is necessary, but your preferences may differ from mine.
These actions be ascribed to your mouse buttons:
Action Performs
Adjust Control Point Selects a single terrain tile and adjusts its height and the height of corresponding tiles accordingly.
Clear Flags Clears all previously set flags.
Clear Pin Clears all previously set pins.
Deselect Deselects selected terrain tiles
Depress Depresses selected terrain tiles by a pre-set amount (set in the Options screen). This feature will also adjust the height of neighboring terrain tiles to create a smoother appearance.
Elevate Elevates selected terrain tiles by a pre-set amount (set in the Options screen). This feature will also adjust the height of neighboring terrain tiles to create a smoother appearance.
LowerHeight Lowers the height of selected terrain tiles by a pre-set amount. Unlike the Depress function, this will not affect neighboring terrain tiles.
Pin Fixes terrain so it does not morph, or "grow." This feature will greatly increase the poly count, however, and may cause unexpected problems like terrain "rips." Be very careful.
RaiseHeight Raises the height of selected terrain tiles by a pre-set amount. Unlike the Elevate function, this will not affect the neighboring terrain tiles.
Redo Undoes an undo.
Relight Relights the terrain.
RotateLeft Rotates a terrain tile to the left (useful for when laying down paths, for example)
RotateRight Rotates a terrain tile to the right.
Scale Scales terrain by a pre-set percentage (set in Options screen). If set to 1.5, for example, selected terrain is raised by 50%.
Select Selects a terrain tile.
SetControlHeight Sets the control height to a pre-set number.
SetCornerHeight Sets the corner height to a pre-set number.
SetFlags Sets all Flags to what is chosen in the Options menu.
SetHeight Sets all terrain tiles to a pre-set height (Options menu).
SetMaterial Sets all terrain tiles to a pre-selected material (set in the material field.)
SetTerrainType Sets all terrain tiles to the selected type of terrain, set in the box to the left of the "Selection Action" box.
Smooth Smoothes out the selected terrain.
Undo Undoes the last performed action.
[Gen:0]
This button will generate new landscape according to the style shown in the box just to the right of this button.
[Flat Terrain]
Choose your favorite landscape style here and hit the [Gen:0] button to apply it to your landscape. If none of these styles seems to suit you, or you think you'd like to try to make a custom landscape, use either the windows-based landscape editor or edit the terrains.cs script to change the effects of these styles.
Options: You can bring up the TED options menu by pressing O. (Note: This is the TED options menu. It is different from the options menu you will see with the ME.)
Values: These fields are for setting values for different Terrain Editor functions.
Height Adjust: Amount of height added or subtracted from selected terrain tiles, used with the Elevate, Depress, RaiseHeight and LowerHeight functions.
Height Set: Elevation that all selected tiles are snapped to, used with the SetControlHeight and SetCornerHeight functions.
Scale Factor: Percentages that all tiles are scaled to, used with the Scale function.
Pin Detail Min: Minimum detail terrain can be pinned to.
Pin Detail Max: Maximum detail terrain can be pinned to. Again, be very cautious with this feature.
Smooth Adjust: Gradation of "smoothing" selectable for when using the Smooth function. The larger the number, the more smoothing that is applied to the terrain.
Seed Value: The value the terrain generator is seeded with.
Flag Mask: These are used specifically for adjusting individual terrain tiles.
Corner: Sets selected tile as a corner piece.
Empty1, 2, 3: Removes selected terrain tiles from the map, creating a hole.
Empty1 cuts out a Level 0(1 tile) hole
Empty2 cuts a Level 1( 2x2 tile) hole
Empty 3 removes the tiles from a Level2 (4x4 tile) hole
Display Options: Controls how the grid appears on the map.
TIP: If tiles keep selecting and deselecting strangely, make sure outline mode is not on.
Paste Mode: Controls how terrain is pasted if you are using copy-and-paste. Both the Height and Material boxes are defaulted to on.
TIP: Cut, Copy and Paste are powerful tools to use with the terrain editor. Whole bases can be duplicated by copying and pasting materials. Mountains and canyons can be created or extended by pasting heights. Use this function to your advantage.
USE Ctrl+C to copy a selected area. Ctrl+V, then click on where you want the selection pasted.
Brush: Controls features of the selector grid.
Snap: When on, the selector grid will always snap to corners. When off, you are free to move the grid across the map.
TIP: Not snapping gives you more control over individual terrain tiles. Snapping is less likely to induce tearing.
AdjustControlPoint (one of my favorites) only works with snap set to on.
Feather: When on, this feature will automatically smooth terrain when its elevation is changed. If a single tile is lifted up, for example, neighboring tiles will also be raised to smooth it out.
Quick Light: A "quick and dirty" terrain lighting option; not as comprehensive as the full mission lighting procedure but not as time-consuming, useful to give you an idea of what lighting is going to look like.
Gen. Random: Generates random seed value for the terrain each time you press [Gen:0].
Editing terrain
Raising and flattening
Terrain height can be adjusted with ease. Large or small pieces of terrain can be raised or lowered by ascribing "raiseHeight" or "lowerHeight" to the brush. Chunks of terrain can be selected and set to a particular elevation by adjusting the value for Height set in the options and choosing setHeight from [--Selection Actions--]. Minor adjustments can be made with adjustControlPoint, then click and hold, forward and back with the mouse adjust the terrain height.
If you want gentle slopes, make sure feather is activated in the options menu. If you want distinct features, turn feather off. Smooth is a useful function for making distinct features more sloping.
Example 3: I want a large crater. I might select a large ring shaped area and turn feather off to give my crater a distinct edge. For my height adjust value in the options menu I enter 50. All that I have selected will be raised 50 units when I select "raiseHeight" from [--Selection Actions--]. (It would be lowered 50 if I chose "lowerHeight".)
Now I've got a mess. The terrain is pulled up in a big ring but its hard to see. The moment I move my viewpoint too far away, it all "shrinks" into the ground, but it grows back if I move closer. Plus the edges are too sharp for me to scale.
What's the solution? We should either lower the heights of smaller pieces of the crater or smooth the edges. Next we want to pin the growing pieces (see below) so we can minimize the size fluctuation.
Pinning
Pinning controls how many polygons are used to draw a particular piece of terrain. The higher number a tile is pinned to the more polygons are used to draw the terrain and the more detail is visible from further away. Sounds good, right? Just "pin" the entire landscape so it's perfectly detailed all the time from any distance, right?
Not so fast. There are multiple problems. First, not all computers are fast enough to draw that many polys. People will get a lousy framerate playing your level and blame it on lag. Also, one of the concepts that makes the terrain in Starsiege work is that the engine wants to draw more distant objects with fewer polys. So when it tries to reduce areas around a pinned area to fewer polygons, it can miss a piece here or there and create "tears" in the terrain. Other problems may occur as a side effect of pinning, so be careful. This is a VERY powerful tool, but it defeats some of the functions that make the terrain look fine, and although having access to such a manual override can aid world design, it can also cause dramatic, undesirable results. Consider yourself warned.
Place your pins cautiously. Use as few as necessary to accomplish the desired job in an area. Not enough pinning leads to the terrain jumping up or down quickly. Too much pinning will lead to a poor frame rate on slow machines.
Always use a level 0 brush to pin. (You only want to pin one tile/point at a time.) Minimum and maximum pin detail is set in the options menu. Keep in mind you are using both at once. If you pin a tile with minimum 1 and maximum 3, the pin is set so the pinned tile and all the tiles that depend it are drawn at levels 0-3 with the same detail as if always drawn at level 1.
ZED
ZED (or interior) shapes are different from other shapes in a few ways and I mention them here because ZED shapes are almost part of the terrain. ZED shapes cast shadows that ARE part of the terrain, in fact. ZED shapes are indestructible and have their own internal lighting. Also ZED shapes have interiors and you can go inside them.
Adding tunnels
Terrain cannot be concave. A terrain tile can never lie over another piece of terrain. Consequently, all tunnels are ZED shapes. Make sure the shape is set NOT TO snap to terrain. Sink it into the ground with [Ctrl+Mouse] and create holes in the terrain for the ends to stick out by flagging the tiles that need to be holes as Empty1. (Options/ Empty1, select tiles that should be empty and use setFlags.) Setting the variable $alt = -1000; should be very helpful. Doing so will allow you to take the camera under the terrain.
Using the Landscape Editor
To access the landscape editor, type into the console: LS::Editor(SimCanvas); This command will run in a 2d window and instructions can be found on the web site (www.starsiegeplayers.com).
Using the Mission Editor
The mission editor view (the top right window when the mission editor mode or object editor mode is on) shows all mission objects. I will try and refer to the objects with the full path name, starting with the MissionGroup first, then proceeding to the simGroups (or folders) the objects are in, and finally with the particular object's name.
An object named command center in the RedBase folder becomes "MissionGroup/RedBase/Command Center". You should become familiar with this naming convention if you plan to do any scripting. To the left of all the objects and groups is a number. This value represents the object number for that object or group. This number can be used to identify the object also, but should not be used for scripting, only for testing a script command. This number is usually the same, but can change each time you load the mission. So if I want to see what the "MissionGroup/RedBase/Command Center" looks like when it blows up, and it has 1000 sustainable damage, and the number to the left of the command center in the editor view is 8284, I can blow it up by typing into the console: "damageObject(8284, 1000);" or "damageObject("MissionGroup/RedBase/Command Center", 1000);" Only the one with the full name should be used in script, because next time the mission is run, the object may have a different number than 8284.
Object View (the inspect window)
When you click on the mission group object, its inspect window can be activated by hitting F2. The inspect window is in the lower right window and holds all the object's information. Depending on the type of object, there are different fields that can be changed.
Sky, planet, stars and palette:
Each planet has at least three different times: day, dusk (twilight), and night. The palette in the MissionGroup/world/Palette should be set such that it matches the time of day with the sky. The format for the palette should be: planet.time.dml. Planet is the planet used (Moon, Ice, Pluto, etc.) Time is a single letter to match the time of day: d = day, t = dusk (twilight), and n =night, followed by the dml extension. Consequently, a dusk mission on Mars needs to be mars.t.dml. Anything else for this planet and time will cause the sky or ground or other objects to use the wrong colors in the art.
MissionGroup/World/Sky has a number of adjustable options. Some planets need no sky, such as Mercury (where you just want a starfield). But some have complex skies. Most should be set correctly when a new planet is created but they can be changed manually. The size, rotation and panel texture bitmaps can be changed if you desire. There is no comprehensive instruction, but if you want to experiment, go ahead.
Note that the planet needs to match the palette used, or it will obviously look wrong. You can have more than one planet if you want, but only one should cast shadows. Lens flare is optional. The directional and ambient intensities will both affect your terrain. It may take several adjustments and relighting before you achieve the desired effect. Adjusting the red, green and blue values (so that they are not equal), you can get a very distinctive hue in your lighting. Directional intensity affects the contrast between the shadows and lit areas. The highter the directional component the darker the shadows and lighter the surrounding area. Ambient intensity affects the base level brightness of the entire world. The higher the ambient component the brighter things will be in general. Ambient lighting has a greater effect on objects and on the terrain. To see the effects of changing the directional and ambient components you will need to relight your terrain.
NOTE: relighting the terrain actually effects the .TED.vol file as well as the mission.
Weather effects and starfields are completely optional. Note that these both affect frame rate. Although you can create an environment with rain and snow under five starfields on the moon, not only would it look weird, it might make your game less enjoyable or even unplayable for people with slower machines.
Visible distance and haze
These qualities should be fairly explanatory and easy to experiment with. Keep in mind that haze should be equal to or less than the visible distance.
Drop Points
Here's a quick rundown on how drop points work. The drop is indicated by the red arrow with the vehicle dropped facing the way the arrow is pointing. The first vehicle is dropped at the first dropPoint in the drop point group. Then the second vehicle is dropped at the second drop point, then the third and so on. After the last drop point is used, the first is used again and the cycle continues.
For team games use DropPointGroup1 for yellow. DropPointGroup2 for red. 3 and 4 are blue and purple respectively.
Adding Objects
Any object is added by hitting F3 and choosing the object you want to add from the menus. If you want to add an object to a particular sim group, choose the group in the editor view before you add the object.
Note: Rocks must be added on the correct planet. You can put Pluto rocks on Pluto, but not on Mars.
Adding cinematic shapes
Cinematic shapes can be added to the game by typing into the console "cinematics.cs". Any mission that uses cinematic shapes will have to include the line: "newObject( cinematicsVol, SimVolume, "cinematic.vol" );" anywhere in the mission's .cs file.
Creating Sim groups
Sim groups can be created by adding from the mission logic menu or by Ctrl+N (new group). Sim groups can be nested within other sim groups. Sim groups are used for grouping objects together, by base, by team, by object type, by whatever game variable you desire. They are necessary for some tasks. If you want an AI unit to guard a route, for example, put the path markers (F3-mission login-path marker) for the route in a sim group, then order the unit to guard the group. The unit will patrol the closest path marker first, and then proceed to the next in the group. When all the markers have been patrolled, the unit will return to the first one in the group.
Creating Shape groups
Shape groups are cool. They are a way of making many shapes act together. The best example of this feature is keying a group of shapes to blow up when the main shape is destroyed. When the reactor goes, you want the other substations to blow up, right? This operation can be done in script, but there are tools in the mission editor that will do it for you easily. Making these shapes respond to each other is making a shape group.
To make a shape group, all you have to do is from mission logic, select shape group (F3-mission logic-shape group). In the new shape group folder put a shape group rep and the shapes you want to affect each other. In the inspect window, use the Damage Distribution field to send damage or destruction to the "parents." Parents are the objects you want affected.
Moving Shapes
You can drag and drop shapes. They can be raised and lowered by holding the control key, and rotated by holding the shift key. They can also be dropped to the screen center or camera center with the [>>TSC] or [>>Cam] respectively. Groups or multiple shapes can be manipulated by selecting a group on multiple selecting objects in the editor view and using the same movement methods.
Other Executables included with the patch are:
Extract, VT and Vtlist
These all need to be run from a dos prompt. For those of you who don't know, way back in the early days of computing, there was some typing involved. I know you nay-sayers don't believe this, but imagine how aghast your children are going be when you tell them you had to use a mouse in your day.
VT is the volume maker/adder.
Vtlist shows the files that are in the volume.
Extract devolumizes the file.
Usage: I want to change the mount size on the Avengers hardpoints. vtlist *.cs scripts.vol shows a file in scripts.vol named datTank_rb_aven.cs. I extract: extract datTank_rb_aven.cs and make the necessary changes. Now I don't need to volumize the file again, since Starsiege will only used the volumized version if there is not one extracted. If I want to, though, I can put the new file back into the volume by using VT: vt scripts.vol datTank_rb_aven.cs.
The vtlist program can take standard command prompt wildcard parameters. '*' matches any sequence of characters, '?' matches any single character. Here are a few examples:
List all the files in all volumes
vtlist * *.vol
List all the files with the .bmp extension in sim.vol
vtlist *.bmp *.sim.vol
List all the dddd?,bmp files in the mars.sim.vol (ie dddd1.bmp, dddd2.bmp, etc)
vtlist dddd?.bmp mars.sim.vol
If there is still too much information, you can always pipe the information through the "more" function like vtlist * *.vol | more. This command will give you one screen at a time, or you can output to a text file vtlist *.cs *.vol > outfile.txt.
if you dont understand it then just tell me.
IMPORTANT NOTE: The Starsiege mission editor is an unsupported tool for advanced users to create their own missions. We have created a forum for users to discuss tips, tricks, and ideas, and to help users support one another at www.starsiegeplayers.com. You can use the mission editor to create single player missions, entire single player campaigns, and multiplayer missions. The caveat is that this program is most useful for those individuals with programming experience. It is not intended to be user-friendly to the casual dabbler.
To enable the mission editor:
Start Starsiege with the "-me" argument. If Starsiege is installed to the default directory from the windows command prompt, type: c:\dynamix\starisege\starsige.exe -me. An available option is to create a shortcut to Starsiege and then add the '-me' to the target field. When you create a server and enter the mission, the console and mission editor will automatically become enabled, and the console will be enabled permanently.
Only run the mission editor on a local server. When you run Starsiege in mission edit mode, do not try to join a game or to play the campaign. In this mode, engaging the campaign and vehicle lab components could easily crash the game. You should also probably make sure time limit is turned off on your server so the mission doesn't activate while you are editing. A password for your server is also a good idea in order to prevent players from entering while you are editing (a good way to crash everything).
Save often. The mission editor is infinitely flexible and therefore allows you to create situations never anticipated by the designers of Starsiege. It is undefined what will happen under such situations, so save frequently to minimize data loss in case of a crash.
Controls for the camera and misc. controls
Some of the following commands are for TED, some are for the mission editor, and others move the camera or relate to general functionality.
Key Stroke Action
W Move Camera Up
S Move Camera Down
A Move Camera Left
D Move Camera Right
E Camera Up
C Camera Down
1 through 0 Change Camera Speed
~ Toggle Console On/Off
Shift+Mouse Rotate Selected Object/Group
(left click and hold on an object then depress the shift key)
Ctrl+Mouse Raise/Lower Selected Object/Group
(left click and hold on an object then depress the control key)
F1 Hide Mission Editor
F2 Show Inspector
F3 Show creator
F4 Show Ted
F5 Game Mode
F9 Toggle help
O Options window
Ctrl+C Copy selection
Ctrl+X Cut selection
Ctrl+V Paste selection
Ctrl+D Drop
Ctrl+N New Group
Ctrl+Z Undo
Delete Delete Selection
Using TED (Terrain EDitor)-- F4
TED is the tool for editing terrain. It gives you the capacity to completely customize a map's terrain. You can even make their own terrain tiles. (This process is complex beyond the scope of this document, but if you wish to experiment artistically, you may indeed change even the terrain tiles.)
To access TED: hit F4.
The Controls:
[New]
New will generate a new TED volume according to your preferences. It's often a good place to start. Another good starting location is to load an already existing mission and edit it. Rename the mission in Windows before you start editing since the name cannot be changed once you begin. New missions are saved in the Starsiege root directory; before editing, you must fully exit Starsiege and move the new mission file (.mis file and .ted.vol file) to the multiplayer directory.
To edit pre-existing missions: This only needs to be done if you are going to modify the terrain. If you are just making a new mission file, changing buildings, adding units,etc, you dont have to go through this. Only if you plan to change the terrain. Relighting counts as changing the terrain.
First copy and rename the .mis and .ted.vol in the multiplayer dir. DM_City_on_the_Edge.ted.vol becomes New_jack_city.ted.vol and do the same with the .mis file. Now create a server with the new mission and change the ted volume the mission uses. Go to MissionGroup/Volumes/tedVolume bring up its inspect window (F2) and change the volume name to the new volume name. Now SAVE, then exit. All the way to windows, it wont bite. Then restart, Starsiege and you are ready to edit both your new mis file and your new ted.vol file. See how easy that was.
[Save]
When save is pressed, two files are saved: the .ted.vol file (the terrain, or TED volume); and the .mis file (the mission file, which contains all the mission elements).
Note: If you change any of the .ted.vol files included with Starsiege you may not be able to join other peoples multiplayer games. Starsiege may notice that the file on you local machine has been changed and not allow you to join a server. Make a complete back-up of your multplayer directory in case the included missions become broken.
[Relight]
Changes the terrain lighting based on the lighting preferences from your lightsource (see Planet in "Using the Mission Editor/Sky and Planet").
[Level x]
(where x= a value from 1 to 6) changes the brush size. You can manipulate large numbers of tiles at once using larger brushes. However, levels 5 and 6 brushes will bog down machines. Try not to use anything larger than level 4. The brush appears as framed tiles (though this feature can be changed in the options menu) with each tile having a reference line pointing to the corner to be affected by location-specific changes (i.e., raiseHeight by 10 will not raise the whole tile into a mesa, but will raise that specific corner creating a small pyramid with the surrounding tiles). What the brush actually does is dependent on the action assigned to it.
[1 - Clumpy Vegetation] (or other terrain type)
This is the terrain type that will be applied if you use setTerrainType.
[--Selection Action--]
If you are using "select" ascribed to the mouse button and are using selection tiles, this pull-down menu will choose the effect to be imposed on the current selection.
[Clear Sel]
This deselects (clears) all the currently selected tiles. You can also choose "deselect" to ascribe to a button and deselect tiles one at a time.
[Clear Pin]
This clears all pins.
[TED Light]
Same as relight.
[xxxx.bmp]
This is the material pulldown menu. It chooses the texture of the tile you will manually place with the setMaterial command. Orders like GGGG.bmp will place grass in all four corners of your selected tile, whereas GGBB.bmp will create a blend of half grass and half rock. All the textured tiles should match when told to, using the command: " LS::ApplyTextures();".
Example 1: You set a GGGG tile against a GGBB tile at the GG side so there is a smooth transition from grass to rock. The bad news is that not all terrain tiles match all the time and so some have to be placed manually like pavement or the cybridy metallic texture found on the Pluto maps.
Example 2: I want to make a paved road. I click on the material pulldown menu and from the menu, I choose rd_p_srt.bmp. (I assume it's a straight paved road.) I ascribe "select" to my mouse button and select an L shaped group of tiles with the mouse, then I click on [--Selection Action-]. From that menu, the correct choice is "setMaterial ".
Bam! It replaces all the tiles I had selected with the paved road texture, but they are all askew. The road didn't follow the L. In fact, some of the road doesn't even match up on the same sides of the L. Now is the time for LS::ApplyTextures, right?
Wrong. The road must be rotated manually. Ascribe "rotate" to one of the mouse buttons and click the tiles that don't match. Rotate the ones that should be going north-south in that direction, and the ones that should go east-west to line up that way.
Now for the corner. Click [Clear Sel] to clear the road selection. Ascribe "select" back to the mouse button and click on the tile that should be the corner. The corner is a different material than the straight road, so from the material list, it should be something like rd_p_crn.bmp. Now, with the corner and the proper material selected, choose " setMaterial " from [--selection action--]. Now isn't a bad time to type "LS::ApplyTextures();" into the console. This command should transition the road tiles to the surrounding dirt, rock, or whatever was there before you chose to lay down a road.
Easy, wasn't it? If you really want to, you can try and make the road end correctly. Did you see rd_p_end.bmp in the texture menu? Enjoy!
The convoluted example above provides an additional plug for the usefulness of Ctrl+Z for undo. Ctrl+C for copy and Ctrl+V for paste are also available. Good test use: To lengthen the legs of either side of the L shaped road you just made. "Select" a few straight road tiles from either part of the L (don't include the corner or the end if you put one on) and hit Ctrl+C. Now hit Ctrl+V, and wherever you click next will be slathered with exactly what you just copied, so copy the new selection onto the end of the road. This process can be repeated and works with roads (or any material textures) AND elevations, meaning you can copy and paste mountains and canyons.
NOTE: Whether you are cutting and pasting materials, heights, or both is configurable in the options menu.
[mouse]
The two boxes to the right of the materials box are commands the left mouse buttons can be ascribed to. Just right-click on the current function and choose a different one if you need it. You have two choices for your left-mouse button, so you can toggle back and forth between the functions ascribed with a single click. I always have one button set to "select" and use the other for whatever is necessary, but your preferences may differ from mine.
These actions be ascribed to your mouse buttons:
Action Performs
Adjust Control Point Selects a single terrain tile and adjusts its height and the height of corresponding tiles accordingly.
Clear Flags Clears all previously set flags.
Clear Pin Clears all previously set pins.
Deselect Deselects selected terrain tiles
Depress Depresses selected terrain tiles by a pre-set amount (set in the Options screen). This feature will also adjust the height of neighboring terrain tiles to create a smoother appearance.
Elevate Elevates selected terrain tiles by a pre-set amount (set in the Options screen). This feature will also adjust the height of neighboring terrain tiles to create a smoother appearance.
LowerHeight Lowers the height of selected terrain tiles by a pre-set amount. Unlike the Depress function, this will not affect neighboring terrain tiles.
Pin Fixes terrain so it does not morph, or "grow." This feature will greatly increase the poly count, however, and may cause unexpected problems like terrain "rips." Be very careful.
RaiseHeight Raises the height of selected terrain tiles by a pre-set amount. Unlike the Elevate function, this will not affect the neighboring terrain tiles.
Redo Undoes an undo.
Relight Relights the terrain.
RotateLeft Rotates a terrain tile to the left (useful for when laying down paths, for example)
RotateRight Rotates a terrain tile to the right.
Scale Scales terrain by a pre-set percentage (set in Options screen). If set to 1.5, for example, selected terrain is raised by 50%.
Select Selects a terrain tile.
SetControlHeight Sets the control height to a pre-set number.
SetCornerHeight Sets the corner height to a pre-set number.
SetFlags Sets all Flags to what is chosen in the Options menu.
SetHeight Sets all terrain tiles to a pre-set height (Options menu).
SetMaterial Sets all terrain tiles to a pre-selected material (set in the material field.)
SetTerrainType Sets all terrain tiles to the selected type of terrain, set in the box to the left of the "Selection Action" box.
Smooth Smoothes out the selected terrain.
Undo Undoes the last performed action.
[Gen:0]
This button will generate new landscape according to the style shown in the box just to the right of this button.
[Flat Terrain]
Choose your favorite landscape style here and hit the [Gen:0] button to apply it to your landscape. If none of these styles seems to suit you, or you think you'd like to try to make a custom landscape, use either the windows-based landscape editor or edit the terrains.cs script to change the effects of these styles.
Options: You can bring up the TED options menu by pressing O. (Note: This is the TED options menu. It is different from the options menu you will see with the ME.)
Values: These fields are for setting values for different Terrain Editor functions.
Height Adjust: Amount of height added or subtracted from selected terrain tiles, used with the Elevate, Depress, RaiseHeight and LowerHeight functions.
Height Set: Elevation that all selected tiles are snapped to, used with the SetControlHeight and SetCornerHeight functions.
Scale Factor: Percentages that all tiles are scaled to, used with the Scale function.
Pin Detail Min: Minimum detail terrain can be pinned to.
Pin Detail Max: Maximum detail terrain can be pinned to. Again, be very cautious with this feature.
Smooth Adjust: Gradation of "smoothing" selectable for when using the Smooth function. The larger the number, the more smoothing that is applied to the terrain.
Seed Value: The value the terrain generator is seeded with.
Flag Mask: These are used specifically for adjusting individual terrain tiles.
Corner: Sets selected tile as a corner piece.
Empty1, 2, 3: Removes selected terrain tiles from the map, creating a hole.
Empty1 cuts out a Level 0(1 tile) hole
Empty2 cuts a Level 1( 2x2 tile) hole
Empty 3 removes the tiles from a Level2 (4x4 tile) hole
Display Options: Controls how the grid appears on the map.
TIP: If tiles keep selecting and deselecting strangely, make sure outline mode is not on.
Paste Mode: Controls how terrain is pasted if you are using copy-and-paste. Both the Height and Material boxes are defaulted to on.
TIP: Cut, Copy and Paste are powerful tools to use with the terrain editor. Whole bases can be duplicated by copying and pasting materials. Mountains and canyons can be created or extended by pasting heights. Use this function to your advantage.
USE Ctrl+C to copy a selected area. Ctrl+V, then click on where you want the selection pasted.
Brush: Controls features of the selector grid.
Snap: When on, the selector grid will always snap to corners. When off, you are free to move the grid across the map.
TIP: Not snapping gives you more control over individual terrain tiles. Snapping is less likely to induce tearing.
AdjustControlPoint (one of my favorites) only works with snap set to on.
Feather: When on, this feature will automatically smooth terrain when its elevation is changed. If a single tile is lifted up, for example, neighboring tiles will also be raised to smooth it out.
Quick Light: A "quick and dirty" terrain lighting option; not as comprehensive as the full mission lighting procedure but not as time-consuming, useful to give you an idea of what lighting is going to look like.
Gen. Random: Generates random seed value for the terrain each time you press [Gen:0].
Editing terrain
Raising and flattening
Terrain height can be adjusted with ease. Large or small pieces of terrain can be raised or lowered by ascribing "raiseHeight" or "lowerHeight" to the brush. Chunks of terrain can be selected and set to a particular elevation by adjusting the value for Height set in the options and choosing setHeight from [--Selection Actions--]. Minor adjustments can be made with adjustControlPoint, then click and hold, forward and back with the mouse adjust the terrain height.
If you want gentle slopes, make sure feather is activated in the options menu. If you want distinct features, turn feather off. Smooth is a useful function for making distinct features more sloping.
Example 3: I want a large crater. I might select a large ring shaped area and turn feather off to give my crater a distinct edge. For my height adjust value in the options menu I enter 50. All that I have selected will be raised 50 units when I select "raiseHeight" from [--Selection Actions--]. (It would be lowered 50 if I chose "lowerHeight".)
Now I've got a mess. The terrain is pulled up in a big ring but its hard to see. The moment I move my viewpoint too far away, it all "shrinks" into the ground, but it grows back if I move closer. Plus the edges are too sharp for me to scale.
What's the solution? We should either lower the heights of smaller pieces of the crater or smooth the edges. Next we want to pin the growing pieces (see below) so we can minimize the size fluctuation.
Pinning
Pinning controls how many polygons are used to draw a particular piece of terrain. The higher number a tile is pinned to the more polygons are used to draw the terrain and the more detail is visible from further away. Sounds good, right? Just "pin" the entire landscape so it's perfectly detailed all the time from any distance, right?
Not so fast. There are multiple problems. First, not all computers are fast enough to draw that many polys. People will get a lousy framerate playing your level and blame it on lag. Also, one of the concepts that makes the terrain in Starsiege work is that the engine wants to draw more distant objects with fewer polys. So when it tries to reduce areas around a pinned area to fewer polygons, it can miss a piece here or there and create "tears" in the terrain. Other problems may occur as a side effect of pinning, so be careful. This is a VERY powerful tool, but it defeats some of the functions that make the terrain look fine, and although having access to such a manual override can aid world design, it can also cause dramatic, undesirable results. Consider yourself warned.
Place your pins cautiously. Use as few as necessary to accomplish the desired job in an area. Not enough pinning leads to the terrain jumping up or down quickly. Too much pinning will lead to a poor frame rate on slow machines.
Always use a level 0 brush to pin. (You only want to pin one tile/point at a time.) Minimum and maximum pin detail is set in the options menu. Keep in mind you are using both at once. If you pin a tile with minimum 1 and maximum 3, the pin is set so the pinned tile and all the tiles that depend it are drawn at levels 0-3 with the same detail as if always drawn at level 1.
ZED
ZED (or interior) shapes are different from other shapes in a few ways and I mention them here because ZED shapes are almost part of the terrain. ZED shapes cast shadows that ARE part of the terrain, in fact. ZED shapes are indestructible and have their own internal lighting. Also ZED shapes have interiors and you can go inside them.
Adding tunnels
Terrain cannot be concave. A terrain tile can never lie over another piece of terrain. Consequently, all tunnels are ZED shapes. Make sure the shape is set NOT TO snap to terrain. Sink it into the ground with [Ctrl+Mouse] and create holes in the terrain for the ends to stick out by flagging the tiles that need to be holes as Empty1. (Options/ Empty1, select tiles that should be empty and use setFlags.) Setting the variable $alt = -1000; should be very helpful. Doing so will allow you to take the camera under the terrain.
Using the Landscape Editor
To access the landscape editor, type into the console: LS::Editor(SimCanvas); This command will run in a 2d window and instructions can be found on the web site (www.starsiegeplayers.com).
Using the Mission Editor
The mission editor view (the top right window when the mission editor mode or object editor mode is on) shows all mission objects. I will try and refer to the objects with the full path name, starting with the MissionGroup first, then proceeding to the simGroups (or folders) the objects are in, and finally with the particular object's name.
An object named command center in the RedBase folder becomes "MissionGroup/RedBase/Command Center". You should become familiar with this naming convention if you plan to do any scripting. To the left of all the objects and groups is a number. This value represents the object number for that object or group. This number can be used to identify the object also, but should not be used for scripting, only for testing a script command. This number is usually the same, but can change each time you load the mission. So if I want to see what the "MissionGroup/RedBase/Command Center" looks like when it blows up, and it has 1000 sustainable damage, and the number to the left of the command center in the editor view is 8284, I can blow it up by typing into the console: "damageObject(8284, 1000);" or "damageObject("MissionGroup/RedBase/Command Center", 1000);" Only the one with the full name should be used in script, because next time the mission is run, the object may have a different number than 8284.
Object View (the inspect window)
When you click on the mission group object, its inspect window can be activated by hitting F2. The inspect window is in the lower right window and holds all the object's information. Depending on the type of object, there are different fields that can be changed.
Sky, planet, stars and palette:
Each planet has at least three different times: day, dusk (twilight), and night. The palette in the MissionGroup/world/Palette should be set such that it matches the time of day with the sky. The format for the palette should be: planet.time.dml. Planet is the planet used (Moon, Ice, Pluto, etc.) Time is a single letter to match the time of day: d = day, t = dusk (twilight), and n =night, followed by the dml extension. Consequently, a dusk mission on Mars needs to be mars.t.dml. Anything else for this planet and time will cause the sky or ground or other objects to use the wrong colors in the art.
MissionGroup/World/Sky has a number of adjustable options. Some planets need no sky, such as Mercury (where you just want a starfield). But some have complex skies. Most should be set correctly when a new planet is created but they can be changed manually. The size, rotation and panel texture bitmaps can be changed if you desire. There is no comprehensive instruction, but if you want to experiment, go ahead.
Note that the planet needs to match the palette used, or it will obviously look wrong. You can have more than one planet if you want, but only one should cast shadows. Lens flare is optional. The directional and ambient intensities will both affect your terrain. It may take several adjustments and relighting before you achieve the desired effect. Adjusting the red, green and blue values (so that they are not equal), you can get a very distinctive hue in your lighting. Directional intensity affects the contrast between the shadows and lit areas. The highter the directional component the darker the shadows and lighter the surrounding area. Ambient intensity affects the base level brightness of the entire world. The higher the ambient component the brighter things will be in general. Ambient lighting has a greater effect on objects and on the terrain. To see the effects of changing the directional and ambient components you will need to relight your terrain.
NOTE: relighting the terrain actually effects the .TED.vol file as well as the mission.
Weather effects and starfields are completely optional. Note that these both affect frame rate. Although you can create an environment with rain and snow under five starfields on the moon, not only would it look weird, it might make your game less enjoyable or even unplayable for people with slower machines.
Visible distance and haze
These qualities should be fairly explanatory and easy to experiment with. Keep in mind that haze should be equal to or less than the visible distance.
Drop Points
Here's a quick rundown on how drop points work. The drop is indicated by the red arrow with the vehicle dropped facing the way the arrow is pointing. The first vehicle is dropped at the first dropPoint in the drop point group. Then the second vehicle is dropped at the second drop point, then the third and so on. After the last drop point is used, the first is used again and the cycle continues.
For team games use DropPointGroup1 for yellow. DropPointGroup2 for red. 3 and 4 are blue and purple respectively.
Adding Objects
Any object is added by hitting F3 and choosing the object you want to add from the menus. If you want to add an object to a particular sim group, choose the group in the editor view before you add the object.
Note: Rocks must be added on the correct planet. You can put Pluto rocks on Pluto, but not on Mars.
Adding cinematic shapes
Cinematic shapes can be added to the game by typing into the console "cinematics.cs". Any mission that uses cinematic shapes will have to include the line: "newObject( cinematicsVol, SimVolume, "cinematic.vol" );" anywhere in the mission's .cs file.
Creating Sim groups
Sim groups can be created by adding from the mission logic menu or by Ctrl+N (new group). Sim groups can be nested within other sim groups. Sim groups are used for grouping objects together, by base, by team, by object type, by whatever game variable you desire. They are necessary for some tasks. If you want an AI unit to guard a route, for example, put the path markers (F3-mission login-path marker) for the route in a sim group, then order the unit to guard the group. The unit will patrol the closest path marker first, and then proceed to the next in the group. When all the markers have been patrolled, the unit will return to the first one in the group.
Creating Shape groups
Shape groups are cool. They are a way of making many shapes act together. The best example of this feature is keying a group of shapes to blow up when the main shape is destroyed. When the reactor goes, you want the other substations to blow up, right? This operation can be done in script, but there are tools in the mission editor that will do it for you easily. Making these shapes respond to each other is making a shape group.
To make a shape group, all you have to do is from mission logic, select shape group (F3-mission logic-shape group). In the new shape group folder put a shape group rep and the shapes you want to affect each other. In the inspect window, use the Damage Distribution field to send damage or destruction to the "parents." Parents are the objects you want affected.
Moving Shapes
You can drag and drop shapes. They can be raised and lowered by holding the control key, and rotated by holding the shift key. They can also be dropped to the screen center or camera center with the [>>TSC] or [>>Cam] respectively. Groups or multiple shapes can be manipulated by selecting a group on multiple selecting objects in the editor view and using the same movement methods.
Other Executables included with the patch are:
Extract, VT and Vtlist
These all need to be run from a dos prompt. For those of you who don't know, way back in the early days of computing, there was some typing involved. I know you nay-sayers don't believe this, but imagine how aghast your children are going be when you tell them you had to use a mouse in your day.
VT is the volume maker/adder.
Vtlist shows the files that are in the volume.
Extract devolumizes the file.
Usage: I want to change the mount size on the Avengers hardpoints. vtlist *.cs scripts.vol shows a file in scripts.vol named datTank_rb_aven.cs. I extract: extract datTank_rb_aven.cs and make the necessary changes. Now I don't need to volumize the file again, since Starsiege will only used the volumized version if there is not one extracted. If I want to, though, I can put the new file back into the volume by using VT: vt scripts.vol datTank_rb_aven.cs.
The vtlist program can take standard command prompt wildcard parameters. '*' matches any sequence of characters, '?' matches any single character. Here are a few examples:
List all the files in all volumes
vtlist * *.vol
List all the files with the .bmp extension in sim.vol
vtlist *.bmp *.sim.vol
List all the dddd?,bmp files in the mars.sim.vol (ie dddd1.bmp, dddd2.bmp, etc)
vtlist dddd?.bmp mars.sim.vol
If there is still too much information, you can always pipe the information through the "more" function like vtlist * *.vol | more. This command will give you one screen at a time, or you can output to a text file vtlist *.cs *.vol > outfile.txt.
if you dont understand it then just tell me.