A modern, source-driven Director runtime and desktop companion for Habbo Origins.
Download • Documentation • Plugin API • Discord
Shockless imports a user-supplied compiled client, builds a local playable profile, and runs it through a human-readable TypeScript runtime that implements the Director behavior the client expects. The Electron companion provides the game host, client importer, plugin manager, packet tools, multi-session controls, updater, and diagnostics around that runtime.
This repository includes both the desktop application and engine source under the GNU Affero General Public License v3.0. Playable client files are not bundled.
Compiled Director client (.dcr/.cct) → Shockless ProjectorRays extraction → Lingo and cast metadata → generated TypeScript profile → Shockless Director runtime → PixiJS rendering and browser APIs → playable client inside Electron
- Import and decompile: the importer copies the selected client into an isolated profile and extracts its Director movies, casts, scripts, text fields, bitmap media, palettes, and manifests without modifying the original files.
- Generate executable TypeScript: the profile compiler converts the extracted Lingo handlers into native TypeScript modules and builds registries that preserve the original cast, member, script, and asset identities.
- Run the Director model: the Shockless Director runtime provides the movie, score, sprite, cast, member, event, list, networking, imaging, and eight-channel sound behavior expected by the generated client code.
- Render and present: PixiJS presents Director sprites, text, bitmaps, inks, rooms, avatars, furniture, and UI through the browser renderer. The Electron app hosts that renderer and adds importing, plugins, sessions, packet tools, settings, diagnostics, and updates.
- Reuse the profile: later launches use the generated local profile directly. Exact source and pipeline fingerprints allow an unchanged ready profile to skip unnecessary extraction and compilation work.
- Source-driven Director/Lingo compatibility with PixiJS rendering.
- Director-compatible audio with eight independent channels, queues, loops, offsets, fades, pan, volume, mute, ordinary client sounds, and source-controlled Trax playback.
- Guided client import with detailed stages, progress, timings, and reusable profiles.
- Persistent Origins realm selection for US / UK, Spain, and Brazil / Portugal, including complete regional boot data and service routing.
- Optional Steam login for Steam-linked Origins accounts while retaining Shockless packet relay, plugins, and companion features.
- Responsive game stage, zoom, session switching, custom cursor support, and performance controls.
- RuneLite-inspired plugin manager with schema-rendered panels and persistent settings.
- Sandboxed user plugins with documented room, user, furniture, chat, packet, session, storage, timer, and UI APIs.
- Readable packet log and backtick console with per-session filtering and raw packet injection.
- Visible and headless multi-session support with per-client command routing.
- Signed update metadata with SHA-256 verification and restart-to-install updates.
- TypeScript 7 toolchain with TypeScript 6 compatibility checks.
- Download the latest portable archive from GitHub Releases.
- Extract the complete
Shocklessfolder. - Run
Shockless.exe. - Choose Import/Build Client and select a compatible compiled client folder or an existing Shockless profile.
- Select the Origins realm to connect to: US / UK (OUS), Spain (OES), or Brazil / Portugal (OBR). US / UK is the default.
- For a Steam-linked account, enable Steam Login for the profile and keep the Steam desktop client running and signed in. Standard email/password login remains available.
- Wait for Validate profile to report that the profile is ready, then press Start.
Imported profiles remain local under the portable app's clients/ folder and are reused on later launches.
The selected realm persists in Shockless settings and controls the regional game/MUS endpoints, boot casts, external variables, external text, gamedata, and public API data used by later launches.
Steam Login is opt-in and stored per profile. It requires the Windows Steam client and an Origins account already linked to Steam.
Requirements: Node.js 20 or newer, npm, and Windows for portable packaging.
cd src/engine
npm install
npm run build
cd standalone
npm install
npm run compile
cd ../../shockless-app
npm install
npm run package:portableThe packaged app is written to src/shockless-app/dist/portable/Shockless. The public source includes a minimal generated registry placeholder so a clean checkout can build before a user imports a client.
The verified Shockless ProjectorRays executable is included for normal builds. Its MPL-2.0 source is under src/engine/native/projectorrays. Contributors with MSYS2 UCRT64 and its native dependencies can rebuild it from src/shockless-app with npm run build:projectorrays.
| Path | Purpose |
|---|---|
src/shockless-app |
Electron/React app, relay, plugin host, updater, and packaging |
src/engine |
Director-compatible engine and standalone profile importer |
src/engine/native/projectorrays |
Source for the deterministic Shockless import extractor |
docs |
Self-contained offline HTML documentation and plugin API |
- Documentation Home
- Getting Started
- Building From Source
- Plugin Authoring
- Complete Plugin API
- Console Commands
- Multi-Client Sessions
Shockless uses ProjectorRays resources in its Director/Shockwave import workflow. ProjectorRays is maintained by the ProjectorRays project.
Shockless is licensed under the GNU Affero General Public License v3.0.
Shockless is not affiliated with, endorsed, sponsored, or specifically approved by Sulake Corporation Oy or its affiliates.