Open77 preload assets for the OPX full-rack pool modes.
Checks · Framework · Documentation
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.
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.
- Install this repository as
resources/opx_pool_assetsalongsideopx_infinity. The committed ZIP is ready; Python is needed only to rebuild it. - 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 standalonearchivexlentry: requesting that indexed ID makes the launcher refuse the world. The example leavespackagesempty 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. - Add
opx_pool_assetsbeforeopx_infinityinresources.load, preserving your other resources. Do not load thearchivexlresource on a secured server: its automatic preload contains a DLL and is deliberately refused by Open77. - Keep
requiredMods.enabled: trueand your current security policy. The configuration example usesunsecured: false. Merge its entries into your existing configuration; do not replace the rest. - Stop loading
nc_pooland its old preload on this world; loading both would reintroduce the original host conflicts. - 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.
- 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.
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.
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.
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.