Giter Site home page Giter Site logo

foundryvtt / black-flag Goto Github PK

View Code? Open in Web Editor NEW
10.0 7.0 5.0 25.74 MB

The official repository for Kobold Press's "Black Flag" game system implementation in Foundry Virtual Tabletop.

License: MIT License

JavaScript 56.85% Handlebars 34.13% CSS 9.02%
foundryvtt ttrpg black-flag

black-flag's Introduction

Project Black Flag is the code name for an upcoming Kobold Press new core fantasy RPG system. An action-oriented roleplaying game that pits a group of heroic adventurers against the myriad of dangers found in fantasy worlds. Through collaborative storytelling, one player—called the Game Master (or GM)—and a group of other players—called Player Characters (or PCs)—will explore unique locations and embark upon adventurous quests within them.

Black Flag is intended to be flexible, so it doesn’t assume a standard setting. These rules are compatible with any published setting or unique worlds designed for your table. However, these rules assume the setting you adopt is rooted in the fantasy genre. 

This system is being developed concurrently with the Black Flag playtest packets and will expand as the playtest data does.

This system and content module currently includes:

  • Basic Character Creation
  • 3 Lineages
  • 6 Heritages
  • Backgrounds
  • Talents

If you have feedback on the content of Black Flag, please use the official feedback form from Kobold Press: Feedback Form

License

The Black Flag Game System for Foundry VTT is supported by a partnership between Kobold Press and Foundry Gaming LLC. For now, you may not: redistribute, reuse, nor fork the compendium data distributed via the black-flag-content module. It is intended solely to allow users to install as a game system in Foundry VTT for the purposes of participating in the Black Flag playtest.

Once the Open Content is defined by Kobold Press in accordance with the Open RPG Content (ORC) License we will apply that license to the compendium data.

The software itself is licensed MIT.

Contributing to foundryvtt/black-flag

Code contributions (from official playtests distributed publically by Kobold Press) are accepted. Please feel free to submit issues to the issue tracker or submit merge requests for code/content changes. Approval for such requests involves code and (if necessary) design review by the Maintainers of this repo. Please reach out on the Foundry Community Discord with any questions.

Please ensure there is an open issue about whatever contribution you are submitting. Please also ensure your contribution does not duplicate an existing one.

Issues

Check that your Issue isn't a duplicate (also check the closed issues, as sometimes work which has not been released closes an issue).

Issues which are assigned to a Milestone are considered "Prioritized." This assignment is not permanent and issues might be pushed out of milestones if the milestone is approaching a releaseable state without that work being done.

black-flag's People

Contributors

akrigline avatar anathemamask avatar cswendrowski avatar drental avatar endlesnights avatar mattexdee avatar stwlam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

black-flag's Issues

Convert HP max to be a derived field

The gaining of max HP is pretty heavily tied to character creation choice selections, in particular your class and some talents.

It would be ideal to convert this into a derived field with an optional override_max to take the burden off of the user when creating and leveling up the character.

Actor Traits Unselecting

Foundry v10.291
BF v0.0.3

Creating a new actor with the Human Lineage and Stone Heritage, there is a conflict with Tool Proficiency and Additional Proficiencies. If I select Mason Tools, the red box changes to a green check. I then select the additional languages in Additional Proficiencies and the Tool Proficiency unchecks back to a red box. When I go to correct that issue, the Additional Proficiencies unchecks itself after Tool Proficiencies are selected. It's a constant back and forth issue.

Actor creation fails in Foundry v11

When starting a new Black Flag world and creating an actor you get the following error:

BlackFlagActor validation errors:
system:
traits: must be an Array
traitChoices: must be an Array
fetch @ foundry.js:68000

Document Caches do not populate the first time you load into a new world

Core v10.291
system commit 0e11047

Reproduction Steps:
0. Have black-flag system and black-flag-content module installed

  1. Create a new world with the black-flag system
  2. Create a new character
  3. Observe "Lineage", "Heritage", etc dropdowns.

Expected: These should be populated
Actual: The dropdowns are empty

Looking at CONFIG.SYSTEM I see the Maps exist, but are empty.


This does not happen if you return to setup and then come back.
Is it possible that Foundry Core does not have the content module active when init for the system prepares the document caches?

This does not reproduce if you remove all actors from the world, reload (or return to setup and come back), and then create a new character.

Create Spell Item Schema

Playtest Packet 2 describes "Spell"s which would be best implemented as an Item type. I'm going to bring some knowledge from the 5e system and make note of what shortcomings were felt by people who wanted to extend the spellcasting system

Compiling as much knowledge up front as I can about this topic because it will be a doozy.

Descriptive Text

description: HTML;
spellCircle: 'arcane' | 'divine' | 'primal' | 'wyrd'; // this selection should be extensible by modules
spellRing: number; (0 can represent cantrips, max of 9 should not be assumed, often this is expanded beyond 9)
spellSchool: 'one of the options'; // this should be extensible by modules

Origin

Something we were lacking in 5e was a way to mark where the spell came from.
E.g. a Cleric/Druid might prepare different spells for each class, but there should be a way to differentiate them.
Similarly, some items might have spells embedded in them, and ideally the system supports annotating this.

