Repository navigation
REDnode 0.32.1
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
inkAPI (experimental, needs Codeware): Node mods build trees of the game's own UI widgets on the HUD (ink.mount,ink.column,ink.textand 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 textstyle(title,label,valueand the rest) or atone(normal,accent,dangerand the rest) gives the game's exact sizes and colors with no styling by hand. Layout withgap,pad,alignandgrow; 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, andt()takes a package's own text fromlocales/<language>.json, with parameters, plurals and V's gender, and follows a language change.game.language()and thelanguageevent 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.reloadapplies 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'srefreshedlists what was refreshed. The MCP toolarchives_reloadtakesrefreshtoo. - A package's
requirescan namerednodewith 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_readreads 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.factsandquests.setFactread and set the game's quest facts,quests.watchhears each change of named facts as the game makes it (with no polling, kept across save loads),journal.entry,journal.setState,journal.trackandjournal.trackedread and change journal entries, andgame.player.teleportmoves V to a position or a world node. MCP tools for assistants:game_factsandgame_journalread without asking;game_facts_set,game_journal_setandgame_teleportask 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_callandarchives_reload, in every permission mode, auto mode included. Reads go through the newapi_read, which never asks.
Fixed
- The MCP tool
api_readno longer refuses reads whose names hold a word likeEquip,StartorOpenas a noun, such asGetItemInEquipSlotorIsQuickHackPanelOpen, which then went throughapi_calland asked you first. It refuses only reads that also change something, such asGetOrCreate…. - 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.$newwith 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$getand$setalready did.archives.reloadand the MCP toolarchives_reloadrefuse, 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.lognow 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