Skip to content

About

OPX//77 billiards asset resource: isolated practice hosts, table cleanup and reproducible Open77 preload package.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OPX//77 · opx_pool_assets

Open77 preload assets for the OPX full-rack pool modes.

Checks · Framework · Documentation


What it contains

A separate Open77 asset resource, not another gameplay implementation:

  • Six legacy cooked hosts: ordinary/attached variants of a cue ball, a yellow object ball and a horizontal cue. Motion blur settings from the supplied hosts remain.
  • Ten supplied ArchiveXL table-cleanup patches, including a Coyote archive sidecar.
  • Three short CC0 recordings and a bounded spatial audio service.
  • A deterministic builder and checked preload ZIP under dist/.
  • Original source credits and provenance in NOTICE.md.

Three native aliases are reserved globally while this world pack is mounted:

Alias OPX use
recreation.tent White cue ball
recreation.sleeping_bag Yellow object ball
recreation.gym_equipment Horizontal cue

Open77's current supported prop catalogue supplies the spawn-safe host slots. These three slots must not be used for their original objects by other resources on the same server. The legacy pack replaced 25 aliases; this package excludes its food, medical and military replacements. It does not add native pool aliases or claim to remove the platform's catalogue limitation.

The resource includes a client entry point so that it is delivered in the signed Lua resource set and can satisfy Infinity's dependency during activation. The entry point does not mount archives or run gameplay. The manifest targets the client runtime version 0.0.1, independently of the Cyberpunk game build.

Recorded audio

Version 0.3.1 adds fifteen namespaced cooked visual hosts, one for each vanilla object-ball mesh (ball_c through ball_q). Infinity registers them with Open77.props.registerModel on op77.152 or newer and uses the model IDs returned by that API. Raw mesh paths alone can display fallback cylinders and are no longer used by the default full rack. These hosts reserve no additional global aliases. Use the matching Infinity update that requires asset version 0.3.1.

After installing this update, restart the dedicated server and fully close the game, then launch it again through the Open77 launcher to mount the new archive. A server reconnect inside an already-running game does not mount new archives. The current ArchiveXL cleanup and its installation requirements are unchanged.

Version 0.2.0 adds three short recordings of real billiard contacts (cue, ball, pocket), packaged as mono PCM WAV. Rail taps reuse the ball clip at lower gain. See credits and CC0 provenance and audio/sources.json. The audio files travel in the signed Lua resource set, separately from the unchanged cooked archive; the resource owns eight bounded spatial audio voices. Only Infinity can invoke its closed pool_audio and pool_audio_clear client exports. No audio URL is fetched at gameplay time.

Installation

  1. Install this repository as resources/opx_pool_assets alongside opx_infinity. The committed ZIP is ready; Python is needed only to rebuild it.
  2. Table-decoration cleanup needs the Open77 ArchiveXL port for Cyberpunk 2.5, published as 1.27.5-open77.6. Do not substitute the older 2.31 build. The stable platform catalogue checked on 2026-10-24 (generation 82) has no standalone archivexl entry: requesting that indexed ID makes the launcher refuse the world. The example leaves packages empty deliberately. To distribute this loader as a hosted executable, inspect it in Warden and confirm that its exact hash has a verified platform verdict before requiring it on a secured world. A release on GitHub alone does not provide that verdict. Until then, decoration cleanup is unavailable; delivery of this repository's inert archive does not prove cleanup works.
  3. Add opx_pool_assets before opx_infinity in resources.load, preserving your other resources. Do not load the archivexl resource on a secured server: its automatic preload contains a DLL and is deliberately refused by Open77.
  4. Keep requiredMods.enabled: true and your current security policy. The configuration example uses unsecured: false. Merge its entries into your existing configuration; do not replace the rest.
  5. Stop loading nc_pool and its old preload on this world; loading both would reintroduce the original host conflicts.
  6. Restart the dedicated server. Every player must fully quit Cyberpunk and reconnect through the Open77 launcher. It downloads/projects the new world package before starting the game. A Lua reload cannot mount archives mid-game.
  7. Configure the practice table in opx_infinity/config/pool.lua. Model aliases must match the table above. The ten table presets are in the framework.

The launcher downloads opx_pool_assets-assets from your Open77 resource HTTP endpoint. This does not install or validate ArchiveXL. No Fivemanage key is involved: these are cooked 3D assets mounted at game boot.

Layout and rebuilding

assets/hosts/cyberm/entities/props/       six cooked entity sources
assets/cleanup/archive/pc/mod/           supplied world-cleanup patches
asset-manifest.json                     source hashes, buffer sizes and mappings
tools/build.py                          Python 3.10+ standard-library builder
dist/opx_pool_assets.zip                 game-root relative preload
open77.lua                              resource, audio files and permissions

Run python3 tools/build.py, then python3 -m unittest discover -s tests -v. The builder stores entity headers uncompressed and preserves the supplied KARK buffers. It needs no game install or proprietary compressor. Rebuilding identical sources produces identical bytes. Tests independently read archive headers, indexes, CRC64, source segments and ZIP membership.

Live validation

Server package publication and automated tests do not prove rendered shape, pivot, size or table alignment. Check the white/yellow balls, horizontal cue, movement, pockets and a second spectator after a fresh launcher boot. The active Coyote patch is packaged as 0_opx_pool_hosts.archive.xl, beside its matching archive. ArchiveXL discovers that sidecar even when the depot mounts archives individually without a directory base path; arbitrary standalone .xl files are not discovered through that route. Other supplied patches remain unchanged. The Coyote patch content and node-count/type guards are preserved. ArchiveXL cleanup is tied to the recorded sector/node counts; a mismatched game sector leaves its original decorations in place. Check ArchiveXL's client log.

Contributing and credits

See CONTRIBUTING.md, the organization's Code of Conduct, Support and Security. Read NOTICE.md: the tooling licence excludes third-party assets.

The native registry requires both mesh and visual-host paths under open77/assets/<registering resource>/. The hosts are packaged under the Infinity namespace, and the archive sidecar links fifteen mesh names in that same namespace to their vanilla ball meshes using ArchiveXL resource.link. No game mesh data is redistributed. Keep ArchiveXL enabled and restart the game to mount version 0.3.1.

About

OPX//77 billiards asset resource: isolated practice hosts, table cleanup and reproducible Open77 preload package.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages