Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/shresht7/vscode-bg3-modding

A VSCode extension with tools, snippets and helpers for modding Baldur's Gate 3
https://github.com/shresht7/vscode-bg3-modding

baldurs-gate-3 bg3 modding

Last synced: 4 days ago
JSON representation

A VSCode extension with tools, snippets and helpers for modding Baldur's Gate 3

Awesome Lists containing this project

README

        

# `BG3 Modding` support for Visual Studio Code

This VS Code extension contains useful tools, snippets and helpers for creating mods for [**Baldur's Gate 3**](https://baldursgate3.game/).

Table of Contents

- [⚡ Activation Events](#-activation-events)
- [⭐ Features](#-features)
- [📄 Snippets](#-snippets)
- [⌨️ Commands](#️-commands)
- [`Generate UUID`](#generate-uuid)
- [`Generate Handle`](#generate-handle)
- [`Copy Mod UUID`](#copy-mod-uuid)
- [`Convert Version Number`](#convert-version-number)
- [`Bump Version Number`](#bump-version-number)
- [✅ JSON Validation](#-json-validation)
- [⚙️ Default Configurations](#️-default-configurations)
- [`files.associations`](#filesassociations)
- [`search.exclude`](#searchexclude)
- [⚙️ Extension Settings](#️-extension-settings)
- [📄 License](#-license)

## ⚡ Activation Events

- `workspaceContains:/**/meta.lsx`

The extension activates for a workspace that contains the `meta.lsx` file.

## ⭐ Features

- [📄 Snippets](#-snippets)
- [⌨️ Commands](#️-commands)
- [✅ JSON Validation](#-json-validation)
- [⚙️ Default Configurations](#️-default-configurations)

### 📄 Snippets

The extension contributes the following snippets:

| Name | Activation | Description |
| ------------------------------- | -------------------: | --------------------------------------------------------- |
| BG3 UUID | `uuid` | Generate a random UUID |
| BG3 Handle | `handle` | Generates a random UUID handle used in localization files |
| `Ext.Utils.Print()` | `print`, `eup` | `Ext.Utils.Print()` |
| `Ext.Osiris.RegisterListener()` | `rl`, `orl`, `eorl` | `Ext.Osiris.RegisterListener()` |
| Override Stat Entry | `new`, `override` | Create an override for an existing Stat Entry |
| Script-Extender Config | `cfg`, `Config.json` | Generates the boilerplate Script-Extender `Config.json` |
| `meta.lsx` | `meta` | Generates the boilerplate template for `meta.lsx` |

[Back to Top ⬆️](#bg3-modding-support-for-visual-studio-code)

### ⌨️ Commands

The extension contributes the following commands:

- [`Generate UUID`](#generate-uuid)
- [`Generate Handle`](#generate-handle)
- [`Copy Mod UUID`](#copy-mod-uuid)
- [`Convert Version Number`](#convert-version-number)
- [`Bump Version Number`](#bump-version-number)

#### `Generate UUID`

Generate a random UUID and insert at the current selection.

```
b7b98e25-ff34-40dd-b019-ab25521ae5a0
```

#### `Generate Handle`

Generate Handle and insert at the current selection.

```
hb7b98e25gff34g40ddgb019gab25521ae5a0
```

#### `Copy Mod UUID`

Copies the Mod's UUID to the clipboard.

#### `Convert Version Number`

Convert between BG3 version numbers.

```
1.0.0.0 --> 36028797018963968
36028797018963968 --> 1.0.0.0
```

##### Input: Version Number

Takes the version number as input in either the string format (e.g. `1.0.0.0`) or bigint format (e.g. `36028797018963968`).

#### `Bump Version Number`

Bumps the version number in the `meta.lsx` by the specified type.

```
1.0.0.0 --- Bump Minor Version --> 1.1.0.0
1.2.0.7 --- Bump Major Version --> 2.0.0.0
```

##### Input: Kind

- `Major`
- `Minor`
- `Revision`
- `Build`

[Back to Top ⬆️](#bg3-modding-support-for-visual-studio-code)

### ✅ JSON Validation

The extension contributes JSON validation schemas for:
- [`ScriptExtender/Config.json`](./schema/Config.schema.json)
- [`ScriptExtenderSettings.json`](./schema/ScriptExtenderSettings.schema.json)

This will enable intellisense and provide validation for these files.

[Back to Top ⬆️](#bg3-modding-support-for-visual-studio-code)

### ⚙️ Default Configurations

The extension provides default configuration settings for:

#### `files.associations`

```json
"files.associations": {
"*.lsx": "xml",
"*.lsj": "json"
},
```

#### `search.exclude`

```json
"search.exclude": {
"**/*.raw": true,
"**/Story/*.div": true,
"**/*.osi": true,
"**/*.dat": true
}
```

[Back to Top ⬆️](#bg3-modding-support-for-visual-studio-code)

---

## ⚙️ Extension Settings

Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.

For example:

This extension contributes the following settings:

* `myExtension.enable`: Enable/disable this extension.
* `myExtension.thing`: Set to `blah` to do something.

[Back to Top ⬆️](#bg3-modding-support-for-visual-studio-code)

---

## 📄 License

This project is licensed under the [MIT License](./LICENSE).