- Java 48.1%
- C 25%
- Shell 17.5%
- Python 6.7%
- CMake 2.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| docs | ||
| platform | ||
| scripts | ||
| stage0 | ||
| tests | ||
| vendor/lib | ||
| .gitignore | ||
| build_public_loader_bundle.sh | ||
| NATIVE_LOADER_USER_GUIDE.md | ||
| README.md | ||
| start.sh | ||
Nicotine (Linux-native loader workspace)
Makes Linux vape
⚠️ No warranty. Use at your own risk. Bans, breakage, and consequences are your own. Online features are unverified. Tested on exactly one machine. Read
docs/KNOWN_LIMITATIONS.mdfirst.
This folder is a self-contained package for the Vape Linux loader interface:
start.sh— the main entrypoint: a step-by-step wizard, and once a payload is extracted, a fast 1 · Inject / 2 · Update menuscripts/— ready-to-run shell launchersstage0/— HWID + per-account extraction/login toolingplatform/— Java/C sources for attach loader and native bridge componentsdocs/— architecture, compatibility, and troubleshooting notesNATIVE_LOADER_USER_GUIDE.md— practical usage guide
The package intentionally contains source + tooling entrypoints only. It does not include the payload — each user extracts their own after signing in to their own Vape account.
Quick start
./start.sh
- No payload yet → the full wizard (HWID → register → bridges → login/extract → run natively).
- Payload already extracted → straight to 1 Inject / 2 Update (
hsets HUD scale,wopens the full wizard).
Loader compatibility: attaches to any Minecraft JVM (LaunchWrapper / Fabric Knot
/ any URLClassLoader), so it is not tied to PrismLauncher — in theory Lunar,
MultiMC, etc. work too (only Prism was tested). 1.8.9 needs Forge; 26.2 needs
Fabric.
Required stage root
Attach needs a Stage-1 root with these files:
manifest.jsonjava/Vape4Runtime.linux.jar(or equivalent compatible payload name)protocol/vape-stage1-mapping-pairs.tsvnative/libvape_native_bridge.so
If --stage-root is not provided, launch scripts try (in this order):
deep_reverse_artifacts/stage1, ../deep_reverse_artifacts/stage1, ../reverse_runtime/dist/stage1, reverse_runtime/dist/stage1, stage1.
When the selected root misses a local native/*.so, scripts auto-fall back to known
workspace-built bridge artifacts so you can launch from a partial dump tree.
Scripts
scripts/run_loader.sh- entrypoint wrapper for 1.8.9 and 26.2
- examples:
./scripts/run_loader.sh --version auto --prepare-only./scripts/run_loader.sh --version 1.8.9 --pid <PID>./scripts/run_loader.sh --version 26.2 --pid <PID> --hud-scale 2.25
stage0/run_stage0_and_load.sh— one-shot path from launcher exe + HWID/session into Linux attach.scripts/run_native_loader.sh— pre-attach validation and version routingscripts/run_vape_linux.sh— 1.8.9 attach pathscripts/run_vape_26_2.sh— 26.2 attach pathscripts/build_loader.sh— buildsplatform/loader/build/nicotine-linux-loader.jarscripts/build_public_loader_bundle.sh— createsdist/public-loader/stage1
Quick one-shot attach path:
./stage0/run_stage0_and_load.sh --launcher ./vape-launcher.exe
(The Vape launcher is downloaded under a per-download hex name, so there is no
fixed filename — pass yours, or drag it in via start.sh.)
Build + smoke checks
./scripts/run_native_loader.sh --version auto --prepare-only
./scripts/build_public_loader_bundle.sh --stage-root deep_reverse_artifacts/stage1 --out /tmp/stage1-public
./vape_linux/scripts/build_loader.sh --help
./vape_linux/scripts/run_native_loader.sh --version auto --prepare-only --stage-root /tmp/stage1-public/stage1
bash ./vape_linux/tests/concept_smoke_test.sh
Use VAPE_STAGE1_ROOT to force a specific stage root:
VAPE_STAGE1_ROOT=/path/to/stage1 ./scripts/build_loader.sh
Notes
- Loader JAR names are
nicotine-linux-loader.jarfor this package build output. - Loader JARs built in this workspace are:
platform/loader/build/nicotine-linux-agent.jarplatform/loader/build/nicotine-linux-loader.jar
- If you are migrating Stage-1 from another machine, keep the native filename set consistent with the selected payload.
With luv, evil0x22 🖤