Open source · MIT licence
Fork it.
Vantage was built by one person, and nothing about it needs to stay that way. A hobby is better served by many mods going their own ways than by one that everybody waits on, and a mod that ends when its maintainer stops is a mod nobody should have to depend on. So all of it is open: copy it, change it, rename it, and ship your own.
You do not need to ask first, and you do not need to send anything back. The licence asks for one thing, and it is further down this page.
What you are forking
- Licence
- MIT
- Written in
- Java 25
- Minecraft
- 26.1.2 and 26.2
- Loader
- Fabric 0.19.3
- Features
- 428
- Options
- 3,422
- Latest release
- 2.0.1
Three steps to your own jar
-
Fork
Press Fork on the project's GitLab page, or clone it and keep it wherever you keep code. It is one repository: the mod, its tools, its tests and its pipeline.
git clone https://gitlab.com/Ekoss/vantage.git cd vantage -
Build
Gradle has to run on JDK 25; there is no toolchain block, so it will not fetch one for you. The first line is what the pipeline runs; the second makes a jar in
build/libs../gradlew compileJava test ./gradlew build -PnoVersionBumpKeep the flag. Without it, any task that makes a jar raises the last number of
mod_versioningradle.propertiesbefore anything compiles, which is right for a release and a nuisance every other time;git checkout -- gradle.propertiesputs it back. Add-Pminecraft_version=26.1.2for the other target. -
Make it yours
Give it your own name, so nobody mistakes it for Vantage:
idandnameinsrc/main/resources/fabric.mod.json,maven_groupandarchives_base_nameingradle.properties,Vantage.NAME, the manifest'sImplementation-Titleinbuild.gradle, andVantage.MOD_ID, which also names the config folder and the resource namespace: renamesrc/main/resources/assets/vantageto match, along with the few files that spellvantageout (font/ui.json,lang/en_us.json, thevet.keypath).If you also move the package
dev.cherishev.vantage, change it by hand wherever it is written as text: the two entry points infabric.mod.json, the"package"of everyvantage*.mixins.json, andFEATURE_INFO,FEATUREandPACKAGEinprocessor/…/FeatureIndexProcessor.java, which finds every feature by those names. The forking guide lists every one.After that it is yours to change. A feature is one class with an
@FeatureInfoannotation, and the look is written down:docs/design/liquid-glass.mdis the Obsidian Glass contract every screen is drawn against.
Point it at your own things
A few constants point at Vantage's own infrastructure. A fork that kept them would check
Vantage's releases, read Vantage's announcements and talk to Vantage's service, under Vantage's name. These are
the ones to change, as of 2.0.1; the Java files are under
src/main/java/dev/cherishev/vantage/.
| Constant | Where | Today | What it does |
|---|---|---|---|
UpdateChecker.PROJECT_ID | features/ | 85904176 | The GitLab project whose releases the update check reads. |
UpdateChecker.RELEASES_PAGE | the same file | gitlab.com/ | Where the "new version" notice sends a player. |
AnnouncementsFeature.FEED_URL | features/ | announcements.json on Vantage's main | The announcements every client reads. |
SyncEndpoints.DEFAULT_HOST | core/ | stats.glass-vt.lol | The service: bug reports, the profile viewer and Vantage Stats. |
DEFAULT_PROJECT_ID | tools/ | 85904176 | Where a release is uploaded when it is cut by hand. In CI the pipeline's own project is used. |
PROJECT_URL | tools/ | gitlab.com/ | The links, and the icon address, in the Discord posts the announcement job makes. |
Http.USER_AGENT | core/ | Vantage/<version> (Minecraft <version>) | How the mod's HTTP client introduces itself to the sites it fetches from. |
The service
Bug reports, the profile viewer and Vantage Stats talk to the service behind this site, which is not a
public repository. A fork points DEFAULT_HOST at a service of its own, or leaves those
features off. What the service does, and what the mod sends it, is on
The service.
The Vet card
The card is signed with a key baked in at build time: -PvetKey, or
VANTAGE_VET_KEY in CI. A build with neither gets an empty key, which the client treats as a
development key and says so in its log, and Vantage's own bot rejects those cards.
tools/release.py refuses to publish a jar without a real one, and it looks for jars named
vantage-<version>+<minecraft>.jar, so a fork that releases with it brings its own
key and teaches it its own jar name.
Two Minecraft versions come out of one tree. The few files that cannot be written against
both live in src/main/java-mc26.2 and src/main/java-mc26.1.2, with each version's
access widener in src/main/resources-mc<version>; -Pminecraft_version picks one.
What the licence asks
Vantage is under the MIT licence. In plain words: you may use it, copy it, change it, merge it into something else, publish it, give it away and sell it, for any purpose, without asking.
The one condition is that the copyright notice and the licence text stay with the code: in your
repository, and in what you ship. The build already puts LICENSE in the jar, as
LICENSE_vantage. Add your own line for what you write; keep this one.
It comes with no warranty of any kind.
The line that stays
Copyright (c) 2026 CherishEv
Three things inside the jar have licences of their own and travel with it. Inter,
the typeface (SIL Open Font License), and the Lucide icon geometry (ISC) have their texts in
src/main/resources/assets/vantage/licenses/. The Hypixel Mod API is bundled by the build, and
its terms are its own project's: the forking
guide says more.
One rule comes with the hobby rather than the licence: Hypixel's developer policy forbids putting an API key into a mod anyone can download, which is why Vantage asks you for none.
What you get
-
The mod
428 features in 19 areas, each one class, on Minecraft 26.1.2 and 26.2, written from scratch in Java 25.
-
The feature catalogue
tools/tracker.pyreads every@FeatureInfointo a tracker and a catalogue;tools/sitedocs.pywrites the one this site's feature list and reference are built from. -
The UI toolkit
Obsidian Glass, in
core/ui: the screens, the widgets the menu is made of, the renderer that draws them and the theme they all read, with its contract written down. -
The smoke tests
./gradlew runUiSmokeTestopens every Vantage screen and writes a report;runPathSmokeTestbuilds an obstacle course and routes through it. A JUnit suite covers the parts that need no game. -
The pipeline
.gitlab-ci.yml: compile and test on every merge request, a jar per pipeline, a check that the catalogue is current, and a release job that builds both jars from a tag.
The developer docs
Everything above, at length, and the rest of how the mod is put together.
- Forking
Taking the code and making it yours.
- Building
The JDK, the Gradle tasks, and the one flag to remember.
- Architecture
How the mod is laid out, from the entry point down.
- Writing a feature
A new feature, from the annotation to the menu.
- Options and config
Declaring options, and how they are saved.
- HUD elements
Drawing something the HUD editor can move.
- Commands and keybinds
Registering a command or a key.
- Multi-version
One source tree, two Minecraft versions.
- The UI toolkit
Obsidian Glass: the components and the rules they keep.
- Testing
The unit tests and the in-game smoke tests.
- Releasing
Versions, tags, and what a release carries.
- The service
What runs behind the site and the mod's online features.
- The Stats protocol
What the mod sends to Vantage Stats, and what it gets back.
- Contributing
Sending a change back, if you want to.