Contraband

Collapsible Game Boy popup with 7 mini-games (Snake, Breakout, Tetris, 2048, Flappy, Pong, Simon) plus a real Game Boy / GBC emulator (binjgb — bring your own ROM), sound, palettes and LCD FX to kill dead flight time on Torn's travel screen. Cosmetic, offline, no game-state access.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(Tôi đã có Trình quản lý tập lệnh người dùng, hãy cài đặt nó!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Tác giả
BreadHerring
Cài đặt hàng ngày
0
Số lần cài đặt
4
Đánh giá
0 0 0
Phiên bản
1.8.1
Đã tạo
07-07-2026
Đã cập nhật
09-07-2026
Kích thước
100 KB
Giấy phép
MIT
Áp dụng cho

Contraband

A single self-contained userscript that drops a collapsible, Game Boy–styled handheld onto Torn's travel screen while you're in transit — with seven built-in mini-games and a real Game Boy / Game Boy Color emulator — to kill the dead flight time.

It is purely cosmetic: it never reads or writes Torn game state, never touches the API, and never automates anything. Everything runs in your browser — its only network request is fetching its own emulator core once from a CDN — which keeps it firmly on the QoL/UI side of Torn's scripting rules by design.

Install

Install a userscript manager — Tampermonkey / Violentmonkey on desktop, or the Torn PDA userscript feature on mobile — then add contraband.user.js.

It appears on Torn's travel screen — whether you're flying or abroad — via a PLAY GAME / HIDE GAME toggle injected into the travel header (next to Travel Table / Computer).

Games

Snake, Breakout, Tetris, 2048, Flappy, Pong (vs CPU), and Simon. Open the menu to pick one; the shell remembers your last game.

Emulator

The eighth menu entry, EMULATOR, runs real Game Boy and Game Boy Color ROMs.

Bring your own ROM. The first time you open it, tap the screen to load a .gb / .gbc file. The last ROM you load is remembered and boots automatically on future flights. (Load only ROMs you are legally entitled to use — dump your own cartridges; no ROMs are included.) Pause menu — press Start + Select together while playing:

RESUME SAVE STATE / LOAD STATE — three slots per ROM LOAD ROM — switch to a different game SPEED — 1× / 2× / 3× fast-forward (great for grinding) BACKUP / RESTORE — see below EXIT — back to the game menu

Battery saves persist automatically per ROM, and black-and-white games use your selected shell palette (DMG / Pocket / Amber). Colour games render in colour. Sound follows the toy's SOUND setting. Backup / Restore. BACKUP bundles every ROM's battery saves and save-state slots into a single contraband-saves.json (it does not include the ROMs themselves), and also copies it to the clipboard if it's small. RESTORE reads one back via the file picker. Save the file into your Files app and it rides along with your device's normal backup.

How the emulator core loads

The Game Boy core is binjgb (MIT) compiled to WebAssembly. The readable core glue is inlined in the script; the .wasm binary is fetched once from a version-pinned jsDelivr URL, checked against a pinned SHA-256 before it runs, and cached for offline replay. No eval, no remote code execution.

Controls

D-pad: arrows / WASD, or the on-screen pad (touch). A: Z / J / Space · B: X / K · Start: Enter · Select: Right-Shift. In a game: Start pauses, Select ejects to the menu. In the emulator: all eight buttons drive the ROM; Start + Select opens the pause menu (that's also where you exit).

Settings

From the game menu → SETTINGS: sound on/off, LCD FX (CRT scanlines + ghosting), palette (DMG / Pocket / Amber), haptics, Snake walls/wrap, a hi-scores table, and reset scores. New game records prompt for 3-letter arcade initials. The handheld can be dragged to move and resized with the corner grip; both persist.

Privacy & safety

Everything runs locally in your browser. Contraband makes exactly one network request — fetching its own emulator .wasm from jsDelivr (declared via @connect cdn.jsdelivr.net) — and otherwise touches nothing outside its own storage. It does not read Torn game state, call the API, or automate any action.

Tuning detection

Detection keys off confirmed in-flight markers (, .content-wrapper.travelling, and the #travel-root flight scene). If it doesn't auto-appear, in the console: CONTRABAND.debug() / .force('on'|'off'|'auto') / .signals() / .toggle(), or add #cb-debug /

cb-on / #cb-off to the URL.

Credits & license

Contraband is MIT — see LICENSE. Emulator core: binjgb by Ben Smith, also MIT.