Java library for reading and modifying Warcraft III maps and game files
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle/wrapper
licenses remove unused license Jan 9, 2018
src
wc3libs_doc/src/specs/bin
.gitattributes Create .gitattributes Jul 24, 2018
.gitignore
.travis.yml fix travis coverage report Aug 12, 2018
README.md
build.gradle added twelve monkeys plugin for more jpeg support in imageIO Jan 1, 2019
gradlew gradle fixes, update jmpq dep Jun 5, 2017
gradlew.bat gradlefy, travis and cleanup repo Jun 4, 2017
license.txt
settings.gradle

README.md

Build Status Jit codebeat badge codecov

Wc3libs

Pure Java library for general wc3 modding and tool development. With Wc3libs we aim to offer a feature-complete, easy, plug & play solution for jvm applications to access, modify and output any kind of Warcraft III specific game data.

Usage

Use this library in your maven/gradle project using JitPack.

Gradle Example:

allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}
  
dependencies {
  implementation 'com.github.inwc3:wc3libs:-SNAPSHOT'
}

Feature Overview

Reading maps

This project uses another one of our projects, JMPQ to read and write mpq archives, ie warcraft 3 maps.

Data Formats

Wc3libs supports read and write operations for the following data types:

  • Map Data formats: .w3c, .w3i, .w3r, .w3s, .w3v, .shd, .mmp, .wpm, .doo, .imp, header and footer
  • Asset Data formats: .mdx, .mdl, .blp, .jpg, .tga
  • Object Data formats: .w3a, .w3b, .w3d, .w3h, .w3q, .w3t, .w3u
  • Plain Text formats: .slk, profile .txt, .fdf
  • Trigger Data formats: .wct, .wtg, .j, .wts
  • Campaign Data formats: .w3f

Object Data Transformation

Wc3libs can transform object definitions between the binary objectmod format and raw slk/txt formats. The raw file handling also comes with inbuilt cleaning to prevent bloating maps.

Contributing

Feel free to contribute fixes or additions or make tickets on the issue tracker to inform us. Any kind of documentation or specification is also welcome.