REDNODE / DOCS

Example apps

Every app REDnode ships or was tested with, 42 in all, each running live on its page. Read the code beside the result, copy it with one click, and change it into your own.

Overlay apps are web pages drawn over the game: HTML, CSS and the REDnode UI kit.

HUD widgets are overlay apps that sit on the HUD and never take input.

Node mods run in Node beside the game, and build windows with the ui builder.

The previews run each app's real code. The game is simulated on this page: V walks about, and the buttons under each preview load a save, open a menu or switch F10 modes, so you can see how an app reacts.

Start here

Small, complete examples of each kind of package.

Overlay apps

Web pages drawn over the game: the UI kit, custom shapes, input and window layers.

Native buttonOverlay app A button and menu with no window around them, styled like the game, so they look like part of its UI. theme="hud" rn-menu data-rednode-drag RednodeUI.notify SignalOverlay app A round widget drawn with SVG: a ring that sweeps once a minute, a clock, and a Ping button that times a call to the game. SVG window.rednode.call window.rednode.on click-through Proof-of-concept demoOverlay app The overlay's proof of concept: live drawing, input, calls to the game and events from it, each in a tile. requestAnimationFrame window.rednode.call window.rednode.state window.rednode.on Game stateOverlay app A table of what the game is doing: menu, photo mode, scene and its tier, main menu, whether V is in the world, with a short log of changes. ui-state event window.rednode.on PerfOverlay app REDnode's cost each second: the game's frame rate, the overlay's CPU and GPU time per frame, and the host's memory. perf event window.rednode.on Task ManagerOverlay app Every running package and what it costs: CPU, memory, its thread's load and heap, game calls and service calls. End task stops one that misbehaves; Restart starts it again. "admin" permission window.rednode.tasks admin.tasks admin.endTask "front" permission Tools ManagerOverlay app Every tool an AI assistant can see through REDnode: REDnode's own and each mod's, what each does, whether it asks first, and a switch to take any of them away from every assistant. "admin" permission window.rednode.tools admin.tools admin.setTool

HUD widgets

Pages that sit on the HUD, never take input, and hide with the game's menus.

Node mods

Mods that run in Node, outside the game, with or without a window.

Game APIs

The game API, TweakDB, the world, sounds, REDbridge and REDagent.

Ask modNode mod Ask REDagent, the in-game assistant powered by Claude, a question from your own mod, and stream the answer into a window. agent.ask onText AbortController "agent" permission Game API modNode mod V's health, level and money read through the generic game API, eddies given with TransactionSystem, and what happens to old references after a load. api.GetPlayer api.GameInstance api.$call api.MarketSystem game.instance TweakDB testNode mod Read any TweakDB record, its flats and a method, list every vehicle, and change or clone records through TweakXL. tweakdb.type tweakdb.flat tweakdb.record tweakdb.records tweakdb.id Quest testNode mod Read, watch and set quest facts, read and track journal entries, and move V back to a kept spot: the calls for testing a quest in the running game. quests.facts quests.watch quests.setFact journal.entry journal.tracked World testNode mod Spawn an entity in front of V with a mesh component built by api.$new, move it in a circle as fast as the game allows, and remove it. world.spawn world.move world.remove world.on api.$new Sound testNode mod Play the package's own OGG, WAV, FLAC and MP3 files: music on a loop, effects, a voice, with pan, delay, pitch and fades. audio.play sound.set sound.stop sound.ended audio.playing Packaging testNode mod A manifest that requires other mods (Codeware, ArchiveXL, REDbridge and one that does not exist), and REDbridge reading the game's archives. requires kernel.requirements kernel.bridge "bridge" permission Hot swapOverlay app Swap an archive into the running game, sound mods included: type its name or path, press Swap, and swap it again from the list next time you build it. archives.reload "archives" permission requires kernel.requirements localStorage in an app Sound TracerOverlay app The game's sounds, live: every event it posts to its audio engine and every sound it loads, each with a button to play it again. audio.trace audio.event audio.playGame a window that never scrolls Sound SearchOverlay app Search the game's sound events by name, tag, event id or sound id, play any of their recordings, and keep what you find in a Scratch tab. audio.searchSounds audio.playGame audio.event ui.copy localStorage in an app

Tests and tools

What REDnode's own phases were tested with. Useful to read, rarely to copy.

Ink languageNode mod A HUD panel in the player's language: the game's own text by key, and the package's own text from locales files with a parameter, plurals and V's gender. It follows a language change in the game. t() locales/<language>.json LocKey# key game.language Ink listNode mod A list of contracts on the HUD built from data with ink.list, with buttons that add, remove, move and rename items, and a header rebuilt with mount.update. ink.list list.set({ items }) mount.update keys Ink stylesNode mod A gallery of the ink API's layout and look words on the HUD: every text style and tone, the plain and the game look, align, grow, gap, pad and icons, with buttons that change them live. ink.text style tone look align grow Layers testOverlay app A page covering the whole screen that takes the mouse everywhere, and solo mode, which hides every other package. ui.solo ui.onSolo "solo" permission Pointer lock testOverlay app A camera turned by raw mouse movement while the right button is held, with the web's Pointer Lock API. requestPointerLock movementX pointerlockchange StressOverlay app The worst case for the overlay: a large canvas where every pixel changes every frame. canvas requestAnimationFrame Ink testNode mod The spike of the ink API: reach the game's own UI, add widgets to it, hear clicks, time changes, open a game screen and read a screen's widget tree. api.$static api.$new inkCompoundWidget.AddChild RegisterToCallback StartHubMenuEvent Roles testNode mod Finds a service by its role with use("counter"), plays a sound it writes into its data folder, and hides a key typed into a password field. use provides audio.play from pkg.dataDir ui.input password Keys testNode mod Reads one of the player's shared keys with secrets.shared, asks for it with secrets.askShared, and moves a key the package kept itself into the shared store. secrets.shared secrets.askShared keys:<service> permission Frame testOverlay app Two sandboxed frames, which Chromium runs in processes of their own, one scaled to 0.8 with a frame inside it. Each has a button, a hover box, a text field, a slider and a wheel counter, and reports every event to the window's log. iframe sandbox postMessage Fill testOverlay app A see-through page that covers the whole game view at any aspect ratio, with "fill": "screen": a frame on its four edges, its size in the middle, and a panel kept at the right edge. "fill": "screen" innerWidth resize event World objects testNode mod Spawn a person and a prop, list what is near V with the files each uses, load an EDGEbuilder scene around V, and swap an archive to see what its refresh does to the world. world.spawn world.move world.near world.files world.load Refresh testNode mod Swap an archive, then try each way the game offers to load again what is already in the world: V's clothes, the inventory's preview of V, what V looks at, a spawned object. archives.reload api.GameInstance TransactionSystem tweakdb.records TargetingSystem