{
  "schemaVersion": "gf-origin-weapon-effect-candidates/1",
  "clientId": "origin",
  "id": "source:da708b43e3fe9653b74205c4c549dd89dbd212dce2580b7cc791c393cb2c38e7",
  "source": {
    "path": "item/model/W432.nif",
    "pathSha256": "128c28590d672464d6efc768ee7a9967dd8a3b2b92b08f95526a49990dedd224",
    "sha256": "da708b43e3fe9653b74205c4c549dd89dbd212dce2580b7cc791c393cb2c38e7",
    "catalogSha256": "da708b43e3fe9653b74205c4c549dd89dbd212dce2580b7cc791c393cb2c38e7",
    "sizeBytes": 98649,
    "header": {
      "headerString": "Gamebryo File Format, Version 20.2.0.8",
      "versionRaw": 335675400,
      "endian": "ENDIAN_LITTLE",
      "userVersionRaw": 0
    },
    "blockCount": 17,
    "blockTypeCounts": {
      "NiAlphaProperty": 1,
      "NiMaterialProperty": 2,
      "NiNode": 4,
      "NiSourceTexture": 1,
      "NiStringExtraData": 2,
      "NiTexturingProperty": 1,
      "NiTriStrips": 2,
      "NiTriStripsData": 2,
      "NiVertexColorProperty": 1,
      "NiZBufferProperty": 1
    },
    "blockCatalog": [
      {
        "blockIndex": 0,
        "type": "NiNode",
        "name": "Scene Root",
        "sourceOffset": 486,
        "sourceSizeBytes": 98
      },
      {
        "blockIndex": 1,
        "type": "NiZBufferProperty",
        "name": "",
        "sourceOffset": 584,
        "sourceSizeBytes": 14
      },
      {
        "blockIndex": 2,
        "type": "NiVertexColorProperty",
        "name": "",
        "sourceOffset": 598,
        "sourceSizeBytes": 14
      },
      {
        "blockIndex": 3,
        "type": "NiTriStrips",
        "name": "Box01",
        "sourceOffset": 612,
        "sourceSizeBytes": 95
      },
      {
        "blockIndex": 4,
        "type": "NiMaterialProperty",
        "name": "",
        "sourceOffset": 707,
        "sourceSizeBytes": 68
      },
      {
        "blockIndex": 5,
        "type": "NiTriStripsData",
        "name": "",
        "sourceOffset": 775,
        "sourceSizeBytes": 686
      },
      {
        "blockIndex": 6,
        "type": "NiNode",
        "name": "W432",
        "sourceOffset": 1461,
        "sourceSizeBytes": 94
      },
      {
        "blockIndex": 7,
        "type": "NiNode",
        "name": "W2",
        "sourceOffset": 1555,
        "sourceSizeBytes": 86
      },
      {
        "blockIndex": 8,
        "type": "NiStringExtraData",
        "name": "UserPropBuffer",
        "sourceOffset": 1641,
        "sourceSizeBytes": 8
      },
      {
        "blockIndex": 9,
        "type": "NiNode",
        "name": "W1",
        "sourceOffset": 1649,
        "sourceSizeBytes": 86
      },
      {
        "blockIndex": 10,
        "type": "NiStringExtraData",
        "name": "UserPropBuffer",
        "sourceOffset": 1735,
        "sourceSizeBytes": 8
      },
      {
        "blockIndex": 11,
        "type": "NiTriStrips",
        "name": "Editable Poly",
        "sourceOffset": 1743,
        "sourceSizeBytes": 107
      },
      {
        "blockIndex": 12,
        "type": "NiMaterialProperty",
        "name": "W43201",
        "sourceOffset": 1850,
        "sourceSizeBytes": 68
      },
      {
        "blockIndex": 13,
        "type": "NiAlphaProperty",
        "name": "",
        "sourceOffset": 1918,
        "sourceSizeBytes": 15
      },
      {
        "blockIndex": 14,
        "type": "NiTexturingProperty",
        "name": "",
        "sourceOffset": 1933,
        "sourceSizeBytes": 38
      },
      {
        "blockIndex": 15,
        "type": "NiSourceTexture",
        "name": "",
        "sourceOffset": 1971,
        "sourceSizeBytes": 36
      },
      {
        "blockIndex": 16,
        "type": "NiTriStripsData",
        "name": "",
        "sourceOffset": 2007,
        "sourceSizeBytes": 96634
      }
    ]
  },
  "extractor": {
    "path": "scripts/inspect-client-effects.py",
    "sha256": "51995a5f8e7f762483a63d7706cac90b6b57354d0d58e47193259772377c7a92",
    "sizeBytes": 103255,
    "nifToolsVersion": "0.1.1",
    "nifToolsArchiveSha256": "c8da8a1ffc57b6b28b8a59e19b53a2b2961a701220a68ecbfda652f22dd2ceaf"
  },
  "resumeKey": {
    "sourceSha256": "da708b43e3fe9653b74205c4c549dd89dbd212dce2580b7cc791c393cb2c38e7",
    "extractorSha256": "51995a5f8e7f762483a63d7706cac90b6b57354d0d58e47193259772377c7a92",
    "principalSelectionSha256": "8406def0450cbb019a2ecdd4cc272b44dacb70c7274ea04f2ba2d384949044e3",
    "texturesSha256": "7334f1be5dc1e402f58418dc29056c4a6e9691e45bc7e559a359e9807e4c895b"
  },
  "principalSelection": {
    "principalGeometryBlockIndices": [
      11
    ],
    "selectionRule": "Largest textured geometry and meshes sharing its base texture",
    "selectionRuleStatus": "PROTOTYPE_MAPPING",
    "sha256": "8406def0450cbb019a2ecdd4cc272b44dacb70c7274ea04f2ba2d384949044e3",
    "excludedFromCandidateMeshes": true
  },
  "coordinateConversion": {
    "coordinateSystem": "NIF Z-up; original client units",
    "geometryValues": "Raw NiTriShapeData/NiTriStripsData values",
    "matrixConvention": "4x4 row arrays; column vectors; sourceMatrixWorld = parentWorld @ localNifTransform",
    "viewerConversion": "Scale 0.1, then rotate X by -PI/2, then sourceMatrixWorld, then source vertex",
    "billboard": "Mode and source transform are reported; no camera-facing transform is baked."
  },
  "extractionStatus": "complete",
  "candidateMeshCount": 1,
  "excludedPrincipalGeometryBlockIndices": [
    11
  ],
  "emitterMeshBlockIndices": [],
  "candidateMeshes": [
    {
      "meshId": "block:3",
      "blockIndex": 3,
      "type": "NiTriStrips",
      "name": "Box01",
      "sourceOffset": 612,
      "sourceSizeBytes": 95,
      "parentBlockIndex": 0,
      "parentType": "NiNode",
      "avObjectFlagsRaw": 17,
      "hidden": null,
      "hiddenBit0SetRaw": true,
      "hiddenStatus": "RAW_BIT0_ONLY_UNVERIFIED_FOR_SOURCE_VERSION",
      "avObjectFlagsVersionRaw": 335675400,
      "ancestorNodes": [
        {
          "blockIndex": 0,
          "type": "NiNode",
          "name": "Scene Root",
          "avObjectFlagsRaw": 16,
          "hidden": null,
          "hiddenBit0SetRaw": false,
          "hiddenStatus": "RAW_BIT0_ONLY_UNVERIFIED_FOR_SOURCE_VERSION",
          "avObjectFlagsVersionRaw": 335675400,
          "renderProperties": [
            {
              "blockIndex": 2,
              "type": "NiVertexColorProperty",
              "flagsRaw": 8,
              "colorModeRaw": 0,
              "vertexMode": {
                "rawValue": 0,
                "name": "VERT_MODE_SRC_IGNORE"
              },
              "lightingMode": {
                "rawValue": 1,
                "name": "LIGHT_MODE_EMI_AMB_DIF"
              },
              "ownerBlockIndex": 0,
              "scope": "ancestor_attached"
            },
            {
              "blockIndex": 1,
              "type": "NiZBufferProperty",
              "flagsRaw": 15,
              "depthTest": true,
              "depthWrite": true,
              "compareFunction": {
                "rawValue": 3,
                "name": "TEST_LESS_EQUAL"
              },
              "ownerBlockIndex": 0,
              "scope": "ancestor_attached"
            }
          ]
        }
      ],
      "inheritedProperties": [
        {
          "blockIndex": 2,
          "type": "NiVertexColorProperty",
          "flagsRaw": 8,
          "colorModeRaw": 0,
          "vertexMode": {
            "rawValue": 0,
            "name": "VERT_MODE_SRC_IGNORE"
          },
          "lightingMode": {
            "rawValue": 1,
            "name": "LIGHT_MODE_EMI_AMB_DIF"
          },
          "ownerBlockIndex": 0,
          "scope": "ancestor_attached"
        },
        {
          "blockIndex": 1,
          "type": "NiZBufferProperty",
          "flagsRaw": 15,
          "depthTest": true,
          "depthWrite": true,
          "compareFunction": {
            "rawValue": 3,
            "name": "TEST_LESS_EQUAL"
          },
          "ownerBlockIndex": 0,
          "scope": "ancestor_attached"
        }
      ],
      "propertyAttachmentSemantics": "Direct and ancestor property references are recorded separately; effective renderer state is not resolved.",
      "sourceLocalTransformRows": [
        [
          1.0,
          0.0,
          0.0,
          1.4131624698638916
        ],
        [
          0.0,
          1.0,
          0.0,
          -0.15830588340759277
        ],
        [
          0.0,
          0.0,
          1.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ],
      "sourceMatrixWorldRows": [
        [
          1.0,
          0.0,
          0.0,
          1.4131624698638916
        ],
        [
          0.0,
          1.0,
          0.0,
          -0.15830588340759277
        ],
        [
          0.0,
          0.0,
          1.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ],
      "properties": [
        {
          "blockIndex": 4,
          "type": "NiMaterialProperty",
          "name": "",
          "ownerBlockIndex": 3,
          "scope": "direct",
          "ambientColorRaw": [
            0.8784314393997192,
            0.33725491166114807,
            0.33725491166114807
          ],
          "diffuseColorRaw": [
            0.8784314393997192,
            0.33725491166114807,
            0.33725491166114807
          ],
          "specularColorRaw": [
            0.8784314393997192,
            0.33725491166114807,
            0.33725491166114807
          ],
          "emissiveColorRaw": [
            0.0,
            0.0,
            0.0
          ],
          "emissiveMultRaw": 1.0,
          "alphaRaw": 1.0,
          "glossinessRaw": 0.0
        }
      ],
      "textures": [],
      "controllerBlockIndices": [],
      "controllers": [],
      "isParticleEmitterMesh": false,
      "geometryStatus": "EXTRACTED",
      "dataBlockIndex": 5,
      "vertexCount": 24,
      "triangleCount": 12,
      "positionsNifUnits": [
        [
          -0.5,
          0.5,
          0.0
        ],
        [
          0.5,
          0.5,
          0.0
        ],
        [
          -0.5,
          -0.5,
          0.0
        ],
        [
          0.5,
          -0.5,
          0.0
        ],
        [
          0.5,
          -0.5,
          2.0
        ],
        [
          0.5,
          0.5,
          2.0
        ],
        [
          -0.5,
          -0.5,
          2.0
        ],
        [
          -0.5,
          0.5,
          2.0
        ],
        [
          0.5,
          -0.5,
          0.0
        ],
        [
          0.5,
          -0.5,
          2.0
        ],
        [
          -0.5,
          -0.5,
          0.0
        ],
        [
          -0.5,
          -0.5,
          2.0
        ],
        [
          0.5,
          0.5,
          0.0
        ],
        [
          0.5,
          0.5,
          2.0
        ],
        [
          0.5,
          -0.5,
          0.0
        ],
        [
          0.5,
          -0.5,
          2.0
        ],
        [
          -0.5,
          0.5,
          0.0
        ],
        [
          -0.5,
          0.5,
          2.0
        ],
        [
          0.5,
          0.5,
          0.0
        ],
        [
          0.5,
          0.5,
          2.0
        ],
        [
          -0.5,
          -0.5,
          0.0
        ],
        [
          -0.5,
          -0.5,
          2.0
        ],
        [
          -0.5,
          0.5,
          0.0
        ],
        [
          -0.5,
          0.5,
          2.0
        ]
      ],
      "triangleIndices": [
        [
          0,
          1,
          2
        ],
        [
          1,
          3,
          2
        ],
        [
          4,
          5,
          6
        ],
        [
          5,
          7,
          6
        ],
        [
          8,
          9,
          10
        ],
        [
          9,
          11,
          10
        ],
        [
          12,
          13,
          14
        ],
        [
          13,
          15,
          14
        ],
        [
          16,
          17,
          18
        ],
        [
          17,
          19,
          18
        ],
        [
          20,
          21,
          22
        ],
        [
          21,
          23,
          22
        ]
      ],
      "uvSetsRaw": [],
      "uv0Raw": [],
      "normalsNif": [
        [
          0.0,
          0.0,
          -1.0
        ],
        [
          0.0,
          0.0,
          -1.0
        ],
        [
          0.0,
          0.0,
          -1.0
        ],
        [
          0.0,
          0.0,
          -1.0
        ],
        [
          0.0,
          -0.0,
          1.0
        ],
        [
          0.0,
          0.0,
          1.0
        ],
        [
          0.0,
          0.0,
          1.0
        ],
        [
          -0.0,
          0.0,
          1.0
        ],
        [
          0.0,
          -1.0,
          0.0
        ],
        [
          0.0,
          -1.0,
          0.0
        ],
        [
          0.0,
          -1.0,
          0.0
        ],
        [
          0.0,
          -1.0,
          0.0
        ],
        [
          1.0,
          0.0,
          -0.0
        ],
        [
          1.0,
          0.0,
          0.0
        ],
        [
          1.0,
          0.0,
          0.0
        ],
        [
          1.0,
          -0.0,
          0.0
        ],
        [
          0.0,
          1.0,
          0.0
        ],
        [
          0.0,
          1.0,
          0.0
        ],
        [
          0.0,
          1.0,
          0.0
        ],
        [
          0.0,
          1.0,
          0.0
        ],
        [
          -1.0,
          0.0,
          0.0
        ],
        [
          -1.0,
          0.0,
          0.0
        ],
        [
          -1.0,
          0.0,
          0.0
        ],
        [
          -1.0,
          -0.0,
          -0.0
        ]
      ],
      "vertexColorsRaw": [],
      "hasNormalsRaw": true,
      "hasVertexColorsRaw": false,
      "hasUvRaw": false,
      "previewRole": "EXCLUDED_NON_PRIMARY_SURFACE",
      "viewerRenderable": false,
      "diagnostics": [
        {
          "code": "ROLE_NOT_CONFIRMED_BY_ENGINE",
          "detail": "This source mesh was excluded by the prototype principal-weapon geometry rule; effect versus utility semantics are not inferred from its name."
        },
        {
          "code": "NO_UV0"
        },
        {
          "code": "NO_TEXTURE_PROPERTY"
        }
      ]
    }
  ],
  "particleSystems": [],
  "controllers": [],
  "textures": [
    {
      "sourceFileNameRaw": "W43201.dds",
      "sourcePath": "item/texture/W43201.dds",
      "sourceSizeBytes": 262272,
      "sourceSha256": "ac9b552d3f64f7e2105687b3335bffe32f03702680604ac9fadb3d3a27905cdf",
      "resolution": {
        "status": "resolved",
        "method": "domain_texture_basename_unique",
        "path": "item/texture/W43201.dds"
      },
      "previewAsset": {
        "status": "written",
        "url": "effects/assets/ac9b552d-w43201.png",
        "size": [
          512,
          512
        ],
        "alphaRange": [
          0,
          255
        ],
        "sizeBytes": 239653,
        "sha256": "0122b81b7e823d2592202ca54e66bd2d8d429b2de8a2dbcba1633f903dbd2827",
        "conversion": "Pillow Image.open(DDS).convert(RGBA).save(PNG)"
      },
      "sourceTextureBlockIndex": 15
    }
  ],
  "blockTypesNotExpanded": {
    "NiStringExtraData": 2
  },
  "semanticBoundary": {
    "candidateMeshes": "All static source meshes other than the catalog principal selection; exclusion from the converted main mesh does not establish that a candidate is an engine effect.",
    "emitters": "NiPSys emitter configuration, mesh references, controller keys, and properties are preserved; particle instances are not sampled or synthesized.",
    "engineCompared": false
  },
  "diagnostics": []
}
