# Applied Energistics 2 keeps a versioned, semver tracked API for Minecraft add-ons

> Applied Energistics 2 is a long-running Java Minecraft mod whose API is published to Maven Central with an `:api` classifier and semver versioning, so add-on authors can pin a version and know when a MAJOR bump means breakage. It is only useful to people who install mods, and the licence is split four ways depending on what you reuse.

**AppliedEnergistics/Applied-Energistics-2** — A Minecraft Mod about Matter, Energy and using them to conquer the world..

- Repository: https://github.com/AppliedEnergistics/Applied-Energistics-2
- Website: https://appliedenergistics.github.io/
- Stars: 1,813 · Forks: 978
- Language: Java
- License: NOASSERTION
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/appliedenergistics-applied-energistics-2

## Installation is one jar, and there is no dependency to satisfy first

The README is unusually blunt about this: you install the mod by putting it into the `minecraft/mods/` folder, and it has no additional hard dependencies. There is no Forge or Fabric library to install alongside it and no config step in the documentation.

That simplicity is a consequence of the release model rather than an accident. Downloads are distributed through CurseForge, Modrinth and the official website, so in normal play you never touch the build at all. The version string carries the Minecraft version explicitly, and the recent tags show how tight that coupling is: v26.3.1-alpha targets Minecraft 26.3, v26.2.1-alpha targets Minecraft 26.2, and v26.1.13-beta targets Minecraft 26.1.2.

So the practical upgrade rhythm is: a new Minecraft version arrives, an alpha for it appears within days, and betas follow. The repository is not archived and the last push was on 2026-10-11, so the churn is current and deliberate.

The project's own description of itself is about Matter, Energy and using them to conquer the world. It is a gameplay content mod, not a library, and the README does not document the in-game mechanics at all. Anyone evaluating it for a pack needs the player guide at guide.appliedenergistics.org, which is where the actual mechanics documentation lives.

## The API artifact is separate from the mod artifact

This is the part that matters for developers, and it is easy to miss. The README states that AE2 is available on Maven Central under `org.appliedenergistics/appliedenergistics2`, and that GitHub Packages is an alternative that requires special authentication setup with a personal access token.

The dependency declaration comes in two forms, controlled by a classifier. The `:api` classifier gives the API only; dropping it gives the whole mod:

```gradle
dependencies {
    compileOnly "org.appliedenergistics:appliedenergistics2:VERSION:api"
}
```

The concrete example the README gives is `org.appliedenergistics:appliedenergistics2:12.9.5:api` for API-only consumption and `org.appliedenergistics:appliedenergistics2:12.9.5` for the entire mod. A Gradle build file also needs the repository block:

```gradle
repositories {
    mavenCentral()
}
```

Note `compileOnly`, not `implementation`. That single word tells you the relationship: an add-on compiles against AE2's API and does not ship it, because the mod itself is present at runtime through the player's or server's mod folder. Declaring it as a normal runtime dependency would duplicate the mod.

The API is described as open to discussion about changes, documentation improvements and add-on support in general, which is a meaningful statement about how the maintainers intend to handle compatibility pressure from downstream projects.

## Semver is the contract, and a MAJOR bump means your add-on crashes

The README is unusually direct about the compatibility rules, and they are worth reading literally.

Since 1.15 the project uses semver, and the README states that following that specification is highly recommended and that you should further consider an upper bound for the dependency version. An open range such as `12.+` is the pattern most likely to break you, because it silently resolves to a version your add-on was never compiled against.

The stated consequence is direct: a change of the MAJOR version is an API break and can lead to various crashes. The README then gives the player-facing advice, which is a good tell about the project's priorities: an add-on author should inform players that the add-on does not support the new version until it has been tested or updated.

That framing, compatibility surfaced to the player rather than discovered at runtime, is the whole reason to care about this project if you write add-ons. The cost is that you own a compatibility matrix. Recent releases target specific Minecraft versions, so add-on authors still need to decide which releases they support. Nothing in the documentation automates that check for you.

There is a repository-level `API.md` and a `CLAUDE.md` alongside the README, which suggests the API surface has been written down deliberately, but the README itself does not summarise what is in it.

## Building from source needs the data generation step, not just build

Clone over either SSH or HTTPS:

```sh
git clone https://github.com/AppliedEnergistics/Applied-Energistics-2.git
```

Then the build command is not the plain `gradlew build` you might expect. The README specifies `gradlew runData build`, and the jar lands in `build/libs`.

The extra `runData` is the detail to notice. It is a data generation step, which is the mechanism a mod like this uses to derive runtime assets such as models, recipes and loot tables from source data, so those artefacts stay in sync with the code instead of being committed by hand. Skipping it is the likely cause of a build that compiles but produces incomplete or stale output.

For core developers the README's next step is simply to load the Gradle project in the IDE. The repository supports that path with `gradlew` and `gradlew.bat` wrappers, a `buildSrc/` directory, a `settings.gradle`, a root `build.gradle` and a `codeformat/` directory, so formatting is enforced by tooling rather than by reviewer taste. There is also `scripts/`, `docs/`, and a `guidebook/` directory with `guidebook.md`, which is the source for the in-game guidebook content.

