Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shockless

Shockless

A modern, source-driven Director runtime and desktop companion for Habbo Origins.

Latest release Platform: Windows Language: TypeScript 7 Runtime: Electron and PixiJS License

Download  •  Documentation  •  Plugin API  •  Discord

What Is Shockless?

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.

How It Works

Compiled Director client (.dcr/.cct)Shockless ProjectorRays extractionLingo and cast metadatagenerated TypeScript profileShockless Director runtimePixiJS rendering and browser APIsplayable client inside Electron

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Highlights

  • 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.

Screenshots

Main App Screenshot

Decompiling

Decompiling

Hotel View Select

Hotel View Select

Resizable Client (Very buggy, especially with Hotel Views)

Resizable Client (Very buggy, especially with Hotel Views)

Plugin Manager

Plugin Manager

Settings

Settings

Loading

Loading

In-Game

In-Game

About

About

Quick Start

  1. Download the latest portable archive from GitHub Releases.
  2. Extract the complete Shockless folder.
  3. Run Shockless.exe.
  4. Choose Import/Build Client and select a compatible compiled client folder or an existing Shockless profile.
  5. Select the Origins realm to connect to: US / UK (OUS), Spain (OES), or Brazil / Portugal (OBR). US / UK is the default.
  6. 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.
  7. 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.

Build From Source

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:portable

The 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.

Repository Layout

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

Credits

Shockless uses ProjectorRays resources in its Director/Shockwave import workflow. ProjectorRays is maintained by the ProjectorRays project.

License

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.

Releases

Packages

Contributors

Languages