#Custom System Builder
1 messages · Page 4 of 1
In my system, I have items that have a checkbox for equipped and when players mark something equipped, it calculates the relevant item property on their character sheet. This was done with item modifiers.
How do you do that? From my understanding, item modifiers apply whenever an item is on a character's sheet
I'll DM you.
Also, how do you make a checkbox which determines whether or not its equipped?
Sounds good!
Make it set a variable (1 or 0) in the item, and multiple the stats by that variable
In a Dynamic table, I have a droplist field (key: text; label :text) such as 'agilite'-Agility and if I make a label entry referring (sameRow) to the key retrieved from this droplist I get the value 'agilite' (text).
I have a hidden attribute named agilite that returns a number (via formula).
How can I make my 'agilite' in my dynamic table become a number in this same dynamic table.
Dynamic table (agilite -text) ->Dynamic Table (agilite-text)=hidden attribute(digit)
Is it this what you're looking for? ${ref(sameRow(dropdownKey))}$
That's what I had done but my field was disappearing.
There is a problem as it seems. When we want to display in a test(optional) label located in a dynamictable, two references like: ${sameRow...}$ and ${ref(sameRow...}$ one of the two is not displayed. You have to put one of them either as a suffix or as a prefix.
The one that seems to cause problems in this case would be: ${sameRow(....}$
is there any way to have a player prompt be conditional? Right now I have something along the lines of ${Multi_Count > 1 ? (?{Shot|1}) : 0}$, but no matter if the condition is true or not, it prompts for an input
can you specify what you mean by “prompt”
When you have ?{example|} in an equation, it will prompt the player for an input for the value "example"
however, i only want it to happen under certain conditions
Anyone using custom system with Bar Brawl?
I am able to update attribute directly through tokens normally, but it doesn't work with Bar Brawl😩
I'd love to hear the answer to that as well, multiplying out works for numbers, but I'm trying to find something that will work with setting text
A checkbox returns true or false as a value, so you can use it directly as a conditional: ${checkboxKey ? 'value1' : 'value2'}$
what I've been trying and so far failing to figure out, is if there is a way for a false value to not push a value change, so I tried ${checkboxKey ? 'value1' : ''}$ and a couple of variations on that theme but it always returned and error.
Quick question: Does anyone know what's causing this .0000000000000001? This character is only equipped with these items.
@formal goblet Hey there, I was told by someone else in the server to tag you about my question on how I can make a form-fillable PDF I already have work like a custom-built character sheet to recognize field...and thus make macros that use certain parts of the sheet for formulas.
I have no clues about forms in PDFs
Common rounding error in js
Man, I guess I just have to build the character sheet from scratch. I am learning about that but everytime I learn about it I can;t make it look the way I want it to
Relatable, I'm struggling pretty heavily with some things as well
How do you guys get things to align properly with tables and panels?
I'm trying to emulate this from our system's character sheet, but nothing seems to line up quite right.
OOOOH, adding a label to the number field makes things a lot easier
otherwise for the above you could have a table with 8 columns and alignments rlrlrlrl
Can you copy and paste sections you've made in Custom System Builder?
Hmm, it looks like setting up unique health amounts per token is going to be an issue
You mapped your attributes as attribute bars?
How to I make it so foundry sees one number field as the current HP and another as the max HP?
Just define a max-value for your current hp field in your template
O.O
Sorry I've been up for a while, I'm trying to make sure I compute that right
Yeah this isn't working how I want it to: each characters max HP is different and I can't get the template to use the number in the field as teh max HP
Okay, I kinda got it to work: I make it look at the Prop Current body but it only sees one field
If I could have the min field be the Current Body and the Max field be the actual Body stat the HP bar would work correctly
Why not? You can enter a formula to calculate the max-value dynamically, so each character would have his individual max-value.
Hmm, where on the website would it be best for me to find the steps to make and place the formula
Oh, you can only have 2 resources bars anyway, I would need a way to make three
Module: Bar Brawl
Could someone provide an example of a basic macro that would change a property on a character's sheet?
I can't wrap my head around any of the macro API stuff in the Readme, or whatever the computablephrase stuff is supposed to be. I can't find any good examples.
I don't know Javascript, but I've done some coding before and theoretically the stuff I want to do isn't super complex, so I think I'd be able to manage if I have a jumping off point.
The tricky part is to find the right functions in the FoundryAPI. Javascript itself isn't that tricky (if you exclude dynamic typing... I like Typescript so much more...).
I'll start by looking at some tutorials for them. What I want to be able to do is fully automate an attack, by reading values from a character's sheet and adding those to a roll against a targeted creature. Then, if that roll total is greater than the targets dodge, it would automatically roll damage and decrease the enemy's health accordingly.
Ideally I'd like to do some more complex stuff like being able to read both attacker and enemy positions.
As a start, I would just like to have a macro to reload a weapon. A weapon has a given current_ammo and max_ammo, and I just want to set the current_ammo to the max_ammo
You don’t need to make everything automated. You can trust you players
There was someone, who posted a module for CSB for Action Buttons. There was also a script example to read and update values
Well, automation means less things players have to be aware of
It's more for me as the DM honestly. I plan to have a lot of enemies, and would rather not have to go into each sheet and modify their health values every time.
I tried the action buttons module but it didn't seem to do anything
Anyway, can’t you modify the values via props?
#macro-polo can prob help if you are struggling
yeah that's what I'm trying to do, I'll probably go in there
Just trying to get a basic example
No problem
I'm also curious what the stuff in CSB's macro API means, and if it's useful at all
Anyone have a formula for exploding d6
The official website and community for Foundry Virtual Tabletop.
${1d6x6]}$
But check out martins for in detail
managed to do a simple macro to change a value!
Nice
Can I steal it?
You can do items containers and get those values from the items
That is what I do personally
What is the key for item portraits?
in an item container, I want to do item.x to get the portrait. What would I replace X with?
there´s none
Dammit
And even if, the system doesn´t offer an image-component 😅
just do it in lables
<img src="icons/svg/sword.svg" width=16 height = 16/>
That is what I do
cheater 😂
:|
Well, to be fair, I do the same with conditional formatting 😅
another unrelated question. Can you get an actors name by using getPropertyDataFromActor
Don´t think so because it´s not part of the props
But there´s already a feature request for this. The easiest would be to just copy the name to the props, so it´d become a standard key
actually can I steal that? How do I do it?
if(canvas.tokens.controlled.length == 0 || canvas.tokens.controlled.length > 1){
ui.notifications.error("Please select one token");
return;
}
// Set controlled token as a
let a = canvas.tokens.controlled[0].actor
//Set curammo as current ammo
curammo = a.system.props.Main_Ammo
maxammo = a.system.props.Main_Ammo_Max
//Fill ammo to max
await a.update({"system.props.Main_Ammo": maxammo})```
That's what I did: https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/Tips-&-Tricks/Conditional-text-color-formatting
It looks pretty good in conjuction of modifiers (don't mistake it with Item Modifiers 😅)
nice
I should probably put a simple macro example with how to update a value into the wiki... Well, it can wait till tomorrow 
sorry haha, but how do you do this with images like svgs? Like pulling from a dropdown list or something
You need to know the path to the image in your foundry data. The rest is in the chat a bit above.
Yeah I may need an example, idk how Im supposed to turn the color conditional into something that accepts the svg paths. Figured it out nevermind.
The examples are by far the most helpful part of the documentation for those of us with no technical/coding experience, they are the only way I make sense of anything.
I very much agree!
Thank you for this, I was able to get all their health bars on there and in a nice and neat order. Plus, I figured out how to represent their health properly per unique token by having their Current HP being the min value and being able to set that max value myself. However, I'm having an issue that when I assign the HP bars for the Owner to show only when Hovered or Selected...they don't show up at all
Like I would hover over the token AND select it, and they don't show up
every other option works, but the option that has two variables is unhappy and not cooperating.
Well, this is something, that is out of my range
Forgive me if I'm missing the obvious here but I can't seem to reference token attributes when using /roll, or other dice roll commands. If I created a field in a character sheet with the component key "initiative" I expected to reference that key's value with '@system.props.initiative'. Is this basic attribute referencing somewhere in the documentation and I just missed it?
referencing happens over custom formulas. Just read the section about fomulas in the project-README
found it, thanks
Yes, the bars of Bar Brawl could show my change towards the corresponding value (through character sheet), but I am not able to change the bar value through right click the tokends.
Is there any more mapping need to be done……?
no
I was doing things in this way. But the HP is unchangeable in Bar Brawl, while the custom value (top one) is changeable.
I also tried to directly use "current_hp" from the sheet, but the bar was also unchangeable.
If you create your own attribute bars, they'll become readonly. The reason behind this is, that you cannot edit the value directly because it is the result of a formula.
If you want editable attribute bars, you have to meet 2 requirements:
- You need a number field with a value
- Your number field needs a defined max-value (can take a formula)
As soon as those 2 are done, the attribute bar will appear automatically in the list, where you can choose from.
Thanks a lot!
And yep, that is also my thought. Actually I am using one of the template from gitlab, and there is an appropriate number field "current_hp", but the bar using it was still unchangeable.
I tried to disable Bar Brawl, and the problems are solved. Maybe that's some issue with the module😫
CSB supports bar brawl. You just need the right version (which I think you don't use if I see it right)
You mean version of bar brawl or CSB? I was using V9 and corresponding CSB, haven't tried V10 CSB yet
Oh okay, I would definitely give it a try. Thanks a lot 👀
Ty sry for late reply busy at work
Ty sry late reply busy with work
Is it possible for me to c/p this onto another panel tab?
I want to copy all of this to here
If you have the latest version of CSB, you can Drag&Drop your dynamic table into the skills Tab. If you hold CTRL while you do, it will copy the dynamic table instead of moving it
I have a question: is it possible through CSB to make a macro or code a program to use a chart system? The system I use for my games uses two charts whenever a player rolls to accomplish something: the first chart determines if they succeeded at all and if they over-succeeded, and the second chart determines their level of success. If it is possible to integrate this via only the tools CSB provides that would be awesome, but if I have to put something together for it that's fine as I could make that a side project.
I have difficulties to understand how it should look like in the end. The question I get in mind first is, which UI-components should be used (buttons, labels, tables, radio-groups, etc...). And the next would be, which data would be necessary.
Otherwise, you could append the system by implementing your own component. There is an example, where someone implemented his own component and published it via a module https://gitlab.com/mattbeckpdx/custom-system-builder-actionbuttons
Not with the current state, but it might help with the upcoming feature.
okay thx
Yeah, Items in Items may get delayed until this is live ^^"
I'll need to test it out, check if everything is really smoother with it, but... yeah, it may be a game changer for CSB's Roadmap :/
Well, I have nothing against if we reprioritise the roadmap if the new Foundry-feature can help us to develop it way faster and more efficient.
I would like to assign the result of this conditional expression:
[${exptest <= myskill ? [:edmg:] : [:ndmg:]}$] }$
to a variable called 'netdmg'. I have tried this:
${netdmg:= [${exptest <= myskill ? [:edmg:] : [:ndmg:]}$] }$
but get a long list of math.js related errors...any ideas/suggestions?
Even without Items in Items we have a lot of tickets 😅
Yeah, nested ${}$ is never good 😅
yeah, i thought so...any idea on how to save the result of the condition since id like to use it later?
Should be this: ${netdmg:= exptest <= myskill ? [:edmg:] : [:ndmg:]}$. But it will roll twice
thanks - can I hide those rolls with a # somewhere?
It would be better this way:
${#rollformula:= exptest <= myskill ? edmg : ndmg}$
${netdmg:= [:rollformula:]}$
You can only hide whole blocks (everything inside one ${}$)
Ah, yes. I can live with that by some formatting of the output...thanks very much for the help!
Hey, I'm trying to make a sheet template right now. I'd like to have the stats laid out as such -
where I'd like the Current value to be the sum of the base value, the temp and the perm modifiers.
How can I set up the element in the Current column to autocalculate its value based on the other three?
Switch the component to a Label and sum up the values of the other components in a formula ${str_base + str_temp + str_permanent}$
You´d have to repeat this for every additional row. If the structure stays the same within all rows, I´d recommend to use a Dynamic Table instead of a normal Table. This would allow to use operations on the current row for each row instead of defining formulas for every row individually.
Thanks.
anything i need to keep in mind when migrating to v10 with csb ?
Not really. Some functions are deprecated but are still supported in V10 (they´ll be removed with V11). The rest is the same. But I still recommend to do a backup before updating to a major version. Unexpected things can still happen.
Another thing I tried doing is adding a simple query to the Contest option(and probably other things, once I figure out how to do it), which currently uses the formula ${[1d10+:str_current:]}$ in its roll message.
I've tried to add a user input to it so that it can incorporate situational modifiers into the outcome, like so - ${[1d10+:str_current:+?{Modifier|0}]}$. Nothing happens when I try it though, and I get the following errors in the console log.
[Detected 1 package: system:custom-system-builder]
at StringTerm.evaluate (foundry.js:11730:11)
at Roll._evaluate (foundry.js:9292:42)
at async Formula.evaluateRoll (Formula.js:815:13)
at async Formula.compute (Formula.js:270:30)
at async ComputablePhrase.compute (ComputablePhrase.js:128:13)
at async HTMLAnchorElement.<anonymous> (Label.js:247:21)```
Which I assume means that I need to go about that in a different way?
Yeah, it should be a bit different:
${#?{Modifier|0}}$
${[1d10 + :str_current: + :Modifier:]}$
👍
Wasn't sure if including it in the inline roll was the issue, seems it was.
Hello, I am having a bit of a major issue at the moment. None of my templates are working. This is the error I get on the console:
actor-sheet.js:76 Uncaught TypeError: undefined. Cannot read properties of undefined (reading 'getAllKeys')
[Detected 1 package: system:custom-system-builder]
at TemplateSheet.getTemplateKeys (actor-sheet.js:76:65)
at CustomActor.getKeys (actor.js:537:42)
at CustomActor.reloadTemplate (actor.js:564:38)
at HTMLAnchorElement.<anonymous> (character-sheet.js:80:28)
at HTMLAnchorElement.dispatch (jquery.min.js:2:43064)
at y.handle (jquery.min.js:2:41048)
getTemplateKeys @ actor-sheet.js:76
getKeys @ actor.js:537
reloadTemplate @ actor.js:564
(anonymous) @ character-sheet.js:80
dispatch @ jquery.min.js:2
y.handle @ jquery.min.js:2
For more context, I have had these templates working for a few weeks now. Nothing bad has happened. Mid session tonight i was unable to switch to a different template. This was noticed when I tried to make a new enemy.
I think it´s this one: https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/235#note_1293145312
That is the MADDEST fix I have ever seen. It works, but it is mental lol
Well, true 🤣
Basicly no – exept if you had paralaxia maps. This mod is not working in v10 anymore and the maps done with it are broken.
There is a replacemod but the maps have to be done anew.
A simple restart fixed it, so all is in order
I've been building a sheet I have a question: can you use text fields to modify dice rolls? I have a dynamic table for weapons, and one of the fields is the damage dice, "1d8" or what have you, referencing or sameRowing the field in a label to roll doesn't work, maybe I'm missing an obvious solution? 🤔
It should work.
${#dmg_dice:= sameRow(columnKey)}$
${[:dmg_dice:]}$
or
${[:sameRow(columnKey):]}$
Awesome, it works!
Thank you!
Now, is there a way to start a new line in a label roll message?
It is based on html.
To make it simple just put an <br> at the end of the line
Thank you, you've saved me a ton of headache!
After a bit of thinking...I could roll the d100 and then use the die result as a condition to compare to the range for each location, the true one would then be selected. Is there a simpler/better way to do this, though?
Ignore: I have now solved this to my satisfaction...
Any advice for creating an item within a macro within this system? Items naturally have a lot of properties and I'm wondering if I can just generate one from a template or something easier
To make items and actors from macros, I've just been copying the json of an item and replacing bits with variables. There is no convenient baked in API adapted for this system specifically.
Is there a clean way to have an item be a feat-type thing which modifies a hidden value?
For example, I want a hidden attribute with key "test", and I want a feat item which gives +1 to "test" when its equipped. However, I don't want to have to have a section with "test" on my sheet anywhere.
Absolutely, that's what item modifiers are for. https://gitlab.com/custom-system-builder/custom-system-builder#52-item-modifiers
On the item, I would make a number field with key "test_modifier" and only visible to the GM, then add a modifier "test + ${test_modifier}$"
Where in an actor is the id stored these days ? is it the template value ?
found it
I just modded my CSB to have a getName() and getID() function, it seems to just work !
I see macros have changed a bit for V10, anyone know what the current way to read and change properties is ?
Hey there! Any Idea on how i would go at something like active effects with multiple levels? (Like stacking them)? Has anyone tried?
And also(possibly related): Is there a way to push stuff dynamic table automatically / have it automatically populated with new entries (values coming from somewhere else in the sheet)
You could create a table and add the levels there, so you would be able to reference these in your active effects modifiers. Otherwise... there is no built-in functionality for levels of effects.
Thanks!
Ok, so this is probably a really dumb. But I cannot seem to enter values into a Dynamic Table ... I created a dynamic table on a template. Just learning the system so I gave it the following columns key,val1,val2,val3 (with appropriate column names)
Then I load an actor with that template as its base. I can see the Dynamic table, I can hit the + but it just makes values that are blank and I cannot seem to figure out how to add values to it. Can someone explain what I am doing wrong?
What components are you using for the columns? 😅
..... Labels ... Ok now I am going to go hide in a corner.
When you asked that I realized I could create components other than labels ...
Thanks
Well, I think you got your answer 😄
Yep, like I said a real dumb ... one of those that SHOULD be obvious to me.
One more really dumb question, item containers can they be limited to only one item total added to them. Basically if I make a race slot as an item container so that the race item can add it various modifications can I make it so you can only have one race. It looks like no, but I want to verify that I did not miss something
There is currently no such limit so it´s not possible to prevent to assign more than 1 item from a distinct template
Is what I thought, thank you!
Item Containers cannot do that anyway, even if they´d have an option for that because they´re just a visual container. They only check what Items are in the actor in display the ones which they´re interested in.
No, I understand that. I just wanted to have an item container that said ... 1 item no more in me.
Or 10 items ... no more in me ... basically limit the size that the particular item container could contain.
I understand that but with the current implementation, the only one who could set such a limit would be the actor, because he holds the necessary Item-Data
ohhh I understand now
You can assign Items to an actor without having a single Item Container 😅
is there a limit on tables for a template sheet? im making a 61 row table and am getting the error "row is not interable" around row 36. edit: aparently restarting foundry sometimes fixes it.
Hello! Does someone know how do I make it so a roll drains a resource? For example, if I have a number field that says 18, how do I roll something that subtracts 2 every time?
Sry, but the system doesn't offer such feature (changing values on certain actions). You'll have to work with macros and such.
I'll test it when I'm home
Really? That's odd. I'll see what I can do with macros
Yet another dumb question, in a macro I seem to be able to change hidden values using
await actor.update({"system":{"hidden":{<hiddenarray>:[{"name":<hiddenkey,"value":<newvalue>},...<all other hidden values as object pairs>]}}});
Textbox values
await actor.update({"system":{"props":{<controlkey>:<newvalue>}}});
Where are label values being pulled from/stored?
I have been stepping through the actor but not seeing it, probably way too tired and is really simple ... but again not seeing.
ok, nvm found it.
Yep, seems to work fine for me
Forgive my ignorance on this but I am a bit of a novice when dealing with formulas. I'm using Custom System Builder and trying to set up the character sheet so that it auto populates fields based upon the core attributes. For instance, If the player inputs a strength value of 18, I need it to automatically add a plus 1 to the "To Hit" value. Where would I go about adding a formula for it and what would that formula look like? Thanks
have you checked the documentation?
I have. I'm just not sure if I need to create a macro for it or if I can define it as a formula within the number component itself.
A couple quick questions, what if I input a strength value of 45? Should that number increase? Or is it just at 18 or greater you get a +1?
The bonus should increase as a strength score goes up. For instance, a to hit bonus should be +1 for a strength score of 17-18 and then it becomes a +2 at 19-20, +3 with a 21-22, and a +4 with a 23-24.
Is it always with every two it goes up? Or does that number adjust?
It is unless they have a low score of 9-16.
Let me guess if I have a score of 8 it is a -1 to hit?
Yes
${score < 9 ? ceil((score - 10)/2) : score > 16 ? floor((score-15)/2) : 0}$ --- would do it to give you an appropriate modifier, you could put that as a "strength_mod" or something similar then do the calculations on the roll, or have your tohit variable be a calculation of its own.
Replacing score with your strength variable.
I am not proficient with CSB yet, so your mileage may very. I am just trying to learn it, figured I would do it the fun way by creating an addon module for it.
Can that formula be input into the To Hit number field or would it be better to place it elsewhere?
It can be if it is the only thing going to effect it. But if other things effect your tohit they will over write the formula
Got it. It should probably be written into a macro then correct?
You can use roll formulas
Under lables
${[1d20]+HitBonus}$
Ok thanks guys. I appreciate it.
Another question, is there a way to show whether a roll succeeds or fails by turning the roll result green or red in the chat? For instance, if making a dex check and the result is below the dex attribute number, then it turns green and if the result is over the dex attribute number, it turns red.
${#dex:=10}$
${roll:=[d20]}$
<h2 style='color:${!roll<dex?'green':'red'}$;'>${!roll<dex?'Success':'Failure'}$</h2>
obviously you would want to use your own variables etc but that would work
A quick (I hope question) - is there anyway to set a Label to display the sum of two values from the actor sheet? In my case the actor has some base attributes and some 'advances' they can take to improve that attribute...Id like to have the base and the advances added together and displayed as a total. I thought you could do this in a label/labelroll, but I dont see how that can be implemented.
Well, you can do that.
${sum1}$ / ${sum2}$
This is valid for both Label and Label Roll Message.
Oh...that's simple...lol. Thanks very much!
Ah wait, you want the total, not separate values... That's even easier: ${value1 + value2}$
Is it possible to enter something like this as a column in an item container?
${( item.Carried==0 ? '<img src="" alt="" width="20" height="20">' : ( item.Right_Equip==1 ? '<img src="" alt="" width="20" height="20">' : ( item.Left_Equip==1 ? '<img src="" alt="" width="20" height="20">' : '<img src="" alt="" width="20" height="20">' ) ) )}$
I'm having trouble getting it to work. (It just says ERROR in the column currently.) ((Image sources removed because y'all don't need to see my filepaths.))
I started trying to run some test combats, so was generating a few NPC options to test stuff out on, and I'm running into two problems repeatedly but not consistently.
-
I can create 1 row in a dynamic table, but no more, everything in that row works but it refuses to add a second and provides no error message.
-
about half the new actors I create cannot be opened again if I close them, I tried from the actor menu, and via their tokens, again, no error message.
I tried refreshing, and restarting, but no change to which ones I could access and not, the ones I get the dynamic table error do appear to be correlated with the non reopen ones.
Does anyone have any idea what might cause this or how I might approach fixing it?
so it works fine if there are no empty rows above it when creating a new entry. if the row above it is empty it errors and will error on every field in the table until foundry is relaunched.
I think that you have an error in a formula somewhere in your dynamic table. To see which formula is at fault you should check your console with F12 (and verbose messages on).
Try it this way: <img src="${concat('icons/svg/', item.Attack == 1 ? 'item-bag.svg' : '', item.Attack == 2 ? 'book.svg' : '')}$" width=20 height=20/>
Is it a normal Table or a Dynamic Table?
normal table
it didnt seam to mater where in the row or what was input it in it as long as something was in the row above it.
67 rows with 7 columns was the exact table messurement.
I have in my template a tabel with 72 rows with 8 colums - and no problem.
I don't think it is something general with CSB
How fast are you enter the next table slot? You recogniced that CSB takes some time to save changes?
If I wanted to export the whole system I built with CSB, not just the templates but also including all created actors, items, etc., how would I go about doing that?
You can export these via right-click on the corresponding actor/item
Oh boy, it's a per-item export? Yikes. How about folders?
Hello everyone, I have the following issue:
I have a number field with both relative modification and field controls enabled. On it I have added formulas for both maximum and minimum values.
When adding and subtracting from it, it works as intended until it reaches a negative number. After that, it keeps reducing the number of the field in multiples of 2 every time you click out of it, forever, until you force a positive number on the field.
Is this a known issue? Is it user error? Is my field haunted?
I think I may have found the cause.
Because relative modification is enabled, decreasing the counter to, let's say, -1, doesn't differentiate it from writing -1 to do a subtraction. So it goes to -2, which is understood as "now subtract 2", which goes to -4 in an infinite loop
So my followup question is: Is there a workaround to have my cake and eat it too?
That fixed it, thanks a ton!
Question - I have a dynamic table with a column called race_list (dwarf, elf, human, etc) and other columns called elf_race_classes, dwarf_race_classes, etc. On the character sheet, when the player chooses "Elf" from the Race dropdown menu , how do I automatically populate the Class dropdown menu with the options from the elf_race_classes column? I'm basically trying to link two dropdown menus together.
You can have visibility changes based on race
That reminds me, I'm playing Mekton Zeta and the main conceit is you have Mech built out of Servos, like the Head Servo, Torso Servo, Arm Servo, etc. A Dynamic table works wonders for this. But Arms are a type of servo, and Hands are a type of extremity, so I made another dynamic table for those. Weapons can be attached to an Arm Servo, or held in the Hand Extremity, so I'd like to make a dropdown that references the Servo table AND the Extremity table. Is that possible?
You can only reference one dynamic table at a time, but I can try to implement multiple references
That would be really helpful, thank you!
hello. Could someone reference me to some kinda tutorial for user imput? I'm reading the example from gitlab but I'm afraid I don't get it
I'm guessing it's supposed to make a dialogue pop up, and then I can make it so the player gets to fill it with whatever, right?
Ok I'm beginning to understand. it's not for what I thought it was. It essentially replaces a variable in a formula with whatever the player writes on it
Judging by number of replies I am going to assume CSB is condisdred the best of the DIY modules?
Has anyone already done Pendragon?
Hi all! Is it possible to take an existing System and change certain things on the character sheet? I would like to take the original sheet from EZD6 and add a few components.
Is there anyone that is solid with CSB and would be interested in a paid engagement?
I don´t think so because it is necessary that the data structures match (which I don´t think is the case)
If you want to see what the system is capable of, you should check the README/Wiki/Sheet-Library in the project.
README: https://gitlab.com/custom-system-builder/custom-system-builder/-/blob/main/README.md
Wiki: https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/home
Sheet-Library: https://gitlab.com/custom-system-builder/custom-system-builder/-/tree/main/sheet-library
What formula would I need to use to give all PC actors a +1 initiative? I assume it would be a hidden attribute, but I'm not sure how to set it.
You can go into setting, custom system builder. Under initiative formula type ‘[1d20]+initiativeBonus’
Under the player actor sheet go into hidden variables and enter a new one for initiativeBonus. For the formula PCs type 1 and for enemies type 0.
Tell me if you have troubles :)
Are the PC and NPC´s using the same template or not?
They are not. What I really need is to be able to manually reorder the initiative order and not deal with rolled init. But the next best thing is to give the PCs a +1 so they are at the top of the list and NPCs/monsters are at the bottom. Using the tip from @shut harness worked for now. (Unless you know how I can make init be reorderable?)
I set initiative formula as [1d1]+initiativeBonus and this served well enough.
So you don´t roll for initiative or what? 😅
You don’t have to roll
No. In my system, "initiative" just means all the PCs go first and then the monsters and such get a turn.
You can just use initiativeBonus
That works, too.
You can right click and click update initiative
To change the order manually
Oh, interesting. I didn't see Update Initiative, but there was Clear Initiative, which did move the character to the bottom of the list. It's a click or two too much, but it does what I need it. Thanks for the tip!
Howdy all, question when it comes to rolls/macros, are there any examples/guides for them around? I've been trying my hand at automating some basic functions but haven't had much luck just yet.
There exist a module for manually reorder the combat initiative list – but I sadly don’t remember the name…😵💫
Search for the combat helper modules of foundry
Got it again - look at "Combat Initiative Modifier"
Sorry, update combantant
I'll check it out, thanks.
I'm trying to set up my core roll mechanic and I have no idea how to even begin. It's easy in theory, with real dice but I don't know how I would translate it to this. The base roll is 2D20 where only one dice is affected by modifiers and the other determines the quality of your roll so you don't have a fail success binary but a mechanic that tells you how bad you messed up or maybe it's not that bad etc.
Check this section out about rolls: https://gitlab.com/custom-system-builder/custom-system-builder/#45-add-rolls.
And here a macro-example for updating a value: https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/Tips-&-Tricks/Macro-for-updating-values
ah cheers, I guess I'll try bashing my face right back into it then haha
thanks!
so when I click on for example, athletics, the macro rolls 2D20 picks the left one as the one to throw modifiers on and the right one to say oh oops you messed up my friend.
I´d do something like this:
${#roll:= [1d20]}$
${#roll_quality:= [1d20]}$
Roll-Result: ${roll + modifiers}$
Roll-Quality: ${roll_quality == 1 ? 'oops' : 'it´s fine'}$
cheers
Martin's a bit of a magician in that way.
I'm still too dumb to understand the documentation I'm struggling to set stuff up
It's like Lego but I have no hands
Another question for the knowledgeable in this thread: Is there any way to have a chat message generated when a player changes the value on a certain Number Field on their character sheet? In my game system characters have a value named "Luck Points", for which I would like to generate a chat message when the player spends (i.e. subtracts) one of them (something like "Bob the Fighter just spent a Luck Point!"), but I'm not sure that's possible in CSB.
Not with the tools the system is offering. I don´t know if you can attach an Event Listener with a macro but the system itself doesn´t offer such functionality.
is there a way to copy a panel with all its content and paste it ?
Hold CTRL while moving the panel. You can also copy components between different sheets
thanks that helps a lot ^^
is there any way to do any kind of loop / repeated logic inside a roll message ? the system i am working on doesn't add dice together, if the user needs to roll xd6, i can't do a /r xd6, i need x distinct rolls that will be displayed
Loops are not supported
can i call a macro then from a label ?
i can do my logic in a macro
i also probably gonna need a dialog anyways
You can right-click on the Label in the actor sheet (not Template). You´ll see some options there
Here´s a bit more context: https://gitlab.com/custom-system-builder/custom-system-builder/#7-macro-support
i have tried but right click doesn't do anything for me
A roll must be configured and I think it needs a defined key
right, the key was the key, but that doesn't solve my problem, all it does is allow my to create a macro from a roll message, i want to do the opposite, i want to call a macro (something outside the sheet) by clicking a label in the sheet
Hmm, good question. i think you can paste the macro inside a Label Roll Message but that would mean that you´d have to click on the Label first and then on the macro in the chat. I don´t know if you can call it directly.
i was hopping there would be a syntax like /macro inside the roll message but i couldn't make it work
All I´ve done with macros is this one: https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/Tips-&-Tricks/Macro-for-updating-values. I hadn´t the need to do more.
i really would have liked my players to click in the sheet instead of having them using a bunch of macros :/
really surprised this is not handled by the system, there is so much in it
You can check if this module can help you: https://gitlab.com/mattbeckpdx/custom-system-builder-actionbuttons
i am gonna use a world script and add listeners to the labels myself, which will run whatever code i want
Far point, I´d do the same 😄
If I want to add stuff to the charter sheet on say, if I select cleric from a drop down, it automatically adds 1st level cleric features to the sheet.
I'm reading the documentation but I can't puzzle it out
I should look at other sheets more. Maybe that's the way to do it
You can make different labels that describe features, and have their visibility requirements be having the dropdown set to X class
I personally use items for classes and features
i am very confused with dynamic table, why is it an object instead of an array-like and why do deleted entries still exist ?
@brittle moth I think you can answer that better than me 😅
is there a way to send a popup with a checkbox in it when doing a roll formula?
I know how to ask the user for input on a roll using ?{} but I want to ask them if a particular roll has advantage or disadvantage
Two questions, so two answers :
- It is an object to be able to call on its properties with the syntax
dynamicTable.rowIndex.property, like for exampleskills.1.name. While not used now, it is a legacy of the first versions of the system. - Deleted entries exist because Foundry is - in my opinion - very bad with property deletion on objects. The syntax is simply horrible, even more on a customizable system like CSB. Updating properties, on the other hand, is very simple, so it is far simpler to add a 'deleted' property than to actually remove the property from the object.
alright 🙂
If you have ideas to improve it, and/or a strong reason why I should change this, don't hesitate to tell me 🙂
i don't have a reason to change it no, your explanation made sense, i was just confused when i was fetching the data, my first instinct was to filter and map over it and everything broke
i would probably still delete the data using the negative update syntax but i have not read your code
I'm trying to recreate or express a concept, players have a stress bar that fills up and they have a little control on how big that bar is. is there a way to express this here? my google sheets version looks like this
i have pretty much the same need but i simply let them check the boxes one by one, didn't find an alternative with the system
fug
Nicely made!
Yeah, looks great, I love the inclusion of empathy as a main social stat
Is it possible to have a variable targetcolumn in a fetchDynamicTable?
I need, in my table, to compare the value of a fetch against a variable bearing (depending on capacity and modifier).
Aptitudes Physiques : ${cap:=aptitudes_physiques}$
Modificateur : ${mod:=?{Modificateur|0}}$
Palier: ${palier:=mod+cap}$
Jet: ${jet:=[1d100]}$
Jet corrigé: ${jetmod:=(ceil(jet/5)5)}$
${refpalier:=concat("'palier",string(palier),"'")}$
${fetchFromDynamicTable('palier',refpalier)}$
It is, and your example formula should do just that 🙂
ah, no, I see the small error :
Your contatenated value should not have the apostrophes 🙂
Aptitudes Physiques : ${cap:=aptitudes_physiques}$
Modificateur : ${mod:=?{Modificateur|0}}$
Palier: ${palier:=mod+cap}$
Jet: ${jet:=[1d100]}$
Jet corrigé: ${jetmod:=(ceil(jet/5)5)}$
${refpalier:=concat("palier",string(palier))}$
${fetchFromDynamicTable('palier',refpalier)}$
This should be better 🙂
there was another problem: confusion between the table key and the added argument (here palier), which prevented the throw from being launched. Solved by changing the added argument.
another problem when I define my reference column, with its value I get an empty result.
Aptitudes Physiques : ${cap:=aptitudes_physiques}$
Modificateur : ${mod:=?{Modificateur|0}}$
Palier: ${paliers:=mod+cap}$
Jet: ${jet:=[1d100]}$
Jet corrigé: ${jetmod:=(ceil(jet/5)5)}$
${refpalier:=concat("palier",string(paliers))}$
${fetchFromDynamicTable('palier',refpalier,'palier_jet',jetmod)}$
problem solved with a string(jetmod)
Jet corrigé: ${jetmod:=string((ceil(jet/5)5))}$
I have a question that hopefully isn't too hard. How would I roll something like 3d6 and display the results of each die? I know I can click to expand but it'd be preferable to always have all results displayed. I've seen somewhere to use something like [[3d6]] with the double brackets around them but that doesn't seem to work
Set up a new script macro and use this
Hooks.on("renderChatMessage", function (message){
setTimeout(() => {
$(`li.chat-message[data-message-id="${message.id}"] div.dice-tooltip`).css("display", "block")
}, 250)
});
Run this macro before you begin rolling any dice, and it should automagically open up all die roll results.
My equalText does not give me the expected result. My conditional argument(?) always displays the false result (Palier Positif et Affichage final)
Aptitudes Physiques : ${cap:=aptitudes_physiques}$ Modificateur : ${mod:=?{Modificateur|0}}$ Palier: ${paliers:=mod+cap}$ ${maxreussite:=5paliers}$ Jet: ${jet:=[1d100]}$ Jet corrigé: ${jetmod:=string((ceil(jet/5)5))}$ ${refpalier:=concat("palier",string(paliers))}$ Résultat: ${resultat:=fetchFromDynamicTable('palier',refpalier,'palier_jet',jetmod)}$ Palier positif: ${qualitereussite:=equalText(('resultat'),('A'))?'A - Réussite parfaite':equalText(('resultat'),('B'))?'B - Réussite très bonne':equalText(('resultat'),('C'))?'C - Réussite bonne':'D - Réussite moyenne'}$ Affichage final:${equalText(('resultat'),('E'))?'echec':'reussite'}$
Hello! Is there a way to modify/add active effects (stunned, sleep, etc)?
What do you mean? Add those effects to actors? Or make a new effect? Because the answer to both of those is yes
Yeah, that works for just typing in something like "/r 2d12" but doesn't work for dice rolled from the character sheets. Appreciate the help, though!
Apparently the problem is that equalText fails to compare the 'resultat' argument. How can I do this?
resultat' argument in equalText with or without the '' (which should simply be without the '' to work)
if I use something like ${arg:=string('B')}$
equalText((arg),('B'))? returns true which is what I expect
On the other hand this ${arg:=string(result}$ doesn't work and displays error
This is how equalText is supposed to look like: ${equalText(arg, 'B') ? 'truthy statement' : 'falsy statement'}$
that's what I understood it to be. But it still doesn't work. 😆 My argument is not recognized by equalText to be compared with the second argument. 😣
${resultat:=fetchFromDynamicTable('palier',refpalier,'palier_jet',jetmod)}$ ➡️ A,B,C,D or E
${equalText(resultat,'B')?'echec':'reussite'}$ ➡️ error!!
but if i use this : ${resultat:=string(B)}$ ➡️ reussite (so in this example the god result)
The difficulty is how to translate the argument "resultat" so that equalText can compare it with the second argument (for this example 'B')
I think you have to change your resultat to this:
${resultat:= first(fetchFromDynamicTable('palier', refpalier, 'palier_jet', jetmod), 0)}$
fetchFrom... returns an array, so you have to get the first value out of it before processing it further to equalText()
I'm trying to make damage rolls happen and I'm utterly failing, what's the best way to roll damage? another question, can I inject dice after the fact with a query?
and how tf do I do Items?
I tried Dynamic tables and getting the damage dice from a text box but that didn't work
Can you elaborate
I am not sure I quite understand
If you want to roll based on text fields it is
${[:DamageDiceKey:]}$
Was it ${[‘DamageDiceKey’]}$
maybe?
probably
it doesn't work
Damage is a text field, Damage roll is just a dice button
Damage: ${[:Damage:]}$ prints nothing
You have to use sameRow() if you want to get the right value from a dynamic table. ${[:sameRow('Damage'):]}$
- You need an Item Template (works like an actor template).
- You need an Item Container in your Actor Template to display the dragged Items
- Create an Item, select the Item Template and reload. Now you have an Item with values, which can be dragged on your actors.
nice, ok. Can I add dice as a query? for example, I give one of my players a D4 for good luck they can add to their ability check
Everything that is a valid roll query (like 1d20+1d4) can be done.
${#roll:= [1d20]+?{Add Dice|0}}$
Athletics: ${roll + Athletics_Score}$
this gives me an error when I want to insert dice into the prompt
Just a core question
is everything supposed to be a prop? Like I cannot do attributes.str or currency.gold ?
(for compatibility with modules)
Hey there, I’d like use check boxes as a condition for conducting certain rolls. The idea is that I have a list of skills in a character sheet for players to train in. I’ve got the check boxes placed and keyed in, but now I want to have it so a player needs to check a box to roll on a skill. How can I add that function to the formula?
${checkboxKey ? 'Checked' : 'Not checked' }$
or
I tried that from the documentation, but all that seems to do is show a Checked or Unchecked message in the roll result.
${2d6+(checkboxKey ? 1 : 0)}$
here's the code if it helps:
${![(:REF:+:GUN:+:combat_mod:)d6cs>=5]}$
maybe ${equalText(checkboxKey, 'TRUE')}$
Ok I got it close enough. It will run the roll and give the result in the chat if 'true'. If 'false', the dice will still roll in Dice So Nice, but the chat will show "This skill not is trained!” instead of a result.
${GUN_check ? [(:REF:+:GUN:+:combat_mod:)d6cs>=5] : 'Skill is not trained!' }$
Where 'GUN_check is the check box, 'REF' is a stat, 'GUN' is a skill, and 'combat_mod' is a variable entered by the player (ie: bonuses or penalties).
How can I have the system re-roll certain dice?
Hello, ctable has a valid roll table name stored as a string in it, crit is a valid value in that roll table.
am I missing something with this?
${[#:ctable:|:crit:]}$
Ok, nvm the roll table was not setup correctly ... first time using them in Foundry ... another stupid error blech
Do it this way:
${#?{Add_Dice|0}}$
${#roll:= [1d20 + :Add_Dice:]}$
Athletics: ${roll + Athletics_Score}$
You should visit the Knowledge Base of Foundry where you can find the roll commands (including rerolling on certain results).
Most things are under props, hidden and attributeBar. If you want to see the exact data structure, type game.actors in the console
Thanks! I've been using a data tool to look at everything (koboldworks). If I wanted to move some stuff from props to for example currency is there a way? Again just trying to line up a homebrew system with Monks Enhanced Journals.
(or just as good... can I reference the values it created under currency like ref(currency.gold) or something so it shows in a label?
Thank you!
This would probably break the internal behaviour of the system because the system only works with values in props or hidden. The safest would be to copy the value to your designated path (however you want to achieve that)
So one last question on this... does that mean I could do a hidden and make it for example gold and in the formula ref(currency.gold) ? Just wondering how I grab at something not a prop... I have done it with items like ref(item.whatever) but not with values created by a module
(or would it have to be updated with a macro?)
I think the key would get deleted after a reload if you add it outside of the system.
Hey all, question, I've been experimenting with "getPropertyDataFromActor" and it works, but I have to refresh the template each time I select a token for it to update the formula. Is there a better way of doing this?
${70+fetchFromDynamicTable('ratingnums', 'dytdexvalue', 'dytrating', dex)+item.hit+getPropertyDataFromActor("selected", "avo",0)}$
We cannot fix this because the system doesn´t detect changes outside of the own character sheet. If we would, it´d trigger way too many updates (making the already bad performance even worse). So it´s a drawback we cannot get rid of in near time.
My advice is to use selected and target only in rolls, because these can change very often (risk of having outdated data is high).
Totally understandable, okay. One more thing then, what's the difference between selected and targeted?
selected is left-click while target is double-right-click (target-marker).
Gotcha, thanks! (Didn't know you could do that!)
Anyone have experience putting a "sound" in an item, that could be read by a macro and then played? I believe I could just put a text box that the macro could read the value of and then play the sound, but is there a simpler way of doing it or a module that would make it easier?
I am pretty sure there is a way to embed sound effects
I am not sure how too sorry.
is there a way to hide formulas in templates? its getting a little bit out of hand
Greetings everyone,
I don't know if it's the correct channel but I need assistance to understand where I fail.
I'm trying to create a character sheet with the System "Custom World Building". I'm trying to create an Inventory container that display just on value of the item. I don't want it to be modifiable, I just want to see it on my character sheet.
Exemple : My template armor has a dynamic table inside an unnamed panel with a column Protection (key : armor_protection, Type : Number field). What would be the formula on the label of my column item container Protection (Key : inventory_armor_protection) in an unnamed panel in an other unnamed panel in the Tab Inventory of the unnamed tabbed panel in my my character sheet ?
I've tried many combination using the https://gitlab.com/custom-system-builder/custom-system-builder#4-formulas but I think I'm doing it wrong because every time I see nothing appear on my character sheet and when by miracle it appear, it says ERROR...
Help, I'm not a programmer I don't understand the basic of coding... 😭
Here is a very specific question about rolling dice with CSB - I am trying to set up a system that rolls a specific number of D6 and D8, it is a dice pool system and I can get it to count successes when a specific face is rolled, but I would also like to do a couple of other things when reporting the roll result to chat: (1) if an 8 is rolled on the d8, this counts as two successes; (2) I need to flag any 5s or 6s on the D6 rolls as these have a special effect in the game. Is this something that I can do simply within the dice roll notation, or is this something I might need to control via a macro (and if so, how can that be triggered when a label is clicked on?). Any thoughts are appreciated. Thanks.
Maybe this conversation can help you. That´s all I can do for you: #1037072885044477962 message
Why do you need a Dynamic Table inside an Item Template? Wouldn´t it be enough to create a Number Field with the armor_protection key? This would simplify the formula in your Label in your Item Container: ${item.armor_protection}$.
My question may be moot, as I have found something pre-built which I will probably end up using, but thanks.
Not really 😅 but you might be able to adjust the clustering with CSS
got it, thank you!
You can map them as hidden attributes
And then call upon them
I know we can use addition and subtraction in the label text, like this:
ENCUM PEN= ${strrank + strbonus - totalenc}$
However, is there any way to use multiplication or division (or other mathematical functions) in this same location?
Ive tired just using "*" and "/" but it throws a veryyyy long error message
Should be possible without issues
ok, you must put a space between the values, i just discovered that
🙂
i had them all scrunched together
Thank you!
quick question for anyone that can point me in the right direction:
I'm trying to limit player movement to the output of a 2d6 dice roll. so for example if a player rolls a 7, then I'd like to limit their token movement for that turn to 7 grid squares
does anyone know if this sort of movement limitation is possible to implement?
That sounds like something a full module would be required for (assuming its even possible), but I'm afraid I don't know of a module that will limit the actual movement distance a player can move their token. There are a couple of modules that you can use to show allowed movement, but they dont restrict the actual movement itself.
no worries, thank you for the quick response, I'll just keep watching my players like a hawk haha
Hello, question: not sure if I'm not understanding but when I create an item container and place an item in it how can I get it to display data in the other columns of its row?
thanks, that would be the ideal solution, unfortunately i have 136 of these entries and i am too lazy to transfer them. maybe sometime in the future lol. thank you for the solution though.
I'm fairly new but I think I can answer this so going to have a go, when you create the column you make it's label text ${item.propertykey}$
So I've been having trouble with this in general. Whenever I use ${...}$ it just displays that as text.
even if I input the actual property key.
I wanted to duplicate a table that repeats throughout the sheet. It has nested components inside it
Being able to dupe it would make it a lot easier
You should put the formula into the Label text, not the key 😅
Just hold CTRL while moving the component.
OMG! Custom System Builder is Amazing!
Thanks a lot
Sometimes when I drag a component, it automatically creates a panel null
How can I delete this panel? Does anyone know?
I ended up getting Error?
Check the console with F12
WOW yeah I guess there was an error with one of my keys - it said it was already reserved, I changed it and now it works.
Hello guys I have a question about Roll Template.
If I want to do conditional lines, how should I ?
For example some weapons attack twice or 4 times other once per action. I want the damage of the different attacks to appear separately, but I don't want to have a tab with 4 lines where only one might be useful. Also, others apply special effect that needs to be referred in lines that are useless for some others weapon.
The idea would be to have some kind of the with conditional lines or raws, is it possible to do?
Idk what you want for the first, but for special effects you can have an attribute for it that is referenced in the roll message
Okay I'll try to make my self more clear
Let's imagine I roll damage for a sword that attacks twice a round, the roll message should look smthn like this :
| Atk Roll | Dmg Roll |
Atk 1 | 10 | 25 |
Atk 2 | 15 | 24 |
Now, for a weapon that attacks only once a a turn a regular roll would also return a message with a second for roll for a second atk :
| Atk Roll | Dmg Roll |
Atk 1 | 12 | 52 |
Atk 2 | 16 | 50 |
Whereas I would like to onlu show one the first line if there is only one attack ;
| Atk Roll | Dmg Roll |
Atk 1 | 12 | 52 |
And show more if the is more attacks :
| Atk Roll | Dmg Roll |
Atk 1 | 12 | 52 |
Atk 2 | 16 | 50 |
Atk 3 | 12 | 52 |
Atk 4 | 16 | 50 |
It would be the same for weapon that have an effect, I would be able to make the correspondant line only appear if there is indeed an effect to roll, and be hidden if there is not
It would prob be better to code a custom macro for that.
But you can just press the button 4 times
If you want to have a dynamic count of attacks then I´d suggest to create a macro for that because the system itself doesn´t support loops (which you´ll need in this case)
Okay I see thanks
Does anyone know how to make a dropdown selector produce an attribute value (example selecting Strength would produce the actual stat value) so it can be used in a roll formula? I see the visual example in the wiki but the dropdown documentation doesn't seem to mention it as a use case.
Well, you have to pair it with ref() -> ${ref(DropdownKey)}$
Is there a way to store all the labels in a panel in a single key with all information is has in it
Uhhhh, I don't understand what you want to achieve.
First: Which data exactly do you want to collect (Label text from all Labels under a Panel, whole Label, ...)?
Second: How is the result supposed to look like (concatenated label texts, array-like list, key-value-list, ...)?
The thing is I use a horizontal label to show different effect of a weapon in the Description.
Maybe with an example it will be clearer :
I have a sword and Fire Rune variable in its setting. If the variable is equal to 0 (no rune) then the label that says "Fire Rune" in the description do not appear. If the variable is 1 or more, the description now says "Fire Rune". Now the same system is applied for "Cold Rune", "Electric Rune"... only when the linked variable is > 0 the label appears in the panel.
My objective is to have only the labels that appears in that panel called in the the "Description" field in a roll message
You cannot check if a Label is visible or not. But you can do the same check as the visibility formula in your Label (in this case: If the variable is equal to 0 (no rune) then the label that says "Fire Rune" in the description do not appear).
I think concat() is the most suitable function for your case. Example: concat(fireVar != 0 ? 'Fire Rune' : '', coldVar != 0 ? 'Cold Rune' : '', ...). The only downside is that it get´s a bit dirty with separators like commas.
so i'm a bit late to the party but if you "translate" your roll to a (vanilla) macro you can dive in the whole roll api. And you'll need to, because as far as i can tell it's not possible in CSB another way. (and even with the foundry roll commands it won't let you do something like making a success count twice). With the advanced macros module you can make a label call that macro for your roll.
Name your macro "d8roll" and call on it with this label roll message "/amacro d8roll"
This goes in the macro:
Say your roll is supposed to be (csbProp1+csbProp2)d8.
Now you can either acess the props via game.actors[].value.system.props
or
build a computablePhrase
let phrase = new ComputablePhrase("${csbProp1}$, ${csbProp2}$"}) await phrase.compute(actor.getRollData()); let buildPhrase = phrase.buildPhrase; let values= phrase.values;
then translate it to something more usable
let Prop1 = Number(values.form0._result) let Prop2 = Number(values.form1._result)
then build your roll named "roll1" . It rolls [n]d8
let roll1 = await new Roll((Prop1+Prop2)+"d8").evaluate({async: true});
8s should be 2 successes. you can change the evaluation like this:
`// evaluating a roll for the result 8, highlight it as a success and make it count 2 successes
function d8success(roll) {
successDice = roll.dice[0].results.filter(die => die.result == 8);
successDice.forEach(die => {
die.success = true;
die.count = 2; });
};
//invoking the function
d8success(roll1);`
//console logs for posterity
console.log(roll1.dice[0].results)
Now we build the Chatmessage. For dice pools i recommend to render the tooltip directly
let ChatData={ speaker: ChatMessage.getSpeaker({token: actor}), type: CONST.CHAT_MESSAGE_TYPES.ROLL, rolls: [roll1], rollMode: game.settings.get("core", "rollMode"), content: (must be wrapped in backticks that don't show in this message)
${await roll1.getTooltip()}
Successes: ${roll1.result}
`
//create Chatmessage
ChatMessage.create(ChatData);`
For those of you who use action button or anything of the sort, would it be possible to have an "attack roll" that calculates the resistances (dependent on damage type) of each token selected, modifies damage and then applies the change to HP automatically? I know it's possible for Macros to change other sheets, and action buttons can edit the values in the fields of the sheet itself, just not sure if it can do the same for other sheets.
For resistance you can just use the getPropertyDataFromActor function. You can’t automatically change Hp without macros
Yeah, the issue is I want to be able to do it all. Does get PropertyData function work within a macro's computable phrase?
Cause I already have a roll that handles all the calculating and stuff just fine, just need a way to automatically change stuff, which well, doesn't seem to be an option so far, guess I'll have to wait till the next update if thats actually the case
Does this seems alright ? I don't think I'm very familiar with the syntax
concat(bleednat + letru != 0 ? :item.Saignement:: , etounat + choru != 0? :item.Etou:: , poisnat + poiru != 0?:item.Poison:: ,gelnat + gelru != 0?:item.Entrave:: , ardenat + ardru != 0?:item.Ardent:: ,effautre != 'N/A'?:item.Effautre: )
btw Saignement, Etou, Poison, Entrave and Èffautre are keys in the item
The colons are unnecessary around the item-variables. You only have to surround formulas/keys with colons if they´re used in a roll formula (everything inside [])
Thanks budd
concat(item.bleednat + item.letru != 0 ? :item.Saignement:: , item.etounat + item.choru != 0? :item.Etou:: , item.poisnat + item.poiru != 0?:item.Poison:: ,item.gelnat + item.gelru != 0?:item.Entrave:: , item.ardenat + item.ardru != 0?:item.Ardent:: ,item.effautre != 'N/A'?:item.Effautre: )
Seems like there is an error still 💀
I think I'm too tired to figure it out, I'll try again tomorrow
Corrected version:
concat(item.bleednat + item.letru != 0 ? item.Saignement : '', item.etounat + item.choru != 0 ? item.Etou : '', item.poisnat + item.poiru != 0 ? item.Poison : '', item.gelnat + item.gelru != 0 ? item.Entrave : '', item.ardenat + item.ardru != 0 ? item.Ardent : '', item.effautre != 'N/A' ? item.Effautre : '')
I might of missed it, but does anyone know where I can submit a sheet? I made one for FIST today and I am actually kind of proud of myself lol.
I want to both make new effects and remove some old ones, how would I go about doing that?
(Sorry for late reply)
Either you create a new issue at GitLab or you DM me or LinkedFluuuush.
I'm having trouble figuring this out on my own with only the documentation, how can I reference a value from another place in the sheet inside a label roll message? I set up hidden attributes for the ability scores and those are the only ones i get to reliably reference anywhere
It´s the same way you do in a normal Label (except for roll formulas).
For example: If we have a Number field with the key strength, all you need to do to get it´s value is to write down the key in a formula: ${strength}$.
It´s a bit different for roll formulas. If you want to use CSB-Values or formulas inside a roll-formula, you have to surround them with colons: ${[1d20 + :strength:]}$.
With combat utility belt. https://github.com/death-save/combat-utility-belt
Enable enhanced conditions and there is a settings window that will let you edit the available effects
I think I see one of the things I was doing that didn't work. seems I had some keys being used on more than one place, and the one that came first wasn't in use yet, so the other one stopped working for no (at the time) obvious reason
Follow up question: how can I reference a value by picking from a drop down list in a dynamic table?
i have my skills (including combat skills) in one tab, but don't want players to have to jump back and forth between tabs during combat. so i wanted to have a dynamic table where a player can set up any number of attacks, and picking the appropriate combat skill from a dropdown list
i am start to make may own sheet and i have a problem with conditions.
i have a cell with droplist values (diferents munitions). In other label cell i wan to put base damage in funtion of droplist. i try with condition to put damages, but dont work. Condition dont reconigze text values.
${d_municion==Flecha_descarga ? '40':
d_municion==Flecha de fajo ? '30':
d_municion==Flecha de mella ? '30':
d_municion==Saeta ligera ? '30':
d_municion==Saeta ? '40':
d_municion==Saeta pesada ? '60':
d_municion==Dardo cerbatana ? '5':
d_municion==Piedra honda ? '15':
d_municion==Virote ligero ? '120':
d_municion==Virote pesado ? '150':
d_municion==Bala ? '80' :'150'}$
Enter the keys into the dropdown list and reference the dropdown key with ref() -> ref(DropdownKey)
You have to use equalText() if you want to compare strings. The ==-operator doesn´t work with strings.
Can put a example?, please
${ref(Flecha_descarga) equalText(Flecha de descarga) ? '40':'2'}$ dont work
sum(equalText(d_municion, 'Flecha_descarga') ? 40 : 0, equalText(d_municion, 'Flecha_fajo') ? 30 : 0, ...)
Btw, keys in dropdown-lists don´t have to follow this limitation:
The key must be composed of letters (upper and lowercase), numbers and underscores only
Very thanks, work
Hey guys I have a weird bug where I had some previous items modifier that influences a variable (stored in a label / hidden attribute ), then the modifier stayed after deleting the item
any idea on how I can fix this ?
Also (sorry for stacking up)
this formula seems to result in an error :
Formula.js:740 SyntaxError: Value expected (char 1)
at pe (math.js:27324:37)
at math.js:27252:85
at math.js:27253:77
at math.js:27254:73
at math.js:27255:69
at math.js:27256:65
at math.js:27257:61
at math.js:27258:57
at math.js:27259:53
at math.js:27260:49
at math.js:27261:45
at math.js:27266:41
at oe (math.js:27274:37)
at ae (math.js:27100:33)
at ie (math.js:27085:42)
at ne (math.js:27074:41)
at re (math.js:27062:37)
at te (math.js:27051:33)
at ee (math.js:27037:68)
at K (math.js:27024:33)
at Q (math.js:27013:33)
at X (math.js:26984:42)
at J (math.js:26979:42)
at Y (math.js:26975:42)
at W (math.js:26971:42)
at Z (math.js:26967:42)
at V (math.js:26963:42)
at math.js:26926:49
at math.js:26929:39
at G (math.js:26942:35)
at math.js:26901:43
at H (math.js:26912:31)
at Function.string (math.js:26735:44)
at Object.parse (math.js:6729:53)
at Formula.computeStatic (Formula.js:727:29)
at Formula.compute (Formula.js:292:21)
at ComputablePhrase.compute (ComputablePhrase.js:128:27)
at async HTMLAnchorElement.<anonymous> (Label.js:247:21)
Well, did you REALLY delete the item? Not seeing it doesn´t necessarily mean it got deleted. You can check it by creating an Item Container with all Item Templates selected or you just check the data from the actor directly via game.actors in the console.
hum... that could be it
that's what I've been trying, but doesn't seem to work.
when you say enter the keys into the dropdown list, how do you mean specifically?
I made some hidden attributes to store the summed up value of the skills (ranks+modifier) but I don't know how to get the choices in the dropdown list to reflect those values.
That´s where you enter the keys of your hidden attributes.
For example:
# hidden attributes:
- strengthTotal: ${strength + strengthMod}$
- dexterityTotal: ${dexterity + dexterityTotal}$
# drowdown-list (Key: dropdown):
- strengthTotal: Total STR
- dexterityTotal: Total DEX
# some random Label which displays the value of a hidden attribute depending on the selection of the dropdown:
- ${ref(dropdown)}$
Okay I think I fkd up a bit 😅
I actually have some shadow items that do not belong to any template existing, so I can't even make them appear in an item container
Then JSON-editing it is
Or you check to which template the shadow items belong and just create it/them. Then it should be selectable by an Item Container and then you should be able to delete them without editing in the JSON.
What I did is that I looked in the JSON for the ID of the old template, then I replace it with control H by the new id. Then back on CSB I can see an minpulate the shadow items ^^
thanks for the tip I would not have found this alone
that seems to be precisely what I'm doing but it's still not working.
For reference, here's the dropdown list setup with the hidden values, and then the label roll message i'm trying to get to reference it.
It's in a dynamic table, is that potentially what's messing things up?
Uhhh, I see. Try out the following:
${#roll:= [1d20]}$
${roll + ref(sameRow('attack_offensive_skill'))}$
Uh yeah, that aswell. Is your Label also in the dynamic table or outside of it?
the label is also in the dynamic table, yes
Changed
Sry no rush, any insight on this ? (feared that it might have gone unnoticed since I was having 2 ongoing issues)
Oh, might be the last check because conditional operators don´t work on strings 😅
Try this one:
concat(item.bleednat + item.letru != 0 ? item.Saignement : '', item.etounat + item.choru != 0 ? item.Etou : '', item.poisnat + item.poiru != 0 ? item.Poison : '', item.gelnat + item.gelru != 0 ? item.Entrave : '', item.ardenat + item.ardru != 0 ? item.Ardent : '', equalText(item.effautre, 'N/A') ? '' : item.Effautre)
appreciate the help. I have another value in a number field on the same table I want to add as well (in case a player wants to vary rolls for whatever reason)
I tried adding :
+ ref(sameRow('attack_offensive_skill'))
again, but changing out the key to the number field's key. also tried adding it to the initial roll. neither worked.
Because you have to remove ref(). Here a little explanation:
Let´s assume we have the following entries:
- strength: 1
- textInput: strength
${strength}$ -> 1
${textInput}$ -> strength
${ref('strength')}$ -> 1
${ref('textInput')}$ -> strength
And now the most important one:
${ref(textInput)}$ -> 1
The reason behind this is that before textInput is passed to the ref()-function, it will be processed and replaced by it´s value (in this case: strength). So ${ref(textInput)}$ becomes ${ref('strength')}$, which results to 1.
thanks for the explanation. now I got it working pretty much how I want it to, just with the readout being a big bloc of text 🙂
Ah, you mean this one xD. Well, you can hide it if you use ! right after ${ in your formula.
But the box will also disappear
Is there handy documentation on how hidden attributes work and can be referenced?
hm, I see what you mean. I'll keep it for the main roll, but adding the ! to the formula that grabs the attack name makes it look a bit neater in the chat log
They can be referenced the same way like other keys. You only use them for hidden values and computations
I'm having trouble doing so. I want to use a hidden attribute to create a modifier, which requires a formula calculation based on a number input. I can reference the number input, but when I try to modify it with a hidden attribute and then reference the hidden attribute, the roll won't parse anymore.
Perfect
Can you show the setup?
Sure. So, if I input this: Strength: ${[:str:d10x10cs>=(:dif:) + :m_str:]}$ it works fine. (STR, DIF, and M_STR are all plain number inputs.) I have a hidden attribute called m_str_mod. I've tried every variation on a formula that I can think of, but I cannot reference it with :m_str_mod: without the roll refusing to execute. I've tried entering m_str_mod as (m_str * 2), ${(:m_str: * 2)}$, and several other variations.
Well, ${(:m_str: * 2)}$ cannot work because the colons are unnecessary because the key is not inside a roll formula (inside []) 😅
I tried including brackets, too. I just don't understand the syntax rules very well yet, I'm afraid. I just want to pull the variable, do math to it, and then reference the result as another value.
What´s the formula of m_str_mod?
I was using a simplified version as an example, but it's supposed to be: ((floor((m_str * (m_str - 1)) / 2) + 1) * ceil(m_str/15))
I hope with ${}$?
I've tried it with and without
Should be with. You can run ${m_str_mod}$ as a test to see which value you get back
Okay, so that's how it should look. That helps, thanks!
Np. But you folk have really the best sense of timing (no support needed for the whole day but right after I start watching an Anime, chat goes brrrrrrrr) 🤣
It's our secret power!
How can i make these formule.
I extract values from items. I have 4 values, for example 6, 3, 1,1.
sum(highest+halfothers) no decimal, rounddown.
i dont know how to chosse the highest.
In example, the result is 7
I´d store the max-value in separate field (or hidden attribute): ${max(item1, item2, item3, item4)}$ and then reference it in a final computation: ${sum(max_val, floor(mod(item1, max_val) / 2), floor(mod(item2, max_val) / 2), floor(mod(item3, max_val) / 2), floor(mod(item4, max_val) / 2))}$
https://mathjs.org/docs/reference/functions/max.html
https://mathjs.org/docs/reference/functions/mod.html
https://mathjs.org/docs/reference/functions/floor.html
Math.js is an extensive math library for JavaScript and Node.js. It features big numbers, complex numbers, matrices, units, and a flexible expression parser.
Math.js is an extensive math library for JavaScript and Node.js. It features big numbers, complex numbers, matrices, units, and a flexible expression parser.
Math.js is an extensive math library for JavaScript and Node.js. It features big numbers, complex numbers, matrices, units, and a flexible expression parser.
I heard that a feature for the next version is items within items. When is this next version expected to be made available?
What's the best way to display a number field that's a total of other fields, rather than an input from the user?
the way i've been doing that is with labels instead of number fields (since number fields don't allow formulas in the default value field)
Hello.
Do you know how hide "configure item modifiers" for players ?
I want just this option for DM but all players as owners.
Another question, i try a conditional formula into a dynamic table but i don't know where i'm wrong.
Someone can help me please ?
${(score_aspect=1 ? 'Anecdotique' : (score_aspect=2 ? 'Mineur' : (score_aspect=3 ? 'Majeur' : (score_aspect=4 ? 'Extraordinaire' : ''))))}$
i try with samerow but with no success 😦
I create array from dynamictable with values 6,4,3,8. With first i can extract the first value, but dont know how to extract the second, third, four
How are you able to make a label run a formula? I can't seem to get that to work.
You just need to put the formula in the label text.
Like, ${formula}$?
Yup.
Oh, I see! It looks like it doesn't process on the template, but on the actual sheet it does.
Hmm. I seem to have accidentally created a blank label that's taking up space on the sheet, and now I can't seem to click it to edit/remove it. Anyone have any good advice on handling that?
is there a expected time of next release?
I have a perhaps complicated question. So, the dropdown list element seems to only let me assign a string value. I thought it would/could tie in to key values from other elements on the sheet? Is there a way to use the dropdown to reference one or more values? For instance, if I have str and str_bonus as separate values, can I use a dropdown to select some value that will allow me to plug both of those into a roll in separate places, based on that single selection?
It doesn´t really depend on the dropdown, rather it depends how you construct your formula. And there are actually multiple solutions to this.
- You check each dropdown-option and perform the calculations based on the selection:
${equalText(dropdownKey, 'str') ? str + str_bonus : equalText(dropdownKey, 'dex') ? dex + dex_bonus : ...}$ - If the structure of your keys remains the same (e.g.
str,dex,intfor base-values,str_mod,dex_mod,int_modfor modifiers), you could append the keys of theref()-input:${ref(dropdownKey) + ref(concat(dropdownKey, '_mod'))}$
Oh, that looks like just what I need. I'll explore that. Thanks!
No fixed time so far. But we expect a few months before the next major version gets released
A blank Label usually creates this square which can be clicked
I think the label is actually a blank space. I don't have the square anymore.
oh 😅
Good luck finding that one I guess 😅 . Or you could export the template and edit the JSON
That might do it! Thanks. 🙂
Uh, well... The system doesn´t offer an easy way of array-indexing 😅 . But you can apply this overcomplicated workaround (which only works for arrays of fixed length...) 😅 :
2.: ${sum(dotMultiply(fetchFromDynamicTable('DynamicTable', 'Value'), concat(zeros(1), ones(1), zeros(2))))}$
3.: ${sum(dotMultiply(fetchFromDynamicTable('DynamicTable', 'Value'), concat(zeros(2), ones(1), zeros(1))))}$
4.: ${sum(dotMultiply(fetchFromDynamicTable('DynamicTable', 'Value'), concat(zeros(3), ones(1), zeros(0))))}$
Your comparison-operator is wrong. It should be == and not =.
#1037072885044477962 message It might depend on V11, so it´s unclear for us aswell.
i dont undertand how to aply before
in left down cell i get the array with values for fil
i need extract each value for make the max and the half of others.
Hey Martin I tried to it again with something else, but I think I messed up the syntax again 😅 
${concat(item.typemag != 0 ? item.typemagi : ' ', equalText(item.eff, 'N/A') ? ' ' : item.effautre)}$
I think that looks interesting 😅
I fixed it as follow but there is still somekind of error
${concat(item.typemag != 0 ? item.typemagi : ' ', equalText(item.eff, 'N/A') ? ' ' : item.effautre)}$
Console :
Uncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
at Function.from (<anonymous>)
at HTMLSpanElement.expandMfsRoll (chat-enhancements.js:82:28)
at HTMLDocument.dispatch (jquery.min.js:2:43064)
at y.handle (jquery.min.js:2:41048)
Hi, I'm new to VTT and I decide to yse Custom System builder but I can not import the module, it said Installation fail after I put in Manifest URL, how do I fix this?
CSB is not a module - CSB is a system, so use the Game System tab.
At the bottom klick "Install System", in the new window at the top search for Custom System Builder and on its right side klick install.
Oh, thank you so much
How can i select between 2 text in a condition.
${sum(equalText(armor_name1,'Cuero_endurecido') ? 'Peto':0)}$
Dont reconize the text. Works is if a number
Are item containers the only way to create drag-and-drop functionality?
Also, any advice on implementing a CSS file? When I've tried, it does not seem to work at all. I can upload the file, but when I try to reference classes from the file, they do not take effect.
For functions, yes.
Have you placed the path to your css in the settings?
Can you show me some part of your css?
Just trying to introduce some basic styling.
.sheet-title2 { font-size: 22px; line-height:18px; font-size: 18px; }
If you want to address "title2" it is just .title2
Without the "sheet".
I was referencing it with sheet-title2, but I can certainly try removing that part!
That did not seem to make a difference, no.
What have you set in the component advanced configuration "Additional CSS classes" field?
Since removing the "sheet" part, just "title2"
What kind of component part it is?
A label.
you got a PM
Is there a way to style away the gray box and suitcase logo from item names?
a.content-link, a.inline-roll {
background: none;
border: none;
padding: 0px;
}
Thank you!
Not the suitcase, but the box.
Ahh. No way to remove/alter that?
I don't know any.
Thanks. 🙂
Is there a way to have a component display based on a flag being set to false instead of true?
not(flag)?
Well, that should have been obvious. Thanks. XD
By default it seems that a horizontal panel is configured to obtain columns of equal size. I want to integrate in this panel a vertical panel that I will keep static and about 20% of my character sheet, and a tabbed panel that would take the remaining 80%. Is this possible, if so how? (css I presume)
Is there a way to do a simple if() style statement within a formula?
I still need help with that pls 😢
${sum(equalText(armor_name1,'Cuero_endurecido') ? 'peto':0)}$
Is there any way for condition can show text for true/false result. If i change 'peto' for any number work.
I'm trying to have an item apply a bonus to the actor it's linked to but only conditionally, based on the value of a variable. I'm not sure what I have wrong: ${(academics < 1) ? 2 : 0}$ (here, "academics" is the value pulled from the actor's sheet)
I may be stupid, and there is a better solution, but here is a wacky thing you can do is us two hidden attributes. Lets say you are trying to make the item increase “Mana” for the sake of simplicity.
In hidden attributes:
Mana = ${(academics < 1) ? itemManaBoost}$
Map itemManaBoost in the attributes of your item
Hope that helps.
I haven't been able to get conditionals to work at all.
I've tried a variety of different keys and methods, including checkboxes
I'm fairly sure the spelling was right
I'm trying to narrow down what could be wrong. Is there special syntax to reference a value on an actor sheet from an item sheet? I need a bonus on the item to apply a +2 to a given value if the corresponding value is a 0 on the actor sheet, but 0 if the value on the actor sheet is greater than 0.
I think you're looking for getPropertyDataFromActor(actorName, key)?
Hm, okay, I did try that.
(At least, I think that's the one I tried. I've been at this for hours, now, and I'm a little muddled.)
I know that feeling
It just always evaluated as "true," regardless of the values input
I have the following set a an item modifier on the item that I'm applying to the actor. If "academics" is 0, then it should add 2. If academics is anything else, it should return 0. However, it's always evaluating as "true."
${((getPropertyDataFromActor("attached", "academics") < 1)?2:0)}$
Thanks but It's the same problem with ==...
${(score_aspect==1 ? 'Anecdotique' : (score_aspect==2 ? 'Mineur' : (score_aspect==3 ? 'Majeur' : (score_aspect==4 ? 'Extraordinaire' : ''))))}$
Result => blank with score_aspect 1 to 4
The good syntax is with samerow :
${((sameRow('score_aspect', 0))==1 ? 'Anecdotique' : ((sameRow('score_aspect', 0))==2 ? 'Mineur' : ((sameRow('score_aspect', 0))==3 ? 'Majeur' : ((sameRow('score_aspect', 0))==4 ? 'Extraordinaire' : ''))))}$
😅 please
‘!(item.typemag = 0) ?‘
Because you have a sum()-function, which can only take numeric values.
I am pretty sure
Some common syntax in other programming languages won't work: For example, you can not use the 'NOT' ! operator.
Like this ?
${concat(!(item.typemag = 0) ? item.typemagi : ' ', equalText(item.eff, 'N/A') ? ' ' : item.effautre)}$
(not working either)
Oh
So how should I do it?
The syntax seems right. You should check if one of your keys is throwing an error. Just check them in a Label prefix: ${item.Key}$
I have the following set as an item modifier on an item that I'm applying to an actor. If "academics" is 0, then I want the item modifier to add 2. If academics is anything else, then the them modifier should add 0. However, no matter what values I enter, the formula is always evaluating as "true." This is the current formula:
${((getPropertyDataFromActor("attached", "academics") < 1)?2:0)}$
Well, attached doesn´t work with item modifiers, only on the item itself 😅
I see! Is there another way to do that?
You can create a Label on the Item (or use hidden attributes). The formula should work there
an idea for this? #1037072885044477962 message
CSS-grid?
So there's no way to have the item be the source of a conditional benefit?
Like I said, it works if you put the formula into a Label of the Item instead of directly into the Item Modifier formula. Then you could use the result in your Item Modifier formula.
I can reference the formula in a label from the item in the item modifier formula?
Item modifier formulas have access to all Item attributes
I think I fundamentally misunderstand labels! I thought they were only used for display purposes.
Nope, you can also reference them 😅 . That´d allow you to store intermediate values.
Interesting! I'll play with that. Thanks!
i erase the sum function. the problenm persist
It might be that the return types of an ternary-operator must be equal.
I think I´ve found the solution for this problem: ${max(fetchFromDynamicTable('DynamicTable', 'Value')) - floor(max(fetchFromDynamicTable('DynamicTable', 'Value')) / 2) + floor(sum(divide(fetchFromDynamicTable('DynamicTable', 'Value'), 2)))}$. It works with a variable count of rows.
Okay, so I'm now defining a hidden attribute on the item template, which seems to successfully define a number value pulled from the actor sheet as abil_academics. I have made my item modifier formula ${(abil_academics < 1)?2:0)}$. Now I'm just getting an error when I apply the item to the actor sheet.
It was a parentheses error.
I can imagine the error message 😅
It was very long. XD
Is there a way to CSS away these gray boxes in the dice rolls?
I may be misreading, but all the FAQ seems to say is that I can use HTML? I don't know what CSS class or the like would affect the way the roll output looks.
Just put ! after ${ and the box will disappear
Ah! Thank you!
Related question: can I use something like /r from a label roll message so that the graphical dice will appear in chat for that roll?
That is, I wonder if the roll I call from the roll label can be made to display the output below.
Is it possible to reference the name of an item in an item container? I tried ${item.name}$ and ${item.key}$ but both gave me errors
also, is there a clever way to combine strings from keys without brute force writing them all out? Like I have 8 checkboxes, and want a label to write out the names of the ones that are checked in a format like checkbox1, checkbox4, and checkbox8, or checkbox2, and checkbox3 I know I can do that with a whole lot of conditionals to get it to output that, but thought I should double check there isn't a more sensible option first
Hi all, wondering if anyone can help at all. I have been using this awesome builder to create a custom OSE world and created it first using foundry v9. After seeing the update around formula changes I thought I ought to upgrade before i get too far into things, when I did a strange thing happened. All the dynamic links within the sheets no longer show up as links? I even tried dragging in the links again to see if that would work, restarted the server and still I can't seem to figure out if its something I have done or if its an issue with the system? When I add dynamic links to journal items they display as normal, so i'm wondering if its an issue with the template sheet? If anyone has any advice or can point me in the general direction much appreciated, and thanks for creating something that is so easy for a code noob to pick up and use 🙂
What kind of component type you are trying to use?
As far as i know links only work in an “Rich Text Area” with Style set to “Dialog editor”.
@vagrant hollow thanks for the response. so it is a rich text editor component, when you say dialog editor what are you referring to?
At the bottom of the componet "Rich Text Area" you have a "Style" dropdown. This has to be set to "Dialog Editor".
Errrggg…reading but not looking at picture…😵💫
Your links are to Items and not to Journals!
For items you should better use an “Item Container” component.
https://gitlab.com/custom-system-builder/custom-system-builder#311-item-containers
@vagrant hollow ohh, so I should put an item container then maybe with GM only permissions and drop the elements in there then?
but would that be the same for journals as well, as I have some instances, say for example in a race or class description where i also want to drop a link to a journal item (for detailed rules etc) so in that instance i would need to set it to dialog editor?
ah i changed it to dialog editor and it worked, thanks @vagrant hollow my fault for not scrolling lol
Journal links will not work in Item Containers
Items work "better" in Item Containers - you have more choices
yeah, good to know
for this though i just wanted it to work like wiki links, am using item containers more for pc sheets where i want it to be interactive, this is more for player reference
The answer to both of your questions is no. No way to reference the item name (unless you also put it into an attribute) and no shorthand to get out of adding a bunch of conditionals
is there a tutorial for this system anywhere? I found one on youtube, but it seems very out of date.
That old YouTube video should still be useful enough to get you going. I think it's the only one. Otherwise you're stuck with us here or the gitlab page
ok, after watching it, it give a pretty good look into all of the functions of the System. It doesn't go over the item containers, and either my assumption of what they are is wrong, or I may need some more info on how it works.
I'm assuming it is used to create a sort of item list, like an inventory for a character?
I'm trying to figure out how to best add D&D style advantage into my system
my default system rolls two dice, one to add to modifiers, one to qualify the result. Advantage lets you choose which of these two rolls you want to use for the skill check/attack, disadvantage automatically picks the lower roll
${#roll:= [1d20]}$
${#roll_quality:= [1d20]}$
Athletics: ${roll + Athletics_Score}$
Qualifier: ${roll_quality}$
this is my basic roll setup
I've been using the simple world building system and am curious if this system is easier/better to work with. My game system isn't supported, so I have to make everything from scratch. I've gotten stuck on health tracking as it's in a grid
Any help would be most welcome
I don't know what functionality is required of the grid but to make something that looks like that you could create a 7x6 table with the first row being lables of 1-6 and the rest being checkboxes, each checkbox would require a unique key but you'd then be able to tell which one/s were ticked
That assumption is correct, it functions kind of like a dynamic table that creates a new row for each item of the item types it's told to accept and displays it with whatever other information you tell it too in it's column labeling, it cannot be referenced the same way as a dynamic table though, so effects on the character need to be pulled of all items, or pushed using the "item modifiers" options on the item itself
It's the health bar for that sheet, so being able to check the boxes would be great. Would it be possible to have a letter in the box, then be able to check it?
I'm only new to this, but not as far as I know, you could have a letter label next to each box, but not in it
Thanks!
Do you happen to know the coding for checkboxes? I have never used this system before
no coding required, in a template you are creating, click the little black plus icon, in the options for what you're creating (defaults to label) find "checkbox" define it's key, and save
Cool! Thanks! I'll be sure to look into it
That's right. The item list can be configured to show different types of items based on what template the item was derived from. Then you can show different attributes from the item. I won't lie, it may be tricky to figure out what the limitations of the item list are but if you play around with it for a while, you'll get the hang of it. I will tell you now that item quantities are currently not possible
Well, item quantities are possible if you use item modifiers.
If you take a look at Foundry roll modifiers (somewhere at the knowledge base), you'll see an option where you can keep the higher/lower result of a dice pool.
Is there any way to identify the diferents parts of a sheet to aply ccs?
Look inside other CSS like the one of Troika: https://gitlab.com/custom-system-builder/custom-system-builder/-/tree/develop/sheet-library/Troika
If you want to ad one classes: In the componet open the "Advanced Configuration" dropdown. There you have a field for "Additional CSS classes".
On the github is the documentation
That would require one attribute per item you want to count though. If you've got hundreds of items it's not very doable.
You can add a quantity property in the item sheets
Reference that
Is there a relatively simple way to total up attribute values on items added to the sheet? Like, if I have an item container, and the items in it all have item.rank as a value, can I run a total on the sheet of all those values across all items in the container?
You can have each item increase a hidden attribute based on rank.
How would that work?
Create a hidden attribute in your character sheet. In your items, add a modifier that increases the attribute by it’s rank
Thank you! Sorry I missed that one.
I'll see what I can do with that, thanks!
Not really. It would require only one attribute on the character sheet. You can stack modifiers on one attribute without a problem.
The only downside is that each Item would need this item modifier (which is not a problem if you just duplicate the Item). But even for this one there's a solution, it's just not released yet 😅
So, the FAQ describes a default value for a label, but labels don't have a field for that?
Uhm. It's literally the normal text field
So just "label text"? I got confused because number fields have a specific field called "default."
I can rename it later but it should be obvious.
I was overthinking it, sorry. I have to say, though, once I understood that, this works so beautifully!
I have a general question how easy/hard is it to produce a standalone system from this?
Easy
That highly depends how complex the system is
That us a better answer
That´s some business key words
Yes
What I'm trying to say is, I'm trying to keep it simple as possible
Also, hire me I'm good at business I know all the words
You can ask for help here if you ever get stuck :)
Trust me, I'm stuck all the time
I'm perpetually feeling stupid because I'm not a code person and trying to make this
I'm getting by tho, which I'm very proud of
It doesn’t use code
Not really
Yes but my caveman brain still doesn't parse it
My current to do list is:
Figure out items
Figure out if items can work for class feats so I don't have horrible bloat in the sheet
Ye
Use items for class features
I don’t really have a class system
It is good for traits, spells, features, races, etc
Nice ok
My "class" is a hex flower so that's gonna be a lot of nested drop downs and making that looked like a nightmare. So the work flow would be, create feat template, write down way too many feats I wrote, profit
Plan set
Time to go cry
Don´t forget a Road map with Milestones 🙃

can I populate a dynamic table by adding items?
for example, if I add a pistol item, can I have a button that lets me roll the thing on the sheet?
maybe I'm still not using items right
Are we talking about Item Containers with Items or Dynamic Tables?
...yes? I'm trying to wrap my head around this
my ideal world is I have an item that I can drag into a container that has a little dice icon that lets me roll if it has an action. It references all the various modifiers on the sheet and the player just has to drag it in there and everything just happens. The way I have it now (before figuring out items) is that players have a dynamic table that they can add actions with damage dice and relevant modifiers
like so
First of: Every Label gets clickable like a button if it has a 'Label Roll Message' defined. And an Item Container has actually ONLY Labels, so it has everything we need.
To make it more simple: Type ${item.name}$ in your Label Roll Message and whatever you like in the Label text. That's the most basic example of a Roll Message for Item Containers.
There is just one difference to conventional Label Roll Messages: If you want to use Item Keys, you have to prefix them with item. (e.g. item.weight).
Just curious, are there any tutorial videos available? I have made a basic character sheet with stats, modifiers and it will roll dice. But, I am hung up on creating item templates for things like skills, backgrounds, and (well) items
Huh, we need a Youtuber for this system...
I found a series of videos, but alas my Spanish is about 28 years out of date
we're stuck at the same spot. Let's yell at each other until it works.
I think I have to go sleep now, thank you for your help. I'm not yet getting it but I'll get there eventually.
To just start off with something simple, I have the background item template made.. I have a Human equippable item.. I have an Item Container in my character template.
What do I need to do to get Human to show as an option there?
Wow.... I just drag it there
This is what I get for doing this right after work
samesies bestie
Ah, well. Yeah. Select the Template and drag it 😅
This is my first attempt at Foundry as well. I used to use Fantasy Grounds, but the new license is just too much to justify (especially since I'm the one who has to buy it, the players all can't afford the price tag)
we are the same holy shit
I moved from R20 to Foundry because Foundry offers waaaaaaaaay more customization with its modules.
That and Roll20 is just plain awful to look at, even with the new dark mode
I used R20 for my first campaign
but like at some point my brain got starved of oxygen and I decided to write my own system and here we are
I should just hack something that exists but noooo
Can't get worse than trying to get Shadowrun 6 running on CSB 🥲
pain
Try doing it with Button Dice Roller in Discord
OH HELL NO
Used that and Google Docs for the sheets
Google Sheets is actually convenient
It is! And Button Dice Roller is fine if you do a lot in Excel like I do for work
Yep, did Symbaroum using that. Even imported the cards from Hand of Fate to build a tarot deck to use as a campaign map
Now I need to figure out how to allow players access to the items I add
Just right-click the Item in the Tab and you'll find an option. Btw, I recommend the module "Permission Viewer".
That's odd. As a player with Limited Access, I can't edit the item in the folder, but once it's on my sheet I can Configure item modifiers
It creates a copy of the Item with edit-permission
I see. Thankfully it doesn't seem to modify my stat roll (Agility) even though I added a modifier to it using the same key
But it should be able to 😅
Component Key for the stat mod and the Key for the racial package are the same name
Ok, that's a dropdown list. Item Modifiers can only modify Labels
Ahh ok!
Thanks for the assist, gonna mix a drink or two and delve into this further. Have good one!
I'll append the good with sleep
I have been trying to reference the Item file from an actor file and have had no success. I don't show any errors in the console but nothing I seem to try works be it direct refence in a field or in an item field (as above - my latest attempt). This has stymied me for 5 months now. Can someone please give me a simple straight-forward example that this old brain can comprehend, please? I feel like a complete box of rocks. In this case I'm just trying to connect the name to an item and retrieve/display the benefit field.
Mind if you specify the purpose of getting the item?
to display the item and its benefit
So sorry for late response. You can simply use ${item.benefit}$ in a label inside the item container
Thank you. I tried that & still no go.
Is it perhaps not getting the key to the item file? ie Name?
Ehmm…maybe it is a stupid question…but on your charsheet screenshot the item container seams empty…
Did you drag the Axe from your Item list into the item container of the character?
Is it shown inside the item container auf the charsheet?
Also, what key has the “Benefit” text field?
I didn't drag it. I created the item then typed the same name into the actor record (Oleg) of the actor file. Key is an old-fashioned term I admit but the programing of my days was back in the late 70's & 80's (PIC)which uses the word key as meaning the connecting index. Ie "Axe". Once I have that I should be able to read the field called benefits.
Without dragin the item onto the charsheet there a no item connectet to the char/actor and nothing can show on.
For Foundry a Item and an Actor just not connected things, without putting them together.
Just to make sure:
-You have the label inside the item container.
-you are using the term ‘item’ instead of the item name.
-you replaced the work ‘Benefit’ with whatever your key for the text field was.
-you reloaded you character sheets, removed the items and placed them back in.
So I accidently deleted a template that I didn't backup. I have a character file deriving from that template not reloaded. Any hope of recovering that template.
In CSB, with respect to the Dynamic Table object, is it possible to have a Label roll message somehow reference another object (like, say, a number field...) within its same row?
Or, put differently, does CSB have the ability to use a "self" or "this" reference?
Well, we literally have the function sameRow() for that 😅
Okay, so on an item sheet. If I have a label, "rng_display", with the content Range: ${rng}$, and next to it, a text field, "rng", is there a reason why the label would not parse a formula entered into the rng field?
That's simple. Because the Label doesn't know that your key contains a formula. It just sees a text which gets printed out unchanged.
Use recalculate(). It takes a text and parses it as a formula.
Where would I put that? It doesn't seem to work.
${recalculate(rng)}$
I have put that exactly, and it still does not calculate.
Show a screenshot
Is qua a key to something?
Hidden attribute on the item template. Maybe that's where it's breaking. I'll check that out.
And btw, the function should be in your Label, not in the text-field 😅
Ah...okay. So is there any way to possibly have raw text in there, too?
Labels can contain any sort of text?
Not if it's inside a recalculate(), I'd assume?
That's what quotes are for. They mark that something is a string.
And if you just want that prefix with Range:, you can just put it before the formula.
Or even better. Labels also have a field for prefixes and suffixes
It's more just that I don't know range should always be a simple number. I wanted to be able to have a highly variable field with a potential formula inserted into it.
Then it's literally just ${recalculate(yourTextFieldKey)}$ for your Label. So that the text field can either contain a simple number or a formula.
And can that formula include a variable?
I've read that. I just don't understand. Sorry.
Yeah. It will be handled like a normal formula.
It doesn't seem to.
Is qua a key of the Item?
qua is a hidden attribute key on the item, yes
And your text field is ${qua}$ ?
Yes
Any console errors?
I don't see any
Item reloaded?
Yes
And what does the Label display? 😅
If I put in a number, it displays the number. If I put in a formula, the label goes completely blank.
Can you try ${5}$ ?
That works
Good. That means that the Label is fine.
Try to reference qua in your Label (use either label prefix or suffix for that)
I set the label prefix to ${qua}$, and nothing appears
You sure that the key is right?
I have qua defined as a hidden attribute in the item template
What is the content of qua ?
${max(getPropertyDataFromActor("attached","quantum"),0)}$ where quantum is a number input on the actor sheet
Why the max-function? 😅
I...honestly forget. I could remove that!
That doesn't seem to change anything, though
I also recommend to define a default value for the getProp...-function.
Because the function can only return a non-default value if the Item is attached to an Actor.
Okay, so, like this? ${getPropertyDataFromActor("attached","quantum",0)}$
That should do it
Okay. It's still not working, though. :/
Ok, I'm out of ideas. I have to test this through some time later...
I've probably made some really dumb error somewhere, and I'm just missing it.
Well, you could replace attached with the name of your actor as a test
Ok, not a bug atleast. Check the key of your actor I guess
How do you mean?
Does the key exist? Is it spelled right? Do you get a return if you reference this key on your actor?
And I mean the quantum-key
Okay, weird. So, the number input was showing as a value of 1, but apparently it wasn't saved? When I clicked it and then clicked out again, it seemed to "set," and now it all works.
I don't understand that at all, but I'm glad it works now?
Yeah. Don't forget to change it back to attached. Otherwise it will use the value of this specific actor for all Items 😅
Right!
But, to be clear, I can't somehow insert a formula into the middle of a text field?
Is there a way to have two Item Containers that can have the same templates but have independent inventories?
For example I want to have an Apparel container for armor items and a Backpack container for things (like armor) that you are not wearing.
You actually can. prefix: ${someFormula}$ suffix would be valid.
Fair, but I meant as a custom text field or the like. 🙂
What do you want to achieve?
Ideally, I want to be able to have a text field where someone could freely enter a block of text that could have one or more formulas set within it, but all user-defined.
recalculate() should manage this just fine.
So I could put in a text block, then put ${recalculate(...)}$ in the text somewhere, and that might work?
No. Your Label should contain it. Your text field is just a dump component which knows nothing 😄
Then that really doesn't seem to do anything like what I was saying?
Label: ${recalculate(textInput)}$
textInput: Hi. I'm ${name}$ and I'm ${age}$ years old.
The Label should display the right text afterwards.
@vagrant hollow Thank you both for your input. Alas, I've tried all of your suggestions as best I understand what you are saying & nothing seems to work.
For this i have done myself a trick:
Inside of the Item Templates I set a dropdown.
These keys I use in the filter of the Item Containers.
I am using these keys also for other calculations.
i have a problem with items containers. I dont know how to make diferets containers with the same template. The sheet clone the items. Is a spell book in two columns
Item Containers are not Item Holders. They just display the Items an Actor has.
If you want multiple Item Containers displaying distinct Items, you should add filters (the image above your post)
Filter value is a number or can text?
Might be both, but I'm not sure (might be coerced automatically)
Hey I've been having an issue with reloading my character sheets. When I try to reload a sheet nothing happens
in the console it says
actor-sheet.js:76 Uncaught TypeError: undefined. Cannot read properties of undefined (reading 'getAllKeys')
[Detected 1 package: system:custom-system-builder]
at TemplateSheet.getTemplateKeys (actor-sheet.js:76:65)
at CustomActor.getKeys (actor.js:537:42)
at CustomActor.reloadTemplate (actor.js:564:38)
at HTMLAnchorElement.<anonymous> (character-sheet.js:80:28)
at HTMLAnchorElement.dispatch (jquery.min.js:2:43064)
at y.handle (jquery.min.js:2:41048)
does anyone have any idea what this means?
I'm also unable to upload anything, so I'm not sure if its a problem with the system or something else
ok, I'm super new to Foundry in general, and I'm having a lot of trouble learning, "macrospeak." I'm having trouble figuring out how to have a stat on the character sheet be based off of another stat. just using a D&D example, if I wanted the strength modifier to automatically be, floor((strength/2)-5)
how would I do that?
Probably a very dumb question, here. Entering values into number fields seems very difficult. When I enter a number value into a field, then either click out of the box or hit enter, the first time I do so the box remains highlighted in red, and the value does not take. The second time I click out of the box or hit enter, it takes. This happens consistently. Am I entering values wrong?
I might have had this same problem. Are you placing this text on a label?
that was the first thing I tried, yes.
What output did it give?
An error?
Maybe more importantly, where and how are you defining "strength"? Is it a number input, a text input? And is this all on the actor sheet?
the output was just blank. As far as the input there is a number input, which defaults to 10 on the actor sheet.
Okay, that sounds like two things to check. First, at least click into the Strength number box, then click out--even if it's defaulting to a value.
Second, you might not be using the formula syntax. Formulas need to be written in special brackets, like so: ${floor(strength/2)-5}$
oooh, first thing worked. I actually had the syntax correct, but since nothin was showing up, my first guess was that it was the syntax that was wrong. I've had a bit of trouble finding much info on the, "language," used in this. most of what I can find don't describe the function of the various commands and such in a way I can exactly understand.
I assume you've seen https://gitlab.com/custom-system-builder/custom-system-builder ?
The learning curve is a bit confusing and steep, but I've only been at this a week or two, and I'm slowly starting to get bits and pieces.
that is actually quite helpful.
thank you a bunch, that is exactly what I was looking for!
Glad I could help!
this may be a core question, rather than a CSB one, but is their a way to have a button on the actor sheet that can change the stats of that actor?
I know how to do the button part, its the other part that's giving me issue.
You can use CSS
hmmmm, that seems out of my current skill level, but I'll look into it.
I don’t think the buttons can activate macros sadly
If using the „Advanced Macro“ module you do, they can!
A) In its basic setting Foundry is saving and recalculating everything only once per 60 seconds. This can be changed to min once per 30 seconds.
B) If your actor data became big, your PC, foundry server and/or internet connection is not strong – it takes more time do resend the data from your session to the server, recalculating on the server and sending it back to your session.
For me it takes sometimes 12 seconds that I have to wait after changing a entry. So, you are not alone with this.
I'm building a sheet for Unknown Armies 3rd and trying to program degrees of success into the roll formula (Botch, Matched Failure, Failure, Success, Matched Success, Crit). Anyone know of a way to do this? I'm struggling to get it within Label roll Message.
Or if someone knows of a sheet already doing this, I'm happy to be pointed in that direction and adapt from existing material.
You will need this:
https://gitlab.com/custom-system-builder/custom-system-builder/-/tree/main#43-conditions
Example:
${!DICE>=4 ? 'Success' : 'Failure'}$
Thank you for correcting me :)
Ah, so I can just use a set of nested boolean IF conditions?
Not „IF“ but similar – yes.
On an item container, is there any way to move a roll icon to the far left of the list, rather than putting it to the right of the item name?
Nope, the leftmost is always the Item Name
Hey! I'm back! Short question: can i somehow (in a visibility condition formula) check if a dropdown field has something selected? i'm guessing the value for a dropdown with nothing selected is null, but before i go and try: is it even possible?
I´d say it´s an empty string and not null but I´m also not 100% sure, so try it out.
Thanks! Just to be sure, the visibility condition field has the ternary already built in, right? So <KEY> != "" (or null) should do the trick?
the time it took me to type that question was longer than it took to get it to work. For posterity: <KEY> != "" does the trick.
wtf? But the system doesn´t like string comparisons with operators 😅
i'm betting that's a javascript thing. i'm no pro but isn't this when JS thruthy/falsy stuff kicks in?
You´re the first one I´m meeting that tries to reference "coercion" with "truthy/falsy" 🤣
I'm just winging this 😄 but for the sake of clearing this up i had a look at the console and it does indeed throw an error "cannot convert <KEY> to a number", which, i bet, ends up being null after all and that is... wait for it: falsy!
There are even better examples for "unexpected type coercion" in JS. For example this one:
Number("42"); // 42
Number(""); // 0
Number(true); // 1
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
Empty string -> 0 ?
null -> 0 although undefined -> NaN ??
unfortunately i just realised, that my explanation makes no sense. if my visibility formula resolved to "false" because i'm using the operator on a string the field shouldnt be visible no matter what i choose.
maybe this is a gifted horse situation.
however. i may have another question. now that i successfully bullied csb into not showing a value. can i somehow make it refresh another value that uses it, once it's not shown anymore?
I don´t understand what you want to do. I mean, refreshing values is handled by the system and not by the user. The user can only trigger an update by changing a value or pressing the reload-button.
first picture: the right dropdown is only shown, when the left one has something chosen. the value of that dropdown is used for calculating how many dice are rolled. second picture: nothing is chosen in the left dropdown, but the sheet still applies the value of the second dropdown (that is now hidden).
so i think i'd need to fire a refresh once the value of the left dropdown changes.
Aus den Augen, aus dem Sinn, wa? Naja, verstecken != nicht existent. Das Dropdown mit der Auswahl existiert ja weiterhin, du siehst das bloß nicht mehr.
spot the german :D. Ich kann nicht zufällig irgendwie auf den visibility parameter referenzieren, oder? dann könnte ich das evtl darüber lösen
nope
dang. naja. dann muss ich mir was anderes überlegen.
Würde einfach die Rollformel anpassen. Also sowas wie, wenn 1. Dropdown nicht leer ist, soll der Wert vom 2. genommen werden.
das... geht natürlich auch.
one more for posterity: count(KEY) != 0 will work and not throw an error to the console.
you can remove roll icons and do them manually
<i class="fa fa-dice-d10 fa-lg"></i>
as the suffix
As an item name?
for the roll button
I don't understand what that relates to?
Hello, I recently bought foundry and have been trying to figure the custom system builder for my home made Bloodborne system. I'm having trouble understanding how item containers work. I simply want to make a weapon that rolls a d6 with the player's modifier. I feel like I'm close to figuring it out but I'm rather dense.
I have a character template made
I have a character made
I have a weapon template made
I have a weapon made
I just need to understand how to connect it all.
Items cannot access player attributes as well. What I recommend doing is putting a label in your item container to do the roll.
You can assign the die by putting an attribute on the item, and referencing it.
-make a text field with the key “damageDie”
-add a label in the item container.
-make the roll message of the label:
${[:item.damageDie:]+str_mod}$
Seems like there is no way to make a Tabbed Panel's names show in bold/strong font ?
AhHa, just had to go into F12 and pick apart the CSS a bit and use the custom CSS field for custom-system-cell-boldTitle
Can i filter items in a container using a checkbox in the actor?
Is there an example of how to format that since it's not supposed to be a js IF?
This is what I'm starting with, but it's erroring out and I don't know the correct format.
<p>${roll:=[1d100]}$ vs ${60}$</p>
${roll==1 ? '<h3>Crit!</h3>' : roll==100 ?, : '<h3>Fumble!</h3>' : roll<=60 ? '<h3>Success</h3>' : '<h3>Failure</h3>'}$```
${roll==1 ? '<h3>Crit!</h3>' : roll==100 ? '<h3>Fumble!</h3>' : roll<=60 ? '<h3>Success</h3>' : '<h3>Failure</h3>'}$
You had just a , and : to much.
Thank you!
For future searchers, this is how I'm getting Crits/Fumbles & Matched Success / Failures to operate.
<h2>Fitness</h2>
<p>${roll:=[1d100]}$ vs ${60}$</p>
${roll==1 ? '<h3>Crit!</h3>' : roll==100 ? '<h3>Fumble!</h3>' : roll<=60 ? ((roll % 100) % 11 == 0 ? '<h3>Matched Success</h3>' : '<h3>Success</h3>') : ((roll % 100) % 11 == 0 ? '<h3>Matched Failure</h3>' : '<h3>Failure</h3>')}$
does anyone know how to refer to a key in the item when setting up item modifiers?
If I want to show the name of an actor that the user is targeting in the chat window when a user clicks a "label roll message", I can't seem to get this to work:
${getPropertyDataFromActor("target", "name")}$
Any idea what I'm doing wrong, or how I can make it work?
Is the update live were you would be able to create a text field on an item were you would be able to use the text field an a macro since the character have that field available because they have the item in the sheet ?
ive been struggling to learn this for a few months and I just cannot. any way I can port in sheets from a different game system and tinker with them so I'm not just starting from scratch?
or at least whats the closest sheet I can find to dnd 5e to import from the gitlab?
item modifier keys are a unique name, just like keys from labels, etc. The value for them must be a number or formula that generates a number.
You probably could, but I looked at that as a possibility before I came to Custom System Builder, and it was a lot.
i just feel like there is no help and I am to learn it all on my own. This chat is slower than molasses and the tutorials online are all so out of date they arent any use to me. i just want to put a system i've already made into this VTT so my friends can enjoy it but I am simply incapable of doing so
i dont know what i made wrong. Token reconize bars but dont add/sustrat value. Only in sheet i can change bar values.
Is there a way to have a checkbox affect a stat?
yes
${5+(checkboxKey ? 2 : 0)}$
for example
thanks!