Skip to content

Latest commit

 

History

4,393 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BGforge multi-language server

Patreon Telegram Discord IRC

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 languages 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

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 ✓ ✓ ✓ ✓
Quick fixes ✓ ✓ ✓ ✓
JSDoc ✓ ✓ ✓
Folding ✓ ✓ ✓ ✓
Dialog editor ✓ ✓
Compiler ssl

Seamless support for .int and .bcs included.

TypeScript-based languages

These are TypeScript-like language subsets for writing mods. TSSL compiles straight to Fallout bytecode; TBAF and TD generate WeiDU source, which WeiDU then installs.

They bring the TypeScript type system, many TypeScript features, and better tooling to modding.

Language Extension Output Inlay Hints Dialog Editor
TSSL .tssl .int .msg ✓
TBAF .tbaf .baf .tra
TD .td .d .tra ✓

TSSL (.tssl) compiles .int. Optionally can transpile to .ssl as well. 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.

Other formats

Format / Extensions Highlighting Completion Hover GoTo References Formatting
Fallout worldmap.txt ✓ ✓ ✓
Fallout MSG ✓ ✓ ✓
Fallout scripts.lst ✓ ✓
WeiDU TRA ✓ ✓ ✓
WeiDU.log ✓ tp2
Infinity 2DA ✓ ✓

Binary formats

Fallout PRO and MAP files, and Infinity Engine ITM, SPL, EFF, and CRE files, have a built-in binary editor with JSON dump/load support. Infinity Engine .dlg files are read and written by the same library, but open in the dialog editor rather than the binary one.

GitHub Actions

GitHub Actions keep generated artifacts in mod repositories up to date: they refresh binary-format JSON snapshots, format Fallout/WeiDU sources, and regenerate transpiler output, committing the results back or simply verifying they match. A fourth compiles TSSL to Fallout INT bytecode as a CI check.

Installation

BGforge MLS runs in desktop VS Code and in code-server. It is not supported on vscode.dev or github.dev: the bundled SSL compiler and the workspace scanner both need a real filesystem.

  1. Install BGforge MLS from the VS Code Marketplace. Alternatively, download the package from GitHub Releases and install it manually.
  2. Check general settings.
  3. Check file associations.
  4. Check hotkeys.
  5. Enable custom theme and icon theme.
  6. (Infinity Engine) Install IElib.

Hotkeys

  • CTRL+R: compile a Fallout .ssl or .tssl file, transpile a .tbaf or .td, or parse a WeiDU file, reporting errors if any.
  • CTRL+SHIFT+V: open the Dialog Editor (SSL, TSSL, D, TD files).
  • Standard VS Code hotkeys:
    • CTRL+SHIFT+O: document symbols
    • CTRL+T: workspace symbols

Screenshots

Infinity Engine highlighting and completion

infinity highlighting and completion example

Fallout highlighting and hovers

fallout highlighting and hover example

Dialog editor

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

Seamless support for .dlg included.

dialog editor example

Error reporting

error reporting example

Binary editor

binary editor example

Animation viewer

Supported animation formats are BAM and FRM. PNG import/export is available, as well as cross-format save (conversion).

animation viewer example

Image gallery

Game and workspace image gallery. IE games only. Launch with commands:

  • BGforge: Game Image Gallery browses the images of the game at bgforge.weidu.gamePath.
  • BGforge: Workspace Image Gallery browses the open folder.

gallery example

Releases

Sponsor this project

Packages

Used by

Contributors

Languages