Noncollinear Perpendicular Microcrystalline
    Have ideas to improve npm?Join in the discussion! »

    wc3maptranslator

    4.0.0 • Public • Published

    WC3MapTranslator
    Translate war3mapjson formats for WarCraft III .w3x maps

    Quality

    Known Vulnerabilities


    Overview · Install · Usage · File Support · Specification · Contributing · Special Thanks


    Overview

    WC3MapTranslator is a TypeScript module to convert between JSON and WarCraft III (.w3x) war3map formats. This makes the map data readable and easily modifiable, a perfect format for storing WC3 maps in Git repositories and inspecting diffs!

    TranslationExample

    Install

    npm install wc3maptranslator

    Requires Node ≥ 14

    Usage

    import {
      CamerasTranslator,
      DoodadsTranslator,
      ImportsTranslator,
      InfoTranslator,
      ObjectsTranslator,
      RegionsTranslator,
      SoundsTranslator,
      StringsTranslator,
      TerrainTranslator,
      UnitsTranslator
    } from 'wc3maptranslator';
    
    // E.g. let's create a camera for the map
    const cameras = [
      {
        "target": {
          "x": -319.01,
          "y": -90.18
        },
        "offsetZ": 0,
        "rotation": 90,
        "aoa": 304,
        "distance": 2657.34,
        "roll": 5,
        "fov": 70,
        "farClipping": 5000,
        "name": "MyCamera1"
      }
    ]
    
    // Now translate the JSON into the WarCraft III format
    // All translators have: `.jsonToWar` and `.warToJson` functions
    const translatedResult = CamerasTranslator.jsonToWar(cameras);
    
    // `translatedResult` contains a `buffer` which can be saved to disk
    // This war3map.w3c file can now be placed inside a .w3x via an MPQ
    // editor, and you should now see a camera in the Camera Palette!
    fs.writeFileSync('war3map.w3c', translatedResult.buffer);

    File Support

    World files

    Type Json → War War → Json File
    Terrain check times war3map.w3e
    Units check check war3mapUnits.doo
    Doodads check check war3map.doo
    Regions check check war3map.w3r
    Cameras check check war3map.w3c
    Sounds (definitions) check check war3map.w3s

    Object data files

    Type Json → War War → Json File
    Units - Objects check check war3map.w3u
    Items - Objects check check war3map.w3t
    Abilities - Objects check check war3map.w3a
    Destructables - Objects check check war3map.w3b
    Doodads - Objects check check war3map.w3d
    Upgrades - Objects check check war3map.w3q
    Buffs - Objects check check war3map.w3h

    Trigger files

    Type Json → War War → Json File
    LUA times times war3map.lua
    JASS times times war3map.j
    Strings check check war3map.wts

    Map files

    Type Json → War War → Json File
    Info File check check war3map.w3i
    Imported Files check check war3map.imp
    Pathing times times war3map.wpm
    Shadow map times times war3map.shd

    Not relevant

    minus-solid Custom Text Trigger File (war3map.wct)
    minus-solid Trigger Names File (war3map.wtg)
    minus-solid Menu Minimap (war3map.mmp)
    minus-solid Minimap Image (war3mapMap.blp)
    minus-solid Minimap Image (war3mapMap.b00
    minus-solid Minimap Image (war3mapMap.tga)
    minus-solid Map Preview Image (war3mapPreview.tga)

    Specification

    WC3MapTranslator format

    We have a detailed explaining how to format a map in JSON. It explains everything from the high-level map object, all the way down to creating individual units, tiles, or custom objects.

    🔗 WC3MapTranslator format

    war3map format

    The underlying WarCraft map files (e.g. war3map.doo) have been documented in a separate repository. If you are curious about how a .w3x file is composed, this is the place to learn!

    🔗 WC3MapSpecification

    Contributing

    We encourage contributions! Generally, the process of making a change is:

    1. Fork this repo
    2. Develop your changes on a new branch
    3. Submit a pull request to dev

    Your code should:

    • run (your code needs to work, of course)
    • include tests (write unit tests to demonstrate your code works under different conditions)
    • be linted (run npm run lint and follow the project's coding standards)
    • pass CI (we enforce: ESLint, unit tests pass, code coverage)

    A code review is required on your PR to be accepted into dev. A project member will get back to you within one week. If you haven't heard from someone regarding your PR, feel free to ping @chiefofgxbxl.

    Special Thanks

    We owe a lot of thanks to Chocobo on TheHelper for the detailed documentation of the files found in a .w3x archive. Two tutorials are here (1) and here (2).

    Install

    npm i wc3maptranslator

    DownloadsWeekly Downloads

    1

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    745 kB

    Total Files

    69

    Last publish

    Collaborators

    • avatar