An open API service indexing awesome lists of open source software.

https://github.com/tkvsc-team/totk-vscode

Canonically Amazing!
https://github.com/tkvsc-team/totk-vscode

modding-tool totk vscode-extension zelda

Last synced: about 1 month ago
JSON representation

Canonically Amazing!

Awesome Lists containing this project

README

          



Tears of the Kingdom VSCode Extension




Discord
 

Latest Release  

Stars

 

Downloads



The **T**ears of the **K**ingdom **V**isual **S**tudio **C**ode Extension or **TKVSC** is a Visual Studio Code extension for editing and browsing **Tears of the Kingdom** (**TotK**) game files.

It also pairs well with **TKMM!**

**TKVSC Website**: https://tkvsc.dev/

**TKVSC** GameBanana page: https://gamebanana.com/tools/22893

**Game Dump Guide** (required): https://gamebanana.com/tuts/19858

## DISCLAIMER
**WE ARE NOT RESPONSIBLE IF YOUR MOD BREAKS. THIS TOOL IS IN ACTIVE BETA AND THINGS WILL BREAK. MAKE FREQUENT BACKUPS**

## Features
Preview and edit subfiles of SARC and BNTX archives

### Supported Filetypes

#### Text Editor
- BYML
- BGYML
- AAMP
- MSBT
- ASB (Changes automatically applied to corresponding BAEV)
- BAEV (Changes automatically applied to corresponding ASB)
- XLINK
- PCHTXT
- TKMM Config Files

#### Texture Viewer/Replacer
- BNTX
- Tex2Go
- **Unsupported**
- - VSP

#### Audio Player
- Bars
- BFWAV

---

### Activity Bar Tabs

**Your Projects**
- Add the current folder open in VS Code to a list of Project Folders

**TotK Dump**
- Browse your dump of TotK in Read-Only mode. Right click to add a file to the correct romfs path within a Project Folder of your choosing

### Additional capabilities:

- Archives within archives (e.g. a `.sarc` inside a `.pack`) can be browsed and edited
- Search for romfs contents, including filenames inside of SARCs
- Right-click a file within an archive to export it to a Project Folder.
- File templates: Rather than the typical method of copying, pasting, and wiping an existing file to make a new file of the same format, TKVSC can create empty files of formats supported by the editor.
- Preview `.bntx` subfiles and `.txtg` files as PNGs
- Visual editor for [TKMM](https://tkmm.org) `.tkproj` files
- For files TKVSC does not support, such as `.bfres`, the user can choose external programs to open them in by default (separate from similar features in the OS).

## Canonical Path Saving

The canonical path of a file is where the file exists in the game's memory, as opposed to the romfs path which describes its location within a game dump. Using the romfs file located at `\Pack\Actor\Armor_001_Head.pack.zs\Component\ArmorParam\Armor_001_Head.game__component__ArmorParam.bgyml` as an example, the canonical path would be `\Component\ArmorParam\Armor_001_Head.game__component__ArmorParam.bgyml`.

Anyone who has made changes to an upgradeable armor set, or to any parameter file that is parented to a file used in another actor pack, is familiar with needing to make the same edits to an identically named file in several different locations in order for everything to work nicely ingame. TKVSC builds a database of all canonical paths in your game dump and in each of your mod projects and automatically saves changes to all instances of a file's canonical path, pulling files in from the game dump as needed when it isn't already present in your mod project.

To demonstrate with a direct comparison, modifying the defense of every level of the Champion's Leathers would take **15 file modifications without TKVSC**, and only **5 with TKVSC**.

## Planned Features

*( if there are any features you don't see on here, feel free to make an issue on this GitHub! )*

- Node Based Editors (AINB, ASB, BAEV, and EVFL are all planned.)
- BFRES Support (Preview, Editing.)
- Audio Support (BARS, BWAV.) (Read currently supported, write W.I.P)
- Actor Tooling (Automating the process as much as possible.)
- Full romfs file content string searching

- PTCL/Effect support is being researched but not confirmed.

## Setup

### Requirements
* [Python 3.13+](https://www.python.org/downloads/)
* [Microsoft C++ Redis](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170)
* Node.js (if building extension from source)
* Python 3.13-venv (on Linux)
* Valid TotK dump

### Steps
1. Install the extension (VSIX).
2. Follow the prompt to select your romfs dump path.

### Python troubleshooting

**`python3` works in CMD but the extension cannot find Python?** VSCode is often launched without your full user PATH (unlike a terminal you opened yourself). Fix:

1. **TKVSC: Select Python (from detected installs)** - scans `where python3`, common install folders, and `py`.
2. **TKVSC: Browse for python.exe** - point at the real interpreter (e.g. `%LocalAppData%\Programs\Python\Python314\python.exe`).
3. Or set **TKVSC → Python Path** to that full path, then **TKVSC: Set Up Python Environment** again.

If setup fails, run **TKVSC: Set Up Python Environment** from the Command Palette.

## Build Instructions

A VSIX file is the installable extension package. Build it from the project root:

```bash
npm install
npm run package:vsix
```

That produces `totk-vscode-0.0.3-beta.1.vsix` (version comes from `package.json`).

### Contributing:

See: [CONTRIBUTING.md](./.github/CONTRIBUTING.md)

### Addon development

Companion VS Code extensions can extend TKVSC via the exported API. See [docs/api/addon-development.md](docs/api/addon-development.md) (guide) and [docs/api/v1.md](docs/api/v1.md) (full API reference).

## Credits
### TKVSC Team
**Mind** - Project Lead, Developer\
**The5thTear** - Developer, Research\
**Aster** - Graphics, Documentation

### Contributors
**Clonephaze** - [GitHub Template Refactor](https://github.com/TKVSC-Team/totk-vscode/pull/62)

### Third-Parties
**dt13245**: [ASB fork](https://github.com/TKVSC-Team/asb), [AINB fork](https://github.com/TKVSC-Team/AINB), and [XLink2](https://github.com/dt-12345/xlink2) (legacy version) binaries integrated into codebase\
**P1gyy**: [pymsbt fork](https://github.com/TKVSC-Team/pymsbt) integrated into codebase\
**AeonSake**: [MSBT Editor](https://gitlab.com/AeonSake/msbt-editor) - TotK Config included\
**LordBubbles**: [TKMM](https://tkmm.org/) - Assistance with implementing TKMM compatibility\
**KillzXGaming**: [Switch Toolbox](https://github.com/KillzXGaming/Switch-Toolbox) - image handling referenced\
**Arch Leaders**: [NX Editor](https://github.com/NX-Editor/NxEditor) - text formatting referenced\
**SolidLink**: [Totkbits](https://github.com/SolidLink95/TotkBits) - Tag.Product & text formatting referenced, bphcl & ptcl implementation used\

## Help and Community

- [Discord Server](https://discord.gg/vwPnX2uB8s)
- [Documentation](https://tkvsc.dev/docs/index.html)
- [Patreon](https://www.patreon.com/cw/TKVSC)