The `.idea/` directory at the repository root and `.git-blame-ignore-revs` are both useful signals about working practice: the first is a committed IDE configuration, the second is the mechanism that keeps history clean when the formatter reformats files wholesale, so `git blame` stays useful.

## Four licences in one repository, and one of them forbids commercial reuse

The README sets out licensing per asset class rather than per repository, and this is where anyone shipping a pack or an add-on needs to look carefully.

The API is MIT, attributed to AlgorithmX2 et al for 2013 to 2020. The mod itself is LGPLv3, under the rv2 licence file. Textures and models are split between Ridanisaurus Rid for 2020 and AlgorithmX2 et al for 2013 to 2020, under CC BY-NC-SA 3.0. Text and translations are CC0, marked as no restriction.

The line to read twice is the third one. CC BY-NC-SA 3.0 is a non-commercial licence, so the textures and models cannot be reused in a commercial product without separate permission from the copyright holders, regardless of what the LGPLv3 on the code permits. For a Minecraft server monetised through a store or a paid client pack, that is a hard boundary rather than a formality, and no amount of code licensing changes it.

Individual sound files carry their own terms as well. The guidebook click sound is credited to EminYILDIRIM on Freesound under CC BY 4.0, which does require attribution.

GitHub classifies the repository's licence as Other, which is why the per-category breakdown in the README is the operative source rather than a single SPDX identifier.

## The issue tracker has an explicit policy about what gets closed

The README documents the issue process tightly enough that it is worth reading as a statement of project scope rather than as instructions.

Before you file, you are asked to check that the issue has not already been answered or fixed and that you are on the latest version, and to consider whether the issue is valid at all. Two categories are declared invalid outright. If something is already possible with vanilla Minecraft and AE2 itself, the suggestion will be considered invalid. Asking for a smaller, more compact or more efficient version of an existing feature is also invalid.

Then the process itself: open the issues page, click new issue, use one of the provided templates if applicable, submit, and wait for feedback. The templates are described as containing further details about required or useful information to add. The README notes that issues not matching these requirements may be closed.

That second invalid category is the one that shapes day-to-day interaction with this project. AE2's identity is partly efficiency: the mod exists to compress and automate what other mods do more verbosely, so requests to shrink or optimise an existing feature run against the core premise. A request framed as a new feature is in a different position than the same request framed as a size reduction, and contributors are told to discuss major changes before writing them, to keep pull requests focused on content rather than syntax, and to use the file being edited as the style guide.

## Conclusion

Adopt Applied Energistics 2 if your server or pack already includes AE2 content, since the API is published to Maven Central and the version scheme lets an add-on declare exactly what it compiles against. Leave it out if you only need to solve item logistics with vanilla mechanics, which the project's own issue policy treats as out of scope. Before you start, copy the LICENSE terms for the four categories you actually intend to reuse: the API is MIT, the mod is LGPLv3, textures and models are CC BY-NC-SA 3.0, which blocks commercial assets, and text and translations are CC0. If you build from source, expect `gradlew runData build` to write into `build/libs` and nothing else, and if you depend on the API pin the dependency version with an upper bound rather than a range, since a MAJOR change is documented as a break that can cause crashes.

## FAQ

### How do I install Applied Energistics 2 in Minecraft?

Put the mod jar into the `minecraft/mods/` folder. The README states it has no additional hard dependencies, and downloads come from CurseForge, Modrinth or the official project website.

### How do I compile a Minecraft add-on against the Applied Energistics 2 API?

Add `mavenCentral()` to your repositories block and declare `compileOnly "org.appliedenergistics:appliedenergistics2:VERSION:api"` in dependencies, replacing VERSION with the value you want, for example `12.9.5:api`. Using `compileOnly` keeps the mod from being bundled, since it is present at runtime from the mods folder.

### How should I handle Applied Energistics 2 version upgrades in my add-on?

The project uses semver since 1.15 and states that a MAJOR version change is an API break that can lead to crashes. Follow that specification and set an upper bound on the dependency version, then tell players your add-on does not support the new version until it has been tested.

### How do I build Applied Energistics 2 from source?

Clone the repository and run `gradlew runData build`; the resulting jar appears in `build/libs`. Core developers load the Gradle project directly in the IDE instead, using the bundled `gradlew` wrapper.

### Can I reuse Applied Energistics 2 textures in a commercial modpack?

Textures and models are licensed under CC BY-NC-SA 3.0, which includes a non-commercial term, so reuse in a commercial product needs permission from the copyright holders. The mod code is LGPLv3 and the API is MIT, while text and translations are CC0.

## Sources

- [AppliedEnergistics/Applied-Energistics-2 on GitHub](https://github.com/AppliedEnergistics/Applied-Energistics-2)
- [Issues](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues)
- [Project website](https://appliedenergistics.github.io/)
- [README](https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/main/README.md)
- [Releases](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/appliedenergistics-applied-energistics-2
