-
Posts
5,711 -
Joined
-
Last visited
-
Days Won
223 -
Donations
760.00 USD
Content Type
Profiles
Forums
Events
Documentation
Bug Tracker
Downloads
Everything posted by OWA
-
W3D Exporter The final part of the W3D plugin for max is the W3D Exporter. Each object in the Max scene that is not hidden will be considered for export. A utility plugin is used to set the export options. Each mesh can have its transform exported for the animation system and/or its geometry exported. This separation exists due to the way the motion capture data comes into the system. There are often meshes in the system which are only there to provide transforms and vice-versa; there are meshes that are rigidly connected to those "transform-only" meshes. The exporter basically allows you to reduce the number of transforms that have to be calculated by the animation system. Each object that is exported will have its name associated with it. One limitation of the w3d file format is that these names be 15 characters or less. If you try to use a longer name, it will be truncated when it is exported. If two objects with the same name are loaded, only the first object will be kept. It's a good idea to configure your button sets, in the utilities panel in max, to display it by default. This way, you wont have to look under the "more" section every time you want to use it. Here is a description of the various tools associated with exporting your selections to W3D. Object Export Options: General Export Options Selection Window: Displays the name of what you have selected. Export Transform (Bone): Check this to only export a bone or animation. Export Geometry: Check this to only export a mesh or geometry. Geometry Options: These options allow your exported geometry to have different characteristics. You can select multiple options from choices on the right. Normal Default mode, just a normal mesh with no specific characteristics. Cam-Parallel Aligns the object to the near clipping plane of the camera, for example, if an object moves around the scene, it will remain parallel to the viewport. Kind of like a strafing effect. Cam-Orient Aligns to the local X axis of the Camera: This makes the object always face toward the camera so where ever the object or camera is, the camera will always be facing the x-axis. AABox This mesh is to be used as an axis aligned collision box. OBBox Use this if you're exporting a bounding box. Null (LOD) Indicates that its a NULL LOD object. Null LODs will not be rendered. Aggregate Export this mesh as a reference to another W3D. This lets you include other W3Ds, such as particle effects, in other objects. E.g. if you have a particle W3D called smoke_fx.w3d, then naming the mesh as smoke_fx would put that particle W3D there when the model is loaded. You can have multiple aggregate meshes with the same name (if you need more than one instance of the W3D), but these aggregates need to have Export Transform unticked and linked to a bone that is in the position you want the other W3D in. Dazzle Use this option to export a Dazzle. Set the dazzle type in the list below. Cam-ZOrient Like Cam-Orient but is oriented in the Z axis only. Only usable with current versions of Renegade. 2Side Enable/Disable two sided rendering for the entire mesh. Hide Use this option to make your geometry hidden, e.g. a bounding box. ZNrm Uses normals that point in the +z direction. VAlpha With this checked, your mesh will have a "vertex alpha", which is created from the grayscale values of the vertices that you have given to them in max. NOTE: texture blend mode must be "Alpha Blend" in order for this to work. Shadw The mesh is not rendered normally, it is used to generate shadows only. Shatter For use when your objects may need to shatter, such as glass. Tangents Use this when you are exporting for Renegade and need tangent/bi-normal data. Prelit Set this to cause the mesh to be ignored by the light generation code. Only usable with current 5.0 versions of Renegade. Enable Static Sorting Tells the game engine not to sort those polygons. The value you enter into the Sort spinner next to it defines which batch to render them in. Always Dyn Light Tells Mammoth's static vertex lighting code to skip this mesh, and instead just render it using the dynamic lighting that dynamic objects (such as vehicles and characters) use. Only really useful for terrain objects. Only usable with current 5.0 versions of Renegade. Collision Options: You can select the physical characteristics for your geometry that you are exporting. Physical Select this for a surface that another object (such as a character or a vehicle) can't move through. Projectile Select this if a projectile can hit it. Vehicle Select this if you wish a vehicle not to proceed through or past it. (If a mesh has Physical ticked, you don't need to tick this! Use this for things that you want infantry to move through, while not letting vehicles through.) Vis Select this when exporting your "Vis" areas. A vis area is a specific area within the cameras view, where the computer will not draw in geometry past that point until you crossed over into another Vis area. Camera Select this in case you don't want the camera to go through it, or get stuck in it. Select by W3D Type: Rather than Manually selecting objects in your scene to be exported, you can use these buttons select specific items for you. Select Bones Selects all the bones in your scene. Select Geometry Selects all the geometry in you scene. Select Alpha Meshes Select all Alpha Meshes in your scene. Phys Select all Physical Objects in your scene. Proj Select all objects that are affected by projectiles in your scene. Vis Select all Vis objects in your scene. Naming Utilities: A convenient way to name a selected set. Assign Node Names Opens the "Generate Node Names" window. This allows you to assign a root name, prefix and suffix. After setting your preferences, all of the selected objects in your scene will be renamed in sequence according to the node name. Artist Note: You may want to de-select "Assign Collision Bits" because it will override what you already have selected, in the collision options box. Assign Material Names Opens the "Generate Material Names" window. This allows you to assign a root name to your materials, After setting your preferences, all of the materials you affected will be renamed in sequence according to the node name. Assign Extensions This will append an extension to your currently selected objects. LOD 0 should be your highest poly model, with increasing LOD numbers going to your lower poly models. Damage models should be extension numbers 1 and up.
-
W3D Skinning WWSkin has now been deprecated. For all relevant information on 3DS Max's skin modifier (which W3D exports now correctly support), please head here: https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/3DSMax/files/GUID-9596F6EF-3569-44F2-8D6C-6EB58C30BEDD-htm.html The only point of note is that W3D models for Renegade and BFME2 only support up to 2 weights per bone. Really old versions of Renegade as well as Generals and BFME only support 1 weight per bone. To ensure your model only uses 1 or 2 bone weights, go to the Advanced Parameters tab in the sidebar while your skinned mesh is selected and set Bone Affect Limit to 1 or 2, depending on what you're working on.
-
Textures: Here you can Load bitmaps and adjust their properties. Stage 0 Texture: Enable this if you wish to use a bitmap on your mesh. Stage 1 Texture (Detail Texture): Enable this if you wish to use a secondary bitmap (detail texture)on your mesh. None: Click this bar to browse and select a bitmap. Publish: This button instructs the runtime engine to make this a "swappable" texture. You are essentially publishing the existance of this texture to the programmers. This must be enabled for any textures that may need to be swapped or changed at runtime. Display: This button controls whether the (W3D shader) texture is visible in the Max viewport. Clamp U: Nearly Obsolete: For use in help with "T" junctions in geometry, Keeps the map to running across the U coordinate of the geometry in a linear way as to not have minimal seams showing. Clamp V: Nearly Obsolete: For use in help with "T" junctions in geometry, Keeps the map to running across the U coordinate of the geometry in a linear way as to not have minimal seams showing. No LOD: Tells it that there there is no L.O.D. associated with this material. Frames: This spinner can be used to specify that the texture is animated. If you specify a number of frames greater than 1, the texture is assumed to be animated and the other frames for the animation will be generated from the filename you specify for the texture (.tga sequence) . You should use the first frame of the animation as the texture you use in Max. Rate: Lets you set the frame rate for the frames you will be using, (tga sequence). (drop down list): For use with Tga sequences. Loop: Loops the tga sequence from begining to end, then back to beginning, ect. Ping-Pong: Tga sequence starts from beginning, goes to end, then goes through the frames in reverse, back to begining, ect. Once: Tga sequence starts from beginning, goes to end, then stops, ends on last file in sequence. Manual: Manually enter the tga frame for it to cycle through. Alpha Bitmap: A sort of compression tool for the alpha channel in a bitmap. If enabled, It tells the alpha to either be on or off, reducing it to 1 bit rather than 8. Pass Hint: These selections do not produce visible results. It is used to help optimize the code by specifying what type of pass it is so that it doesnt search to see what type of pass it is. Base Texture: This is the Default and most commonly used. This is just your normal texture. Emissive Lightmap: This specifies top the code that the texture is basically just a shadow. Environment Map: This specfies to the code that the texture is basically a reflection map. Shineyness Mask: This specfies to the code that the texture is basically a shineyness map.
-
W3D Shader: The Shader tab is directly related to the "stage" mapping or (mappers), which is located on the vertex material tab. The way in which these mappers will blend with the background and other objects in the scene will be determined by the blending mode you choose. Everything in the advanced portion of the shader tab is directly related to the "stage 1 texture" or (detail texture). Use these setting to adjust how the texture behaves if you have enabled stage 1, from the texture tab. Blend Mode : Select from this variety of ways to blend against the elements of your scene. Opaque: The map or color in its normal state with No Alpha opacity, and No blended overlay. Add: Looks at the color information in each channel and brightens the base color reflecting the colors behind it, creating the effect of an additive overlay. It creates an opacity value based on the grayscale levels of the map. Multiply: Looks at the color information in each channel and multiplies the base color by the blend color. The result color is always a darker color. Multiplying any color with black produces black. It creates an opacity value based on the inverted grayscale levels of the map. (Blacks are opaque, whites are transparent) Multiple and Add: Multiplies the base colors by themselves, lights become brighter, darks become darker. It creates an opacity value based on the inverted alpha levels of the map. (Blacks are opaque, whites are transparent) Screen: Similar to Add but not burning the brightness levels as much. It creates an opacity value based on the grayscale levels of the map. AlphaBlend: The map or color in its normal state, If the map contains an alpha channel, it uses the alpha channels grayscale values to establish the opacity of the map. AlphaTest: The map or color in its normal state, If the map contains an alpha channel, it uses the alpha channel to establish the opacity of the map however, it adjusts the threshold of the alpha channel to make it higher in contrast, no grays just black and white, resulting in harsher edges in the opacity. AlphaTest and Blend: Combines aspects from AlphaTest and Alphablend. Custom: You can create a custom blend mode using any of the combinations below; e.g. If you select the Src to be Alpha, and you select 1 Src Alpha for the Dest, you will have created the "Alpha Blend" effect, however if you used zero for the source and zero for the Dest, this would produce pure black. NOTE: Many of these custom blend modes aren't very game engine friendly, use caution when making decisions to use these to avoid costly mistakes. Src : This controls the source blend factor. Blending is specified by the following equation: (Destination Blend * Destination Pixel) + (Source Blend * Source Pixel). The destination pixel is the pixel which exists in the frame buffer while the source pixel is the pixel which has been generated by this material. Zero: Nothing will be the base. One: The map in its normal state. Src Alpha: Creates a grayscale value based on the color and uses this for the base. 1-Src Alpha: Inverts the alpha channel of the map and uses this for the base. If map has no alpha channel then black is the default color. Dest Src : This controls the destination blend factor. Zero: Creates no opacity value for the base and If the base has its own alpha channel, this will override and disable it so that the base will have no opacity values. One: Creates an opacity value for the base, based on the maps grayscale levels, also adds those levels to the base to increase the lightness of light areas in the base. Src Color: Overlays the colors in the object over the base. 1-Src Color: Creates an opacity value for the object based on the maps color levels, if no color is present, then it uses the grayscale levels. Src Alpha: Overlays the base with its own Inverted Alpha channel. 1-Src Alpha: This uses the the bases levels to establish and determine opacity values. If the base has no alpha channel, then no opacity values will be established. Src Color PreFog: Uses the rgb values, then decreases the contrast to determine the opacity. Write Zbuffer: This will enable / disable itself when certain blend modes are selected. Alpha Test: This will enable / disable itself when certain blend modes are selected. Defaults: Clicking this button resets the defaults for the advanced parameters. Everything Below here is directly related to the "Stage 1 Texture" which is the secondary (if desired) detail texture. Depth Cmp: (Depth Comapre) Tells the graphics card what to do with the polygon its rendering based on the value of the Zbuffer. Pass Never: New polygons never pass, polygons wont render. Pass Less: Renders the polygon if the Z value is less than the value thats in the Zbuffer already. Pass Equal: Will only render the polygon if its equal to whats already in the Zbuffer. Pass LEqual: -Gets used most often: Polygon gets drawn only if it's less than or equal to the Zbuffer value. Pass Greater: Only renders the polygons if they farther back than the closer polys. (If you want far away things poking through closer things) Pass NEqual: Only renders a polygon if it's not equal to whats in the Zbuffer. Pass GEqual: Only renders the polygons if they are Greater or Equal to the Zbuffer value. Pass Always: Draw the Polygon no matter what, -ignores the Zbuffer. Pri Gradient: (Primary gradient) This tells it what to do with the diffuse lighting. Disable: Disables it, If you want it Not to use the diffuse lighting. Modulate: Multiplys the color of the pixel by the lighting color. Add: Adds lighting to the color of the pixel, e.g. Lightmaps Detail Color: These allow for more specific detail in how the second texture is applied. Disable: Disables it, You wont see it at all. Detail: Overrides stage 0 mapping. Scale: Pure white in the overlay will remain unchanged, while darks become darker, increasing the contrast. InvScale: Similar to add but doesn't burn as much. Creates a transparency based on the grayscale values of the map. A little more costly than add. Add: Looks at the color information in each channel and brightens the base color to reflect the colors behind it, creating the effect of an additive overlay. Sub: This works as a Subtractive overlay. Looks at the color information in each channel and darkens the color overlaying the brighter colors behind it. SubR: ? Blend: ? DetailBlend: Uses the detail texture and self illuminates it. Sec Gradient: Disabled: (Secondary Gradient) controls the specular lighting. Disable: Disables specular lighting Enable: Enables specular lighting Detail Alpha: This tells the map what to do with the Alpha Channel in the stage 1 texture. Disable: Disable it. Detail: Overrides the alpha of stage 0 mapping. Scale: Pure white in the Alpha's overlay will remain unchanged, while darks become darker, increasing the contrast. InvScale: Uses a transparency based on the grayscale values of the map. A little more costly than add.
-
Vertex Material: This is the Standard material or texture for the geometry in your scene. It's important to realize that many items in here are co-dependant on each other, some things only work when others are enabled and to best get acquainted with it, experiment around to find the most useful combinations. The "Args:" (Arguments) window allows you to enter in specific information that you'd want the mapper to do. When you see the Arguments listed in here for each type, do not include the "( )" parenthesis in your actual argument and the types are as follows: (float) - any real number, ex: 1.8 (int) - any integer, e.g:: -.5 (bool) - either TRUE or FALSE Ambient: Ambient color is the color of the object's shaded portion. Diffuse: The diffuse color is the color that the object reflects when illuminated by lighting, the base color of the object. Specular: Disabled Emissive: Acts as the base of the alpha levels in a map, however, It wont be effected by light, similar to a self illumination shader in max. NOTE: For in-game vertice coloring; If emissive is any color other than black, ambient and diffuse have to be black. If emissive is black, ambient and diffuse may be any color, but the colors must be the same color. Opacity: Sets the opacity of the mesh, 1 = 100% opaque, and 0 = completely transparent. NOTE: Doesn't work with the shader blending mode "opaque". Also note; when used in conjunction with the "alpha test" shader blending mode, the texture map you choose must have an alpha channel in it, for this to display correctly. Translucency: Disabled Shininess: Disabled: Controls the tightness of the specular highlights. Specular to Diffuse: Obsolete Stage 0 Mapping: This area is where you select the way the mesh will display in its environment. Refer to the Shader tab (blend area) to adjust more properties and to load a bitmap. A note about mappers: When creating a Texture map for use with any type except "UV", you must flip your map vertically so that it will appear upside down in order for it to work correctly. Stage 0 Mapping types: Also known as "Mappers", Blending modes for the mesh in it's environment. UV: For use with UV Mapping coordinates Environment: Uses the normals to look up the environment map. Hotspot of light always comes from top right no matter which direction the object or camera is facing. Artist Notes: It has a couple downsides. It doesn't show the graduation of light across a flat surface as well as a World Space environmental and when used in conjunction with camera tracking the object, it wont appear to be as real because the light source remains constant. Classic Environment: Similar to Environment; uses the reflection to look up the environment map, overall object has more contrast, (better for simulating metallic objects) Screen: Takes the screen coordinate and uses that as the UV coordinate, this makes the map always facing the camera. Args: UScale=(float) e.g: 3.0 VScale=(float) e.g: 0.5 UPerSec=(float) e.g: -0.1 VPerSec=(float) e.g: 1.0 Linear Offset: Same mapping type as "UV" except it allows you to make the texture scroll across the map at a speed specified in the arguments box. The Scrolling speed works on 1 unit per second basis. U is for horizontal, positive values move it left while (-) negative values move it right (based on UV mapping coordinates). V is for vertical, positive values move it down while (-) negative values move it up(based on UV mapping coordinates) . Args: UPerSec=(float) e.g: -0.3 VPerSec=(float) e.g: 5.0 Silhouette: Obsolete, not supported Scale: NEW Scales the UV coordinates, useful for detail mapping. Args: UScale=(float) e.g: 3.0 VScale=(float) e.g: 0.5 Grid: NEW (e.g. Of a Grid Map) For use with a "Grid Bitmap" Similar to how the "Frame / UCoordinate" works in the emitter system; A grid bitmap is divided into individual frames that the computer reads as a grid, left to right, top to bottom, one frame at a time and displays each section of the grid as a single frame, then the next frame then so on, until it cycles through back to the beginning. This effect creates an animated map. You can Adjust the speed of your map in frames per second (FPS). Args: FPS=(float) e.g: 29.5 Log2Width=(int) e.g: 2 Grid Map creation parameters: (for use with all "grid" type maps.) 1 = 2 X 2 (2 frames across 2 frames down) 2 = 4 X 4 (4 frames across 4 frames down) 4 = 8 X 8 (8 frames across 8 frames down) 8 = 16 X 16 (16 frames across 16 frames down) Rotate: NEW Rotates a texture map about a specified center. The speed of the rotation is measured in radians per second, (e.g: 2 = 2 full rotations per second). Positive values rotate counter clockwise while negative rotate the map clockwise. Note: by default the mapping coordinates center starts at the top left corner of the map. To make it start in the center of the map, make the UCenter and VCenter values of "0.5". Args: Speed=(float) e.g: 2 UCenter=(float) e.g: 0.5 VCenter=(float) e.g: 0.5 Sine: NEW Moves the texture map around in the shape of a lissajous figure. (You can create figure 8's and such) Args: UAmp=(float) e.g. 1 UFreq=(float) e.g: 2 UPhase=(float) e.g: 1 VAmp=(float) e.g. 1 VFreq=(float) e.g: 2 VPhase=(float) e.g: 1 Step: NEW Similar to Linear Offset but jumps the map from location to location rather than the smooth scrolling motion of linear offset. (Doesn't interpolate between steps) SPS = steps per second. Args: UStep=(float) e.g: 1.0 VStep=(float) e.g: 1.0 SPS=(float) e.g: 1.0 Zigzag: NEW Similar to linear offset but reverses direction periodically. Args: UPerSec=(float) e.g: -0.3 VPerSec=(float) e.g: 5.0 WS Classic Environment: NEW World Space normal environment map. Map coordinates generated procedurally. Similar to World Space Environment mapper. WS Environment: NEW World Space reflection environment map. Artist Preferred over the environment mapper for the following reasons: Good for use in scenes with camera tracking. Better with flat surfaces. Grid Classic Environment: NEW Animated normal environment map. Uses a "Grid Bitmap" for animation. This Combines the "Grid" type mapper, with the "Classic Environment" type mapper. Map coordinates generated procedurally. Args: FPS=(float) e.g: 29.5 Log2Width=(int) e.g: 2 Grid Environment: NEW Animated reflection environment map. Works similar to "Grid Classic Environment" but different. Uses a "Grid Bitmap" for animation. This Combines the "Grid" type mapper, with the "Environment" type mapper. Args: FPS=(float) e.g: 29.5 Log2Width=(int) e.g: 2 Random: NEW Offsets and rotates coordinates at random in a "step" like fashion,. useful for trying to make a map "shake". Args: UPerSec=(float) e.g: -0.3 VPerSec=(float) e.g: 5.0 Edge: NEW Gives off Fuzzy edges, can be used as a glow as well. Uses the "Classic Environment" mapping style but takes the top row of pixels in the bitmap and looks only at that to produce its fuzzy edge effect. Artist tip: You can adjust the VPerSec argument to create an nice "pulsing" effect. Args: UseReflect=(bool) e.g: true VPerSec=(float) e.g: 2.0 UV Channel: Select the UV channel to use. Args: The "Args:" (Arguments) window allows you to enter in specific information that you'd want the mapper to do. When you see the Arguments listed in here for each type, do not include the "( )" parenthesis in your actual argument and the types are as follows: (float) - any real number, ex: 1.8 (int) - any integer, er: -.5 (bool) - either TRUE or FALSE NOTE: Only specific functions will work with certain mapping types, (see the mapping types for a list of the arguments allowed for that type). All arguments are CAse SENSitiVe, they have to be typed in exactly as shown. New mappers will only work on the DX8 and WW3D2. Pre-DX8 viewers will not work. Stage 1 Mapping: Same properties as stage 0 mapping but Adds another stage so that you may overlay and combine the two mappers. Stage 1 is considered to be the "detailer" because it is usually used when extra detail is needed. The advanced controls for Stage 1 Mapping are located in the advanced section of the shader tab.
-
W3D Material Interface Accessing the W3D Materials To apply maps or add a material to the geometry in your scene, you need to use a special kind of material, used specifically for W3D and found in the material map browser. You can access this material by opening up the material editor (shortcut: M) and selecting a new swatch and clicking on the button labelled"standard" by default. This will pop open the material / map browser of which you can then select the following material. This is the W3D Material editor Interface, It contains 3 Roll outs It's where you will load your textures and adjust properties of the material. Here is a breakdown of the following elements: Material Surface type: Material Pass Count: Pass Rollout: Material Surface Type: The Material Surface type is used in conjunction with an "ini" file which determines which events will occur when objects or projectiles collide with the surface your applying it to. Events vary and may contain any of the following: Decals, emitters, sounds, geometry and animaitons. Heres an example example of an effect of "wood" surface type applied to a box object: A bullet shoots at a wooden crate. The bullet collides with the box, leaving a decal of a bullet hole, an emitter that spits out a few splinters and a sound of a bullet hitting wood occur at the same time. This helps to make the occurence more convincing to the player. Use the drop down list to select the type of surface that best fits the physical characteristics of the object your applying it to. Light Metal: A thin metal, used for metal that may become deformed slightly when hit, e.g. light armor cars and vehicles. Heavy Metal: A thick metal, used for metal that doesn't get penetrated easily or not at all. e.g. Heavy armor tank. Water: A liquid, used for creating splash effects when hit. e.g. A lake. Sand: Sand, e.g. A beach Dirt: A ground type of surface, e.g A dirt road. Mud: A muddy surface: used for creating that splashy mud effect. e.g. a mud puddle. Grass: A grassy surface: e.g. a grassy plain Wood: A wooden type of surface: e.g. a wooden crate. Concrete: A concrete surface: e.g. A sidewalk or bricks. Flesh: A fleshy surface, for use with most mammals, e.g. A human character. Rock: A rock type of surface. impenatrable and very hard. e.g. a large boulder. Snow: A snow type of surface: e.g. snow covered mountains. Ice: An icyy type of surface: e.g. A thin sheet of Ice on a frozen lake. Default: This is used if you want no collision effects. Glass: A Glass type of surface, e.g. a window. Tiberium Field: A Tiberium field type of surface: (for use with command and conquer associated games), e.g. a tiberium field. Foliage Permeable: A plant line permeable surface, (permeable meaning you can put a hole in it) e.g. A bush Glass Permeable: A glass permeable surface, (permeable meaning you can put a hole in it) e.g. shatterproof glass. Ice Permeable: An Ice permeable surface, (permeable meaning you can put a hole in it) e.g. Thick lake Ice. Cloth Permeable: A cloth permeable surface, (permeable meaning you can put a hole in it) e.g. A blanket hanging on a clothesline. Electrical: An Electrical surface, used for surfaces that give off a little electric shock when struck. e.g. a transformer. Electrical Permeable: An Electrical Permeable surface, used for surfaces that electrify when struck. e.g. A television or toaster. Flammable: A Flammable surface, used for surfaces that become on fire when flame hits them. e.g. A trail of gas. Flammable Permeable: A Flammable Permeable surface, used for surfaces that burn when caught on fire. e.g. Office papers. Steam: A steam type of surface. e.g. smoke rising from a chimney. Steam Permeable: The surface to use when steam can come out of it. e.g. Steam pipes. Static Sorting Level: Tells the game engine not to sort those polygons. The value you enter into the spinner next to it defines which bactch to render them in. Material Pass Count: Lets you set the number of passes that your material will use. Pass: A single pass is basically the layer which contains the mapper info, texture map, color, ect. A second pass is a second map layer you have the option of adding. E.g: If you have a glass texture with a transparancy value to it on the first pass, you can assign a second pass with a reflection map. The outcome would create a more realistic glass window, however, Using multiple passes comes at a price as it can be costly on the game engines. You have a maximum of 4 passes you can perform. NOTE: Due to a limitation in our run-time engine, all materials used in a single mesh must have the same number of passes. -If you need to use materials with different numbers of passes, you will have to split the polygons into two separate meshes. The pass rollout is broken down into 4 tabs: Vertex Material: Lets you set the material (mapper) properties. W3D Shader The original W3D Shader. Textures Allows you to select various bitmaps and set their properties.
-
xxx_tt.ini (where xxx is the name of the map, these are the tt.ini settings that can either go in the per-map tt.ini or the main tt.ini) [General] section AirFactoryVehicleLimit=int (vehicle limit for air factories) NavalFactoryVehicleLimit=int (vehicle limit for naval factories) VehicleFactoryVehicleLimit=int (vehicle limit for vehicle factories) LowPowerDamageScale=float (when buildings are damaged and power is off, the damage is scaled by this amount) UseExtraPTPages=bool (enables the extra "secret" pages on the PT, not relavent for the sidebar) BuildingRefillDisable=bool (enable this to allow you to require a specific building in order to refill. If the building doesn't exist on the map or its alive, refill works, otherwise its disabled) NodBuildingRefillDisable=string (building controller preset for Nod for the above feature) GDIBuildingRefillDisable=string (building controller preset for GDI for the above feature) NoPowerCostMultiplier=float (what to multiply purchase costs by when the power is low) BuildTimeDelay=float (what to multiply build time by when the power is low) NewTechLevel=bool (enable the new tech level and factory stuff that works through settings on the presets) VisceroidEnable=bool (enable the Visceroid Probability stuff in armor.ini that might spawn a Visceroid when you die) OverrideMuzzleDirection=bool (let AI infantry aim their muzzles like player infantry do) GDIUpArrowTexture=string (texture for the up arrow on the GDI sidebar) GDIDownArrowTexture=string (texture for the down arrow on the GDI sidebar) GDIBackgroundTexture1=string (texture for the background upper part on the GDI sidebar) GDIBackgroundTexture2=string (texture for the background lower part on the GDI sidebar) NODUpArrowTexture=string (texture for the up arrow on the Nod sidebar) NODDownArrowTexture=string (texture for the down arrow on the Nod sidebar) NODBackgroundTexture1=string (texture for the background upper part on the Nod sidebar) NODBackgroundTexture2=string (texture for the background lower part on the Nod sidebar) Sidebar=bool (whether to enable the sidebar) SidebarSoundsEnabled=bool (whether to enable the sidebar sounds) SidebarRefillSound=string (sound to use when purchasing refill on the sidebar) SidebarRefillSoundNod=string (sound to use when purchasing refill on the Nod sidebar) SidebarRefillSoundGDI=string (sound to use when purchasing refill on the GDI sidebar) SidebarInfantrySound=string (sound to use when purchasing infantry on the sidebar) SidebarInfantrySoundNod=string (sound to use when purchasing infantry on the Nod sidebar) SidebarInfantrySoundGDI=string (sound to use when purchasing infantry on the GDI sidebar) SidebarVehicleSound=string (sound to use when purchasing vehicles on the sidebar) SidebarVehicleSoundNod=string (sound to use when purchasing vehicles on the Nod sidebar) SidebarVehicleSoundGDI=string (sound to use when purchasing vehicles on the GDI sidebar) SidebarRefillEnabled=string (enable refill on the sidebar) SidebarTabsEnabled=string (enable tabs on the sidebar) TabCharacters=int (what tab to put infantry on) TabCharactersSecret=int (what tab to put secret infantry on) TabVehicles=int (what tab to put vehicles on) TabVehiclesSecret=int (what tab to put secret vehicles on) TabAir=int (what tab to put air vehicles on) TabAirSupplemental=int (what tab to put supplemental air vehicles on) TabNaval=int (what tab to put naval vehicles on) GDISidebarPowerOnTexture1=string (sidebar power on texture for GDI) GDISidebarPowerOnTexture2=string (sidebar power on texture for GDI) GDISidebarPowerOffTexture1=string (sidebar power off texture for GDI) GDISidebarPowerOffTexture2=string (sidebar power off texture for GDI) NODSidebarPowerOnTexture1=string (sidebar power on texture for Nod) NODSidebarPowerOnTexture2=string (sidebar power on texture for Nod) NODSidebarPowerOffTexture1=string (sidebar power off texture for Nod) NODSidebarPowerOffTexture2=string (sidebar power off texture for Nod) GDITabTexture1=string (sidebar tab 1 texture for GDI) GDITabTexture2=string (sidebar tab 2 texture for GDI) GDITabTexture3=string (sidebar tab 3 texture for GDI) GDITabTexture4=string (sidebar tab 4 texture for GDI) NODTabTexture1=string (sidebar tab 1 texture for Nod) NODTabTexture2=string (sidebar tab 2 texture for Nod) NODTabTexture3=string (sidebar tab 3 texture for Nod) NODTabTexture4=string (sidebar tab 4 texture for Nod)
-
xxx_map.ini (where xxx is the name of the map) [General] GDIWinBanner=HUD_GDIWINBAN (w3d file to use for the GDI win banner, no .w3d on the end) NodWinBanner=HUD_NODWINBAN (w3d file to use for the Nod win banner, no .w3d on the end) LoadingMusic=filename OverrideNightTime=bool (set this to true to cause it to be night time no matter what the actual time is set to) [CustomBackdrop] Works just like campaign.ini backdrop settings (documentation on how this works needed) ; You can specify a 'color' in two ways: ; 1. Separate Red/Green/Blue components: ; SkyColorRed=112 ; SkyColorGreen=146 ; SkyColorBlue=176 ; 2. Hex color (ARGB): ; SkyColorHex = 0xFF7092b0 [SkyColors] OverrideSkyColors=bool (enable this to override the sky colors) WarmSkyColor=color (Warm sky color - Clouded sky's additional, color around the sun) ColdSkyColor=color (Cold sky colors - Clouded sky's additional color everywhere else + Fog color (bottom skydome)) SunColor=color (Sun color) SunHaloColor=color (Sun halo color) MoonHaloColor=color (Moon halo color) SkyColor=color (Sky color (top skydome)) GloominessColor=color (Cloud gloominess color) StarfieldAlpha=int (Star field transparency, 255 - Stars appear (good for clear sky night time); 0 - No stars) ; These are the defaults. Textures for sky settings: [SkyTextures] StarTexture=Star.tga LightningTexture=LightningBolt.tga LightningSource=LightningSource.tga SunTexture=Sun.tga SunHaloTexture=SunHalo.tga MoonHaloTexture=MoonHalo.tga CloudTexture=CloudLayer.tga MoonTexture1=FullMoon.tga MoonTexture2=PartMoon.tga EarthTexture1=FullEarth.tga EarthTexture2=PartEarth.tga Thunder sounds [ThunderSounds] ThunderSound1=Thunder01 ThunderSound2=Thunder02 ThunderSound3=Thunder03 ThunderSound4=Thunder04 ThunderSound5=Thunder05 ThunderSound6=Thunder06 WarBlitzSound=SFX.Ambient_Explosion_01 Weather textures [WeatherTextures] WeatherTexture=WeatherParticles.tga Weather sounds [WeatherSounds] WindSound=Wind01 RainSound=Rainfall01 All sounds set in this ini file are sound preset names and should work as twiddlers. Although the sounds are loaded once when the level is loaded or the weather settings get changed by e.g. a script command (at least for the thunder, wind and rain sounds, war blitz sound is weird and I don't fully understand that one)
-
This controls the entries that appear in the Weapons part of the encyclopedia, either in single player, or if the multiplayer version is enabled in TT.ini. Each entry needs a name in square brackets (e.g. [M16 Mk 2 Pulse Rifle]), then these items: Name Type Description NameID string Name of the unit in the encyclopedia, this should be the name of a strings.tdb entry. DescriptionID string Description of the unit in the encyclopedia, this should be the name of a strings.tdb entry. AffiliationID string A string which shows what side this belongs to. This should be the name of a strings.tdb entry. Model string This should be the name of a W3D file. This will appear in the model viewer area. Anim string This should be the name of a W3D file with an animation. The model will play this animation on loop in the model viewer area. This is optional. ID int This is the ID number for the entry. If you have a single player campaign, the object that will unlock this entry should have this ID in it's EncyclopediaID field. MinDist float This controls how far away the camera is from the object, if it is too close. Team int This controls what team an encyclopedia entry represents, 0 is for Nod (or that equivalent team), 1 is for GDI (or equivalent). Defaults to -2. Optional if the object isn't teamed. If the object is teamed, it will also colour the name in the team appropriate colours (set in the variables NodHouse/GDIHouse in hud.ini) HideInMP bool If you have a singleplayer campaign, and want to hide an entry from the MP side; ensure this is set to true. That will allow for the object to have an entry in the SP campaign, while not showing up in MP.
-
This controls the entries that appear in the Vehicle part of the encyclopedia, either in single player, or if the multiplayer version is enabled in TT.ini. Each entry needs a name in square brackets (e.g. [GDI Titan]), then these items: Name Type Description NameID string Name of the unit in the encyclopedia, this should be the name of a strings.tdb entry. DescriptionID string Description of the unit in the encyclopedia, this should be the name of a strings.tdb entry. AffiliationID string A string which shows what side this belongs to. This should be the name of a strings.tdb entry. Model string This should be the name of a W3D file. This will appear in the model viewer area. Anim string This should be the name of a W3D file with an animation. The model will play this animation on loop in the model viewer area. This is optional. DefinitionName string This should be the name of a vehicle definition in Mammoth. The encyclopedia will use this to properly set the suspension height for the object. ID int This is the ID number for the entry. If you have a single player campaign, the object that will unlock this entry should have this ID in it's EncyclopediaID field. MinDist float This controls how far away the camera is from the object, if it is too close. Team int This controls what team an encyclopedia entry represents, 0 is for Nod (or that equivalent team), 1 is for GDI (or equivalent). Defaults to -2. Optional if the object isn't teamed. If the object is teamed, it will also colour the name in the team appropriate colours (set in the variables NodHouse/GDIHouse in hud.ini) HideInMP bool If you have a singleplayer campaign, and want to hide an entry from the MP side; ensure this is set to true. That will allow for the object to have an entry in the SP campaign, while not showing up in MP.
-
[General] Section ContinueReloadOnVehicleExit=bool (enables reloading to continue when vehicles are empty) VehicleOwnershipDisable=bool (disables the stock Renegade vehicle locking feature to allow e.g. spies to be able to steal vehicles) VehicleBuildingDisable=bool (changes how the code determines if a factory is busy, if you have naval/air or you have the sidebar, you will want this off) DisableVehicleFlipKill=bool (disables the killing of vehicles when they flip over) MapPrefix=string (changes the map prefix for multiplayer maps from the default of C&C_ to something else) NeutralVechiclePointsFix=bool (ensures you get points for killing a vehicle even if the players get out of it) DrawDistance=float (changes the distance at which stuff gets drawn, also changes matching things in the netcode) ScriptsLastTeamTime=int (sets how long the vehicle will remain teamed after you get out of it, set to -1 for infinite time) NukeWeatherDisable=bool (disable weather effects for the nuke beacon) IonWeatherDisable=bool (disable weather effects for the ion beacon) CreditsMultiplier=float (multiplier for how many credits you get for every one score value you get) DisableOnFire=bool (disables some "when you are on fire, you can't shoot" code for soldiers) MultiplayerTutorialEnable=bool (makes the tutorial run in a special version of skirmish mode rather than in single player mode) MultiplayerTutorialTeam=int (what team the player should be in the multiplayer tutorial mode) StreamedSoundBufferSize=int (controls the size at which a sound becomes a streamed sound, you can only have one streamed sound playing at once) ScriptZoneDebug=bool (enable this to make script zones visible in-game for debugging purposes) SectorDebug=bool (enable this to make pathfind sectors visible in-game for debugging purposes) PortalDebug=bool (enable this to make pathfind portals visible in-game for debugging purposes) PathfindingDebug=bool (enable this to make pathfind web paths visible in-game for debugging purposes) HUDDebug=bool (enable this to show HUD element extensions in-game for debugging purposes) DialogDebug=bool (enable this to show dialog element extensions in-game for debugging purposes) StealthShader=string (shader fx file to use for the stealth effect) UndergroundShader=string (shader fx file to use for the underground effect) NewUnpurchaseableLogic=bool (special case logic if you are using the old PTs and are using certain features related to air and naval, chances are you want this enabled) RefillLimit=float (limits how often you can refill) DisableKillMessages=bool (disables the stock kill messages if you have custom ones instead) DisableSP=bool (disables the "single player" button from working) HidePassengerRadarIcons=bool (hides icons for vehicle passengers on the radar) LoadingMusic=string (sets the music track for when a player is loading) OverrideHelpWithNewEncyclopedia=bool (if set to true, replaces the help menu with a version of the old SP encyclopedia) SidebarHUDEnabled=bool (set this to false to disable the rendering of the HUD while the ingame sidebar is open) SidebarDescriptionCostEnabled=bool (set this to true to show the cost of the selected unit in the sidebar, next to the description, uses IDS_MERCH_DESCRIPTION_COST for translation) SidebarBuyButtonEnabled=bool (set this to true to show an exclusive buy button on the sidebar) SidebarShowCredits=bool (set this to true to show an extra text near the sidebar that shows the current credits of the player, uses IDS_HUD_CREDITS for translation) GDIBuyTexture=string (texture to display on the buy button for team 1) NODBuyTexture=string (texture to display on the buy button for team 0) SidebarCostsEnabled=bool (set this to false to disable showing the costs of merch items) SidebarNamesEnabled=bool (set this to true to enable showing the names of merch items) SidebarCustomCostsEnabled=bool (set this to true to enable showing the costs of merch items in the top right corner of the merch boxes, uses IDS_MERCH_COST for translation) SidebarCustomNamesEnabled=bool (set this to true to enable showing the names of merch items in the bottom center of merch boxes) SidebarExtraSlotsEnabled=bool (set this to true to enable 10 merchandise slots instead of the default 8 slots) GDITabTexture1=string (texture to display on the tabbed sidebar's 1st button for team 1, change number from 1 to 2/3/4 for the other tabs) GDITabTexture1Selected=string (texture to display on the tabbed sidebar's 1st button for team 1 if active, change number from 1 to 2/3/4 for the other tabs) NODTabTexture1=string (texture to display on the tabbed sidebar's 1st button for team 0, change number from 1 to 2/3/4 for the other tabs) NODTabTexture1Selected=string (texture to display on the tabbed sidebar's 1st button for team 0 if active, change number from 1 to 2/3/4 for the other tabs)
-
This file has one section per combination of surface and hitter type. The names must be specified exactly as in the lists below, including capitalization. There are also three more sections called "Bullet_Stopping", "Damage_Warhead" and "Damage_Rate". Surface Types: Light Metal Heavy Metal Water Sand Dirt Mud Grass Wood Concrete Flesh Rock Snow Ice Default Glass ** Cloth Tiberium Field Foliage Permeable Glass Permeable ** Ice Permeable Cloth Permeable Electrical Electrical Permeable Flammable Flammable Permeable Steam Steam Permeable Water Permeable Tiberium Water Tiberium Water Permeable Underwater Dirt Underwater Tiberium Dirt Blue Tiberium * Red Tiberium * Tiberium Veins * Laser * * Scripts 5.0 only ** Surface types "Glass" and "Glass Permeable" are special in that they are the only ones able to apply decals to transparent meshes and they will also not be applied to neighboring objects if you hit near the edge between them (unfortunately does not discriminate between individual meshes that are part of an object). This is currently hard coded. Hitter Types: None Generic Object Footstep Run Footstep Walk Footstep Crouched Footstep Jump Footstep Land Bullet Bullet Fire Bullet Grenade Bullet Chem Bullet Electric Bullet Laser Bullet Squish Bullet Tib Spray Bullet Tib Bullet Shotgun Bullet Silenced Bullet Sniper Bullet Water Eject Casing Shell Shotgun Tire Rolling Tire Sliding Track Rolling Track Sliding Footstep Ladder *** *** This is hard coded to hit the "Light Metal" surface type whenever you are stepping up/down a ladder, so you do not need to specify its effects for each surface type (unless you for some reason decide to make an ammo preset with this hitter type). [Bullet_Stopping] This section sets whether a given surface type stops bullets when hit. If there is no entry for a surface type, it defaults to true. Example [Bullet_Stopping] Cloth=true Cloth Permeable=false Concrete=true Default=true Dirt=true Electrical=true Electrical Permeable=false [Damage_Warhead] This section determines the damage warhead (see armor.ini) of the given surface type. Shown below is a specific example from APB that handles barbed wire and water damage. Example ; Water = water surface (instakills helicopters) ; Underwater Tiberium Dirt = underwater surface (minor damage to vehicles; the main bulk of the damage is dealt by the water script zone, for vehicles that are fully submerged in deep water) ; Tiberium Water = top of barbed wire fence (hurts infantry only, not so lethal to those with armour) ; Tiberium Field = places infantry should not be able to access, like un-laddered rooftops (instant death) [Damage_Warhead] Water=AntiAircraft2 Water Permeable=AntiAircraft2 Underwater Tiberium Dirt=Water Tiberium Water=Splash Tiberium Field=Splash [Damage_Rate] This section determines the damage caused per second when touching the given surface type. Example [Damage_Rate] Water=9999.0 Water Permeable=9999.0 Underwater Tiberium Dirt=15.0 Tiberium Water=30.0 Tiberium Field=9999.0 [SurfaceTypeName_HitterTypeName] This section determines the effects created when "HitterTypeName" hits/touches "SurfaceTypeName". Note that there can be an arbitrary number of entries named Sound/Emitter/Decal by adding a number N at the end of the entry name. Numbers must start at 0 and must be contiguous. The game will pick one of these entries at random each time the effect is spawned. Entry Type Default Description SoundN String (Preset Name) Sound to play when surface is hit by this hitter. EmitterN String (Model Name) Particle emitter to create when surface is hit by this hitter (can be an HLOD model). DecalN String (Texture File Name) Decal to create on the surface when it is hit by this hitter. DecalSize Float (Decimal Number) 1.0 Decal radius in meters. DecalSizeRandom Float (Decimal Number) 0.0 Random variation of decal radius in meters. Duration Float (Decimal Number) -1.0 Lifetime of the emitter in seconds. If specified as -1.0 and the emitter model is just an emitter (not an HLOD), it will use the emitter's own lifetime setting instead. Friction Float (Decimal Number) 0.5 Extra friction applied if touching this surface. * Drag Float (Decimal Number) 0.0 Extra drag applied if touching this surface. * * Only applies to hitter types "Generic Object", "Tire Rolling" and "Track Rolling". Generic objects currently only apply friction (not drag), tracked vehicles currently do not apply either friction or drag. Example [Wood_Bullet Silenced] Sound0=Wood Ricochet Sounds Twiddler Emitter0=e_wdblt Duration=3 Decal0=D_BH_s_wood1.tga Decal1=D_BH_s_wood2.tga Decal2=D_BH_s_wood3.tga DecalSize=0.05 DecalSizeRandom=0.01
-
[paths] section RegBase=string (sets base registry path) RegClient=string (sets client registry path) RegFDS=string (sets FDS registry path) FileBase=string (sets base file path) FileClient=string (sets client file path) FileFDS=string (sets FDS file path) UseRenFolder=bool (set this to use the renegade folder for data storage instead of the documents folder) ConfigExe=string (exe file to load for configuration instead of wwconfig.exe)
-
Overview The Hud.ini is the main editable .ini text file that creates the colors and placements for all the HUD (Heads Up Display) you see in-game. While it typically utilizes .dds files inside the always.dat as well.. the hud.ini is the main part where a lot of the settings including color (Which follows the RGB code of numbers 0-255) of the HUD can be edited. There are a lot of HUDs created for different games across the W3DHub game spectrum including A Path Beyond and of course Renegade itself. However, should you choose to transfer one HUD meant for Renegade to A Path Beyond you will typically have to adjust the settings to accommodate the new game layout. Furthermore be aware that when crossing HUDs into different games a certain script may be needed to make said HUD work at all. Explanation of a basic Hud.ini [General] Section NodHouseRed=int (Nod color for chat messages, goes from 0 to 255) NodHouseGreen=int (Nod color for chat messages, goes from 0 to 255) NodHouseBlue=int (Nod color for chat messages, goes from 0 to 255) GDIHouseRed=int (GDI color for chat messages, goes from 0 to 255) GDIHouseGreen=int (GDI color for chat messages, goes from 0 to 255) GDIHouseBlue=int (GDI color for chat messages, goes from 0 to 255) PrivateMessageRed=int (private message color for chat messages, goes from 0 to 255) PrivateMessageGreen=int (private message color for chat messages, goes from 0 to 255) PrivateMessageBlue=int (private message color for chat messages, goes from 0 to 255) PublicMessageRed=int (public message color for chat messages, goes from 0 to 255) PublicMessageGreen=int (public message color for chat messages, goes from 0 to 255) PublicMessageBlue=int (public message color for chat messages, goes from 0 to 255) TitleColor=color (changes UI colors) TitleHilightColor=color (changes UI colors) TextColor=color (changes UI colors) TextShadowColor=color (changes UI colors) LineColor=color (changes UI colors) BkColor=color (changes UI colors) DisabledTextColor=color (changes UI colors) DisabledTextShadowColor=color (changes UI colors) DisabledLineColor=color (changes UI colors) DisabledBkColor=color (changes UI colors) HilightColorBkColor=color (changes UI colors) TabTextColor=color (changes UI colors) TabGlowColor=color (changes UI colors) DialogTextTitleColor=color (changes UI colors) DialogTextTitleGlowColor=color (changes UI colors) MenuHiliteColor=color (changes UI colors) MerchandiseTextColor=color (changes UI colors) MenuStaticGlowColor=color (changes UI colors) MenuActiveGlowColor=color (changes UI colors) MenuPushedBaseGlowColor=color (changes UI colors) MenuPushedHighlightGlowColor=color (changes UI colors) ListColumnColorEnabled=bool (whether to change the list column color) ListColumnColorRed=int (list column color, goes from 0 to 255) ListColumnColorGreen=int (list column color, goes from 0 to 255) ListColumnColorBlue=int (list column color, goes from 0 to 255) HidePlayerList=bool (hide the player list) HideBottomText=bool (hide the time and credits text) LodBudgetDialogValue1=int (value to use for lower LOD budget position on the config dialog) LodBudgetDialogValue2=int (value to use for higher LOD budget position on the config dialog) CenterMainMenu=bool (whether to center the main menu) WinScreenGDIColor=color (color to use for GDI on the win screen) WinScreenNodColor=color (color to use for Nod on the win screen) HideHelpScreenKeys=bool (hides the key text on the help screen HideWeaponBox=bool (hide the weapon box) HideInfoBox=bool (hide the info box) HideCenter=bool (hide the centre bits) HidePowerupIcons=bool (hide the powerup icons) WeaponChartColor=color (color for the weapon chart icons WeaponChartEmptyColor=color (color for the empty weapon chart icons) DecalLimit=int (decal limit) MaxStaticLODBudget=int (max static lod budget) MaxDynamicLODBudget=int (max dynamic lod budget) [Team HUD] Section Enabled=bool (enable per-team hud stuff) [Crosshair] Section This section documents the crosshair displacement tech, which is used to move the crosshair when weapon spread is applied by any of the following settings in a weapon and/or ammo preset (see image to the right). This section was written by @ OWA Spray Settings Weapon Settings Ammo Settings Control Type Description Enabled True/False Bool Enables/Disables the dynamic crosshair Up_Left Integer All of these various controls are used to tell the engine where the edges of each part of the crosshair are on the crosshair texture (hd_reticule.dds). The values for each of these correspond to the number of pixels from the left side or bottom of the image file that the sides of the various elements (up/down/left/right) occupy. See the labelled diagram to the right for a visual reference of what each control corresponds to. The code block to the right contains the settings used in the diagram. Note: Top and Bottom being the wrong way round is intentional. That's the way the engine reads it. Up_Top Integer Up_Right Integer Up_Bottom Integer Down_Left Integer Down_Top Integer Down_Right Integer Down_Bottom Integer Left_Left Integer Left_Top Integer Left_Right Integer Left_Bottom Integer Right_Left Integer Right_Top Integer Right_Right Integer Right_Bottom Integer DistanceFromCenter Decimal Number Used to define how far away each of the dynamic crosshair parts are from the centre by default. OffsetMultiplier Decimal Number Multiplies the SprayAdd* penalties for movement from the weapon preset to control how far the dynamic crosshair elements go away from the centre.* AddSprayAngle True/False Bool This adds the SprayAngle from the ammo preset to how far away the dynamic crosshair elements are from the center. This angle can be dynamic (see SprayAngleIncreasePerShot). NOTE: This setting is currently always on. SprayAngleMultiplier Decimal Number Multiplies the SprayAngle component to control how far the dynamic crosshair elements go away from the centre.* *The spray penalties are calculated in radians in the engine, so the multipliers are pretty large. An example calculation: SprayAddJumping = 3.25 deg (~0.057 rad) SprayAngle = 0.75 deg (~0.013 rad) OffsetMultiplier = 600 SprayAngleMultiplier = 300 DistanceFromCenter = 2 pixels Resulting Offset = 600 * 0.013 + 300 * 0.057 + 2 = 26.9 pixels Diagram [Crosshair] Enabled=true Up_Left=30 Up_Top=43 Up_Right=34 Up_Bottom=57 Down_Left=30 Down_Top=7 Down_Right=34 Down_Bottom=21 Left_Left=7 Left_Top=30 Left_Right=21 Left_Bottom=34 Right_Left=43 Right_Top=30 Right_Right=57 Right_Bottom=34 DistanceFromCenter=2 OffsetMultiplier=600 AddSprayAngle=true SprayAngleMultiplier=300 Todo Hud.ini stuff I can't document, @ Romanov will probably be able to help with this given his rewrite of hud.ini and all the work he did in adding things to it: Colors, TextureQuads, Bullet, Clip, WeaponText, WeaponImage, HealthBar, ShieldBar, HealthText, ShieldText, Compass, Credits, TimeRemaining, HealthIcon, ShieldIcon, VeterancyBar, VeterancyText, VeterancyIcon, SprintIcon, BurnIcon, CooldownHUD, ElectricfiedIcon, ChemIcon, Radar, WeaponChargeBar, SneakIcon, SuperweaponTimer, BuildingHealth, Mines, TrackingLock, Target Box Shield Bar, Target Ctrl settings. Also the ObjectiveMarker stuff (AR only)
-
This controls the entries that appear in the Characters part of the encyclopedia, either in single player, or if the multiplayer version is enabled in TT.ini. Each entry needs a name in square brackets (e.g. [GDI Light Infantry]), then these items: Name Type Description NameID string Name of the unit in the encyclopedia, this should be the name of a strings.tdb entry. DescriptionID string Description of the unit in the encyclopedia, this should be the name of a strings.tdb entry. AffiliationID string A string which shows what side this belongs to. This should be the name of a strings.tdb entry. Model string This should be the name of a W3D file. This will appear in the model viewer area. Anim string This should be the name of a W3D file with an animation. The model will play this animation on loop in the model viewer area. This is optional. ID int This is the ID number for the entry. If you have a single player campaign, the object that will unlock this entry should have this ID in it's EncyclopediaID field. MinDist float This controls how far away the camera is from the object, if it is too close. Team int This controls what team an encyclopedia entry represents, 0 is for Nod (or that equivalent team), 1 is for GDI (or equivalent). Defaults to -2. Optional if the object isn't teamed. If the object is teamed, it will also colour the name in the team appropriate colours (set in the variables NodHouse/GDIHouse in hud.ini) HideInMP bool If you have a singleplayer campaign, and want to hide an entry from the MP side; ensure this is set to true. That will allow for the object to have an entry in the SP campaign, while not showing up in MP.
-
The [Profile_List] section defines a list of camera profiles with name strings: Example [Profile_List] 0=Default 1=Sniper 2=First_Person 3=Death 4=APC 5=Ranger 6=Allied_Artillery 7=Arty_Side 8=Arty_Side2 Following that are sections which define the parameters of these cameras: Example [Default] Name=Default TranslationTilt=22.5 ViewTilt=0 Distance=1.5 Height=1.4 FOV=90 LagUp=0.2 There are five hard coded cameras that must be defined: Default, First_Person, Death, Sniper, Cinematic (the last one is optional for MP games). In Mammoth, the cameras can then be applied to vehicle presets using the Profile and Alt. Camera Profiles settings: Profile Parameters All angular values are specified in degrees, distances in world space meters. Take note that the default values are not 0 for many of these parameters. This is especially important if you want to use OriginOffsetUp instead of Height. In W3D Engine version 5.0, the parameters can be changed at runtime using the edit_camera console command (only works on a listen server with max player count 1, will not save the changes to cameras.ini). Parameter Default Description FOV 65 FOV measured in 4:3 aspect ratio (i.e. 16:9 will get wider than this value). Height 0.2 Height of camera pivot point above the model center in terms of the world space up-axis. Distance 3.1 Distance of the camera from the pivot point. ViewTilt 20 A tilt angle (pitch) offset for the camera. Positive values tilt the camera down. TiltTweak 0.6 Multiplies the camera tilt from mouse movement before applying it to the "Distance" vector (from the pivot point to your camera). A value lower than 1 means the camera origin will always stay slightly more behind the model instead of rotating towards the front as you tilt your camera down. This value will also determine when the camera will collide with an invisible plane and stop moving lower. At 1 it will never collide, at 0 it will collide at the height of the pivot point. TranslationTilt 19.9 Tilt angle offset applied to the "Distance" vector before doing the above. Determines at which angle the camera is positioned from the pivot. LagUp LagLeft LagForward 0 This is a time value in seconds (hopefully, not 100% sure) which is used to make the camera not immediately follow sudden movement, for example jumping. Forward† Sideways† 0 These are used to move the camera position *after* all other transformations including rotations are applied. They can be beneficial for sidecams, e.g. the Artillery or V2 in APB, but should not be used for "first person" or turret cams. Also, "Forward" is actually applied up in world space, so it's mostly useless. See video below for usage example. OriginOffsetForward† OriginOffsetLeft† OriginOffsetUp† 0 These offsets are applied to the camera pivot point before all other transformations. This allows you to make the camera essentially stick to specific point on the model, e.g. for first person or turret cams. Height will always translate up in world space while OriginOffsetUp will operates in object space, i.e. the camera pivot point will follow your vehicle's orientation if you set OriginOffset, which is why it's good for first person cams. The Forward/Left/Up axes are meant to be X/Y/Z in object space respectively, so if your specific model has different orientations you may need to exchange some values. Small note on infantry cameras: Do not under any circumstances use OriginOffset or Sideways for the third person camera. For the first person camera, you should set everything to 0 except FOV. You may use OriginOffsetUp to modify first person camera height (but I wouldn't overdo it), while Left and Forward are definitely not recommended. FollowVehicleOrientation† False Note: Experimental, implementation may change at any time. Forces the camera to face forward on entering a vehicle and then fully transfers any vehicle orientation changes to the camera (on all axes). Might be useful for planes in the future or for non-combat first person cameras (e.g. Supply Truck). Currently can't be used for mouse controlled planes and also leaves camera in a semi-random heading when exiting the vehicle. DisableFloatingPlayerName† False Disable the floating player name for this camera (useful for first person views). CameraBone† <empty> You can specify the name of a bone here that will replace the player origin as the anchor point of the camera. This adds a new method to do first person / turret cameras: Attach the camera to the "turret" bone (or any other bone). Set all parameters except FOV to 0. Use Forward/Sideways/Distance to tune position. Keep in mind that Forward is actually up (can't change due to backwards compatibility). You can raise TiltTweak to prevent clipping into the vehicle below. Note: I tried making OriginOffset work with the bone orientation instead of the vehicle orientation, but that can cause problems with the game auto-adjusting turret orientation to match the 3rd person targeting mechanics. This will also affect you if you try to attach the camera to the muzzle bone since that will actually change position based on targeting. NearClip† 0.1 This value adjusts where the near clip plane is for this camera. I would not recommend adjusting this below zero. The Near and Far Clip Planes determine where the camera’s view begins and ends. The planes are laid out perpendicular to the Camera’s direction and are measured from its position. The Near plane is the closest location that will be rendered, and the Far plane is the furthest. The Far plane is controlled by the DrawDistance command in tt.ini. This is useful for if a vehicular first person view requires a little bit more culling than the default 0.1 near clip plane provides. †Added in W3D Engine version 5.0 The following is a comparison video of using Forward/Sideways (first half of the video) vs OriginOffset (second half). For side views like the ones of the Artillery, OriginOffset feels a bit weird because the camera pivots around empty space and the pivot is moving in a circle along the model orientation when you drive around. Turret cams are what OriginOffset was intended for, which is clearly visible in the Cruiser example, where side cams are woefully inadequate.
-
This controls the entries that appear in the Buildings part of the encyclopedia, either in single player, or if the multiplayer version is enabled in TT.ini. Each entry needs a name in square brackets (e.g. [GDI Construction Yard]), then these items: Name Type Description NameID string Name of the unit in the encyclopedia, this should be the name of a strings.tdb entry. DescriptionID string Description of the unit in the encyclopedia, this should be the name of a strings.tdb entry. Model string This should be the name of a W3D file. This will appear in the model viewer area. Anim string This should be the name of a W3D file with an animation. The model will play this animation on loop in the model viewer area. This is optional. ID int This is the ID number for the entry. If you have a single player campaign, the object that will unlock this entry should have this ID in it's EncyclopediaID field. MinDist float This controls how far away the camera is from the object, if it is too close. Team int This controls what team an encyclopedia entry represents, 0 is for Nod (or that equivalent team), 1 is for GDI (or equivalent). Defaults to -2. Optional if the object isn't teamed. If the object is teamed, it will also colour the name in the team appropriate colours (set in the variables NodHouse/GDIHouse in hud.ini) HideInMP bool If you have a singleplayer campaign, and want to hide an entry from the MP side; ensure this is set to true. That will allow for the object to have an entry in the SP campaign, while not showing up in MP.
-
Armor.ini defines not only the skin/shield types that W3D can use, but also the various types of warhead that weapons, explosions, etc. use. [Warhead_Types] [Armor_Types] [Soft_Armor] [Armor_Save_IDs] [Scale_...] [Shield_...] [Special_Damage_Type] [Special_Damage_Probability] [Special_Damage_...] [Impervious_...] [Visceroid_Probability] [Warhead_Types] Warhead types is a list of the various warheads that your mod uses. The list starts from zero and is in the format below: Example [Warhead_Types] 0=None 1=Earth 2=Bullets 3=TankShell 4=FlamethrowerWarhead 5=BadFlamethrowerWarhead [Warhead_Save_IDs] This is simply the warhead types list, but with the number at the end, rather than at the beginning. Example [Warhead_Save_IDs] None=0 Earth=1 Bullets=2 TankShell=3 FlamethrowerWarhead=4 BadFlamethrowerWarhead=5 [Armor_Types] Armor types defines what different skins and shields that you have. The list is in the same format as Warhead_Types. Example [Armor_Types] 0=None 1=Blamo 2=InfantrySkin 3=FlakJacketArmor 4=FlameproofSkin [Soft_Armor] This list defines if a skin/shield can have an Ammo with a SoftPierceLimit greater than 0 penetrate straight through it. Both the unit's skin and shield type must be on this list if a shot is to go through. The list is in the same format as the Warhead_Types list. Example [Soft_Armor] 0=None 1=InfantrySkin [Armor_Save_IDs] This list is simply the Armor_Types list, but in the same, reversed format as Warhead_Save_IDs. Example [Armor_Save_IDs] None=0 Blamo=1 InfantrySkin=2 FlakJacketArmor=3 FlameproofSkin=4 [Scale_...] There are a number of Scale_... entries, one for each armor type that you have. Each entry has every type of warhead you have defined in Warhead_Types, with a number following which is the damage multiplier for that warhead towards that armor. A multiplier of 0 will do no damage, a multiplier of 1 will do full damage, a multiplier of 2 will do double damage, and so on. Example [Scale_InfantrySkin] None=1 Earth=1 Bullets=1 TankShell=0.2 FlamethrowerWarhead=2 BadFlamethrowerWarhead=0.75 [Shield_...] There are also a number of Shield_... entries. These entries aren't mandatory if you are only going to use the armor type as a skin, but if you are going to use it as a shield type, then these entries are required. Each entry has every type of warhead you have defined in Warhead_Types. The number that follows is the percentage of damage that the armor absorbs (and then gets removed from the armor bar). The remaining percentage gets removed from the health of the player. A value of 0 will mean that damage from that warhead bypasses that shield type, a value of 1 means that the armor absorbs the damage fully. Example [Shield_FlakJacketArmor] None=1 Earth=0 Bullets = 0.5 TankShell= 0 FlamethrowerWarhead= 0 BadFlamethrowerWarhead= 0.5 [Special_Damage_Type] This block defines what special damage type a warhead has. For example, a flamethrower with a burning effect would have a special damage of type Fire, etc. Warheads don't require this. Example [Special_Damage_Type] FlamethrowerWarhead=Fire BadFlamethrowerWarhead=WeakFire [Special_Damage_Probability] This block defines how the percentage chance that a warhead will deal special damage. 1 means it will always deal it, 0 means it will never, etc. Example [Special_Damage_Probability] FlamethrowerWarhead=1 BadFlamethrowerWarhead=0.25 [Special_Damage_...] There are a number of special damage entries, one for each type of special damage you have defined. Warhead defines what warhead the special damage does, duration is how long it lasts for in seconds, and Scale is damage multiplier for the special damage. (The original weapon's per shot damage is multiplied by this, and applied over the period of time.) Example [Special_Damage_Fire] Warhead=None Duration=5 Scale=1 [Special_Damage_WeakFire] Warhead=None Duration=2.5 Scale=0.5 [Special_Damage_HealingOverTime] Warhead=MedicalWarhead Duration=5 Scale=-10 [Impervious_...] With this, you can make certain armor types impervious to special damage. Note that the unit's skin type is what's checked for imperviousness, not the shield type. Example [Impervious_Fire] 0=None 1=Blamo 2=FlameproofSkin [Visceroid_Probability] This defines the percentage chance that a killing shot from this warhead will create a Visceroid. If a warhead isn't listed, then it will never make a Visceroid. This will usually be unused. The type of object that will be created can be set, however, in the "Global Settings>General>General" Preset, under VisceroidName. Example [Visceroid_Probability] NastyChemicalWeapon=1 NotSoNastyChemicalWeapon=0.25
-
The AircraftPhys physics model is built on top of the VehiclePhys base model. General Aircraft Physics The translational physics of a CTOL (Conventional Take-Off and Landing) aircraft are based on four primary forces affecting the vehicle: Thrust Lift Weight Drag Thrust is the force provided by the engine of the aircraft, moving the plane forward. Lift is created by airflow meeting the wings, causing them to generate a force orthogonal to the wings (i.e in the direction that is "up" w.r.t the aircraft). Drag is the airflow slowing down the aircraft while it is moving. Weight is gravity pulling the aircraft toward the center of the Earth. When thrust is applied, the plane accelerates, creating airflow that can generate lift. Once the lift is strong enough, it becomes greater than weight, and the plane rises off the ground. Drag increases as the plane speeds up, until it becomes as strong as thrust, and the plane cannot accelerate any more. Ideally, lift should be as strong as weight to allow the aircraft to maintain a stable altitude. Otherwise, the plane can reduce its speed in order to reduce lift, and thus achieve the same effect. The rotational physics are affected by the aircraft's control surfaces (i.e "flaps"). These are: Ailerons Elevator* Rudder* *Some planes may have two separate flaps performing this role together, but for our purposes, this is only a visual difference. The behavior of the control surfaces is influenced by two factors: airspeed and the angle of attack (AOA), i.e the angle at which the airflow hits these surfaces. At a lower airspeed, there is less airflow hitting the surface, which means it exerts less rotational torque on the airplane. If the airflow is parallel w.r.t the control surface, then there is negligible surface area for the airflow to exert force on, and thus no rotational torque is generated. This has two important consequences: firstly, our control surfaces inherently act as stabilizers, since whenever the airflow changes direction and is no longer parallel with these surfaces, a torque is generated that rotates the plane back into alignment with the airflow. This effect happens irrespective to control input, and is primarily created by the surfaces on the tail of the plane, similar to the fletchings on the back of an arrow (the wings may also generate a stabilizing torque, given a configuration that is covered below). Secondly, by moving the control surfaces, we change the orientation at which they are parallel with the airflow, and can therefore generate torques to change the orientation of the plane. The key detail is that we are using an indirect effect: the plane does not generate the torque on itself, but instead makes use of the airflow, which leads to different behavior at different speeds. The location and movement of the control surface determines the axis of rotation that they influence. The below image illustrates the axes of rotation and their respective names: Ailerons are located on the wings, and thus influence rotation around the X axis, i.e roll. Elevator is located on the tail fins parallel with the ground, influencing rotation around the Y axis, i.e pitch. Rudder is located on the tail fin orthogonal to the ground, influencing rotation around the Z axis, i.e yaw. Each control surface also provides stabilization around the same axis. For example, if the plane is slightly tilted downward, but the airflow is coming parallel with the ground (due to the plane's momentum still carrying it in that direction), the elevator will try to tilt the plane back up, unless the pilot overrides the effect using the controls. In the case of roll, this only applies to certain aircraft: if the aircraft has dihedral wings (i.e they are angled in a "V" w.r.t the ground plane, an example would be the Yak in Red Alert), then the wings will attempt to roll the plane back into an orientation parallel with the ground, unless the pilot overrides the effect with the ailerons. For our purposes, we do not use the full complexity of the aerodynamics of a real aircraft. For the flight surfaces, only three parameters are taken into consideration: angle, gain, and damping. The angle is set by the pilot as they use the controls, and as described above, the angle of the control surface w.r.t the airflow determines the rotational effects. "Gain" influences the strength of the reaction when a control surface is hit by airflow, so the higher the gain, the higher the turning rate around that particular axis of rotation. To avoid making the plane uncontrollable, we also use "damping": once the plane's rotational velocity increases, the damping tries to oppose this and slow the rotation to a halt. The damping effect scales with the rotational velocity, so the faster we try to rotate the plane, the stronger this effect resists it, and thus sets an upper limit on rotational velocity. This is important because a plane could easily be made to turn faster than its momentum can change, causing the plane to "drift" in the air and potentially crash, or just be difficult to control in general. Below is the list of parameters that can be tuned for all aircraft to change their flight characteristics: Parameter Default Short Description MaxEngineThrust 0.0 Maximum thrust produced by the engine MaxReverseThrust 0.0 Maximum reverse thrust, used for reversing on the runway (not realistic, but necessary) ThrustGain 0.0 Sets the throttle response speed, i.e how quickly we can throttle from 0 to 100% and back MaxCruisingSpeed 0.0 Sets an upper limit on the maximum speed of the aircraft ElevatorGain 0.0 Sets the rotation intensity for pitch ElevatorDamping 0.0 Sets rotation damping for pitch, limits maximum pitching speed AileronGain 0.0 Sets the rotation intensity for roll AileronDamping 0.0 Sets the rotation damping for roll, limits maximum rolling speed RudderGain 0.0 Sets the rotation intensity for yaw RudderDamping 0.0 Sets the rotation damping for yaw, limits maximum yaw speed LiftCoeff 0.0 Lift coefficient, higher value means aircraft can achieve the same lift at a lower speed (i.e stay in the air while moving slower) BrakingAction 0.0 Sets the strength of the brakes, helps stop faster on the runway LandingGearMaxSpeed 0.0 Sets the maximum speed at which the aircraft can move when the landing gear is deployed DihedralWings false If set to "true", aircraft's wings are assumed to be dihedral, which means they automatically try to level out the plane if its wings are not parallel with the ground RStabilization 0.0 Sets the intensity of roll stabilization (see: DihedralWings) MaxSteeringAngle 30.0 Sets the maximum angle that the aircraft's flaps can be rotated to (should be kept between 0 and 45 degrees) MaxEngineRotation 25.0 Sets maximum engine rotation (for visual effects only) RotorSpeed 360.0 Sets maximum rotor speed (for visual effects only) RotorAcceleration 180.0 Sets rotor acceleration (for visual effects only) RotorDeceleration 180.0 Sets rotor deceleration (for visual effects only) Mouse Steering The mouse steering works by trying to steer the aircraft towards a point in space defined by where your camera is looking (see CTOL Aircraft#Target Point Distance below). It is implemented using a CTOL Aircraft#PID Controller. The input to the steering system is the position of the target point Note: All vector parameters are for Roll/Pitch/Yaw in that order. Parameter Default Short Description Direct Response (Proportional Gain) (2.0, 2.0, 2.0) Governs how much the plane directly responds to a discrepancy between the mouse steering target and the plane's orientation. Response Over Time (Integral Gain) (0.2, 2.0, 0.2) Anti-Wobble Response (Derivative Gain) (0.4, 1.0, 0.4) Max. Accumulated Response Over Time (Integral Limit) (0.1, 0.5, 0.1) Aggressive Turn Angle 45° Target Point Distance 150m Target Point Distance The point in space your aircraft is steering towards is defined at a fixed distance in front of the camera (TargetPointDistance). This means that in order to fly straight ahead you need to point your camera slightly downwards (exaggerated here). Care must be taken that the aircraft's weapon either has some turret tilt allowance or a tracking weapon. Otherwise, the discrepancy between the aircraft and camera positions and orientations can lead to the following issue: Since the target point distance is fixed, the target may be behind or in front of what is currently visible in the center of the screen from the camera's viewpoint, for example a Tank you want to destroy, shown here in orange. This means that the steering target from the aircraft's point of view does not cross through the Tank, which will cause a weapon with no turret tilt to misfire. The following images illustrate this in a slightly exaggerated manner. It is suggested to set TargetPointDistance to a rough estimate of the distance at which most aiming will take place, e.g. the weapon's range plus the camera distance. This is much less of an issue for tracking weapons and the distance should not be set too short, otherwise the player will have to aim the camera further down to keep the plane flying straight ahead, which starts to feel weird at some point. The camera profile should also not contain extreme values for camera height or distance in order to minimize the angle between the camera-to-target and aircraft-to-target vectors. PID Controller ... describe what the properties of the 3 terms are and how to tune the parameters Flight Ceiling Behavior The CTOL Flight Ceiling altitude is configured in the Level Settings. This part of the aircraft physics model can attach some additional behavior to each aircraft type while above the flight ceiling. Normally, the aircraft loses all thrust when above the flight ceiling altitude, according to a rate defined by the parameter Thrust Loss. To mitigate the harshness of this ceiling, we can define a Buffer Zone above it. The buffer zone allows the aircraft to slowly increase thrust again while descending, even though it is still above the ceiling. The thrust increase is applied automatically and is based on the ThrustGain of the aircraft. Parameter Default Short Description Buffer Zone 20m Defines a buffer zone height above the CTOL Flight Ceiling (which is configured in the Level Settings). Buffer Zone Z Velocity Threshold -2.0m/s If an aircraft's Z velocity is lower than this threshold, it can activate the buffer zone's effects. Note that negative velocity means it is falling down, so negative thresholds make sense for this purpose. Thrust Loss 50%/s Thrust percent lost per second when above the flight ceiling and the buffer zone is not currently activated (i.e. Z velocity is above the threshold or altitude is above the flight ceiling + buffer zone).
-
STOVLPhys is a derivative of CTOL Aircraft, which incorporates VTOL physics and allows switching between CTOL and VTOL flight modes. To create a vehicle with this physics class, set it to the appropriate physics definition and change it to "CTOL Aircraft" in the vehicle definition The settings match the requirements of CTOL physics, but are extended at the end with VTOL parameters as well. By default, a STOVL aircraft will spawn in VTOL mode. Switching can be done by assigning a button, currently the "drop flag" command is free (currently not in the controls menu, edit input01.cfg in your documents folder, add DropFlag_Primary=KEYNAME) Update the script attached to the vehicle (use "IJ_Aircraft_LandingZone_Aircraft" instead of the old one with a similar name) Switching flight modes is only possible if the vehicle is close to level and not spinning too fast. The parameters for this can be set in the physics definition
-
The ElevatorPhys type is used to create tiles that act as elevators from one floor to another. These elevators are very simple, 2 floor elevators, and can only move vertically. Setting Name Type Default Value Description ModelName W3D filename NULL What W3D file is used for this elevator? IsNonOccluder bool false Does this object not block VIS? (Unsure) Collision Group Collision Group Terrain What collision group does this object belong to? This controls what objects can collide into this. Visibility Mode IsLightPassthrough IsCosmetic DoesCollideInPathfind CollisionMode Ignore these settings, the elevator code controls all animations. AnimationName could potentially be used to have a different animation than the elevator's default, however. AnimationMode AnimationName Texture Projector Settings - Ignore; they don't work. Shadow Settings - Unsure on what they do LockCode integer 0 This controls what keycard unlocks this elevator. It is the same as the DoorPhys lock codes. CloseDelay float 2.000 Unused Frame Numbers DoorClosedTop_FrameNum float -1.000 On what frame of the animation are the doors fully closed, when the elevator is at the top. DoorOpeningBottom_FrameNum float -1.000 On what frame of the animation do the doors start opening, when the elevator is at the bottom? ElevatorStartTop_FrameNum float -1.000 On what frame of the animation does the elevator start moving from the top to the bottom? ElevatorStoppedBottom_FrameNum float -1.000 On what frame of the animation does the elevator stop moving when it reaches the bottom? Sounds DoorOpenSoundDefID Sound Preset What sound do the elevator doors make when they open? DoorCloseSoundDefID Sound Preset What sound do the elevator doors make when they close? DoorUnlockSoundDefID Sound Preset What sound do the elevator doors make when you unlock them (if the door is locked)? DoorAccessDeniedSoundDefID Sound Preset What sound do the elevator doors make when you try to open them (if the door is locked and you don't have the right keycard)? ElevatorMovingSoundDefID Sound Preset What sound does the elevator make as it moves? Note: This requires a bone in the elevator W3D called ELESOUND for the sound to play.
-
A weapon cannot fire without an ammo type. Parameter Default Description Ammo Type Normal This determines if the ammo is just a regular bullet, or a type of C4 explosive. ModelFilename What is the W3D model that this projectile fires ShouldPrelight true Does the bullet have dynamic lighting applied to it, or is it full bright? Warhead (can vary) What warhead (from armor.ini) does the ammo have? Damage 1.000 How much damage does the weapon do per shot? DamageAfterFalloff -1.000 After the weapon has gone beyond DamageFalloffRangeEnd meters, how much damage does it do? This is interpolated between the full damage and this damage in between DamageFalloffRangeStart and DamageFalloffRangeEnd. (Eg. A shot with Damage=10, DamageAfterFalloff=1, DamageFalloffRangeStart=25, DamageFalloffRangeEnd=75 will do 10 damage up to 25 meters, 5 damage at 50 meters and 1 damage at 75 meters and beyond.) Range 10 How far (in meters) can this projectile go? The weapon actually goes about 20% further than this, however, if it uses a projectile. Hitscan weapons will stop exactly at this distance. DamageFalloffRangeStart -1.000 Where does the damage falloff start, in meters. If set to -1, then the weapon does not use falloff. DamageFalloffRangeEnd -1.000 Where does the damage falloff end, in meters. If set to -1, then the weapon does not use falloff. EffectiveRange 10 What is the optimum range to use this weapon at? This is primarily used for AI bots. TargettingRange -1.000 At what range does the targeting box turn up? This is traditionally set 20% higher than the weapon's range, to make that match the ACTUAL range. Velocity 1 How fast in m/s does the projectile go? Note: If a projectile is over a certain velocity (set in HitscanVelocityThreshold, in General under Global Settings>General in Mammoth, usually it's 1000m/s) then the projectile will be hitscan, and hit instantly. ProjectileExtent 0.000, 0.000, 0.000 How big is the projectile? If it's all set to 0, then the projectile will be a point. Length, width, height. IsDamageZone false If this is set, then the weapon that uses it will just "project" damage, in a ProjectileExtent zone in front of the muzzle. This damage will always hit. Gravity 0.000 How much gravity does the projectile have, simulating a ballistic curve. Elasticity 1.000 How "bouncy" is the projectile? Rate of Fire 1.000 How fast does the weapon fire. This is in Rounds per Second, to convert to RPM, divide the RPM by 60. SprayAngle 0.000 How wide is the weapon's cone of fire in degrees. SprayAngleIncreasePerShot 0.000 How much does the spray angle increase after every shot? MaxSprayAngle 0.000 What's the biggest the increased spray can be? IgnoreSprayAngleIncrease false Does the gun ignore the increased spray angle? SprayCount 1 How many shots per shot does the weapon fire? (A rifle will most likely fire 1 shot, a shotgun would fire multiple.) SprayBulletCost 1 How many bullets out of the weapon's clip does this ammo use up per shot? AquireTime 0.000 Unused BurstDelayTime 0.000 If the weapon fires a burst, how long does it take between bursts? (A weapon could have a higher ROF with a longer burst, and a normal full auto mode with a normal ROF.) BurstMax 0 How many shots constitute a burst? The gun will fire this many shots before stopping. (If the weapon is out of ammo during the burst, the gun won't fire after reloading.) IsSemiAutomatic false IF set to true, then you will have to re-click every time you want to fire a shot. SoftPierceLimit 0 If set up right, then a shot from this weapon will penetrate this many objects? TurnRate 0 If the projectile is tracking, then it will turn this many degrees per second to try and hit it's target. TimeActivate false If set to true, then the weapon will explode at the end of it's lifespan. TerrainActivated false If set to true, then the weapon will explode when it hits the terrain. ExplosionDefID When the projectile explodes (if it reaches the end of it's travel or if it hits the terrain and the appropriate flags are set), this explosion will be spawned. RandomTrackingScale 0.000 How far off the target will this projectile track to, roughly? DisplayLaser false Creates a debug box between the the muzzle and the point the weapon would hit. ChargeTime 0.000 How long does this ammo take to fire? Charge flags might need to be set. ContinuousSoundDefID This sound will play continuously while the weapon fires. FireSoundDefID This sound will play every time it fires. FirstFireSoundDefID This sound will play on the first shot of the burst. ContinuousEmitterName This emitter will be emitted from the muzzle continuously while the weapon fires. MaxBounces 0 How many times will this projectile bounce off the terrain? IgnoreCollisionWithParentOfOwner false Will the shots hit an object that is the parent of the firer? Useful for multi-turreted vehicles. C4TriggerTime1 0.000 I honestly don't know what these do. C4TriggerTime2 0.000 C4TriggerTime3 0.000 C4TriggerRange1 0.000 C4TriggerRange2 0.000 C4TriggerRange3 0.000 C4TimingSound1ID 0.000 C4TimingSound2ID 0.000 C4TimingSound3ID 0.000 C4DisallowSoldierAttach false Can this C4 be attached to soldiers? C4IsMCTOnly false Can this C4 be attached only to MCT objects? C4TransferDamageToAttachedObject true When another player shoots this object, does the damage pass through to the object that it is attached to? C4PersonalLimit 0 The limit of C4s that one player can have in the world at one time. 0 = infinite. C4DoTTickRate 4 The tick rate for damage over time C4 Objects. i.e. 4 = once every 4 seconds. Damage is set in the regular Damage field of the ammo preset. AliasedSpeed 0.000 If a weapon's tracer or bullet projectile is clipping into the gun when firing, tweak this setting to offset the tracer object forwards to prevent clipping. HitterType Bullet What surface effect does this bullet generate when it hits something? BeaconObject What beacon object does this ammo spawn when fired, if the weapon is a beacon? BeamEnabled false Does this weapon have a bullet beam effect? (This is most useful on hitscan weapons.) BeamColor 1.000, 1.000, 1.000 An RGB triplet for the beam colour, in 0-1 space. (To convert from regular RGB, divide the values by 255.) BeamTime 0.300 How long does the beam last for? BeamWidth 0.250 How wide is the beam, in meters? BeamEndCaps true Does the beam taper off and finish at the ends of the beam? BeamTexture What texture does the beam have? BeamSubdivisionEnabled false Does the beam subdivide and jink about? This is useful for electrical weapons, such as tesla weaponry. BeamSubdivisionFrozen false Does the subdivision stay as is when it is generated? If true, what the beam starts as is how it stays, false and the beam will dynamically animate around. BeamSubdivisionScale 1.000 How big is the subdivision? How much does it jink about? IconNameID Used in the HUD for displaying the weapon's current firing mode. IconTextureName Unused IconTextureUV Unused IconOffset Unused GrenadeSafetyTime 0.000 If a projectile explodes, how long does it have to have been flying through the air before it will actually explode? ProjectileAnimation false If the ammo's model has an animation, if this is ticked, it will be played as the projectile flies through the air. Useful for C4 with a timer animation on them. Thrown C4 Preset If this is C4, what is the C4 Preset that it uses to represent it? DisableHitscan false If the ammo's velocity is above the hitscan threshold, having this ticked will ignore that threshold and instead create it as a physically simulated bullet as normal. AutoAdjustMuzzlesOnEnemyTarget false If enabled, the muzzles of the weapon will point towards an enemy target, if that target is under the aiming reticule. CanShatterMeshes true If disabled, this projectile will not shatter meshes that are set to "Shatter" in 3DS Max. IsTracking false Does this ammo track (it will attempt to fly to the point under the reticule or the target under the reticule)? TrackingIgnoreTarget false If set, the ammo won't track targets, it will only attempt to fly to the point under the reticule at fire time. TrackingLockTime 0.000 How long does it take the weapon to lock? This is most useful with an appropriate texture set for a locking indicator in hud.ini. UntrackTime 0.000 How long does a weapon stay locked, once locked? This is useful for fast movers that can't maintain a lock on for very long, and yet need to be locked on to a target. RecoilStrength 0.000 How much recoil strength does this ammo type impart to the gun. See the recoil page for more details. CanLockOnto... All ticked These tickboxes determine the type of vehicles that this ammo type can lock onto. This is based on the Type field in a vehicle object. There are 9 types: Car Tank Bike Aircraft_VTOL Turret Boat Sub Hover Aircraft_CTOL These are all fairly arbitrary, and need to be set up correctly in the vehicles to make sense. This is useful for something like a stinger missile, where it should only lock onto aircraft. (Combined with the CannotFireWithoutLock flag in the weapon, this can feel really nice.)
-
Weapons Weapons are one of the key parts of the engine. Without weapons you can't shoot things. Weapons here aren't just limited to infantry carried weapons, vehicles also use these too. Parameter Default Description Style --- The weapon's holding style in third person. More details can be found below. Model The weapon's third person model. Usually this is in the form of w_<weap>.w3d IdleAnim ??? FireAnim ??? BackModel The model used for when the weapon is on the third person model's back. Usually this is in the form of w_<weap>_b.w3d SwitchTime 1.000 How long it takes to swap to and from this weapon, in seconds. ReloadTime 0.000 How long it takes to reload the weapon, in seconds. PerBulletReload note: if this option is enabled,then this is how long it takes to do one reload cycle) KeyNumber 0.000 What number key is used to select the weapon. CanSnipe false Does this weapon have a sniper scope? Rating 0.000 Unused. EjectVelocity 2.000 The velocity of the ejected bullet casing EjectRandomness 0.000 How random the ejected casing velocity is, plus or minus this number. EjectTime 0.000 How long after firing is a casing ejected EjectPhysDefID Opens a window that allows you to define the casing model and such. More details are found below. EjectIsShotgunShell false When the casing is ejected, will it make shotgun shell sounds (defined in SurfaceEffects.ini under <surface>_Shell Shotgun) when it hits the ground? MuzzleFlashPhysDefID Allows you to define a model for the muzzle flash. FirstPersonModel The model used for the first person view. NOTE: This must be named in the format F_GM_<WEAP>, and there are further dependencies. See <tbd> for more information on view models. FirstPersonOffset 0.000,0.000,0.000 The 3d offset of the first person view model. RecoilImpulse 0.000 How much force will this weapon impart on the user when it fires. HUDIconTextureName Unused. ReloadSoundDefID What sound is played when the weapon is reloaded PerBulletReload note: if this is enabled, the reload sound will be played every reload cycle EmptySoundDefID What sound is played when the player tries to fire, but the weapon has no bullets (and can't reload). SelectSoundDefID What sound is played when the player selects this weapon? DeselectSoundDefID What sound is played when the player deselects this weapon? PrimaryAmmoDefID What does the weapon fire on a left click. Links to an Ammo definition. Required. SecondaryAmmoDefID What does the weapon fire on a right click. Links to an Ammo definition. This isn't required. PrimaryFireMuzzleSetEditor A Which set of barrels does the primary fire come out of? (E.g MuzzleA, MuzzleB, etc. Put the letter of the muzzle set in) SecondaryFireMuzzleSetEditor B Which set of barrels does the secondary fire come out of? (E.g MuzzleA, MuzzleB, etc. Put the letter of the muzzle set in) BypassSameAmmoMuzzleSelectLogic false If a weapon has the same ammo set for both primary and secondary, then by default the code will automatically default to ignoring the secondary muzzle set. Set this to make the code instead use both sets of muzzles based on primary/secondary fire, rather than just using the same muzzle. ClipSize 0 How many bullets does the weapon hold in one clip? -1 means the weapon can shoot infinitely with no reloading. MaxInventoryRounds 100 How many bullets can the weapon hold to reload with. -1 means infinite reloads. RecoilTime 0.1 How long will the gun's visual recoil take? For this, the muzzle on vehicles will recoil, and the character's arms and such will recoil. RecoilScale 1.0 How far will the gun recoil? For this, the muzzle on vehicles will recoil, and the character's arms and such will recoil. AGiveWeaponsWeapon false Will this weapon be granted to the player if the function SoldierGameObj::Give_All_Weapons is called? If the Allweapons console command is used and this is ticked, then this weapon will be given to the client the command points to. IconNameID What string is displayed in the hud in the weapon's information area? IconTextureName What icon is the weapon using. IconTextureUV Where on the IconTextureName texture is the icon? X1 is left, X2 is right, Y1 is top, Y2 is bottom. IconOffset How far is the icon offset from it's default position? HumanFiringAnimation What animation does the character use when they are firing this weapon? ScopeTexture If the weapon has a scope, what texture is used for the scope? UniformScope false Will the scope texture be stretched to match the aspect ratio? MaxZoom 0 How far in can the scope zoom? MinZoom 0 What's the most zoomed out the scope can be? GlobalFireSoundDefID This sound will be played across the map when the weapon is fired. AreaEffectWeapon false Does this weapon do AOE damage instead of firing a bullet? AreaEffectWeaponAffectOwner false Does the AOE damage effect the owner? AreaEffectWeaponAffectFriendly true Does the AOE damage effect friendlies? AreaEffectWeaponAffectEnemy true Does the AOE damage effect enemies? AreaEffectWeaponAffectNeutral true Does the AOE damage effect neutral objects? SprayAddWalking 0 How much spray does jumping add to the weapon? SprayAddWounded 0 How much spray does being wounded add to the weapon? SprayAddWalking 0 How much spray does walking add to the weapon? (Note, this isn't running.) SprayAddCrouching 0 How much spray does being crouched add to the weapon? SprayAddSprinting 0 How much spray does sprinting add to the weapon? Accuracy Recovery Rate (Movement) (deg/sec) 0.573 How much does the spray reduce each second? Accuracy Recovery Rate (Weapon) (deg/sec) -57.296 How much does the weapon's spray bloom get reduced by each second? IsSuperweaponBeacon true Always true. PerBulletReload false Each reload adds a single bullet to the magazine. If this is ticked, the weapon will reload to full, reloading one bullet (or more) at a time. Read the end of the document to find out how exactly this works, as there's a lot to it. BulletsPerPBReload 1 How many bullets are added to the magazine per reload cycle, if PerBulletReload is enabled. PBReloadStartTime 0 How much extra time is added to the reload if this is the start of the reload? PBReloadEndTime 0 How much time does the end of the reload (after the magazine is filled with bullets) take? PBReloadLoopFrame 0 What frame of the first person animation does the first person reload animation loop to? PBReloadEndSoundDefID What sound does the weapon play at the end of the reload, while it's finishing. FirstPersonAnim This tells the first person view model to use another weapon's animations. Must be entered in the form of F_GM_XXXX. DoTiltWhileReloading true Does the third person model tilt down while reloading? AllowEmptyShots false Can this weapon fire when the ammo is empty? HideWhenEmpty true Can this weapon be selected if it's got no ammo? IsCooldownAbility false Is this a weapon that goes on cooldown instead of reloading? (Uses Reload Time as Cooldown Time) IsQuickCastAbility false Is this a weapon that fires upon being switched to and then switch back to the last held weapon? AutoSwitchOnFire false Does the Cooldown Ability weapon switch to the last held weapon after firing? AutoSwitchDelay 0.2 If the Cooldown Ability weapon auto switches after firing, how long should this switch be delayed by? DelayedChargeFire false Can the charge bar or Cooldown Weapon be held with the fire key, to be fired upon releasing the fire key? CannotFireWithoutLock false This weapon cannot fire without a lockon RequireCrouch false When this weapon is equipped, the owner is forced to crouch PostSprintSwitchTime The time between coming out of a sprint and being able to fire the weapon RecoilPattern Arc What pattern does the recoil use? Circle - Will go in a 360 direction around the aim point. Arc - Will go in a slice, with the direction in the RecoilBias direction. RecoilSize 0 How big is the recoil? RecoilBias 0,0. What direction is the recoil? This is an X,Y axis. RecoilRandProb 0 How often will the recoil go in a truly random direction instead of the RecoilPhysBias direction? RecoilArcSize 0 How wide the arc of the "Arc" recoil pattern is, in degrees. RecoilResist 0 How well can the recoil be "resisted" by the weapon. This reduces the effect of recoil, but doesn't reset the weapon when done firing. RecoilResistMulJumping 1 Modifies the recoil resistance. Values greater than one make it worse, less than 1 make it better. RecoilResistMulInjuring 1 RecoilResistMulCrouching 1 RecoilResistMulScoped 1 RecoilRecovery 0 This controls how quickly the weapon will return to it's original aim point. RecoilFirstShotMultiplier 1 How much is the recoil strength multiplied on the first shot? RecoilAimpointStatic false If this is enabled, then when the recoil hits the edge of the recoil range, then it will not travel any further. If disabled, this will continue to move the weapon up and shift the original aimpoint up as well. UseGattlingLogic false If enabled, the weapon will spin up/down when firing, like a minigun. There are bones associated with this. (Check in Vehicle/Weapon rigging pages) GattlingWarmUpTime 1.0 How long does the weapon take to spin up? GattlingWarmDownMultiplier 1.0 This controls how long it takes the weapon to spin back down after stopping. If Warm up time is 1.0 and the Warm down multiplier is 0.5, then the weapon will take 2 seconds to spin down. If it is 2.0, then the weapon will take half a second to spin down. GatlingMinimumContSoundPitch 1.0 What is the pitch of the ContinuousMotorSound when the gun is starting to spin? GatlingMaximumContSoundPitch 1.0 What is the pitch of the ContinuousMotorSound when the gun is at full speed? GatlingCannotFireWhileWarmingUp false Can the weapon fire while it's still spinning up to max RPM? (A Yuri's Revengesque Gatling weapon would be set to false, while a generic gatling from most other games would be set to true.) GatlingSpinningStopsDuringReload false Does the weapon spin down during the reload process? GatlingContinuousMotorSoundID Controls what sound is playing when the gatling motor is spinning. This plays even if the weapon is not firing.
-
Ground Movement TBD Swimming Parameter Description Swimming Model If the Infantry changes model when swimming, it is configured here. i.e. An infantry that gains a scuba suit when swimming. Water Color The colour of the water overlay WaterOpacity The opacity of the screen when underwater. Submerged Fog Effect What effect to use when submerged. Usually a simple object. Water Fog Colour The colour of the distance fog when underwater. WaterFogStart The distance the fog starts at when the player is submerged. WaterFogEnd The distance the fog ends at when the player is submerged. DrownTime When diving, how it takes for the player to begin drowning. Measured in seconds StartDrownSequence When diving, this is the time that the warning effects begin to kick in to tell the player that they are drowning. Measured in seconds. Should ideally be less than DrownTime. DrownDamage Damage that the player takes per tick when they are drowning. DrownDamageTickTime How often the player is damaged when they are drowning. Measured in seconds. CatchBreathFactor How quickly it takes a player to catch their breath after they surface from diving. WaterDamageDelayTime How long it takes before the player takes damage when they are swimming. WaterDamageDelayTimeRecover Cooldown time of water damage if the player quickly leaves the water and returns. Measured in seconds. e.g. If set to 2 seconds, if a player leaves the water when taking damage and re-enters within 2 seconds, they will begin taking damage again much sooner. WaterDamageAmount Damage that the player takes per tick when they are swimming. WaterDamageTickTime How often the player is damaged when they are swimming. Measured in seconds. WaterDamageWarhead The warhead that the damage dealt via water uses. Swimming Skin The infantry skin that this character should use whilst swimming. e.g. Use this is you want infantry to take less damage when in water. Values defined in armor.ini Swimming Armor The infantry armour/shield that this character should use whilst swimming. e.g. Use this is you want infantry to take less damage when in water. Values defined in armor.ini
-
Controls & Hotkeys Menu options File Control Description New/Ctrl+N Start a new level. Open/Ctrl+O Open a level. You can also drag-and-drop a .lvl file onto the Mammoth window to open that level in Mammoth. Save/Ctrl+S Save the current level. Save As Save the current level under a new name. Export to Mix/Ctrl+E Export the current level to a mix file for playing it in-game. Export Always Export any existing folders named Always/Always2/Always3 to always.dat/always2.dat/always3.dat. Export Objects Export the current preset list as objects.ddb to the game Data folder. This does not save objects.ddb, so the preset modifications will only be saved into the Data folder. Good for playing around with values. Run Game Export the current level to a mix file then run the game and start that level in skirmish mode. Recent Files The last 10 files opened in this copy of Mammoth. Exit/Alt+F4 Exit Mammoth. Edit Undo/Ctrl+Z Undo the last thing you did (moving the currently selected object(s) by dragging it, deleting an object by pressing the delete key or deleting an object by pressing the delete button on the instances tab are the only things that get recorded for undo purposes at this point) Redo/Ctrl+Y Redo the thing you just undid. Cut/Ctrl+X Cut the selected objects. Copy/Ctrl+C Copy the selected objects Paste/Ctrl+V Paste the objects you cut or copied. Include Files Add files to the list of files required for this level (this is where you can add things like various per-map/per-level ini files, custom loadscreen w3d files/textures etc). Reparition Culling Systems Repartition the culling systems. Verify Culling Systems Verify the culling systems. Terrain Selectable Allows you to select terrain objects and move them. Music Settings Set the background music for the level (only the server host player will hear it in multiplayer). Sky Settings Set the sky settings for the level (time of day, sun/moon, moon type and clouds). Weather Settings Set the weather settings for the level (fog, precipitation, lightning and wind). Level Settings Set the Level settings for the level (start script, re-spawn script, map settings). Sound Toggle Sound Turn sounds on or off Objects Drop to Ground/Ctrl+D Sets whether an object you are dragging should drop to the ground or not. Lock to X Axis/Alt+X Locks object movement (with the mouse or arrow keys) to the X axis. Lock to Y Axis/Alt+Y Locks object movement (with the mouse or arrow keys) to the Y axis. Lock to Z Axis/Alt+Z Locks object movement (with the mouse or arrow keys) to the Z axis. Lock Objects/Enter Locks the currently selected objects so they wont move. Unlock Objects/Ctrl+U Unlocks the currently selected objects so they can move again. Replace Selection/Ctrl+H Replaces the currently selected objects with a different preset. Add Point/Ctrl+P Adds a car marker object for building controllers, a spawn point object for spawners or a waypoint object for waypaths. Goto Object Moves the camera to look at a specific object. Check IDs Checks for ID collisions in the level. Fix ID Collisions Fixes any ID collisions in the level. Remap Unimportant IDs Remaps the IDs of any objects who's ID doesn't matter. Remap IDs Remaps the IDs of the currently selected objects. Export All Tiles Exports all the tiles in the level as proxies to a w3d file. (good if you want to have those objects proxied in rather than being placed in LE). Export Placed Tiles Exports all the tiles that aren't proxied in as proxies to a w3d file. View Show Static Anim Objects/Ctrl+Shift+T Shows/hides all the StaticAnimPhys objects (including doors and elevators). Show Editor Objects Shows/hides all the editor only objects. Enable Fog Enables/disables the rendering of fog in the level. Depth -50/Alt+Minus Adjusts the camera depth by -50. Depth +50/Alt+Plus Adjusts the camera depth by +50. Goto Location/Ctrl+G Moves the camera to a specific location. Front/Ctrl+F Points the camera at the front. Back/Ctrl+B Points the camera at the back. Left/Ctrl+L Points the camera at the left. Right/Ctrl+R Points the camera at the right. Top/Ctrl+T Points the camera at the top. Bottom/Ctrl+M Points the camera at the bottom. Pathfinding Generate Generates pathfinding for the level. Discard Data Discard pathfind data. Display Sectors Show Pathfind sectors. Display Portals Show pathfind portals. Display Web Show pathfind path web. Lighting Rebuild Static Vertex Lighting Build the lighting for the level. (this is the same as the Vertex Solve option in the Westwood Level Editor) Edit Sunlight Change the sunlight settings. Edit Ambient Light Edit the ambient light settings. Count Lit Objects Display the number of objects that can be lightsolved in the level. Tools Build Shader Cache Build a shader cache file. Export Level Asset Report Export a file listing the assets this level references/requires. Presets Export Export the presets to a Javascript file. Export Temps Export the temp presets to a Javascript file. Save Presets Save the current presets. Save Temps Save the current temp presets. Export To Text Export the presets to a tab delimited text file. Strings Export IDs Generate a string_ids.h file for the current strings. Edit Strings Open a new dialog to edit the string table in the game. This contains all the translatable text in the game, from menu items to unit names. Object manipulation Selection Clicking on an object in the window with the left mouse button will select that object and deselect any currently selected objects. Ctrl+click will add that object to the currently selected objects or remove it if its already selected. Alt+Click will create a clone/duplicate of the currently selected object(s) at the position of the original(s) (the mouse has to be above one of the selected object(s). If nothing was selected, the object the mouse is above will be cloned. Edit Pressing the delete key will delete the currently selected objects. Double clicking on an object in the window with the left mouse button will open the object edit dialog for that object. Move Moving the mouse while holding down the left mouse button will move the currently selected objects. If you hold down the Shift key it will move in the Z axis otherwise it moves in the X and Y axis. If the Lock To Axis menu options are enabled, movement is restricted to that axis. Pressing the left, right, up or down arrow keys will move the currently selected object(s) in the x and y axis. Holding Shift will make the up and down arrow keys move the object in the z axis. These movement keys are not affected by the "lock to axis" menu options. Rotate Holding Ctrl and pressing the 8 and 2 keys on the keypad will rotate the currently selected objects around the x axis. Holding the 0 key on the keypad will increase the speed (but note that the speed set by the + and - keys has no effect on the speed used in this case). Holding Ctrl and pressing the 9 and 7 keys on the keypad will rotate the currently selected objects around the y axis. Holding the 0 key on the keypad will increase the speed (but note that the speed set by the + and - keys has no effect on the speed used in this case). Holding Ctrl and pressing the 6 and 4 keys on the keypad will rotate the currently selected objects around the z axis. Holding the 0 key on the keypad will increase the speed (but note that the speed set by the + and - keys has no effect on the speed used in this case). Holding Ctrl and pressing the 5 key on the keypad will reset the rotation of the currently selected objects. Script zone sizing If a Script Zone or Damage Zone object is selected, holding Ctrl and pressing the left, right, up or down arrow keys will resize the zone in the x and y axis. Holding Shift will make the up and down arrow keys resize the zone in the z axis. Holding the 0 key on the keypad will increase the speed (but note that the speed set by the + and - keys has no effect on the speed used in this case). Camera movement Mouse Pressing the middle mouse button (normally the mouse wheel on a wheel mouse) and moving the mouse will pan the level left/right/up/down. Pressing the right mouse button and moving the mouse will rotate the level up/down/left/right about the current camera position. Scrolling the mouse wheel will move the camera into and out of the level. Special mouses: using your mouse button 4/5 will rotate around an object/terrain in the center of the screen. Using the alternative ALT key before clicking will center around an object. If no object is found, it will rotate around a point 40 units in front of the camera. Numpad Holding 0 on the keypad will increase the movement speed of the camera and object movement keys mentioned below. Holding Ctrl and pressing the + or - keys on the keypad will increase or decrease the speed used for this feature. Pressing 8 or 2 on the keypad will move the camera into and out of the level. Turning on the Caps Lock and pressing 8 or 2 on the keypad will move the camera forward and back along the xy plane. Pressing 9 or 3 on the keypad will rotate the camera up and down. Pressing 4 or 6 on the keypad will rotate the camera left and right. Holding alt and pressing 4 or 6 on the keypad will pan the camera left and right. Pressing 7 or 1 on the keypad will pan the camera up and down. Pressing 5 on the keypad will centre the camera WASD keys Holding SHIFT on the keypad will increase the movement speed of the camera when using WASD keys. Pressing A or D will pan the camera left and right Pressing W or S will move the camera into and out of the level. Turning on the Caps Lock and pressing W or S on the keypad will move the camera forward and back along the xy plane.