BGforge multi-language server

BGforge MLS is a collection of tools for working with classic RPG modding languages and file formats. It supports Star-Trek Scripting Language (.ssl) used in Fallout 1 and 2, several WeiDU and Infinity Engine formats (.d, .baf, .tp2, .tra, .2da), Sword Coast Stratagems Scripting Language (.ssl, .slb), and the TypeScript-based transpilers TSSL, TBAF, and TD.
Originally a VS Code extension, it now also works with various other editors. Setup guides are available for Sublime, Neovim, Emacs, JetBrains, Helix, Zed, Kate, Notepad++, and Geany. Standalone LSP server is published in NPM.
- Languages: Fallout SSL; WeiDU BAF, D, TP2.
- Transpilers: TSSL, TBAF, TD.
- Other formats: TRA, MSG, 2DA; Fallout PRO, MAP, worldmap.txt, scripts.lst; weidu.log.
- Installation
- Hotkeys
- Screenshots: completion, hover, error reporting, dialog tree preview.
- Forum
Languages
| Feature |
Fallout SSL |
WeiDU BAF/SSL |
WeiDU D |
WeiDU TP2 |
| Extensions |
.ssl, .h |
.baf, .ssl, .slb |
.d |
.tp2, .tpa, .tph, .tpp |
| Completion |
✓ |
✓ |
✓ |
✓ |
| Hover |
✓ |
✓ |
✓ |
✓ |
| Signature help |
✓ |
|
|
|
| Go to definition |
✓ |
|
✓ |
✓ |
| Find references |
✓ |
|
✓ |
✓ |
| Formatting |
✓ |
✓ |
✓ |
✓ |
| Document symbols |
✓ |
|
✓ |
✓ |
| Workspace symbols |
✓ |
|
|
✓ |
| Semantic tokens |
✓ |
|
|
✓ |
| Rename |
✓ |
|
✓ |
Same file |
| Inlay hints |
.msg |
.tra |
.tra |
.tra |
| Diagnostics |
✓ |
✓ |
✓ |
✓ |
| JSDoc |
✓ |
|
✓ |
✓ |
| Folding |
✓ |
✓ |
✓ |
✓ |
| Dialog preview |
✓ |
|
✓ |
|
Transpilers
These are TypeScript-like language subsets that compile to the scripting formats above.
They bring the TypeScript type system, many TypeScript features, and better tooling to modding.
| Transpiler |
Extension |
Target |
Inlay Hints |
Dialog Preview |
| TSSL |
.tssl |
.ssl |
.msg |
✓ |
| TBAF |
.tbaf |
.baf |
.tra |
|
| TD |
.td |
.d |
.tra |
✓ |
TSSL (.tssl) compiles to Fallout SSL. Companion project: FOlib.
TBAF (.tbaf) compiles to WeiDU BAF. Important additions include functions, loops, variables, arrays, enums. Companion project: IETS.
TD (.td) compiles to WeiDU D. Same features as TBAF, but has different structure. Also uses IETS.
| Format / Extensions |
Highlighting |
Completion |
Hover |
GoTo |
References |
Formatting |
| Fallout worldmap.txt |
✓ |
✓ |
✓ |
|
|
|
| Fallout MSG |
✓ |
|
|
|
✓ |
✓ |
| Fallout scripts.lst |
✓ |
|
|
|
|
✓ |
| WeiDU TRA |
✓ |
|
|
|
✓ |
✓ |
| WeiDU.log |
✓ |
|
|
tp2 |
|
|
| Infinity 2DA |
✓ |
|
|
|
|
✓ |
Fallout PRO and MAP files have a built-in binary editor with JSON dump/load support.
Installation
- Install BGforge MLS from the VS Code Marketplace.
Alternatively, download the package from GitHub Releases and install it manually.
- Check general settings.
- Check file associations.
- Check hotkeys.
- Enable custom theme and icon theme.
- (Infinity Engine) Install IElib.
Hotkeys
CTRL+R: compile a Fallout .ssl file or parse a WeiDU file, reporting errors if any.
CTRL+SHIFT+V: open dialog tree preview (SSL, TSSL, D, TD files).
- Standard VS Code hotkeys:
CTRL+SHIFT+O: document symbols
CTRL+T: workspace symbols
Screenshots
Infinity Engine highlighting and completion

Fallout highlighting and hovers

Dialog tree preview
Visual dialog tree for SSL, TSSL, D, and TD files. Open with CTRL+SHIFT+V or the command palette. Shows states, transitions, and resolved translation strings.

Error reporting

Binary editor
