All Projects → ghost-fvtt → foundry-factory

ghost-fvtt / foundry-factory

Licence: MIT License
An interactive command line tool to bootstrap new modules and systems for Foundry Virtual Tabletop

Programming Languages

typescript
32286 projects
Nunjucks
165 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to foundry-factory

ernies-modern-layout
A clean and themeable visual update for Foundry VTT. Discord: Ernie#4453 or Ernie on the Foundry channel.
Stars: ✭ 12 (-29.41%)
Mutual labels:  foundry-vtt, foundryvtt
FoundryVTT-Module-Template
A template repository for FoundryVTT module development that comes with versioned CI/CD
Stars: ✭ 72 (+323.53%)
Mutual labels:  foundry-vtt, foundryvtt
foundryvtt-simple-calendar
A simple calendar module for the FoundryVTT system
Stars: ✭ 25 (+47.06%)
Mutual labels:  foundry-vtt, foundryvtt
fvtt-module-narrator-tools
Special tools to increase immersivity in your game.
Stars: ✭ 15 (-11.76%)
Mutual labels:  foundry-vtt, foundryvtt
foundryvtt-gmScreen
A module which creates a modular GM Screen
Stars: ✭ 25 (+47.06%)
Mutual labels:  foundry-vtt, foundryvtt
Bryans-Preferred-Modules-for-FoundryVTT
My personally cultivated list of FoundryVTT Modules for Dungeons and Dragons 5e and Pathfinder 2e that play nicely together without creating an overwhelming amount of UI options or causing noticeable FPS drops.
Stars: ✭ 119 (+600%)
Mutual labels:  foundry-vtt, foundryvtt
Numenera-FoundryVTT
Numenera support for the Foundry virtual tabletop
Stars: ✭ 26 (+52.94%)
Mutual labels:  foundry-vtt
foundry-vtt-types
Unofficial type declarations for the Foundry Virtual Tabletop API
Stars: ✭ 80 (+370.59%)
Mutual labels:  foundry-vtt
chat-images
A module for Foundry VTT that adds image support for the chat.
Stars: ✭ 19 (+11.76%)
Mutual labels:  foundry-vtt
moulinette-core
FoundryVTT module which provides a set of tools for DMs for managing assets.
Stars: ✭ 22 (+29.41%)
Mutual labels:  foundryvtt
fvtt-data-toolbox
Foundry VTT Data Toolbox
Stars: ✭ 17 (+0%)
Mutual labels:  foundry-vtt
ddb-game-log
DDB Gamelog makes your D&D Beyond rolls visible in Foundry VTT without any browser extensions.
Stars: ✭ 17 (+0%)
Mutual labels:  foundry-vtt
perfect-vision
Foundry VTT Module: Lighting Drawings and Vision Limitation.
Stars: ✭ 45 (+164.71%)
Mutual labels:  foundry-vtt
Tokenmagic
A Foundry VTT module that allows you to add animations and graphic effects to tokens, tiles, templates and drawings.
Stars: ✭ 28 (+64.71%)
Mutual labels:  foundry-vtt
JB2A DnD5e
Templates of spells from the DnD5e ruleset (SRD and PHB), to use on FoundryVTT
Stars: ✭ 28 (+64.71%)
Mutual labels:  foundry-vtt
fvtt-lib-wrapper
Library for Foundry VTT which provides module developers with a simple way to modify core Foundry VTT code, while reducing the likelihood of conflict with other modules.
Stars: ✭ 21 (+23.53%)
Mutual labels:  foundry-vtt
modules
FVTT Community Modules - This repo has been replaced by: https://foundryvtt.wiki/en/community/community-unlisted-modules
Stars: ✭ 21 (+23.53%)
Mutual labels:  foundry-vtt
PDFoundry
A fully featured PDF viewer module for Foundry VTT, including form fillable actor sheets, journal links, and more!
Stars: ✭ 38 (+123.53%)
Mutual labels:  foundry-vtt
dsa5-foundryVTT
Das Schwarze Auge / The Dark Eye 5th Ed. System for Foundry VTT
Stars: ✭ 49 (+188.24%)
Mutual labels:  foundryvtt
fvtt-module-jitsiwebrtc
Jitsi WebRTC client for FVTT
Stars: ✭ 32 (+88.24%)
Mutual labels:  foundry-vtt

