{
  "schema": "imperivm-format-article/v1",
  "language": "en",
  "scope": "Imperivm HD",
  "status": "partial",
  "slug": "bfhp",
  "title": "BFHP / HPFS · map containers",
  "summary": "File volume identified by HPFS, used in saved maps and content packs. Some files have an LZIS wrapper.",
  "sections": [
    {
      "id": "purpose",
      "title": "Container and contents",
      "paragraphs": [
        "BFHP is the container file; the file volume is identified by the ASCII signature HPFS. It is a different format from PAK.",
        "A saved map combines metadata, objects and terrain grids with other game-context files. It should therefore not be treated as a single XML file or terrain image."
      ]
    },
    {
      "id": "identification",
      "title": "Identification",
      "list": [
        "HPFS at the start identifies a volume without that compression wrapper.",
        "LZIS at the start requires interpreting the compressed stream first, then identifying its decoded logical contents.",
        "The library Packs/RandomMapSettlements.bfhp is a documented example of LZIS containing an HPFS volume."
      ]
    },
    {
      "id": "map-layout",
      "title": "Observed map organization",
      "code": "Maps/1/\n  map.xml\n  map.obj.xml\n  Terrain.terrain.grid\n  Terrain.height.grid\n  Terrain.light.grid\n  Terrain.trans.grid\n  Terrain.decor.grid\n  Terrain.pass.grid\n  Notes.xml\n  warehouse.rle\n  Sequences/sequences.xml",
      "paragraphs": [
        "This tree describes files observed in editor-saved maps; it is not a universal list of required files. The volume root can also contain game.xml, env.42, itemsCustom.xml and player0.xml through player15.xml.",
        "Related pages describe map.xml, map.obj.xml and .grid layers separately."
      ]
    },
    {
      "id": "workflow",
      "title": "Approaching a modification",
      "list": [
        "Identify the actual signature before selecting an extraction tool.",
        "Work on a copy and preserve both the folder hierarchy and the files associated with the map.",
        "Distinguish the volume holding the files from the individual formats inside it.",
        "Verify extraction, editing and saving separately; the ability to read a volume does not establish that it can be repacked correctly."
      ]
    },
    {
      "id": "limits",
      "title": "Known limits",
      "paragraphs": [
        "This entry does not provide a complete HPFS directory, sector-allocation or writing specification. It does not assume equivalence with .mmp or compatibility across all game editions.",
        "Editor saves can retain free sectors containing earlier data. Extracting accessible files and copying every byte of the volume are different operations."
      ]
    }
  ]
}