A modded version of HollowPS with 5 custom levels
Find a file
2025-06-11 21:35:48 +00:00
assets Replacement for EventGraphCollection with modifications for new levels 2025-06-10 01:04:52 +00:00
common Proper character HP in battle, fix some ordering issues 2024-05-25 13:07:56 +03:00
gameserver Added character parameters and manual combo switch to the config file 2025-06-10 00:55:36 +00:00
protocol Proper AccountUID/PlayerUID implementation, RpcCreatePlayer 2024-05-31 20:31:22 +03:00
qwer Proper character HP in battle, fix some ordering issues 2024-05-25 13:07:56 +03:00
sdkserver Use recently stabilized std::sync::LazyLock and remove lazy_static 2024-05-27 23:19:03 +03:00
.gitignore Server configuration rework 2024-05-24 19:45:45 +03:00
Cargo.toml Use parking_lot::RwLock instead of tokio::sync::RwLock 2024-06-02 22:27:43 +03:00
LICENSE Initial commit 2024-03-19 01:42:32 +00:00
README.md Update README 2025-06-11 21:35:48 +00:00

HollowPS TV experiments

A Server emulator for closed beta test 1 version (cbt1) of the game Zenless Zone Zero with 5 custom levels and a few new features. Based on HollowPS.

It's just a glimpse at how custom levels for TV mode can be built for ZZZ private servers.

I'm nowhere close Xeon's skill level, so my code is held together by dact-tape and "if" statements and definitely isn't accurate to cbt1, but I wanted this version of the game to have a bit more content to play and new TV-mode levels in general. Also it was pretty fun to make.

They were balanced for lvl 5 3-star characters with fully unlocked talents. That's what you'll get by default (can be freely adjusted in the config file). All characters are restored to full hp at the end of combat and fallen allies are revived, you lose only if your entire team has fallen or if you fail a time trial

A separate server that spawns you in the city is included with prebuilt binaries. I didn't do anything with it, so there is nothing to do there, but if you are curious how the sixth street looked back then, you can take a look.

Levels:

  • Prologue remix
  • Rescue
  • Lost and found - rework of the "disaster level" I made previously
  • Engulfed by the Hollow - a very strict time limit challenge. I tested it and every character is viable for beating it.
  • High-Risk (descent) - A combat gauntlet with overleveled enemies akin to the battle tower.

Changes from normal HollowPS:

  • New levels can be added (quests themselves are added in "../gameserver/src/net/handlers/world.rs") and quests actually will send you to different grid maps instead of every HDD quest sending you to the same map (you need to specify which quest links to which map in "../gameserver/src/net/handlers/hollow.rs" and the maps themselves are hardcoded into the server in "../gameserver/src/game/manager/hollow_grid.rs" and can be edited there)

  • 5 Custom levels designed by me and built into the server, sorted by difficulty in the HDD. I wanted them to be non-linear except for 1 which is just a strict time trial(don't get fooled by it being lvl 1, it's the hardest level in the Cretan Hollow). Idk how well I accomplished that though.

  • Different time of day and weather for every commission. ChessboardID ultimately controls this and some battle encounters have set parameters, but the time of day is left blank for most IDs so it can be changed in "hollow.rs". (ChessboardIDs with their weather and time of day params can be found in ChessBoardPerformTemplateCollection in extras)

  • Levels can be replayed now without logging out

  • Separate battle lists for every level (again, hardcoded in "hollow_grid.rs" and can be edited there. All of the game's battle Ids can be found in BattleEventConfigTemplateCollection in extras).

  • Character parameters (level, ascension, star rank, talents(proto mindscapes), skill levels) and use of manual chain attacks can now be set in the config file

  • EvenGraphTemplateCollection in "../assets" is edited for new levels and is no longer accurate to the original game

  • VisibleAtGridAround tiles

  • TV screens in the room light up

Installation

From Source

Requirements

NOTE: Nightly Rust is required to build the project. To install it, first install Rust itself, then run the following command:

rustup toolchain install nightly
rustup default nightly

Building

git clone https://git.xeondev.com/inkursion/HollowPS_TV_experiments.git
cd HollowPS
cargo install --path gameserver
cargo install --path sdkserver

From Pre-built Binaries

Navigate to the Releases page and download the latest release.

Usage

To begin using the server, you need to run both the SDK server and the game server.

If you installed from source, Rust's installer should have added .cargo/bin to your path, so simply run the following:

nap-gameserver
nap-sdkserver

If you installed from pre-built binaries, navigate to the directory where you downloaded the binaries and either a) double-click on the following executable names or b) run the following in a terminal:

./nap-gameserver
./nap-sdkserver

Once you get into the game world, DON'T TOUCH THE SOFA! You will be stuck on a black screen until you restart the game

Configuration

The game server can be configured using a gameserver.json file. Configuration file with default settings will be created in the working directory upon first startup.

By default tutorial isn't skipped and manual chain attacks are disabled, so if you want to change these things, use it right away and restart the server

Further questions

For further questions visit the Reversed Rooms Discord server discord.gg/reversedrooms