Foundry Factory

Checks npm downloads Repository License Ko-fi

Foundry Factory is an interactive CLI tool that developers can use to bootstrap modules and systems for Foundry Virtual Tabletop. It allows developers to choose among different presets to initialize their projects.

It is designed to be extendable so that adding additional presets is quite easy.

Foundry Factory Demo

Usage

In order to Foundry Factory, a recent version of Node.js 14 or higher is required. You can run it with npx:

npx @ghost-fvtt/foundry-factory <project-directory>

Alternatively you can install it globally and then execute it:

npm install -g @ghost-fvtt/foundry-factory
foundry-factory <project-directory>

Command Line Options

Usage: foundry-factory [options] <project-directory>

Options:
  -v, --version                          Show the version number of Foundry Factory
  -t, --type <type>                      Create a project of this type (choices: "module", "system")
  -p, --preset <preset>                  Use this preset (choices: "ghost-gulp-rollup", "league-js")
  -d, --default                          Use the default preset (default: false)
  -n, --no-config                        Skip the configuration prompts of the selected preset and use its default configuration
  -f, --force                            Overwrite target directory if it exists (default: false)
  --no-deps                              Skip installing project dependencies
  --no-git                               Skip git initialization
  -m, --packageManager <packageManager>  Use the specified npm client when installing dependencies (choices: "npm", "yarn", "yarn2", default: "npm")
  -h, --help                             display help for command

Presets

Here is a list of available presets with links to their individual documentation:

Development

Prerequisites

In order to build this project, recent versions of node and npm are required. Most likely using yarn also works but only npm is officially supported. We recommend using the latest lts version of node. If you use nvm to manage your node versions, you can simply run

nvm install

in the project's root directory.

You also need to install the project's dependencies. To do so, run

npm install

Building

You can build the project by running

npm run build

Alternatively, you can run

npm run build:watch

to watch for changes and automatically build as necessary.

Running the tests

You can run the tests with the following command:

npm test

Contributing

Contributions via pull requests are very welcome. If you find any issues, please report them in the issue tracker.

Creating new presets

Foundry Factory is designed to be easily extendable, so adding new presets should be pretty straight forward. In order to create a new preset, there are a couple of things you need to do:

  • Add a new folder for your preset in the src/presets directory.
  • In that folder, create a class which implements the Preset interface and has the methods of the PresetConstructor interface as static methods.
    • The getProgrammaticFiles method returns a mapping between files to create and the contents (as string) to write them.
    • The getTemplateFiles method returns a mapping between files to create and Nunjucks template files used to render them.
    • The getTemplateVariables returns a record of additional template variables to pass to the Nunjucks templates.
    • The getAdditionalDirectories returns a list of additional directories to create.
    • The getDependencies method returns a list of dependencies to install.
    • The getDevDependencies method returns a list of development dependencies to install.
    • The getPostInstallationCommands method returns a list of shell commands to run after the rest of the installation has completed. Make sure that they work on both Unix-like systems and Windows.
  • If your preset does not need some of these features, simply omit the corresponding methods. Except for the static methods, all of them are optional.
  • Add your preset to the presets constant in src/presets/presets.ts.
  • Optionally, create a folder for your preset in the template directory, containing any Nunjucks templates you want to render. In order to render them, you need to return paths to them (relative to the template directory) from the getTemplateFiles method of your class.

Licensing

This software project is licensed under the MIT License, a copy of which can be found under LICENSE.

Acknowledgment

While this is not a fork of Foundry Project Creator, a lot of inspiration was taken from it. You could think if it more as a rewrite with a couple of different design goals.

Credit for the name "Foundry Factory" goes to BadIdeasBureau.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].