Convert Draw Steel characters from Forgesteel (.ds-hero files) into Foundry Virtual Tabletop format for the Draw Steel system module.
The easiest way to use the converter is the graphical interface. No experience required.
- Go to the GitHub repository page
- Click the green Code button near the top-right
- Select Download ZIP
- Open the downloaded
.zipfile and extract all to a folder of your choice (e.g. your Desktop or Documents)
Windows may block files downloaded from the internet. Before running:
- Right-click
Run-ForgesteelGUI.ps1and select Properties - At the bottom of the General tab, check the Unblock checkbox
- Click Apply then OK
- Open the extracted folder
- Right-click
Run-ForgesteelGUI.ps1and select "Run with PowerShell" - The script will automatically:
- Check if Python is installed (and install it for you if it isn't)
- Install any dependencies
- Launch the GUI
- Browse for your
.ds-herofile, set an output path, and click Convert
First time running a PowerShell script? If you get an "execution policy" warning, open PowerShell as Administrator and run:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserThen try right-clicking the script again. You only need to do this once.
If you already have Python 3.6+ installed you can skip the PowerShell launcher:
python forgesteel_gui.pyUse ONLY this command:
python forgesteel_converter.py your_character.ds-hero converted_character.jsonDO NOT USE: converter/mapper.py or other files in the converter directory - these are internal modules.
- Download the repository as a ZIP (green Code button > Download ZIP) and extract it, or clone it with
git clone - Install Python 3.6+ (if not already installed)
- Windows (easy): Just run
Run-ForgesteelGUI.ps1— it handles everything - Manual: Download from python.org (check "Add Python to PATH" during install)
- Windows (easy): Just run
The converter automatically fetches the Draw Steel compendium using a hybrid approach:
- Local first (if you have
draw_steel_repo/src/packsor specify--compendium) - Cache for faster subsequent runs
- GitHub fallback (automatic, no setup required)
Run Run-ForgesteelGUI.ps1 (right-click > Run with PowerShell) or:
python forgesteel_gui.pyThe GUI provides:
- File browser for input/output selection
- Checkboxes for verbose logging, strict mode, and force-update compendium
- Live log output showing conversion progress
- Built-in help dialog (click the ? button)
# Basic conversion
python forgesteel_converter.py character.ds-hero character.json
# With local compendium (faster, offline)
python forgesteel_converter.py character.ds-hero character.json --compendium /path/to/draw-steel/src/packs
# Debug mode
python forgesteel_converter.py character.ds-hero character.json --verbose
# Strict mode (fail on missing items)
python forgesteel_converter.py character.ds-hero character.json --strict- Open your Foundry world
- Go to the Actors sidebar tab
- Right-click and select Import Data
- Choose your converted JSON file
- Complete character conversion (attributes, abilities, features, items)
- Smart compendium lookup with type-based matching
- Character encoding normalization (handles special characters)
- Multi-source level detection with validation
- Enhanced description transfer with markdown-to-HTML conversion
- Quality validation and comprehensive reporting
- Proper advancement mapping for skills and languages
- Movement calculation with ancestry bonuses
- Resource tracking (recoveries, stability, heroic resources)
Character Data: Attributes, stamina/health, recovery/stability, movement speed, biography
Items & Features: Ancestry, culture, career, class, subclass, abilities, features, projects, complications, equipment
Knowledge & Skills: Skill selections, languages, perks, domains
PowerShell won't run the script - You may need to set the execution policy:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser"Python was installed but cannot be found in PATH" - Close the PowerShell window and run the script again. The new PATH takes effect in a fresh session.
"File not found" - Verify the .ds-hero file path is correct
Compendium fetch fails - Check internet connection or use local compendium with --compendium
Missing items - Use --verbose (CLI) or check Verbose logging (GUI) to see lookup details
GitHub API limit - 60 requests/hour for unauthenticated users. Set a GITHUB_TOKEN environment variable for 5,000/hour, or use a local compendium for bulk conversions
- Python 3.6+
- Forgesteel character files (.ds-hero)
- Draw Steel compendium (automatically fetched)
No external Python packages required - uses only standard library.
- Only converts one selected subclass (Forgesteel limitation)
- Items not in compendium become placeholders
- PDF exports not supported (use .ds-hero format)
Report issues with:
- Your Forgesteel character file
- Verbose converter output
- Expected vs actual results
This converter works with the Draw Steel system by MCDM for Foundry Virtual Tabletop. Ensure you have appropriate licenses for both Forgesteel and Foundry VTT.
- Converter: Check CONVERTER_IMPROVEMENTS.md
- Forgesteel: Documentation
- Draw Steel: Module
- Foundry VTT: Documentation