A reimagined vision of a BetterEnd
Paulevs' legendary mod BetterEnd drastically transformed Minecraft's final dimension from a barren, repetitive wasteland into a thriving and alien worldscape, filled with life, light, adventure and mystery. Sadly, after almost five years of continued development, the mod has been abandoned, and its codebase is a tangled, unmaintainable mess, spread across no fewer than four separate repos.
The goal of this project is not to be a continuation, faithful port or ground-up rewrite. It is instead to create a simple, maintainable mod that can bring the core aspects of BetterEnd's ethos—that of a brighter dimension, teeming with life—to future versions of the game.
Subject, of course, to change
- Proof of Concept: Re-implement a select few BetterEnd blocks—at least one each of stone, soil, plant and crop—but no biomes or worldgen.
- Alpha 2: First "features"—at least two trees, plus either a ruin or a lake—that can be
/place
d into a world, along with their associated blocks (read: wood sets) and at least one mob - Alpha 3: An armored elytra (see below)
- Alpha 4 Bring back the music discs and modify the vanilla loot tables to provide them
- First Beta: Introduce the first biomes and a start modifying the worldgen so stuff naturally spawns
- First Release: A full mod experience where a player can start in The End and "beat the game" from The End
The completed version of LighterEnd:
- Will likely feature ore, but not Thallasium or Ender Ore (and thus, there will be no Terminite nor Aeternium)—these material types are either redundant or overpowered.
- Will not include Crystalite armor. Which, again, is overpowered.
- While there will be an armored elytra, it will be heavily nerfed (with the glide decay of Aeternium elytra and sub-Diamond levels of protection) in order to balance it with vanilla elytra
- Will only feature one type of end soil, though this soil may take on different appearances in different biomes, and bonemealing the soil in different biomes will produce different plants
- Will not include Eternal Portals
- Will not implement hammers, forging, infusing or alloying
- Will make the End Veil enchantment available exclusively as extremely rare loot (cannot be obtained from villagers or the enchantment table)
On the flip side, LighterEnd has or will have features not present in BetterEnd
- The option for gravity in The End to be 1/3 of normal
- Silk Elytra—a craftable, trimmable and renewable armored elytra
- New survival-challenge-friendly crafting recipes (such as the ability to get paper from end lily leaves and arrows from cubozoa drops)
- Sniffers that sploot on End Moss will dig up rare End saplings
- Breeding villagers in The End might produce End Villagers, who will have exclusive professions, job sites and trades
- New trim materials (and possibly trim patterns)
LighterEnd is compatible out-of-the-box with both Nullscape and Moog's End Structures
Worldgen datapack developers wanted!! If you have experience creating custom dimensions or adding biomes to existing dimensions, please contact me!
If there is a BetterEnd feature you would like to take responsibility for porting, please open an issue to start that discussion!
- Download and install a Java 21 OpenJDK such as Temurin
- Clone this repo
- Load this project into your favorite Java IDE and run the "runDatagen" gradle task (or, from
the command line, run
sh ./gradlew runDatagen
from the project root) - Now run the "build" task, either from the IDE or via
sh ./gradlew build
- The compiled jar will be found under
build/libs
- This project uses pre-commit hooks to format Markdown
and non-generated JSON files. To set up pre-commit, follow the instructions linked above to
install
pre-commit
on your system, then, from the repo root, runpre-commit install
to have the hooks run on every commit. - It is strongly recommended that you turn on automatic format on save / commit in your Java IDE.
Instructions for doing that inside IntelliJ can be found
here.
Make sure to select:
- Reformat code
- Optimize imports on any save.
- The top priority of this mod is to make it easy to understand and maintain (note that "difficult
to update" and "tedious to update" are not the same thing). This means that implementations
should be as "flat" as possible—no interfaces, the bare minimum of abstraction, and any "helper"
methods should be used at least twice before they're refactored out into their own "library"
class.
- And, just to be extra clear: this mod should never depend on any other mod, library, API or project outside the Fabric API. If someone else already solved a thing, adapt how they did it (with proper attribution, and assuming it's GPL-compatible open source)—don't just count on that library always existing forever.
- The corollary to the above is that this project will never be refactored into a general-purpose modding library or API. Anyone seeking to adapt the solutions developed for this mod is welcome to adapt those bits of code (subject to the license below).
All code in this repository is licensed under GPLv3.
All assets (textures, models) were created by the BetterX team.
Music discs were composed, performed and recorded by Firel.
Many thanks:
- to the excellent tutorial mods developed by Kaupenjoe and TurtyWurty
- to Pintér Gábor and his IronSigns mod for providing an extremely helpful example of adding custom signs
- to the Enderscape team for great modern examples of library-free worldgen and terrain modification
You may use, modify and redistribute this mod, and you may include this mod within your modpack or run it on a server, so long as you abide by the terms of this license, which critically states that you must make the source code (including your modifications to the mod) available to anyone downloading the mod (including modified versions and including within a modpack)