### Build ModMan Frontend Source: https://github.com/laupetin/openassettools/blob/main/src/ModMan/README.md Commands to install dependencies and build the UI, requiring NodeJS to be installed. ```shell # Download dependencies npm install # Build frontend npm run build # Optional: Dev Server for UI development npm run dev ``` -------------------------------- ### Define GfxStateBits Conditions Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/Material.txt Configures default state conditions for GfxStateBits. ```text use GfxStateBits; set condition blendState never; set condition depthStencilState never; set condition rasterizerState never; ``` -------------------------------- ### Define Qdb Asset Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/Qdb.txt Sets the initial configuration for a Qdb asset, including the block type and buffer length. ```text use Qdb; set block XFILE_BLOCK_TEMP; set string name; set count buffer len + 1; ``` -------------------------------- ### Generate ModMan Project Files Source: https://github.com/laupetin/openassettools/blob/main/src/ModMan/README.md Use these commands to enable ModMan during the project generation phase. ```shell # On Windows ./generate.bat --modman # On Linux ./generate.sh --modman ``` -------------------------------- ### Define XGlobals Configuration Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XGlobals.txt Initializes the XGlobals block and sets constraints for gump and overlay counts. ```text // ========================================= // XGlobals // ========================================= use XGlobals; set block XFILE_BLOCK_TEMP; set string name; set arraycount gumps gumpsCount; set condition gumps gumpsCount >= 0 && gumpsCount <= 32; set arraycount overlays overlayCount; set condition overlays overlayCount >= 0 && overlayCount <= 32; ``` -------------------------------- ### Define PhysPreset Asset Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/PhysPreset.txt Initializes the PhysPreset block and sets the required name and sound alias prefix properties. ```text // ========================================= // PhysPreset // ========================================= use PhysPreset; set block XFILE_BLOCK_TEMP; set string name; set string sndAliasPrefix; ``` -------------------------------- ### Define FxElemSpawnSound Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Defines the spawn sound property for effect elements. ```text set string FxElemSpawnSound::spawnSound; ``` -------------------------------- ### Define SndDriverGlobals structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/SndDriverGlobals.txt Initializes the sound driver global configuration block and sets the required count parameters for audio subsystems. ```text // ========================================= // SndDriverGlobals // ========================================= use SndDriverGlobals; set block XFILE_BLOCK_TEMP; set string name; set count groups groupCount; set count curves curveCount; set count pans panCount; set count duckGroups duckGroupCount; set count contexts contextCount; set count masters masterCount; set count voiceDucks voiceDuckCount; set count futzes futzCount; ``` -------------------------------- ### Define MemoryBlock structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/MemoryBlock.txt Configures memory allocation parameters for main, video, and stream data segments. ```text // ========================================= // MemoryBlock // ========================================= use MemoryBlock; set block XFILE_BLOCK_TEMP; set string name; set condition data::mainData mainMem; set count data::mainData size; set allocalign data::mainData alignment; set block data::mainData XFILE_BLOCK_RUNTIME_VIRTUAL; set condition data::videoData videoMem; set count data::videoData size; set allocalign data::videoData alignment; set block data::videoData XFILE_BLOCK_RUNTIME_PHYSICAL; set condition data::streamData streamMem; set count data::streamData size; set allocalign data::streamData alignment; set block data::streamData XFILE_BLOCK_STREAMER_RESERVE; ``` -------------------------------- ### Define Slug XAsset structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/Slug.txt Initializes the Slug asset block and sets the required name and buffer length properties. ```text // ========================================= // Slug // ========================================= use Slug; set block XFILE_BLOCK_TEMP; set string name; set count buffer len + 1; ``` -------------------------------- ### Define GfxImageLoadDef asset structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GfxImage.txt Configures the GfxImageLoadDef block with data loading actions and resource size arrays. ```text use GfxImageLoadDef; set action LoadImageData(GfxImageLoadDef, GfxImage); set arraysize data resourceSize; ``` -------------------------------- ### ScriptParseTree Configuration Syntax Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/ScriptParseTree.txt Defines the structure for parsing script trees using block definitions, variable assignments, and buffer sizing. ```text use ScriptParseTree; set block XFILE_BLOCK_TEMP; set string name; set count buffer len + 1; ``` -------------------------------- ### Define UI Function and Load Menu Source: https://github.com/laupetin/openassettools/blob/main/docs/example/ExtendZone/ui/mod.txt Defines a conditional function for team checking and registers a custom menu file for the UI. ```text { functionDef { name "FUNC_0" value (player("teamname") == "TEAM_ALLIES"); } loadMenu { "ui/menu_custom.menu" } } ``` -------------------------------- ### Define GfxImage asset structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GfxImage.txt Configures the GfxImage block with specific loading actions and field ordering. ```text use GfxImage; set block XFILE_BLOCK_TEMP; set action OnImageLoaded(GfxImage); set string name; set condition pixels never; reorder: name texture; ``` -------------------------------- ### Define XModel structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures the memory layout and reusable buffers for XModel assets. ```text use XModel; set block XFILE_BLOCK_TEMP; set string name; set scriptstring boneNames; set reusable boneNames; set count boneNames numBones; set reusable parentList; set count parentList numBones - numRootBones; set reusable quats; set count quats numBones - numRootBones; set reusable trans; // This is actually the count but it looks like a bug? It is used like a vec3, but it takes as much memory as vec4 set count trans (numBones - numRootBones) * 4; set reusable partClassification; set count partClassification numBones; set reusable baseMat; set count baseMat numBones; set count surfs numsurfs; set count materialHandles numsurfs; set count collSurfs numCollSurfs; set count boneInfo numBones; set count himipInvSqRadii numsurfs; set count collmaps numCollmaps; ``` -------------------------------- ### Define FxElemExtendedDefPtr Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Sets conditional pointers for trail and spotlight definitions. ```text use FxElemExtendedDefPtr; set condition trailDef FxElemDef::elemType == FX_ELEM_TYPE_TRAIL; set condition spotLightDef FxElemDef::elemType == FX_ELEM_TYPE_SPOT_LIGHT; ``` -------------------------------- ### Define FxTrailDef Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Sets vertex and index counts for trail definitions. ```text use FxTrailDef; set count verts vertCount; set count inds indCount; ``` -------------------------------- ### Define FxElemVisuals Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Defines conditional properties for visual elements like models, sounds, and lights based on the element type. ```text use FxElemVisuals; set condition anonymous never; set condition model FxElemDef::elemType == FX_ELEM_TYPE_MODEL; set condition effectDef FxElemDef::elemType == FX_ELEM_TYPE_RUNNER; set condition soundName FxElemDef::elemType == FX_ELEM_TYPE_SOUND; set string soundName; set condition lightDef FxElemDef::elemType == FX_ELEM_TYPE_SPOT_LIGHT; set condition material FxElemDef::elemType == FX_ELEM_TYPE_SPRITE_BILLBOARD || FxElemDef::elemType == FX_ELEM_TYPE_SPRITE_ORIENTED || FxElemDef::elemType == FX_ELEM_TYPE_SPRITE_ROTATED || FxElemDef::elemType == FX_ELEM_TYPE_TAIL || FxElemDef::elemType == FX_ELEM_TYPE_LINE || FxElemDef::elemType == FX_ELEM_TYPE_TRAIL || FxElemDef::elemType == FX_ELEM_TYPE_CLOUD; ``` -------------------------------- ### Define Font_s Asset Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/Font_s.txt Sets the block, name, and reusable collections for glyphs and kerning pairs. ```text use Font_s; set block XFILE_BLOCK_TEMP; set string fontName; set reusable glyphs; set count glyphs glyphCount; set reusable kerningPairs; set count kerningPairs kerningPairsCount; ``` -------------------------------- ### Define DestructibleStage properties Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/DestructibleDef.txt Configures audio and bone visibility settings for specific destruction stages. ```text // DestructibleStage use DestructibleStage; set string breakSound; set string breakNotify; set string loopSound; set scriptstring showBone; ``` -------------------------------- ### Define XSurface structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures vertex and index buffer properties for XSurface assets. ```text use XSurface; set condition verts0 !(flags & 1); set reusable verts0; set count verts0 vertCount; set condition vb0 never; set reusable vertList; set count vertList vertListCount; set reusable triIndices; set count triIndices triCount; set condition indexBuffer never; reorder: vertInfo verts0 vertList riIndices; ``` -------------------------------- ### SndPatch Configuration Directives Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/SndPatch.txt Defines the required directives for initializing a SndPatch asset block. ```text use SndPatch; set block XFILE_BLOCK_TEMP; set string name; set count elements elementCount; ``` -------------------------------- ### Define GameWorldSp Asset Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GameWorldSp.txt Sets the base block and name for the GameWorldSp asset. ```text use GameWorldSp; set block XFILE_BLOCK_TEMP; set string name; ``` -------------------------------- ### Define XSurfaceVertexInfo structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures vertex blending and tension data counts for XSurfaceVertexInfo. ```text use XSurfaceVertexInfo; set reusable vertsBlend; set count vertsBlend vertCount[0] + 3 * vertCount[1] + 5 * vertCount[2] + 7 * vertCount[3]; set reusable tensionData; set count tensionData vertCount[0] + vertCount[1] + vertCount[2] + vertCount[3]; ``` -------------------------------- ### Define DestructiblePiece properties Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/DestructibleDef.txt Configures audio and scripting labels for individual destructible pieces. ```text // DestructiblePiece use DestructiblePiece; set string damageSound; set string burnSound; set scriptstring enableLabel; ``` -------------------------------- ### Configure PathData Memory Layout Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GameWorldSp.txt Defines counts and memory blocks for path nodes and associated cache data. ```text use PathData; set count nodes nodeCount + 128; set block basenodes XFILE_BLOCK_RUNTIME_VIRTUAL; set count basenodes nodeCount + 128; set count pathVis visBytes; set count smoothCache smoothBytes; set count nodeTree nodeTreeCount; ``` -------------------------------- ### Define GfxTexture asset structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GfxImage.txt Configures the GfxTexture block with reusable load definitions and basemap conditions. ```text use GfxTexture; set reusable loadDef; set block loadDef XFILE_BLOCK_TEMP; set condition basemap never; ``` -------------------------------- ### Define XSurfaceCollisionTree structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures node and leaf counts for XSurfaceCollisionTree. ```text use XSurfaceCollisionTree; set count nodes nodeCount; set count leafs leafCount; ``` -------------------------------- ### Define Material Asset Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/Material.txt Sets the memory alignment and table structures for a Material asset. ```text use Material; set block XFILE_BLOCK_TEMP; set allocalign Material 4; set string info::name; set reusable textureTable; set count textureTable textureCount; set reusable constantTable; set count constantTable constantCount; set reusable stateBitsTable; set count stateBitsTable stateBitsCount; ``` -------------------------------- ### Define EmblemBGCategory Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/EmblemSet.txt Defines the schema for EmblemBGCategory assets. ```text // EmblemBGCategory use EmblemBGCategory; set string name; set string description; ``` -------------------------------- ### Define EmblemBackground Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/EmblemSet.txt Defines the schema for EmblemBackground assets. ```text // EmblemBackground use EmblemBackground; set string description; ``` -------------------------------- ### Define PhysGeomInfo brush Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures the brush for PhysGeomInfo. ```text use PhysGeomInfo; set reusable brush; set count brush 1; ``` -------------------------------- ### Define Struct Members Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XGlobals.txt Sets the name property for gump and overlay information structures. ```text // gump_info_t set string gump_info_t::name; // overlay_info_t set string overlay_info_t::name; ``` -------------------------------- ### Define FxElemDefVisuals Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Sets conditional logic and array counts for visual elements based on FxElemDef types. ```text use FxElemDefVisuals; set condition markArray FxElemDef::elemType == FX_ELEM_TYPE_DECAL; set count markArray FxElemDef::visualCount; set condition array FxElemDef::visualCount > 1; set count array FxElemDef::visualCount; ``` -------------------------------- ### Define FxElemDef Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Configures sample counts for velocity and visibility intervals within FxElemDef. ```text use FxElemDef; set count velSamples velIntervalCount + 1; set count visSamples visStateIntervalCount + 1; ``` -------------------------------- ### Define XRigidVertList collision tree Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Sets the reusable collision tree for XRigidVertList. ```text set reusable XRigidVertList::collisionTree; ``` -------------------------------- ### Define EmblemIcon Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/EmblemSet.txt Defines the schema for EmblemIcon assets. ```text // EmblemIcon use EmblemIcon; set string description; ``` -------------------------------- ### Define Pathnode Constant Fields Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GameWorldSp.txt Maps script strings and link counts for pathnode_constant_t. ```text use pathnode_constant_t; set scriptstring targetname; set scriptstring script_linkName; set scriptstring script_noteworthy; set scriptstring target; set scriptstring animscript; set count Links totalLinkCount; ``` -------------------------------- ### Define FxEffectDefRef Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Configures asset references for effect definitions. ```text use FxEffectDefRef; set condition handle never; set string name; set assetref name AssetFx; ``` -------------------------------- ### Configure Pathnode Tree Properties Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GameWorldSp.txt Sets axis conditions and reusable flags for pathnode_tree_t. ```text use pathnode_tree_t; set condition u::s axis < 0; set reusable u::child; ``` -------------------------------- ### Define cbrushside_t plane Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures the plane for cbrushside_t. ```text use cbrushside_t; set reusable plane; set count plane 1; ``` -------------------------------- ### Define FxEffectDef Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/FxEffectDef.txt Sets the block and element count definitions for the FxEffectDef asset type. ```text use FxEffectDef; set block XFILE_BLOCK_TEMP; set string name; set count elemDefs elemDefCountLooping + elemDefCountOneShot + elemDefCountEmission; ``` -------------------------------- ### Define EmblemSet Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/EmblemSet.txt Configures the primary EmblemSet asset block and its associated counts. ```text // ========================================= // EmblemSet // ========================================= use EmblemSet; set block XFILE_BLOCK_TEMP; set count layers layerCount; set count categories categoryCount; set count iconTypes iconTypeCount; set count bgCategories iconTypeCount; set count icons iconTypeCount; set count backgrounds backgroundCount; set count backgroundLookup backgroundLookupCount; ``` -------------------------------- ### Define Vehicle Sound Assets Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/VehicleDef.txt Defines the structure for drive-by and engine sound assets. ```text use VehicleDriveBySound; set string name; use VehicleEngineSound; set string name; ``` -------------------------------- ### Define BrushWrapper structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Configures sides, vertices, and planes for BrushWrapper. ```text use BrushWrapper; set count sides numsides; set reusable verts; set count verts numverts; set reusable planes; set count planes numsides; ``` -------------------------------- ### Define EmblemCategory Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/EmblemSet.txt Defines the schema for EmblemCategory assets. ```text // EmblemCategory use EmblemCategory; set string name; set string description; ``` -------------------------------- ### Define EmblemIconType Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/EmblemSet.txt Defines the schema for EmblemIconType assets. ```text // EmblemIconType use EmblemIconType; set string name; set string description; ``` -------------------------------- ### Define DestructibleDef structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/DestructibleDef.txt Defines the base properties for a destructible asset, including file blocks and piece counts. ```text // ========================================= // DestructibleDef // ========================================= use DestructibleDef; set block XFILE_BLOCK_TEMP; set string name; set count pieces numPieces; ``` -------------------------------- ### Define PhysGeomList geometry count Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Sets the geometry count for PhysGeomList. ```text set count PhysGeomList::geoms count; ``` -------------------------------- ### Define VehicleParameter Asset Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/VehicleDef.txt Defines the parameter structure for vehicle assets. ```text use VehicleParameter; set string m_name; ``` -------------------------------- ### Define Collmap geometry list Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Sets the geometry list count for Collmap. ```text set count Collmap::geomList 1; ``` -------------------------------- ### Define VehicleDef Asset Structure Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/VehicleDef.txt Defines the schema for vehicle definitions, including weapon, sound, and control button mappings. ```text use VehicleDef; set block XFILE_BLOCK_TEMP; set string name; set string turretWeapon; set string gunnerWeapon; set string sndNames; set string sndMaterialNames; set string futzName; set string animSet; set scriptstring extraWheelTags; set scriptstring driverHideTag; set scriptstring attachmentTags; set scriptstring deathAttachmentTags; set scriptstring deathFxTag; set string deathFxSound; set scriptstring lightFxTag; set scriptstring friendlyLightFxTag; set scriptstring enemyLightFxTag; set string shootShock; set string shootRumble; set string rumbleType; set string compassIcon; set string gasButtonName; set string reverseBrakeButtonName; set string handBrakeButtonName; set string attackButtonName; set string attackSecondaryButtonName; set string boostButtonName; set string moveUpButtonName; set string moveDownButtonName; set string switchSeatButtonName; set string steerGraphName; set condition steerGraph never; set string accelGraphName; set condition accelGraph never; set string csvInclude; ``` -------------------------------- ### Define Pathnode Tree Nodes Count Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GameWorldSp.txt Sets the node count for pathnode_tree_nodes_t. ```text use pathnode_tree_nodes_t; set count nodes nodeCount; ``` -------------------------------- ### Define XModelCollSurf_s collision triangles Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/XModel.txt Sets the triangle count for XModelCollSurf_s. ```text set count XModelCollSurf_s::collTris numCollTris; ``` -------------------------------- ### Set Pathnode Transient Condition Source: https://github.com/laupetin/openassettools/blob/main/src/ZoneCode/Game/T6/XAssets/GameWorldSp.txt Configures the transient state for pathnode_t structures. ```text set condition pathnode_t::transient never; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.