Vagabond RPG FoundryVTT - Vagabond RPG system for Foundry VTT
- Add _onCreate/_preDelete lifecycle methods to VagabondItem for automatic feature application and cleanup when classes are added/removed - Add updateActor hook to apply new features when character level increases - Implement applyClassFeatures() with idempotency to prevent duplicate effects - Add _applyClassProgression() for mana/castingMax from class progression - Add _applyTrainedSkills() to mark class skills as trained - Fix getCastingMaxAtLevel() to sum values instead of taking maximum - Add comprehensive test suite (10 tests) covering unit and integration tests Effects are tagged with vagabond flags for easy filtering and management. Methods calculate progression values directly for robustness with embedded items. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/commands | ||
| .husky | ||
| lang | ||
| module | ||
| styles/scss | ||
| templates | ||
| test_results | ||
| .env.example | ||
| .eslintrc.json | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| CLAUDE.md | ||
| DEVELOPMENT.md | ||
| docker-compose.yml | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| PROJECT_ROADMAP.json | ||
| README.md | ||
| system.json | ||
Vagabond RPG - Foundry VTT System
A complete Foundry VTT v13 system implementation for Vagabond RPG - Pulp Fantasy Roleplaying.
Features
- Full character sheet matching the official Hero Record design
- Dynamic spell casting system with delivery/duration/damage customization
- Automated skill checks with favor/hinder modifiers
- Variable crit thresholds per skill (modified by class features and perks)
- Complete compendiums: 18 classes, 55+ spells, 90+ perks, ancestries, equipment, bestiary
- NPC/Monster stat blocks with morale system
- Parchment-themed UI with accessibility (color-blind friendly)
Installation
From Foundry
- Open Foundry VTT Setup
- Navigate to Game Systems
- Click "Install System"
- Search for "Vagabond" or paste the manifest URL:
https://github.com/calcorum/vagabond-rpg-foundryvtt/releases/latest/download/system.json
Manual Installation
- Download the latest release from GitHub
- Extract to
Data/systems/vagabond/ - Restart Foundry VTT
Development Setup
Prerequisites
- Node.js 18+
- Docker & Docker Compose (for local Foundry instance)
Quick Start
# Clone the repository
git clone https://github.com/calcorum/vagabond-rpg-foundryvtt.git
cd vagabond-rpg-foundryvtt
# Install dependencies
npm install
# Start SCSS watcher
npm run watch
# Start local Foundry instance
docker compose up -d
# Access Foundry at http://localhost:30000
Project Structure
vagabond-rpg-foundryvtt/
├── module/ # JavaScript modules
│ ├── vagabond.mjs # System entry point
│ ├── documents/ # Actor/Item document classes
│ ├── sheets/ # Sheet classes
│ ├── helpers/ # Utility functions
│ └── dice/ # Roll handling
├── templates/ # Handlebars templates
│ ├── actor/ # Actor sheet templates
│ ├── item/ # Item sheet templates
│ ├── chat/ # Chat message templates
│ └── dialog/ # Roll dialog templates
├── styles/ # SCSS/CSS
│ └── scss/ # SCSS source files
├── lang/ # Localization files
├── packs/ # Compendium data
├── assets/ # Images and icons
├── system.json # System manifest
└── docker-compose.yml # Local dev environment
Building Styles
# One-time build
npm run build
# Watch for changes
npm run watch
Creating a Release
npm run release
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT License - see LICENSE for details.
Vagabond RPG is a product of its respective copyright holders. This system implementation is a fan project and is not affiliated with or endorsed by the original game creators.
Acknowledgments
- Vagabond RPG by [Publisher] for the amazing game system
- Foundry VTT community for documentation and examples
- All contributors to this project