Components

5e ended up making these extensible by modules and turning them into checkboxes in the item sheet.

Target -- common item concept

A little convoluted and probably generalizable with other combat items.

Spells can affect specifically some kinds of things (all creatures, allies, enemies; sometimes also objects sometimes not objects, sometimes 'magical effects', only the caster, n creatures/allies/etcetcetc)

Then, they can affect a kind of area (within a cone/sphere/box/line, a specific selection of creatures within range)

And lastly, they have a range for when the origin of that kind of area begins (self, n ft)

target: {
  creatures: {
    number: number;
    type: 'allies' | 'any' | 'enemies' | 'self';
    alsoAffectsObjects: boolean;
  },
  area: {
    type: 'target' | 'cone' | 'sphere' | etc
  },
  range: {
    value: number;
    unit: 'ft' | 'mile' | etc; // remember metric is probably a thing
  }
}

Attacks or Saves -- common item concept

Complicated, there's probably different 'kinds' of attack rolls (weapon attack, spell attack at minimum), saves can target specific attributes, saves can be based on a specific ability score for the character.

Damage -- common item concept

Complicated, but worth building in the idea of damage types and damage groups early

Duration -- common item concept

duration: {
  type: 'instantaneous' | 'time' | 'other'

  // if time is the type
  timeValue?: number;
  timeUnit?: 'minutes' | 'hours' | 'days'; // etc.

  // if 'other' is the type
  // stuff like "until the start of your next turn" or "until the end of their next turn", etc...
  // unsure how to represent this, an enum?
}

Casting Time -- aka "Usage Time", common concept

For spells this is pretty clearly one of:

  • Action
  • Bonus Action
  • Reaction
  • Ritual
    But some features or items take 'minutes'/'hours'/etc, so we could generalize this as "usage time"
usageTime: {
  type: 'ritual' | 'action' | 'bonus action' | 'reaction' | 'special' | 'time'

  // if time is the type
  timeValue?: number;
  timeUnit?: 'minutes' | 'hours' | 'days'; // etc.
}

Items can't be created

When I try to create a Background I get an error message instead:
image

Error: BlackFlagItem Model Validation Errors
[BlackFlagItem.system]: Model Validation Errors
[BackgroundTypeDataModel.description]: may not be undefined
[BackgroundTypeDataModel.color]: may not be undefined
[BackgroundTypeDataModel.equipment]: may not be undefined
    at SchemaField._validateType (commons.js:4098:15)
    at SchemaField.validate (commons.js:3824:37)
    at BlackFlagItem.validate (commons.js:5492:35)
    at new DataModel (commons.js:5269:26)
    at new Document (commons.js:5811:3)
    at new BaseItem (commons.js:8590:3)
    at new ClientDocumentMixin (foundry.js:13053:5)
    at new Item (foundry.js:19553:1)
    at new BlackFlagItem (item.mjs:1:16)
    at ClientDatabaseBackend._preCreateDocumentArray (foundry.js:12525:15)
onError @ foundry.js:747
_preCreateDocumentArray @ foundry.js:12527
_createDocuments @ foundry.js:12459
create @ commons.js:6738
await in create (async)
createDocuments @ commons.js:6110
create @ commons.js:6233
callback @ foundry.js:13608
button.callback @ foundry.js:56516
submit @ foundry.js:56403
_onClickButton @ foundry.js:56332
dispatch @ jquery.min.js:2
y.handle @ jquery.min.js:2
foundry.js:59187 BlackFlagItem Model Validation Errors
[BlackFlagItem.system]: Model Validation Errors
[BackgroundTypeDataModel.description]: may not be undefined
[BackgroundTypeDataModel.color]: may not be undefined
[BackgroundTypeDataModel.equipment]: may not be undefined
fetch @ foundry.js:59187
notify @ foundry.js:59114
error @ foundry.js:59150
onError @ foundry.js:748
_preCreateDocumentArray @ foundry.js:12527
_createDocuments @ foundry.js:12459
create @ commons.js:6738
await in create (async)
createDocuments @ commons.js:6110
create @ commons.js:6233
callback @ foundry.js:13608
button.callback @ foundry.js:56516
submit @ foundry.js:56403
_onClickButton @ foundry.js:56332
dispatch @ jquery.min.js:2
y.handle @ jquery.min.js:2

image

I have no modules active and am of course using the most current version of the System. I can work through what I need by copying items and will look into it again later.

Trying to install Black Flag in Foundry VTT fails

I am trying to install the Black Flag system in Foundry and it gives me the following error in the console:

tup.js:292 Error: Unable to load valid system manifest data from "https://github.com/foundryvtt/black-flag/blob/main/system.json"
The requested manifest at "https://github.com/foundryvtt/black-flag/blob/main/system.json" did not provide system manifest data.
    at Module.installPackage (file:///home/foundry/resources/app/dist/packages/views.mjs:1:1634)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async SetupView.handlePost (file:///home/foundry/resources/app/dist/server/views/setup.mjs:1:1980)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.