Skip to content

vekendianorg/void-prism

Repository files navigation

Void Prism

The first mod pack loader for Hill Climb Racing 2.

Void Prism is an open-source mod pack loader and format designed for Hill Climb Racing 2. It is part of the VEKENDIAN ecosystem and is designed to be embedded into Void while remaining a standalone project for mod pack creators.

Features

  • You can pass a .zip file path directly to Prism.install() / Prism.validate() — it's extracted to a temp directory automatically and cleaned up after. No need to unzip manually.
  • Simple manifest.json format
  • .zip support — install packs directly from a .zip file, no manual extraction needed
  • Modular package-based structure
  • package/ and flat layout support — drop files at pack root or inside package/, Prism auto-resolves which real game package they belong to
  • Global JSON routing — json/events/, json/seasons/, json/shop/ files go straight to the game's shared directories
  • JSON merging for supported game data
  • Automatic .packages generation and checksum handling
  • Multiple mod packs with configurable priority
  • Two access methods: Virtual Space (no root) and ROOT
  • Pure Java 7 implementation — no external dependencies
  • Lua reference implementation

Access Methods

Virtual Space

Run Void Prism inside a virtual space app (e.g. VMOS, Parallel Space) alongside HCR2. The app auto-detects the virtual space root using the VirtualBackup technique — getFilesDir() + package name stripping — and finds HCR2's content_cache/ automatically. No root required.

ROOT

Run Void Prism normally on a rooted device. Uses su to temporarily change permissions on HCR2's data directory so the app can read/write content_cache/. Original ownership and permissions are restored on exit.

Pack Layouts

Prism supports three layouts, and a single pack can mix all three:

package/ (primary) — category folders sit directly inside package/ (see docs/GUIDE.md):

MyPack/
├── manifest.json
└── package/
    └── textures/
        └── cars/jeep/epic/jeep_evil_epic/chassis.png

Flat — drop files straight at pack root, next to manifest.json:

MyPack/
├── manifest.json
├── README.md
└── textures/
    └── cars/jeep/epic/jeep_evil_epic/chassis.png

Real-structure (legacy) — name the actual game package directly:

packages/remote_vehicle_paints_2.zip/textures/cars/jeep/epic/jeep_evil_epic/chassis.png

For package/ and flat packs, Prism reads the game's own .packages index and matches each file's relative path against every existing package's filelist. A match gets appended to that package automatically — no need to know or hardcode the real package name. Unmatched files fall back into one new package, named <packId>.zip.

Files under json/events/, json/seasons/, or json/shop/ are routed directly to the game's shared global JSON directories instead of into a game package — these don't belong to any single package.

Simple to author, still precise under the hood.

About

The first mod pack loader for Hill Climb Racing 2.

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Contributors