Skip to content

Releases: Edgemodders/REDcode

REDcode 0.10.3

Choose a tag to compare

@github-actions github-actions released this 21 Oct 23:04

For EDGEwave, EDGEmat and EDGEdeck: menu kinds in the Project view, and Install ready for EDGEdeck to ask. Needs REDbridge 0.10.0, as before.

  • Ready for EDGEdeck to ask about a mod of the same name (EDGEdeck #3). Install waits for EDGEdeck's answer, and a cancel there leaves the install undone, with a line in the log.
  • Project view files say what they are to other extensions. Sound files (.wem, .wav, .ogg, .opus, .mp3, .flac) and .mlsetup files get their own kind in the menu context, so EDGEwave's and EDGEmat's entries can show on their own files only. Before, EDGEwave's Open Sound in EDGEwave showed on every file, an .mlsetup too. The kinds are listed in docs/api.md.

REDcode 0.10.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 01:38

Fixes in the CR2W editor, and two additions to the Project view. Needs REDbridge 0.10.0, as before.

  • Close Project, in the Project view's ... menu below Install and Uninstall, and in the Command Palette. It closes the project's folder, and the Project view goes back to New Project. In a workspace with other folders, only the project's folder is removed.
  • A project with no files says so. Pack, Install, Pack and Install and Pack and Try on a project whose source\archive and source\resources are empty now say there is nothing to pack or install, instead of EDGEdeck's error that the project has not been packed. When an earlier install of the mod is still in EDGEdeck or the game, a question offers Uninstall, which takes its files out. Pack and Try no longer reports "packed and installed" when the install did not happen.
  • A mesh opens on the 3D view again. With the Properties view open, the editor drew the property grid over the 3D view, so 3D showed only after Tree and back; an atlas showed the grid while its texture loaded. The Properties view sent its selection back to the editor as the file opened, often before the editor knew the file's view. It no longer sends it back, and the editor leaves its 3D, atlas or table view alone when another page selects something.

REDcode 0.10.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 08:44

Fixes for EDGEdeck, the mod manager that was REDdeck. Needs REDbridge 0.10.0, as before.

  • REDdeck is now EDGEdeck (REDcode issue #9). Install, Uninstall, Pack and Install and the first-run game folder offer look for the mod manager as edgemodders.edgedeck, and the messages and log name it EDGEdeck. With only the old edgemodders.reddeck installed, REDcode installs directly, as with no mod manager. The check for a REDdeck older than 0.21.0 is gone, since every EDGEdeck release has the API.
  • Use It and Set Game Folder change the game folder in use. When the workspace sets its own redcode.gamePath, they now write that one; before, they wrote the user setting, which the workspace value hides, so the wrong folder stayed.

REDcode 0.10.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 23:23

C5 V4, the LocKeys view, is done and hand-tested, with REDcode issues #6, #7 and #8 and REDbridge issues #5 and #6 for EDGEfab, EDGEmat and EDGEwave. Needs REDbridge 0.10.0.

  • The LocKeys view (C5 V4): the game's on-screen texts, base game and Phantom Liberty, in any of its 19 languages, through REDbridge 0.10.0's loc methods. Search by LocKey#123, a secondary key or words of the text. The open project's own onscreens entries count and win over the game's. A click opens the entry in its onscreens file on its row, the project's to edit or the game's read-only. Copy LocKey, Copy Text, and Add to Project Onscreens, which copies the entry into the project's onscreens file (creating it, and naming it in an .xl, when there is none) and opens the table view on that row, with the file selected in the Project view. A hover on LocKey#... in tweak, YAML, JSON, Lua and Redscript files shows the text, and the CR2W editor shows it beside LocKey#... values and when hovering a search result. Setting redcode.loc.language.
  • REDmod custom sounds in the pack (REDcode issue #8, for EDGEwave): with redcode.pack.redmod, the customSounds entries of source/resources/info.json go into the written manifest, and each entry's file is copied from source/customSounds to packed/mods/<name>/customSounds, as WolvenKit's pack does. Pack warns about a listed WAV that is missing, and about custom sounds in a plain pack, which the game does not play. Pack and Install, and Pack and Try, ask before installing a REDmod whose custom sound is missing. The Project view shows source/customSounds as Custom Sounds when the project has it.
  • Edit in Blender (REDcode issue #7, for EDGEfab): a project .glb or .gltf, or a .mesh exported to Raw first, opens in Blender. Every save there exports the GLB with normals and tangents, and REDcode imports it into Archive until Blender closes. Blender comes from redcode.blenderPath, Program Files or a Steam library; a Blender REDcode finds is written to redcode.blenderPath, so the setting shows the one used. Checked with Blender 5.2.2: the export keeps WolvenKit's submesh_NN_LOD_N names, and the bridge imports it.
  • Pack and Try (REDcode issue #7): pack, then into the hot folder for Red Hot Tools to reload in the running game, or Pack and Install when it is not there. REDnode's archive reload (REDnode issue #12) will take its place when it ships.
  • REDcodeApi gains packAndTry() and editInBlender(file).
  • The mesh viewer switches appearances (REDcode issue #6): an Appearance list for a .mesh, and each submesh shows the material that appearance's chunkMaterials names for it.
  • A GLB's own textures: a model that carries its materials and textures, such as one from Blender or a model service, opens with them, with Shading to switch to flat colours.
  • EDGEmat materials: with EDGEmat installed, the viewer asks it to render the mesh's materials for the appearance shown (renderMaterials) and redraws when EDGEmat reports a change. Built to the API EDGEmat proposed; untested until EDGEmat ships it. Layered material preview moves to EDGEmat, so REDcode does not build it (C6).
  • A GLB can become a new mesh. Import from Raw on a .glb or .gltf with no .mesh at its path asks for a template: a game mesh to start from, whose materials and appearances the new mesh keeps. WolvenKit only imports a model over an existing mesh, so REDbridge 0.9.0 copies the template there first. The log lists the submeshes, the GLB's materials and how appearances were sized. REDcodeApi.importFile takes { template } and returns the same mesh report; MCP project_import takes template. From REDbridge issue #5, for EDGEfab and EDGEmat.
  • Import from Raw takes sound effects again, as WAV files named after the sound's hash (832549876.wav, from Copy Hash in the sound list). REDbridge 0.9.0's sound.importWavs writes the changed .opuspak and a new sfx_container.opusinfo into source/archive, keeping earlier replacements. A folder import takes every such WAV under it. The API's importFile does the same. Voice lines (.wem) cannot be imported yet. MCP tool sound_import. An import through the API, such as EDGEwave's Into the Game, shows its result in the Project view as Import from Raw does, a sound's .opuspak selected.

redcode-mcp 0.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 23:24

The new tools need REDbridge 0.10.0 (loc_*) and 0.9.0 (sound_import, template); the rest still work with 0.8.0.

  • loc_languages, loc_search and loc_get: the game's on-screen texts (LocKeys), with a project's own over them. Each loc_search result names its onscreens file and row, for cr2w_open and cr2w_get_node. Needs REDbridge 0.10.0.
  • project_import takes template, a game path or .mesh to start a new mesh from when a GLB has no mesh to import over, and a mesh import returns mesh: submeshes, the GLB's material names per submesh, material entries, appearances and what was resized. Needs REDbridge 0.9.0.
  • sound_import: override game sound effects in a project from <hash>.wav files. Needs REDbridge 0.9.0.

redcode-mcp 0.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 07:26

The first version on npm, as @edgemodders/redcode-mcp. It needs REDbridge 0.8.0.

  • Run it with npx -y @edgemodders/redcode-mcp. Everything is bundled into one file, so an install pulls no other package. The bundled packages' notices are in dist/ThirdPartyNotices.txt.
  • TweakDB tools: tweakdb_types, tweakdb_records, tweakdb_record, tweakdb_flat, tweakdb_search, tweakdb_names.
  • Game sound tools: sound_events, sound_extract.
  • Project tools: project_export, project_import, project_pack.
  • Mod archive tools: archive_open_mod, archive_extract_from_mod.

REDcode 0.9.0

Choose a tag to compare

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

C5 V3, the TweakDB view, is done and hand-tested. Needs REDbridge 0.8.0.

  • An API for other extensions (REDcode issue #4, for EDGEwave). activate() returns REDcodeApi version 1 (src/api.ts, docs/api.md): the bridge, the game folder, the open project and its changes, the game's sound effect index with event names, any sound by reference as audio a webview decodes (WAV for sound effects and Opus, Ogg Vorbis for .wem), import of a raw file, and pack.
  • Open in EDGEwave in the audio player and the sound list runs EDGEwave's edgewave.openSound with the sound now playing, and offers to install EDGEwave when it is missing.
  • Import from Raw no longer offers .wav, and Export no longer offers .opusinfo (REDcode issue #5). WolvenKit's library imports nothing from a WAV (its ImportWav only logs "Use WolvenKit to import opus.") and exports nothing from an .opusinfo without sound hashes, so both silently wrote nothing. Sound effect import will come through a REDbridge method over WolvenKit's OpusTools.
  • TweakDB view (C5 V3). A TweakDB view in the REDcode sidebar lists record types with their counts and their records, with a filter that finds records by words of their path.
    • The record page shows a record's flats, with record links you can follow, Back and Forward, LocKey text, and resource paths that open the game file.
    • New Tweak from This Record writes a TweakXL YAML file into the project that clones or changes the record, with every flat listed and commented out.
    • Hovering a record path in .yaml and .tweak files shows its type and main flats.
    • REDcode: Open TweakDB Record... searches as you type.
    • The new tweak file is selected in the Project view, with its folders expanded, so you see where it landed.
    • It reads the game's TweakDB as shipped, through REDbridge 0.8.0. The first use loads it, in about 12 seconds.
  • The third-party notices are in one file, ThirdPartyNotices.txt (vscode-jsonrpc, three.js, opus-decoder, libopus); THIRD_PARTY_NOTICES.md is folded into it.

REDcode 0.8.2

Choose a tag to compare

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

The first version on the VS Code Marketplace, as a Preview. Needs REDbridge 0.8.0.

The extension is now edgemodders.redcode-cyberpunk (it was edgemodders.redcode). The Marketplace refused 0.8.0 and 0.8.1 because the extension name redcode is taken by another publisher's extension for Core War's Redcode language. VS Code sees a new extension: install this one, then uninstall the old one; REDcode says so if both are loaded. Settings, commands and keybindings carry over, since their names start with redcode.. The extension's storage folder moves with the id, so run REDcode: Install REDbridge once more if REDcode downloaded the bridge for you.

REDcode 0.8.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 18:56

The first version on the VS Code Marketplace and Open VSX, as a Preview. 0.8.0 did not reach them: the Marketplace refused its display name. Needs REDbridge 0.8.0.

  • The display name is now REDcode for Cyberpunk 2077. Marketplace display names are unique across publishers, ignoring case, and "redcode" is taken by an extension for Core War's Redcode language. The id stays edgemodders.redcode, so settings, commands and keybindings are unchanged.
  • The first-run game folder offer no longer activates REDdeck to ask for its game path; it asks only when REDdeck is already running, and stops once REDcode is deactivated. Activating REDdeck there raced a window reload, and VS Code warned that REDdeck's output channel went into a disposed store. Found while looking into an intermittent startup abort (exit code 134) of the development host, whose cause is still unverified.

REDcode 0.8.0

Choose a tag to compare

@CyberbuildsAI CyberbuildsAI released this 15 Oct 18:45

REDcode 0.8.0, the first release for the VS Code Marketplace, as a Preview. Install the .vsix with Extensions: Install from VSIX....

It needs REDbridge 0.8.0. REDcode refuses an older bridge and offers Update REDbridge, which downloads it.

  • Audio player. A .wem, from the project or straight from Game Assets, opens in a player with:

    • a waveform you click or drag to seek
    • Play and Loop
    • the time, codec, channels and rate
    • Save

    .opus files open in it too. WAV, Ogg, MP3 and FLAC offer it under Open With.

  • Game sounds. REDcode: Browse Game Sounds lists the game's 73,000 sound effects under 16,000 events, named where WolvenKit knows the name. Filter by name, tag or hash, click to play, and step through with the arrow keys. Copy Hash and Save act on the sound that is playing. VS Code's webview can't decode Opus, so REDcode decodes the sounds itself and plays them as WAV.

  • The game folder is found on first start, from REDdeck, any Steam library, GOG or Epic. REDcode: Set Game Folder changes it.

  • Open With... in the Project view's right-click menu.

  • For assistants: the MCP server (packages/redcode-mcp) adds tools for sounds (sound_events, sound_extract) and TweakDB (tweakdb_types, tweakdb_records, tweakdb_record, tweakdb_flat, tweakdb_search, tweakdb_names).

  • REDcode is only released once its REDbridge is: packaging and publishing stop until a REDbridge release at least as new as redcode.minBridgeVersion is on GitHub.

Third-party notices (three.js, opus-decoder, libopus) are in THIRD_PARTY_NOTICES.md. Full notes are in the extension's CHANGELOG.