Skip to content

Releases: Edgemodders/REDnode

REDnode 0.50.2

Choose a tag to compare

@github-actions github-actions released this 01 Nov 22:55

New

  • A page that covers the whole game view at any aspect ratio (#32): "fill": "screen" in rednode-app.json makes the page 1080 high and as wide as the view (1920 at 16:9, 2580 at 21:9, 3840 at 32:9), at the top-left, and resizes it when the game's resolution changes. For an editor's see-through canvas over the world, such as EDGEbuilder's. See https://edgemodders.github.io/REDnode/overlay-apps.html#a-page-that-covers-the-whole-game-view
  • Frames from another address get the mouse and keys (#31): a page that shows a page from http://127.0.0.1:<port>, another site or a sandboxed frame in an <iframe> can now be used in the game. Clicks, the wheel, hover, drags and typing reach the frame, through CSS transforms and frames inside frames, as real input. See https://edgemodders.github.io/REDnode/overlay-apps.html#frames-from-another-address
  • Two test samples: Fill test and Frame test.
  • On a page that covers the game view, a draggable window (<rn-window draggable>) moves inside the page, its place kept across starts, with Reset position in its title bar. The page and whatever else it draws stay put.

Fixed

  • Dragging the Layers test's window moved its full-screen tint with it. It now covers the game view with "fill": "screen", so the tint stays and only the window moves.

Also attached: REDnode Admin Tools 0.1.0 (REDnode-Admin-Tools-0.1.0.zip). An optional app pack for managing REDnode itself: the Task Manager (what every package costs, End task, Restart) and the Tools Manager (every tool an AI assistant sees, switched on and off). Extract it into the game folder after REDnode; it needs REDnode 0.37.0 or later. Guide: https://edgemodders.github.io/REDnode/admin-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/admin-tools/changelog.md)

Also attached: REDnode Sound Tools 0.1.1 (REDnode-Sound-Tools-0.1.1.zip). An optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Hot swap swaps through REDswap, which REDnode 0.41.0 installs. Extract it into the game folder after REDnode; it needs REDnode 0.41.0 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/sound-tools/changelog.md)

Also attached: REDswap 1.0.3 (REDswap-1.0.3.zip), the archive swap plugin on its own, for tools and players without REDnode. REDnode's zip already has it. Nexus: https://www.nexusmods.com/cyberpunk2077/mods/36172 (changelog: https://github.com/Edgemodders/REDnode/blob/main/native/redswap/changelog.md)

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.49.5...v0.50.2

REDnode 0.49.5

Choose a tag to compare

@github-actions github-actions released this 01 Nov 00:30

New

  • The Console, built into REDnode: a command line for the game, like a browser's developer console, opened from the launcher. Type JavaScript with the whole rednode package ready (game, api, tweakdb, world and the rest, no imports), and Enter runs it: top-level await, variables kept between entries, results you can fold open, game objects you can call from the next entry ($1, $_), errors in red, history with Up and Down, Tab completion. Shortcuts for routine jobs: addItem("Items.Pants_01_basic_01"), removeItem, pos(), tp(x, y, z); help() lists them. The code runs in the Console's own Node mod, so an endless loop stops only the Console: Stop starts it again. No Cyber Engine Tweaks needed.
  • The editor channel (#17): tools on the player's PC, such as EDGEwave in VS Code, can play a game sound event in the running game, and stop it, with the game's own mix. While REDnode runs it writes %LOCALAPPDATA%\REDnode\editor.json with a local port and a token made new each run; the calls are POST /editor/sound.play, /editor/sound.stop and GET /editor/info. Local only, refused to web pages; "editorChannel": "off" in REDnode's settings turns it off. See the Overlay apps guide, "Editor tools".
  • game.player.addItem(id, count?) and game.player.removeItem(id, count?) put items in V's inventory, or take them out, by their TweakDB id, as Cyber Engine Tweaks' Game.AddToInventory does. addItem refuses an id with no record, so a typo is not given as an empty item.
  • api.$null passes no object on purpose, for an object parameter the game does not mark optional (MCP: {"$null": true}).
  • Roles (#20): a package can provide a role, such as "provides": ["voice"], answered by its service file, and any mod reaches it with use("voice") without knowing which package that is. When two installed packages provide a role, the player picks the one that answers in the Mod Manager's new Provides section.
  • audio.play plays a file from the package's data folder (pkg.dataDir) by its full path, for sounds a package makes while it runs, such as spoken lines.
  • ui.input({ password: true }): a text field that shows dots, for a key or a password.
  • The Roles test sample checks all three.
  • Keys in the launcher's Settings, a panel that slides out beside them (#23): the player's AI service keys (Anthropic, Google Gemini, OpenAI, ElevenLabs, or any other by its id), set once in the game and read by every EDGE tool on the PC. Each line shows only the key's last 4 characters and which tools have used it, with Set, Replace and Remove; an Anthropic or OpenAI key that does not start the right way is refused. Keys are kept encrypted for the Windows user in %APPDATA%\Edgemodders\keys. See https://edgemodders.github.io/REDnode/keys.html
  • EDGEmat's material tools for in-game assistants: REDnode now ships EDGEmat's MCP server (@edgemodders/edgemat-mcp 0.3.1) and runs it when an in-game assistant such as REDagent first needs it, with REDnode's own Node, the game folder and REDbridge. Its tools are listed as edgemat__mat_*: searches and descriptions run without asking, edits and new materials ask the player first, and the Tools Manager switches them. Desktop assistants such as Claude Code get EDGEmat through EDGEchat instead ("edgematTools": "all" in REDnode's settings lists them there too). See https://edgemodders.github.io/REDnode/mcp.html#edgemats-tools-e1
  • game.state().world (#25): true only while V is in the world, false while the game starts, at the main menu and from the start of every load, the pause menu's too, sent through game.onState as it changes. Mods read the world's systems (time, weather, districts) only while it is true.
  • loc.text(key) (#26): the game's own text for a LocKey, such as a district's or an item's name, in the player's language: await loc.text("LocKey#10963") gives "Little China" in English. An array of keys is read in one round trip, and an unknown key gives null. loc.language() gives the language.
  • Packages can use the player's shared keys (#23): list "keys:anthropic" (or any other service) in permissions, read it with secrets.shared("anthropic"), and ask for it with secrets.askShared("anthropic", { reason, offer }), which opens REDnode's own Key request window: the player allows the package and, when no key is saved, pastes one, or moves the key the package kept itself. The package never sees the window's box, and never writes the store. The Mod Manager shows and withdraws the permission. See https://edgemodders.github.io/REDnode/keys.html
  • The Keys test sample checks shared keys with a made-up service.
  • api calls take script_ref parameters: pass the value itself, as in api.GetLocalizedText("LocKey#10947").
  • Resizable windows: "resizable": true in a package's rednode-app.json (with minWidth and minHeight) gives its rn-window a grip in the bottom-right corner. REDnode keeps the size with the window's position, and Reset position and size in the title bar goes back to the manifest's. See https://edgemodders.github.io/REDnode/overlay-apps.html#resizable-windows
  • The Mod Manager is resizable, its table shows as many rows a page as fit, and its columns are resized by dragging the edges in the header. The details beside the table slide shut to the right, and open again, with the tab between them. Column widths and the shut details are kept for the next visit.
  • The Mod log has a close button.

Changed

  • An archive swap with the inventory open refreshes the inventory's preview of V on its own (#28). With V's clothes in the base slots, the game hides V's own items while the inventory shows, so the preview was skipped and kept the old look until the item was taken off and put on again.

  • world.move keeps the new place of the package's own spawns, and a respawn after an archive swap reads where the entity is now, so an entity moved since its spawn (by world.move, physics or a script) comes back there, not where it was first spawned (#27). Assistants' spawns through MCP do the same.

  • The launcher's window is wider (1040 pixels, was 690) to make room for Keys beside Settings; its empty parts stay see-through and click through to the game. A launcher you moved goes back to its corner once.

  • While V is not in the world, api refuses the game's global and static functions that take a GameInstance (the gates to the world's systems, such as GameInstance.GetWeatherSystem) with "V is not in the world yet", where some crashed the game (#25). GetPlayer and GetSettingsSystem stay allowed: they answer safely without a world.

  • Until the game first says what it shows, game.state() reports the main menu, so a mod linked while the game starts never takes it for a loaded save.

  • Keys: while a key is encrypted and saved (about a second), its line says "Encrypting the key…" in place of the box, and "Removing the key…" while one is removed.

  • Keys: Other service id refuses what looks like a key (long, a key's prefix such as sk- or AIza, a long run of digits) and clears the box, so a key pasted there by mistake never becomes a file name or a log line. Service ids are now 1 to 24 characters.

  • Counter service 0.3.0 provides the counter role.

  • A plain null for an object parameter the game does not mark optional is refused with an error naming the parameter, instead of being passed as an empty object: many game functions use such a parameter without checking it, and GetItemName with a null item data crashed the game (#18). The game API's types no longer allow null there.

Fixed

  • An archive swap through REDswap that replaces an archive with one holding fewer files now lets the files it left out load from the game, or another mod, again (#29). Before, they kept the old archive's version until the game restarted, so a mod could not restore the game's own look by swapping its file out. Comes with REDswap 1.0.3.
  • A drag inside an overlay page now holds on when the cursor leaves the element it started on: mouse moves tell the page which button is held (buttons is 1 while the left button is down), so setPointerCapture works. Before, a page's own drags, such as a resize grip, stopped after a few pixels.
  • The Console showed only Uncaught: for an error whose first line is longer than 80 characters, such as "V is not in the world yet: ...": the whole message shows now.
  • A static function's full name now works with class (api.$static("UIItemsHelper", "GetItemName;TweakDBIDgameItemData", ...), or the MCP tools' class and fn), with or without the class in front.
  • The MCP tool api_read accepts a full name that starts with its class, such as gameUIItemsHelper::GetItemName;TweakDBIDgameItemData.

Other

  • The Nexus release tool (tools/nexus/nexus.mjs) takes an optional "tag" in nexus.json, the prefix of a page's own release tags, such as "wardrobe-designer-v", for a page released apart from its repo's v<version> tags (#30).
  • Shared keys, first part (#23): one store for the player's AI service keys that every EDGE tool on the PC can read, %APPDATA%\Edgemodders\keys\<service>.txt encrypted for the Windows user, and a small MIT library for tools to copy, tools/keys/keys.mjs. Packages reach it with secrets.shared and secrets.askShared (above). See https://edgemodder...
Read more

REDnode 0.41.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 17:38

New

  • REDswap, a plugin installed with REDnode (red4ext/plugins/REDswap), swaps archives into the running game on game 2.5, so archives.reload and the MCP tool archives_reload no longer need RED Hot Tools, which has no 2.5 build. Its swap is ported from RED Hot Tools (MIT, by psiberx). The answer says via: "redswap". RED Hot Tools is still used when REDswap is not loaded. REDswap has its own version (1.0.0), changelog, docs page (https://edgemodders.github.io/REDnode/redswap.html) and Nexus page (https://www.nexusmods.com/cyberpunk2077/mods/36172), and its own zip beside REDnode's in each release.

Fixed

  • A game function with overloads of the same name can be called by the plain name when that is one overload's full name (such as DelaySystem.DelayEventNextFrame); it was refused as ambiguous, though the error said to use the full name.
  • After an archive swap, the inventory's preview of V now shows the new version of what V wears too, with the inventory open or closed (it kept the old look until the item was put on again). The answer of archives.reload lists it in preview. Needs Codeware.

Also attached: REDnode Admin Tools 0.1.0 (REDnode-Admin-Tools-0.1.0.zip). An optional app pack for managing REDnode itself: the Task Manager (what every package costs, End task, Restart) and the Tools Manager (every tool an AI assistant sees, switched on and off). Extract it into the game folder after REDnode; it needs REDnode 0.37.0 or later. Guide: https://edgemodders.github.io/REDnode/admin-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/admin-tools/changelog.md)

Also attached: REDnode Sound Tools 0.1.1 (REDnode-Sound-Tools-0.1.1.zip). An optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Hot swap swaps through REDswap, which REDnode 0.41.0 installs. Extract it into the game folder after REDnode; it needs REDnode 0.41.0 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/sound-tools/changelog.md)

Also attached: REDswap 1.0.0 (REDswap-1.0.0.zip), the archive swap plugin on its own, for tools and players without REDnode. REDnode's zip already has it. Nexus: https://www.nexusmods.com/cyberpunk2077/mods/36172 (changelog: https://github.com/Edgemodders/REDnode/blob/main/native/redswap/changelog.md)

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.40.1...v0.41.0

REDnode 0.40.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 15:42

New

  • world.spawn({ mesh }) spawns a prop from a mesh alone, and a Character.* record now stands where it was placed and stays friendly to V. keep: true keeps a spawn in the save.
  • world.load() and world.unload() load an EDGEbuilder scene file into the running game: its meshes, entities and NPCs (lights not yet).
  • world.near() lists the entities near V with the files each one uses, read in the game in one call; world.files() reads one entity's files; world.spawned() lists your package's spawns.
  • What a package spawns is removed when the package stops.
  • After an archive swap (archives.reload), your spawns that use a swapped file are spawned again (world.onRespawn tells you their new ID), and the game's entities within 30 m of V that use one switch appearance and back, so they show the new version. The answer lists them in world. Untested in game until RED Hot Tools supports game 2.5.
  • MCP tools world_near and world_spawned (read), and world_spawn, world_remove and world_load (ask first).
  • Connect Claude Code (or another MCP client) without copying a token: it asks to connect, your browser shows a code, and REDnode shows the same code in the game with Allow and Deny. The connection stays across restarts; the launcher lists connected assistants with Revoke (#19). Copy setup still works for clients without sign-in.

Fixed

  • A Node mod's window with a ui.list() log and more controls than fit no longer squeezes the log to nothing: the log keeps at least 160 px and the window scrolls to reach it.

Also attached: REDnode Admin Tools 0.1.0 (REDnode-Admin-Tools-0.1.0.zip). An optional app pack for managing REDnode itself: the Task Manager (what every package costs, End task, Restart) and the Tools Manager (every tool an AI assistant sees, switched on and off). Extract it into the game folder after REDnode; it needs REDnode 0.37.0 or later. Guide: https://edgemodders.github.io/REDnode/admin-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/admin-tools/changelog.md)

Also attached: REDnode Sound Tools 0.1.0 (REDnode-Sound-Tools-0.1.0.zip). An optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Hot swap needs RED Hot Tools 1.3 or later. Extract it into the game folder after REDnode; it needs REDnode 0.26.15 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/sound-tools/changelog.md)

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.38.1...v0.40.1

REDnode 0.38.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 16:55

The first release for game version 2.5. It needs RED4ext 1.31 or later. For game 2.31, use REDnode 0.37.0.

Changed

  • REDnode moves to game version 2.5: it needs RED4ext 1.31 or later and no longer loads on 2.31 (REDnode 0.37.0 is the last for 2.31).
  • On 2.5, sound archive swaps and the Sound Tracer find the game's audio code again (the Tracer's hook on Wwise's PostEvent needed a new pattern).
  • The api types and the game API reference now come from game 2.5. 2.5 adds optional parameters to some functions (such as EquipmentSystem.GetActiveItem, for dual wielding) and renumbers some enums, which api passes by name, so calls written for 2.31 keep working.
  • Hot swaps of archives (archives.reload, the MCP tool archives_reload, the Hot swap app) wait for a RED Hot Tools release for 2.5.

Fixed

  • UI kit: typing in an rn-input or moving an rn-slider sent a page two input events, one of them the browser's own with no detail, so handlers reading e.detail.value threw (seen in Sound Tracer and Sound Search).

Also attached: REDnode Admin Tools 0.1.0 (REDnode-Admin-Tools-0.1.0.zip). An optional app pack for managing REDnode itself: the Task Manager (what every package costs, End task, Restart) and the Tools Manager (every tool an AI assistant sees, switched on and off). Extract it into the game folder after REDnode; it needs REDnode 0.37.0 or later. Guide: https://edgemodders.github.io/REDnode/admin-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/admin-tools/changelog.md)

Also attached: REDnode Sound Tools 0.1.0 (REDnode-Sound-Tools-0.1.0.zip). An optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Hot swap needs RED Hot Tools 1.3 or later. Extract it into the game folder after REDnode; it needs REDnode 0.26.15 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/sound-tools/changelog.md)

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.37.0...v0.38.1

REDnode 0.37.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:30

The last release for game version 2.31. Game version 2.5 is not supported yet: RED4ext will not load this REDnode on 2.5. The next release moves REDnode to 2.5, as soon as RED4ext, redscript and Codeware support it.

New

  • Development folders: in the launcher's Settings drawer, with Developer mode on, add folders from your own projects. Their packages run from there, with hot reload, instead of their installed copies, so a mod can be developed outside the game folder. The Mod Manager marks such a package DEV and names the copy it hides. A folder can be one package or hold several. See Development folders.
  • Mod services: a package names a service file in its manifest ("service": "service.mjs"), and every function it exports can be called by other packages through REDnode with service.connect("<package id>"), with timeouts, Stop, the caller's name and events (service.emit, $on). Overlay pages can call too. requires takes other REDnode packages by id. Samples: Counter service and Counter panel. See Calling other packages.
  • Service descriptions: the JSDoc above a service's functions describes them. REDnode checks each call's arguments against it before the function runs, the Mod Manager lists a package's functions, service.describe(id) answers it, and @tool, @readonly, @timeout and @event mark what an assistant may call, what only reads, a longer timeout and the events. rednode describe writes service.json from the source for bundled and TypeScript packages. See Describing a service.
  • Mods' tools for AI assistants: each service function marked @tool is offered to every assistant on REDnode's MCP server (Claude Code, REDagent) as <package>__<function>, with the author's description; @readonly ones run without asking, the rest ask the player first. mod_services, mod_read and mod_call reach tools of mods started later. See Mods' tools and the Tools Manager.
  • Tools Manager, in the new optional REDnode Admin Tools pack (its own zip): every tool an assistant can see through REDnode, REDnode's own and each mod's, with what it does and whether it asks first; switch any tool or mod off for every assistant (kept across starts), or start new mods' tools off; see which assistants connected and their recent calls.
  • Task Manager, in the Admin Tools pack too: every running package with its CPU, memory, its thread's load and heap, game calls and service calls; End task stops one, even one stuck in an endless loop, and Restart starts it again.
  • The admin permission: a package that asks for it, once the player allows it in the Mod Manager (with a warning), may see what every package costs, end or restart any package, and switch AI assistants' tools on and off, through admin in the rednode package. The Admin Tools pack's apps use it. See Admin Tools.
  • The UI kit's rn-window takes drawer: a panel that belongs to the page's main window, such as a settings drawer beside it. It has no title-bar actions but close, which only hides it, and the main window keeps its space, pin and reset actions.

Changed

  • A package can be a Node mod with only a service file and no main.
  • The launcher's settings (GPU sharing, Hot reload, MCP server, Developer mode, Open at start, Tooltips) moved to a Settings drawer beside it, opened with the gear at the right of the Theme row, one setting a row with a line on what it does. The launcher's title is now just REDNODE, so it no longer gets cut off. Its version line reads "Version 0.32.3" rather than repeating the name.

Fixed

  • The docs site's example previews load again: since 0.32.0 every preview stopped at a script error.

Other

  • The player zip's README says to switch the samples on in the Mod Manager. The docs correct several out-of-date pages: sound archives do swap (since 0.26.8), TweakDB writes exist, the manifest table lists every permission and field, and permissions are allowed in the Mod Manager.

Also attached: REDnode Admin Tools 0.1.0 (REDnode-Admin-Tools-0.1.0.zip). An optional app pack for managing REDnode itself: the Task Manager (what every package costs, End task, Restart) and the Tools Manager (every tool an AI assistant sees, switched on and off). Extract it into the game folder after REDnode; it needs REDnode 0.37.0 or later. Guide: https://edgemodders.github.io/REDnode/admin-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/admin-tools/changelog.md)

Also attached: REDnode Sound Tools 0.1.0 (REDnode-Sound-Tools-0.1.0.zip). An optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Hot swap needs RED Hot Tools 1.3 or later. Extract it into the game folder after REDnode; it needs REDnode 0.26.15 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/sound-tools/changelog.md)

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.32.1...v0.37.0

REDnode 0.32.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:57

For game version 2.31 only. Game version 2.5 is not supported yet: RED4ext will not load this REDnode on 2.5. REDnode moves to 2.5 as soon as RED4ext, redscript and Codeware support it.

New

  • The ink API (experimental, needs Codeware): Node mods build trees of the game's own UI widgets on the HUD (ink.mount, ink.column, ink.text and the rest), drawn by the game rather than the overlay. REDnode builds them again after a save load and removes them when the mod stops. The game look comes from the game's own style sheet: a text style (title, label, value and the rest) or a tone (normal, accent, danger and the rest) gives the game's exact sizes and colors with no styling by hand. Layout with gap, pad, align and grow; the game's icons by TweakDB record. Game values bound to texts and bars (bind: "player.health", ink.bar), read by the plugin every frame with no update code in the mod; lists from data (ink.list, mount.update) that send only what changed. See Native game UI. Text in the player's language: an ink text set to "LocKey#…" shows the game's own translation, and t() takes a package's own text from locales/<language>.json, with parameters, plurals and V's gender, and follows a language change. game.language() and the language event give the game's language. Samples: Ink Coords, Ink vitals, Ink styles, Ink list and Ink language.
  • Swapping an archive now shows the new version on the clothing V wears at once, without taking it off: archives.reload applies the worn items' appearance again after the swap, in the base game's slots and Equipment-EX's (with Equipment-EX in use only its slots, so items it hides stay hidden). { refresh: false } skips it; the answer's refreshed lists what was refreshed. The MCP tool archives_reload takes refresh too.
  • A package's requires can name rednode with a version, for app packs that need a REDnode new enough. The overlay host answers with its own version.
  • Each release on GitHub also carries the app packs' zips, such as REDnode Sound Tools, each as its own file.
  • The MCP tool api_read reads from the game without asking: it runs functions named like reads (Get, Is, Has, Can, Find) and a TweakDB record's methods, and refuses the rest. See the MCP server.
  • The Quest API, for testing a quest in the running game: quests.fact, quests.facts and quests.setFact read and set the game's quest facts, quests.watch hears each change of named facts as the game makes it (with no polling, kept across save loads), journal.entry, journal.setState, journal.track and journal.tracked read and change journal entries, and game.player.teleport moves V to a position or a world node. MCP tools for assistants: game_facts and game_journal read without asking; game_facts_set, game_journal_set and game_teleport ask first. See Quest API. Sample: Quest test.
  • New samples in the download, off until you switch them on: Ink Coords and Ink vitals (the game's own UI, need Codeware) and Quest test.
  • The Test timer is now a sample in the download, off until you switch it on: a stopwatch whose Mark writes the step and the time to the Mod log and red4ext/logs/rednode-mods.log, to match log lines to what you did while testing a mod.

Changed

  • Claude Code now asks you before every call of the MCP tools api_call and archives_reload, in every permission mode, auto mode included. Reads go through the new api_read, which never asks.

Fixed

  • The MCP tool api_read no longer refuses reads whose names hold a word like Equip, Start or Open as a noun, such as GetItemInEquipSlot or IsQuickHackPanelOpen, which then went through api_call and asked you first. It refuses only reads that also change something, such as GetOrCreate….
  • Sending many game calls at once (more than 256 in one frame) no longer leaves the extra ones unanswered until they time out after 5 seconds: the plugin runs 256 a frame and carries the rest to the next frames, and refuses past 4096 waiting with a message.
  • The game no longer crashes when quitting after a Node mod held objects made by another plugin, such as Codeware's: REDnode lets go of every object it holds when the game stops, while the other plugins are still loaded.
  • api.$new with properties on a class written in redscript no longer breaks the object it makes (and crashes the game at its next use): script fields are now set where the game keeps them, as $get and $set already did.
  • archives.reload and the MCP tool archives_reload refuse, with a message, a swap that the official RED Hot Tools would get wrong and end the game with: replacing an archive in a mod folder with both upper- and lowercase names. The Edgemodders build of RED Hot Tools fixes it, and with it REDnode swaps as before.

Other

  • REDnode's own native calls into the game remember the functions they find, so reading game values every frame costs less.
  • REDnode's scripts keep the root widgets of a few HUD and menu screens (REDnodeInk.reds), the first part of the coming ink API for the game's own UI. Nothing changes on screen.
  • During an archive swap, red4ext/logs/rednode-faults.log now also names whatever ends the game (TerminateProcess, ExitProcess or a fail-fast), with its status, its stack and the game engine's last error message, for crashes that leave no crash report.

Also attached: REDnode Sound Tools 0.1.0 (REDnode-Sound-Tools-0.1.0.zip). An optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Hot swap needs RED Hot Tools 1.3 or later. Extract it into the game folder after REDnode; it needs REDnode 0.26.15 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html (changelog: https://github.com/Edgemodders/REDnode/blob/main/packs/sound-tools/changelog.md)

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.26.15...v0.32.1

REDnode 0.26.15

Choose a tag to compare

@github-actions github-actions released this 20 Oct 15:57

Folds in 0.26.2, which was not released on its own.

New

  • Swapping sound into the running game: archives.reload and the MCP tool archives_reload now swap archives that change the game's sound paks (.opuspak, .opusinfo, such as EDGEwave's sound overrides). The swap runs with the game paused and its audio held, then REDnode loads the game's sound index again, so the new sounds play without a restart. A sound that played just before the swap may keep its old version until the game loads it again (for a weapon, equip it again). The answer's sound field says how it went.
  • ui.list() in the UI builder: a list of lines that scrolls on its own, for a log or a live feed in a Node mod's window. It keeps its newest lines, follows the newest one unless the player scrolls up, and fills the window's free height, so the window itself never scrolls. See the new Live log mod sample.
  • ui.copy(text) in the rednode package puts text on the Windows clipboard, from a Node mod or an overlay app.
  • Experimental, for the coming REDnode Sound Tools: audio.trace(onTrace) lists the events the game posts to its audio engine, named where REDnode knows the name, and the sounds it loads, as they happen; every one is also written to red4ext/logs/rednode-sound-trace.log.
  • Experimental: audio.playGame(id) plays one of the game's own recordings by its sound id through REDnode's engine; audio.playGame({ event }) plays an event's recordings in turn, heard wherever the sound is in the game; audio.eventSounds(event) lists them.
  • Experimental: audio.searchSounds(query) searches the game's sound events by words of their name or tags, by event id, or by sound id (the events that play it).
  • Experimental: audio.event(name) posts a game sound event through the game, on V so positional sounds are heard ({ on: "none" } for none), and returns stop(). When a package stops, REDnode stops the events it posted.

Fixed

  • The overlay's arrow could vanish in the game after a save loaded on some NVIDIA setups, while the windows still showed. It is now drawn from a texture, the same way as the windows.

Changed

  • The Welcome window warns that F9, right beside F10, is the game's Quick Load.

Other

  • The plugin watches for faults, and breakpoints (a failed assert in the game), around each archive swap and writes what it finds to red4ext/logs/rednode-faults.log, for bug reports.
  • The host log of the last game session is kept as red4ext/logs/rednode-overlay.prev.log, so a crash's log survives the next start.
  • archives.soundState() in the rednode package reads the game's sound pak index, the paks it has open and the sounds it holds loaded, without changing them (a sound's fields are offset, headerSize, length and decodedBytes): an experimental diagnostic. See swapping archives.

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Also attached: REDnode Sound Tools 0.1.0 (REDnode-Sound-Tools-0.1.0.zip), an optional app pack for sound modders: Sound Tracer, Sound Search and Hot swap. Extract it into the game folder after REDnode; it needs REDnode 0.26.15 or later, and Hot swap needs RED Hot Tools 1.3 or later. Guide: https://edgemodders.github.io/REDnode/sound-tools.html

Full Changelog: v0.26.1...v0.26.15

REDnode 0.26.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 15:35

New

  • Hot-loading archives: archives.reload() in the rednode package swaps .archive, .xl and .yaml files into the running game through RED Hot Tools, with checks and a queue around it. A package needs the new archives permission, which the player allows in the launcher. Also the MCP tool archives_reload. See hot-loading archives.
  • A Welcome window at the first start that teaches F10. It shows once.

Fixed

  • An archive path pasted from Windows' Copy as path, with its double quotes, is accepted.

Other

  • The plugin log reports the overlay's cursor every 5 seconds in interactive mode, for bug reports. If the overlay's arrow blinks with DLSS on, update the GPU driver: an older NVIDIA driver caused it on one laptop.

Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/ (changelog: https://edgemodders.github.io/REDnode/changelog.html)

Full Changelog: v0.25.0...v0.26.1

REDnode 0.25.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 22:48

REDnode 0.25.0. Install: extract into the game folder, or add the zip to Vortex or EDGEdeck. Needs RED4ext and redscript. Packages that read the game's archives also need REDbridge: press Get REDbridge in the Mod Manager. Docs: https://edgemodders.github.io/REDnode/

Full Changelog: v0.24.3...v0.25.0