Welcome to my Starforged Starter Vault! I set this up to play Starforged in a way that fits me best.
For the headings, I'm using Xolonium font and Noto Sans as the interface font.
This vault only works with the Dataview, Templater, and most importantly: Inline Scripts plugins.
The snippets.css
file contains all the folder icons, color coding of new callout boxes, title and header fonts, fixing the tasks so they don't strike through when marked, and an inversion code so that the SVG files will invert black/white based on light/dark mode.
Here were some specific design goals:
-
Never Leave the Journal: I usually play solo-rpgs by writing long-form like in a story. For that reason, I wanted to minimize the number of times I'd have to leave the journal entry of the current play session. Inline Scripts allows me that freedom in all but a few cases (like creating a new vow).
-
Minimize the Number of Reference Windows: Starforged has a lot more fiddly bits than Ironsworn which has really slowed down my play. I wanted to eliminate the friction by not having to sort through tons of reference windows or menus. To help with that, you can call a move reference directly into the journal and can access the oracles from an inline script. My workspace is a journal on the left, with the character sheet on the top-right and other reference note (like a move or oracles) on the bottom-right.
-
Make Mechanics Distinct from Story: One of the things I've always done playing in a word processor is to have the mechanics as separate callouts so that you can see clearly what is fiction and what is game play. Therefore, nearly any inline script you call here will give results in a callout which can be unfolded for more details.
To get started playing, you'll first want to set up your own character.
- Vault_Info: To make the images work with Inline Scripts, you have to hard code the location of the
Images
folder in the valut. Go theSupport
folder and open theVault_Info
note.-
THIS STEP IS CRITICAL! The frontmatter variable
imageLocation
in theVault_Info
page must be hard-coded to your specific location. Make sure it still has the"(
at the front and theImages/"
at the end. You can run the Inline Script command below to make all the images work once you have your vault location and path.After changing the path below to your specific path, type :: at the end of the command and Inline Scripts will reset all the image paths. You will have to run this command everytime you change vault locations. The command will reappear after use.
-
[!NOTE] THIS IS CRITICAL! >After replacing your specific image path, type :: at the end of the command below to reset the hard-coded image path for the vault and character tracks. You will have to manually reset any Progress Tracks you have already created. >>[!TIP] ;;setimagepath "(app://local/C:/Users/ericb/Desktop/SFV3/Images/"
-
Stats: Under the
Character
folder, got to theStats
note and set your stat values (Edge, Heart, Iron, Shadow, Wits) up in the frontmatter. The frontmatter is the section at the top of a note enclosed by---
marks. These act like variables for many of the Inline Scripts, so make sure these are accurate. -
Character Sheet: In the
Character_Sheet
note, fill in your name, a picture if you want, and your backstory. Then, scroll down to the bottom of the note and embed whichever assets you want your character to have. Use the command![[Ace]]
to embed the Ace asset for example. This note pulls in everything else from the other notes in theCharacter
folder. -
Background Vow and Inciting Incident: To set your first vows, right click on the
Progress
folder and create a new note. This will set a new Progress note with the appropriate template of frontmatter variables.-
Filename: At the very top of the note is the file name which should be a single word using only letters or numbers or underscore. For example,
Back_Vow
orCombatGoal1
orAlienFriends
are all fine whereBackground Vow
orFind the Sword
will cause the scripts to fail. I suggest short file names such asCombat1
orProg2
only because you'll need to type out the full filename for Inline Scripts to access it. -
Name: In the frontmatter, set the name of your vow which can be any word or phrase such as
Survive the Meteor Shower
orEscape the Black Hole's Gravity
. -
Difficulty: In the frontmatter, set the difficult to either Troublesome, Dangerous, Formidable, Extreme, or Epic. Make sure to capitalize the first letter and spell the word correct for Inline Scripts to use.
-
Other Frontmatter: You don't need to worry about the other frontmatter variables as they are all automated.
-
-
Create a New Journal Note and Play!: Add a new note to the
Journals
folder, and start playing!
I didn't do anything to set up a sector map because I never play with a map. There are other Obsidian vaults out there for Ironsworn and Starforged which you can use as a template for maps if you'd like.
-
Character: All the Inline Scripts shortcut commands require that the Character folder structure remain as it is now. You can add to any currently existing file as long as the frontmatter variables remain. Any new files you add to this folder won't interact with the current Inline Scripts shortcuts.
-
Images: All images are pulled from the Images folder. You can add additional folders and images, but don't change the structure of the images currently there.
-
Progress: Any thing that will have a progress track must go in the Progress folder. This includes combat tracks, vows, bonds with NPCs, etc.
While you are free to use any and all of the commands the Inline Scripts offers out of the box, below are explainations of the specific scripts I set up in four different files. Remember that every Inline Scripts command starts with ;;
and ends with ::
by default. I won't be able to type the full commands as examples below because it would trigger the scripts.
-
toggle {condition} - Toggle a condition on/off.
-
burnmom - Burns and resets momentum.
-
gain {meter/asset} {amount} - Adds to given meter or asset track.
-
lose {meter/asset} {amount} - Subtracts from given meter or asset track.
-
move {initials} {stat} {add} - Makes a challenge roll using the given stat and add for the specified move.
-
moveref {initals} - Embed the text of a move.
-
createprogress - Creates a new progress file for vows, combat tracks, bonds, etc. with popup inputs.
-
markprogress {filename} {amount} - Marks progress the given number of times on the track in the given file.
-
endprogress {fiilename} - Makes the progress move and Fulfill Your Vow or Take Decisive Action on an objective.
-
oracle {question} - Ask a question and then select the oracle to roll from the popup menu.
-
yesno {odds} {question} - Ask the oracle a yes/no question with the given odds.
-
at {question} - Ask a question and get an Action/Theme result as an answer.
-
df {question} - Ask a question and get a Descriptor/Focus result as an answer.
-
ptp - Rolls on the oracle from the Pay the Price move.
-
character - Rolls a full NPC with all the character oracles.
-
faction - Rolls a full faction with all the faction oracles.
-
sectorname - Rolls a sector name.
-
settlement - Rolls a full settlement using the settlement oracles.
-
starship {region} - Rolls a full starship using the starship oracles in the given region.
-
creature {environment} - Rolls a full creature using the creature oracles of the given environment.
-
planet {class} {region} - Rolls a full planet of the given class in the given region.
-
derelict - Rolls what you initially see at a derelict.
-
vault - Rolls what you initially see at a precursor vault.
-
starforged_stats.sfile: This file contains several helper functions that you don't need to worry about as well as the following Inline Scripts commands.
-
toggle {condition}: This command will turn on or off a condition such as
Wounded
orTraumatized
. I was going to have it be simple checkboxes, but then there was no way to check it off with an Inline Script. Therefore, they are actually images that live in the frontmatter of theConditions
page, and this script flips the image back and forth.Example use:
;;toggle wounded
-
burnmom: This command burns your momentum and gives you a callout box to write out what this mechanically changed.
Example use:
;;burnmom
-
gain {meter/asset} {amount}: This command adds to a specific meter like
Health
or an asset's track like a service module'sIntegrity
or theAmmo
or theArcher
asset. It will make sure you don't go over the max amount. You use either the meter name (Health, Spirit, Supply, Wealth, or Momentum) or the asset name (Starship, Glowcat, Archer, etc.).Example use:
;;gain Archer 2
will add 2 Ammo to the Archer asset while;;gain Momentum 2
will add 2 Momentum.
-
lose {meter/asset} {amount}: The opposite command from above which will make sure you don't go below the minimum amount. If you need to lose more
Health
than you have, it will give you a message saying that so you can decide if you need to lose more of something else (likeMomentum
) to compensate.Example use:
;;lose momentum 2
will subtract 2 Momentum.
-
-
starforged_moves.sfile: This file sets up shortcuts to use with moves. The commands are as follows:
-
getmovename {initials}: This is a helper function that you will never use directly, but it does explain how you need to reference moves. To use a move, use it's initials in the command unless it's only a single word move in which case you use the full name. This shortcut then expands it to the full name.
For example,
AYA
will give "Aid Your Ally" whileBATTLE
is necessary for the "Battle" move. There are a few exceptions which are: - All the "Face Something" moves have the same initials ofFD
. Therefore,FD
= Face Danger,FDEATH
= Face Death,FDEFEAT
= Face Defeat, andFDESOLATION
= Face Desolation. - Fulfill Your Vow and Forsake Your Vow are both FYV, so they can be referenced withFULFILL
andFORSAKE
.
-
move {initials} {stat} {add}: This command will be used frequently because it's how you perform moves. The {initials} were explained previously, but now you'll need to also give the {stat} you're using to make the challenge roll and an optional amount to {add} to the move defaulting to 0 if you leave the amount off. This returns a green callout box for a strong hit, orange for a weak hit, and red for a miss.
Example use:
;;move saa wits 1
will make a challenge roll with Wits and an add of +1 on the Secure An Advantage move.;;move compel iron
makes a challenge roll with Iron and no add on the Compel move.
-
moveref {initials}: Embeds a callout box with the text of the referenced move. This is incase you want to read the text of the move but not open a different note to do so.
Example use:
;;moveref fd
will embed the Face Danger move.
-
mech: Embeds a generic mechanics callout box in case you want to detail some mechanical consequence or action.
Example use:
;;mech
creates a blue callout box.
-
-
starforged_progress.sfile: This file contains the commands necessary to interact with your vows, bonds, combat tracks, etc. Anything that uses a progress track should run through these commands.
-
createprogress: This command will create a new note in the Progress folder, apply the template, and use your inputs for the filename, name of the vow (or bond or combat), and the difficulty level.
Example use:
;;createprogress
will create a new progress track file in the Progress folder.
-
markprogress {filename} {amount}: This command marks progress the given amount of times on the progress track contained within the given file. You give it the number of times to mark progress, not the number of tick marks. For example, if you want to mark progress twice on a Dangerous vow, use 2 (progress) and not 16 (the # of ticks marked with two progress of two boxes each).
Example use:
;;markprogress PirateFight1 1
will mark progress once filling in the appropriate number of tick marks depending on the Difficulty level of the vow.
-
endprogress {filename}: This command makes the final progress move to Fulfill Your Vow or Take Decisive Action on an objective and it marks the file as a completed vow.
Example use:
;;endprogress PirateFight1
will roll the challenge dice and compare them to your current progress.
-
-
starforged_oracles.sfile: This file contains all the shortcuts for rolling oracles.
-
getoracle {file path}: This is a helper function that you don't every need to use. It is used by the other commands but needed to be an actual shortcut rather than a true JS function. The specific purpose of this function is to check for Action/Theme, Descriptor, or Roll Twice results and then substitute those new oracle results in.
-
oracle {question}: This command allows you to ask a question and then calls up the oracle selection menu where you can select the appropriate oracle.
Example use:
;;oracle What is the next zone in the derelict?
will bring of the oracle selection menu where you can select the appropriate Derelict oracle.
-
yesno {odds} {question}: This command is the basic Ask the Oracle move giving a yes/no answer based on the given odds. Use initials for the odds like AC = Almost Certain, L = Likely, FF = Fifty/Fifty, U - Unlikely, and SC - Small Chance. This does note results with a match and returns the number value rolled.
Example use:
;;yesno FF Will there be hotdogs?
answers the question with a 50/50 likelihood.
-
at {question}: Ask a question and get an Action/Theme response.
Example use:
;;at What is the hidden agenda of the faction?
will answer the question by rolling an Action/Theme.
-
df {question}: Ask a question and get a Descriptor/Focus response.
Example use:
;;df What is the nature of the advanced technology?
will answer the question by rolling a Descriptor/Focus.
-
ptp: Rolls on the Pay the Price oracle.
Example use:
;;ptp
gives a result such as "You are harmed" from the Pay the Price move.
-
sectorname: Gives a random sector name.
Example use:
;;sectorname
gives a sector name
-
character: Gives a new NPC including the Name, Callsign, First Look, Initial Disposition, Revealed Aspect, Role, and Goal.
Example use:
;;character
gives a full NPC
-
settlement: Rolls all the settlement oracles at once.
Example use:
;;settlement
gives a full settlement
-
faction: Rolls all the faction oracles at once.
Example use:
;;faction
gives a full faction
-
starship {region}: Rolls all the starship oracles using results from the tables within the specific region (Terminus, Outlands, or Expanse). If you don't type in a region, it defaults to Terminus.
Example use:
;;starship
gives a starship in Terminus while the command;;starship expanse
gives a starship in the Expanse.
-
creature {environment}: Rolls all the creature oracles for the given environment. If environment is left blank, it randomly rolls the environment first before rolling the rest of the oracles.
Example use:
;;creature air
gives a creature using Air as its environment while;;creature
gives a creature from a random environment.
-
derelict: Rolls the Location/Type, Outer First Look, Condition, and starting Zone of a derelict.
Example use:
;;derelict
gives the above listed oracle results.
-
vault: Rolls the Location, Outer First Look, Form, Scale, Material, and Shape of a precursor vault.
Example use:
;;vault
gives the above listed oracle results.
-
planet {class} {region}: Rolls the oracles for a planet of the given class in the given region. Leaving the region blank will default to Terminus. If you want a random class of planet, type
Random
in the {class} section.Example use:
;;planet vital outlands
gives the oracle results from a Vital planet in the Outlands while;;planet random expanse
gives a planet of a random class in the Expanse while;;planet random
gives a planet of a random class in Terminus sine no region is listed at the end of the command.
-
This folder contains all the Inline Script shortcut files. If you are making your own shortcut files, add them here. The Vault_Info file is also here and should not be moved.
The Templates folder is necessary for creating new files with progress tracks. However, the Oracle, Move, and Asset templates were only used for importing JSON data and can safely be removed. You can also add any other templates to this file that you would like the Templater plugin to have access to.
All Assets, Moves, and Oracles are from Dataforged, the official Starforged repository.
Image, Map, and Stethoscope icons from Lucide
All other icons from game-icons.net by Delapouite, et. al.
This set-up only works with the Dataview, Templater, and most importantly: Inline Scripts plugins.