#Custom System Builder

1 messages · Page 4 of 1

stuck python
#

I think I may be able to do a workaround currently with item modifiers, but it'll be messy. I'd like to find a way to detect what item is currently "equipped" with a checkbox or something
Or I'll just have to fall back to dynamic tables again

shut harness
#

Make a number field to represent ammo

#

That is what I recommend

velvet heron
stuck python
#

How do you do that? From my understanding, item modifiers apply whenever an item is on a character's sheet

velvet heron
#

I'll DM you.

stuck python
#

Also, how do you make a checkbox which determines whether or not its equipped?

#

Sounds good!

shut harness
floral crater
#

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)

formal goblet
floral crater
#

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(....}$

stuck python
#

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

shut harness
stuck python
#

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

hard flicker
#

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😩

burnt ridge
# velvet heron I'll DM you.

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

formal goblet
burnt ridge
cerulean chasm
#

Quick question: Does anyone know what's causing this .0000000000000001? This character is only equipped with these items.

runic turret
formal goblet
runic turret
#

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

thick crescent
runic turret
#

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

burnt ridge
runic turret
#

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

shut harness
runic turret
#

How to I make it so foundry sees one number field as the current HP and another as the max HP?

formal goblet
runic turret
#

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

formal goblet
runic turret
#

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

stuck python
#

Could someone provide an example of a basic macro that would change a property on a character's sheet?

stuck python
#

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.

stuck python
#

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.

formal goblet
stuck python
#

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

shut harness
#

You don’t need to make everything automated. You can trust you players

formal goblet
#

There was someone, who posted a module for CSB for Action Buttons. There was also a script example to read and update values

formal goblet
stuck python
#

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

shut harness
#

Anyway, can’t you modify the values via props?

stuck python
#

yeah that's what I'm trying to do, I'll probably go in there
Just trying to get a basic example

shut harness
#

I am on my phone RN so I can’t type one :(

#

Srry

stuck python
#

No problem
I'm also curious what the stuff in CSB's macro API means, and if it's useful at all

pastel orchid
#

Anyone have a formula for exploding d6

formal goblet
shut harness
#

But check out martins for in detail

stuck python
#

managed to do a simple macro to change a value!

shut harness
#

Can I steal it?

#

You can do items containers and get those values from the items

#

That is what I do personally

shut harness
#

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?

shut harness
#

Dammit

formal goblet
#

And even if, the system doesn´t offer an image-component 😅

shut harness
#

<img src="icons/svg/sword.svg" width=16 height = 16/>

#

That is what I do

formal goblet
shut harness
#

:|

formal goblet
#

Well, to be fair, I do the same with conditional formatting 😅

shut harness
#

another unrelated question. Can you get an actors name by using getPropertyDataFromActor

formal goblet
#

Don´t think so because it´s not part of the props

shut harness
#

I can do item.name so I thought I could. I suppose not

formal goblet
#

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

dire socket
stuck python
# shut harness ~~Can I steal 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})```
dire socket
#

Oh awesome, thank you

#

And yeah haha

formal goblet
#

I should probably put a simple macro example with how to update a value into the wiki... Well, it can wait till tomorrow journalnoteslayer

dire socket
formal goblet
dire socket
#

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.

burnt ridge
runic turret
# formal goblet Module: Bar Brawl

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.

formal goblet
rustic roost
#

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?

formal goblet
hard flicker
#

Is there any more mapping need to be done……?

shut harness
#

no

hard flicker
#

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.

formal goblet
# hard flicker I was doing things in this way. But the HP is unchangeable in Bar Brawl, while t...

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:

  1. You need a number field with a value
  2. 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.

hard flicker
#

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😫

formal goblet
hard flicker
formal goblet
#

You need V10

#

The patch for bar brawl came with v10, so v9 doesn't have it.

hard flicker
#

Oh okay, I would definitely give it a try. Thanks a lot 👀

pastel orchid
pastel orchid
runic turret
#

Is it possible for me to c/p this onto another panel tab?

#

I want to copy all of this to here

brittle moth
runic turret
#

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.

formal goblet
potent fossil
#

Hey guys

#

will this affect the way CSB work ultimately ?

formal goblet
potent fossil
#

okay thx

brittle moth
formal goblet
stiff forge
#

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?

formal goblet
#

Even without Items in Items we have a lot of tickets 😅

formal goblet
stiff forge
#

yeah, i thought so...any idea on how to save the result of the condition since id like to use it later?

formal goblet
#

Should be this: ${netdmg:= exptest <= myskill ? [:edmg:] : [:ndmg:]}$. But it will roll twice

stiff forge
#

thanks - can I hide those rolls with a # somewhere?

formal goblet
#

It would be better this way:

${#rollformula:= exptest <= myskill ? edmg : ndmg}$
${netdmg:= [:rollformula:]}$
formal goblet
stiff forge
#

Ah, yes. I can live with that by some formatting of the output...thanks very much for the help!

spice ermine
#

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?

formal goblet
#

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.

spice ermine
#

Thanks.

snow locust
#

anything i need to keep in mind when migrating to v10 with csb ?

formal goblet
snow locust
#

anyone experienced maps no longer working ?

#

everything else seems to be fine

spice ermine
#

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?
formal goblet
spice ermine
#

👍
Wasn't sure if including it in the inline roll was the issue, seems it was.

mental mauve
#

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.

mental mauve
#

That is the MADDEST fix I have ever seen. It works, but it is mental lol

vagrant hollow
snow locust
proud prairie
#

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? 🤔

formal goblet
proud prairie
#

Awesome, it works!

#

Thank you!

#

Now, is there a way to start a new line in a label roll message?

robust wren
#

It is based on html.
To make it simple just put an <br> at the end of the line

proud prairie
#

Thank you, you've saved me a ton of headache!

stiff forge
#

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...

stuck python
#

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

uneven grove
#

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.

stuck python
#

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.

uneven grove
snow locust
#

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 !

snow locust
#

I see macros have changed a bit for V10, anyone know what the current way to read and change properties is ?

prisma orchid
#

Hey there! Any Idea on how i would go at something like active effects with multiple levels? (Like stacking them)? Has anyone tried?

prisma orchid
#

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)

formal goblet
elder turret
#

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?

formal goblet
elder turret
#

..... 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

formal goblet
#

Well, I think you got your answer 😄

elder turret
#

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

formal goblet
elder turret
#

Is what I thought, thank you!

formal goblet
#

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.

elder turret
#

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.

formal goblet
elder turret
#

ohhh I understand now

formal goblet
#

You can assign Items to an actor without having a single Item Container 😅

dire tree
#

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.

thin leaf
#

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?

thin leaf
elder turret
#

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.

formal goblet
vague hearth
#

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

shut harness
vague hearth
elder turret
vague hearth
elder turret
#

Is it always with every two it goes up? Or does that number adjust?

vague hearth
#

It is unless they have a low score of 9-16.

elder turret
#

Let me guess if I have a score of 8 it is a -1 to hit?

vague hearth
#

Yes

elder turret
#

${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.

vague hearth
#

Can that formula be input into the To Hit number field or would it be better to place it elsewhere?

elder turret
#

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

vague hearth
#

Got it. It should probably be written into a macro then correct?

shut harness
#

Under lables

#

${[1d20]+HitBonus}$

vague hearth
#

Ok thanks guys. I appreciate it.

vague hearth
#

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.

elder turret
#

${#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

stiff forge
#

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.

formal goblet
stiff forge
#

Oh...that's simple...lol. Thanks very much!

formal goblet
#

Ah wait, you want the total, not separate values... That's even easier: ${value1 + value2}$

stiff forge
#

to sume them id just enter ${sum1+sum2}$

#

lol...yes

cerulean chasm
#

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.))

burnt ridge
#

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.

  1. 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.

  2. 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?

dire tree
# formal goblet I'll test it when I'm home

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.

formal goblet
formal goblet
formal goblet
dire tree
#

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.

vagrant hollow
#

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?

velvet heron
#

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?

formal goblet
velvet heron
thin leaf
#

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?

thin leaf
#

So my followup question is: Is there a workaround to have my cake and eat it too?

cerulean chasm
vague hearth
#

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.

shut harness
cerulean chasm
#

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?

formal goblet
cerulean chasm
#

That would be really helpful, thank you!

thin leaf
#

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?

thin leaf
sturdy drum
#

Judging by number of replies I am going to assume CSB is condisdred the best of the DIY modules?

#

Has anyone already done Pendragon?

tropic bough
#

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.

sturdy drum
#

Is there anyone that is solid with CSB and would be interested in a paid engagement?

formal goblet
velvet heron
#

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.

shut harness
#

Tell me if you have troubles :)

formal goblet
velvet heron
# formal goblet 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.

formal goblet
#

So you don´t roll for initiative or what? 😅

velvet heron
#

No. In my system, "initiative" just means all the PCs go first and then the monsters and such get a turn.

shut harness
#

You can just use initiativeBonus

velvet heron
#

That works, too.

shut harness
#

To change the order manually

velvet heron
thick crescent
#

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.

vagrant hollow
severe hazel
#

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.

thick crescent
#

ah cheers, I guess I'll try bashing my face right back into it then haha

thanks!

severe hazel
#

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.

formal goblet
severe hazel
#

cheers

severe hazel
#

it works?

#

just like that?

velvet heron
severe hazel
#

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

stiff forge
#

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.

formal goblet
dense moth
#

is there a way to copy a panel with all its content and paste it ?

formal goblet
dense moth
#

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

dense moth
#

i can do my logic in a macro

#

i also probably gonna need a dialog anyways

formal goblet
#

You can right-click on the Label in the actor sheet (not Template). You´ll see some options there

dense moth
formal goblet
#

A roll must be configured and I think it needs a defined key

dense moth
formal goblet
#

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.

dense moth
#

i was hopping there would be a syntax like /macro inside the roll message but i couldn't make it work

dense moth
#

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

formal goblet
dense moth
#

i am gonna use a world script and add listeners to the labels myself, which will run whatever code i want

formal goblet
severe hazel
#

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

shut harness
#

I personally use items for classes and features

severe hazel
#

Okay, time to read that then

#

Thank you

dense moth
#

i am very confused with dynamic table, why is it an object instead of an array-like and why do deleted entries still exist ?

formal goblet
#

@brittle moth I think you can answer that better than me 😅

fair lotus
#

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

brittle moth
# dense moth i am very confused with `dynamic table`, why is it an object instead of an array...

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 example skills.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.
dense moth
#

alright 🙂

brittle moth
#

If you have ideas to improve it, and/or a strong reason why I should change this, don't hesitate to tell me 🙂

dense moth
#

i would probably still delete the data using the negative update syntax but i have not read your code

severe hazel
#

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

dense moth
#

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

severe hazel
#

fug

dense moth
#

well i am done, thanks for the system, it made things way easier

oblique spear
#

Nicely made!

burnt ridge
#

Yeah, looks great, I love the inclusion of empathy as a main social stat

floral crater
#

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)}$

brittle moth
#

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 🙂

floral crater
#

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.

floral crater
#

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)}$

floral crater
#

problem solved with a string(jetmod)

Jet corrigé: ${jetmod:=string((ceil(jet/5)5))}$

inland kayak
#

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

velvet heron
floral crater
#

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'}$

thin leaf
#

Hello! Is there a way to modify/add active effects (stunned, sleep, etc)?

uneven grove
inland kayak
floral crater
formal goblet
floral crater
#

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')

formal goblet
#

fetchFrom... returns an array, so you have to get the first value out of it before processing it further to equalText()

severe hazel
#

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

shut harness
#

I am not sure I quite understand

#

If you want to roll based on text fields it is
${[:DamageDiceKey:]}$

severe hazel
#

I tried that?

#

wtf

#

okay

#

I'll try again

shut harness
#

Was it ${[‘DamageDiceKey’]}$

severe hazel
#

maybe?

#

probably

#

it doesn't work

#

Damage is a text field, Damage roll is just a dice button

#

Damage: ${[:Damage:]}$ prints nothing

formal goblet
#

You have to use sameRow() if you want to get the right value from a dynamic table. ${[:sameRow('Damage'):]}$

severe hazel
#

oh

#

my god

#

thank you

formal goblet
# severe hazel and how tf do I do Items?
  1. You need an Item Template (works like an actor template).
  2. You need an Item Container in your Actor Template to display the dragged Items
  3. Create an Item, select the Item Template and reload. Now you have an Item with values, which can be dragged on your actors.
severe hazel
#

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

formal goblet
severe hazel
#

${#roll:= [1d20]+?{Add Dice|0}}$
Athletics: ${roll + Athletics_Score}$

this gives me an error when I want to insert dice into the prompt

somber bay
#

Just a core question

#

is everything supposed to be a prop? Like I cannot do attributes.str or currency.gold ?

#

(for compatibility with modules)

inland pecan
#

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?

shut harness
#

or

inland pecan
#

I tried that from the documentation, but all that seems to do is show a Checked or Unchecked message in the roll result.

shut harness
#

${2d6+(checkboxKey ? 1 : 0)}$

inland pecan
#

here's the code if it helps:
${![(:REF:+:GUN:+:combat_mod:)d6cs>=5]}$

shut harness
#

maybe ${equalText(checkboxKey, 'TRUE')}$

inland pecan
#

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).

inland pecan
#

How can I have the system re-roll certain dice?

elder turret
#

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:]}$

elder turret
#

Ok, nvm the roll table was not setup correctly ... first time using them in Foundry ... another stupid error blech

formal goblet
formal goblet
formal goblet
somber bay
#

(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?

formal goblet
somber bay
#

(or would it have to be updated with a macro?)

formal goblet
zinc hound
#

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)}$

formal goblet
zinc hound
formal goblet
zinc hound
#

Gotcha, thanks! (Didn't know you could do that!)

stuck python
#

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?

shut harness
#

I am not sure how too sorry.

dire tree
#

is there a way to hide formulas in templates? its getting a little bit out of hand

fiery loom
#

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... 😭

raw terrace
#

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.

formal goblet
formal goblet
raw terrace
#

My question may be moot, as I have found something pre-built which I will probably end up using, but thanks.

formal goblet
shut harness
#

And then call upon them

stiff forge
#

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

formal goblet
stiff forge
#

ok, you must put a space between the values, i just discovered that

#

🙂

#

i had them all scrunched together

#

Thank you!

delicate citrus
#

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?

stiff forge
delicate citrus
#

no worries, thank you for the quick response, I'll just keep watching my players like a hawk haha

wicked spear
#

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?

dire tree
burnt ridge
wicked spear
#

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.

hallow ginkgo
#

Hey folks, is it possible to copy / paste a component?

#

or duplicate one

hallow ginkgo
#

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

formal goblet
# wicked spear

You should put the formula into the Label text, not the key 😅

formal goblet
hallow ginkgo
#

Thanks a lot

hallow ginkgo
#

Sometimes when I drag a component, it automatically creates a panel null

#

How can I delete this panel? Does anyone know?

wicked spear
wicked spear
#

The item container:

#

The item template:

#

Result

formal goblet
#

Check the console with F12

wicked spear
#

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.

potent fossil
#

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?

shut harness
potent fossil
# shut harness Idk what you want for the first, but for special effects you can have an attribu...

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

shut harness
#

But you can just press the button 4 times

formal goblet
potent fossil
#

Okay I see thanks

wicked spear
#

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.

formal goblet
potent fossil
#

Is there a way to store all the labels in a panel in a single key with all information is has in it

formal goblet
potent fossil
# formal goblet Uhhhh, I don't understand what you want to achieve. First: Which data exactly d...

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

formal goblet
# potent fossil The thing is I use a horizontal label to show different effect of a weapon in th...

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.

potent fossil
#

okay I see

#

I'll still give it try

prisma orchid
# raw terrace Here is a very specific question about rolling dice with CSB - I am trying to se...

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);`

dire socket
#

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.

shut harness
dire socket
#

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

potent fossil
formal goblet
potent fossil
#

Thanks budd

potent fossil
#
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

formal goblet
south prism
#

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.

thin leaf
formal goblet
steady coral
#

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

formal goblet
# steady coral I'm having trouble figuring this out on my own with only the documentation, how ...

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:]}$.

uneven grove
steady coral
#

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

noble tendon
#

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'}$

formal goblet
formal goblet
noble tendon
#

Can put a example?, please
${ref(Flecha_descarga) equalText(Flecha de descarga) ? '40':'2'}$ dont work

formal goblet
noble tendon
#

Very thanks, work

potent fossil
#

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 ?

potent fossil
# formal goblet Corrected version: ```js concat(item.bleednat + item.letru != 0 ? item.Saigneme...

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)
formal goblet
# potent fossil any idea on how I can fix this ?

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.

steady coral
formal goblet
# steady coral that's what I've been trying, but doesn't seem to work. when you say enter the k...

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)}$
potent fossil
formal goblet
potent fossil
#

thanks for the tip I would not have found this alone

steady coral
#

It's in a dynamic table, is that potentially what's messing things up?

formal goblet
formal goblet
steady coral
#

the label is also in the dynamic table, yes

formal goblet
#

Changed

steady coral
#

That worked

#

the roll readout becomes a bit of a mess, though

potent fossil
formal goblet
#

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)
steady coral
formal goblet
# steady coral appreciate the help. I have another value in a number field on the same table I ...

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.

steady coral
#

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 🙂

formal goblet
#

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

pale tusk
#

Is there handy documentation on how hidden attributes work and can be referenced?

steady coral
formal goblet
pale tusk
pale tusk
#

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.

formal goblet
pale tusk
formal goblet
#

What´s the formula of m_str_mod?

pale tusk
#

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))

formal goblet
#

I hope with ${}$?

pale tusk
#

I've tried it with and without

formal goblet
#

Should be with. You can run ${m_str_mod}$ as a test to see which value you get back

pale tusk
#

Okay, so that's how it should look. That helps, thanks!

formal goblet
#

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) 🤣

pale tusk
#

It's our secret power!

noble tendon
#

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

formal goblet
#
stuck python
#

I heard that a feature for the next version is items within items. When is this next version expected to be made available?

pale tusk
#

What's the best way to display a number field that's a total of other fields, rather than an input from the user?

steady coral
#

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)

oblique spear
#

Hello.
Do you know how hide "configure item modifiers" for players ?
I want just this option for DM but all players as owners.

oblique spear
#

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' : ''))))}$

oblique spear
#

i try with samerow but with no success 😦

noble tendon
#

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

pale tusk
prisma orchid
pale tusk
prisma orchid
pale tusk
#

Oh, I see! It looks like it doesn't process on the template, but on the actual sheet it does.

pale tusk
#

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?

faint wharf
#

is there a expected time of next release?

pale tusk
#

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?

formal goblet
# pale tusk I have a perhaps complicated question. So, the dropdown list element seems to on...

It doesn´t really depend on the dropdown, rather it depends how you construct your formula. And there are actually multiple solutions to this.

  1. 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 : ...}$
  2. If the structure of your keys remains the same (e.g. str, dex, int for base-values, str_mod, dex_mod, int_mod for modifiers), you could append the keys of the ref()-input: ${ref(dropdownKey) + ref(concat(dropdownKey, '_mod'))}$
pale tusk
formal goblet
formal goblet
pale tusk
formal goblet
#

oh 😅

#

Good luck finding that one I guess 😅 . Or you could export the template and edit the JSON

pale tusk
#

That might do it! Thanks. 🙂

formal goblet
# noble tendon I create array from dynamictable with values 6,4,3,8. With first i can extract t...

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))))}$
formal goblet
formal goblet
noble tendon
#

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.

potent fossil
#

Hey Martin I tried to it again with something else, but I think I messed up the syntax again 😅 sweaty

${concat(item.typemag != 0 ? item.typemagi : ' ', equalText(item.eff, 'N/A') ? ' ' : item.effautre)}$
formal goblet
potent fossil
# formal goblet 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)
severe patio
#

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?

vagrant hollow
severe patio
#

Oh, thank you so much

noble tendon
#

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

pale tusk
#

Are item containers the only way to create drag-and-drop functionality?

pale tusk
#

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.

vagrant hollow
vagrant hollow
vagrant hollow
pale tusk
vagrant hollow
pale tusk
#

That did not seem to make a difference, no.

vagrant hollow
pale tusk
vagrant hollow
pale tusk
vagrant hollow
pale tusk
#

Is there a way to style away the gray box and suitcase logo from item names?

vagrant hollow
vagrant hollow
pale tusk
vagrant hollow
pale tusk
pale tusk
#

Is there a way to have a component display based on a flag being set to false instead of true?

pale tusk
floral crater
#

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)

pale tusk
#

Is there a way to do a simple if() style statement within a formula?

potent fossil
noble tendon
#

${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.

pale tusk
#

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)

shut harness
#

Hope that helps.

pale tusk
shut harness
#

In your character sheet?

#

Or your item sheet

pale tusk
#

Both/either

#

It seems to default any conditional to "true"

shut harness
#

Did you spell the keys correctly?

#

Also try using a checkbox

pale tusk
#

I've tried a variety of different keys and methods, including checkboxes

#

I'm fairly sure the spelling was right

shut harness
#

¯_(ツ)_/¯

#

Srry

pale tusk
#

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.

burnt ridge
pale tusk
#

(At least, I think that's the one I tried. I've been at this for hours, now, and I'm a little muddled.)

burnt ridge
#

I know that feeling

pale tusk
#

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)}$

oblique spear
#

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' : ''))))}$

shut harness
formal goblet
shut harness
formal goblet
potent fossil
formal goblet
#

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}$

pale tusk
#

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)}$

formal goblet
pale tusk
formal goblet
#

You can create a Label on the Item (or use hidden attributes). The formula should work there

floral crater
pale tusk
#

So there's no way to have the item be the source of a conditional benefit?

formal goblet
pale tusk
formal goblet
#

Item modifier formulas have access to all Item attributes

pale tusk
#

I think I fundamentally misunderstand labels! I thought they were only used for display purposes.

formal goblet
#

Nope, you can also reference them 😅 . That´d allow you to store intermediate values.

pale tusk
#

Interesting! I'll play with that. Thanks!

noble tendon
#

i erase the sum function. the problenm persist

formal goblet
formal goblet
pale tusk
#

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.

formal goblet
pale tusk
#

It was very long. XD

pale tusk
#

Is there a way to CSS away these gray boxes in the dice rolls?

pale tusk
#

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.

formal goblet
#

Just put ! after ${ and the box will disappear

pale tusk
#

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.

burnt ridge
#

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

burnt ridge
#

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

lusty garnet
#

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 🙂

vagrant hollow
lusty garnet
#

@vagrant hollow thanks for the response. so it is a rich text editor component, when you say dialog editor what are you referring to?

vagrant hollow
vagrant hollow
lusty garnet
#

@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

vagrant hollow
#

Journal links will not work in Item Containers
Items work "better" in Item Containers - you have more choices

lusty garnet
#

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

uneven grove
mental fiber
#

is there a tutorial for this system anywhere? I found one on youtube, but it seems very out of date.

uneven grove
#

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

mental fiber
#

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?

severe hazel
#

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

civic finch
#

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

burnt ridge
# civic finch

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

burnt ridge
# mental fiber I'm assuming it is used to create a sort of item list, like an inventory for a c...

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

civic finch
burnt ridge
civic finch
#

Thanks!

#

Do you happen to know the coding for checkboxes? I have never used this system before

burnt ridge
civic finch
#

Cool! Thanks! I'll be sure to look into it

uneven grove
# mental fiber ok, after watching it, it give a pretty good look into all of the functions of t...

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

formal goblet
formal goblet
noble tendon
#

Is there any way to identify the diferents parts of a sheet to aply ccs?

vagrant hollow
shut harness
uneven grove
shut harness
#

Reference that

pale tusk
#

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?

shut harness
pale tusk
shut harness
pale tusk
pale tusk
formal goblet
pale tusk
formal goblet
#

Uhm. It's literally the normal text field

pale tusk
#

So just "label text"? I got confused because number fields have a specific field called "default."

formal goblet
#

I can rename it later but it should be obvious.

pale tusk
#

I was overthinking it, sorry. I have to say, though, once I understood that, this works so beautifully!

severe hazel
#

I have a general question how easy/hard is it to produce a standalone system from this?

formal goblet
shut harness
severe hazel
#

I'm currently making it a proof of concept

#

Minimum viable product

formal goblet
#

That´s some business key words

severe hazel
#

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

shut harness
severe hazel
#

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

shut harness
#

Not really

severe hazel
#

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

shut harness
#

Ye

#

Use items for class features

#

I don’t really have a class system

#

It is good for traits, spells, features, races, etc

severe hazel
#

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

formal goblet
severe hazel
severe hazel
#

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

formal goblet
severe hazel
#

...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

formal goblet
#

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).

granite apex
#

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

formal goblet
#

Huh, we need a Youtuber for this system...

granite apex
#

I found a series of videos, but alas my Spanish is about 28 years out of date

severe hazel
severe hazel
granite apex
#

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

severe hazel
#

samesies bestie

formal goblet
#

Ah, well. Yeah. Select the Template and drag it 😅

granite apex
#

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)

severe hazel
#

we are the same holy shit

formal goblet
#

I moved from R20 to Foundry because Foundry offers waaaaaaaaay more customization with its modules.

granite apex
#

That and Roll20 is just plain awful to look at, even with the new dark mode

severe hazel
#

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

formal goblet
#

Can't get worse than trying to get Shadowrun 6 running on CSB 🥲

severe hazel
#

pain

granite apex
formal goblet
#

OH HELL NO

granite apex
#

Used that and Google Docs for the sheets

severe hazel
#

oof

#

oof

formal goblet
#

Google Sheets is actually convenient

granite apex
#

It is! And Button Dice Roller is fine if you do a lot in Excel like I do for work

formal goblet
#

Used that for DSA/TDA 5 and AC 3

#

And the good old Tabletop Simulator 😂

granite apex
#

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

formal goblet
#

Just right-click the Item in the Tab and you'll find an option. Btw, I recommend the module "Permission Viewer".

granite apex
#

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

formal goblet
#

It creates a copy of the Item with edit-permission

granite apex
#

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

formal goblet
#

But it should be able to 😅

granite apex
#

Component Key for the stat mod and the Key for the racial package are the same name

formal goblet
#

Ok, that's a dropdown list. Item Modifiers can only modify Labels

granite apex
#

Ahh ok!

#

Thanks for the assist, gonna mix a drink or two and delve into this further. Have good one!

formal goblet
#

I'll append the good with sleep

keen lance
#

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.

shut harness
keen lance
shut harness
keen lance
keen lance
#

Is it perhaps not getting the key to the item file? ie Name?

vagrant hollow
keen lance
vagrant hollow
shut harness
# keen lance Thank you. I tried that & still no go.

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.

shut harness
#

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.

shut harness
#

wait

#

nvm mannaged to do it myself

grim elbow
#

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?

formal goblet
pale tusk
#

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?

formal goblet
pale tusk
formal goblet
#

${recalculate(rng)}$

pale tusk
formal goblet
#

Show a screenshot

pale tusk
formal goblet
#

Is qua a key to something?

pale tusk
#

Hidden attribute on the item template. Maybe that's where it's breaking. I'll check that out.

formal goblet
#

And btw, the function should be in your Label, not in the text-field 😅

pale tusk
#

Ah...okay. So is there any way to possibly have raw text in there, too?

formal goblet
#

Labels can contain any sort of text?

pale tusk
#

Not if it's inside a recalculate(), I'd assume?

formal goblet
#

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

pale tusk
#

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.

formal goblet
#

Then it's literally just ${recalculate(yourTextFieldKey)}$ for your Label. So that the text field can either contain a simple number or a formula.

pale tusk
#

And can that formula include a variable?

pale tusk
#

I've read that. I just don't understand. Sorry.

formal goblet
#

Yeah. It will be handled like a normal formula.

pale tusk
#

It doesn't seem to.

formal goblet
#

Is qua a key of the Item?

pale tusk
#

qua is a hidden attribute key on the item, yes

formal goblet
#

And your text field is ${qua}$ ?

pale tusk
#

Yes

formal goblet
#

Any console errors?

pale tusk
#

I don't see any

formal goblet
#

Item reloaded?

pale tusk
#

Yes

formal goblet
#

And what does the Label display? 😅

pale tusk
#

If I put in a number, it displays the number. If I put in a formula, the label goes completely blank.

formal goblet
#

Can you try ${5}$ ?

pale tusk
#

That works

formal goblet
#

Good. That means that the Label is fine.

#

Try to reference qua in your Label (use either label prefix or suffix for that)

pale tusk
#

I set the label prefix to ${qua}$, and nothing appears

formal goblet
#

You sure that the key is right?

pale tusk
#

I have qua defined as a hidden attribute in the item template

formal goblet
#

What is the content of qua ?

pale tusk
#

${max(getPropertyDataFromActor("attached","quantum"),0)}$ where quantum is a number input on the actor sheet

formal goblet
#

Why the max-function? 😅

pale tusk
#

I...honestly forget. I could remove that!

#

That doesn't seem to change anything, though

formal goblet
#

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.

pale tusk
#

Okay, so, like this? ${getPropertyDataFromActor("attached","quantum",0)}$

formal goblet
#

That should do it

pale tusk
#

Okay. It's still not working, though. :/

formal goblet
#

Ok, I'm out of ideas. I have to test this through some time later...

pale tusk
#

I've probably made some really dumb error somewhere, and I'm just missing it.

formal goblet
#

Well, you could replace attached with the name of your actor as a test

pale tusk
#

The outcome is the same

#

(The label goes blank)

formal goblet
#

Ok, not a bug atleast. Check the key of your actor I guess

pale tusk
#

How do you mean?

formal goblet
#

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

pale tusk
#

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?

formal goblet
#

Yeah. Don't forget to change it back to attached. Otherwise it will use the value of this specific actor for all Items 😅

pale tusk
#

Right!

#

But, to be clear, I can't somehow insert a formula into the middle of a text field?

granite apex
#

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.

formal goblet
pale tusk
formal goblet
pale tusk
formal goblet
pale tusk
formal goblet
#

No. Your Label should contain it. Your text field is just a dump component which knows nothing 😄

pale tusk
#

Then that really doesn't seem to do anything like what I was saying?

formal goblet
#

Label: ${recalculate(textInput)}$
textInput: Hi. I'm ${name}$ and I'm ${age}$ years old.

The Label should display the right text afterwards.

pale tusk
#

I see! Okay, I think I understand now.

#

Thank you!

keen lance
vagrant hollow
noble tendon
#

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

formal goblet
noble tendon
#

Filter value is a number or can text?

formal goblet
#

Might be both, but I'm not sure (might be coerced automatically)

storm matrix
#

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

storm matrix
#

ok the work around worked

#

thank you

mental fiber
#

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?

pale tusk
#

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?

pale tusk
mental fiber
#

that was the first thing I tried, yes.

pale tusk
#

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?

mental fiber
#

the output was just blank. As far as the input there is a number input, which defaults to 10 on the actor sheet.

pale tusk
#

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}$

mental fiber
#

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.

pale tusk
#

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.

mental fiber
#

that is actually quite helpful.

#

thank you a bunch, that is exactly what I was looking for!

pale tusk
#

Glad I could help!

mental fiber
#

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.

mental fiber
#

hmmmm, that seems out of my current skill level, but I'll look into it.

shut harness
vagrant hollow
vagrant hollow
# pale tusk Probably a very dumb question, here. Entering values into number fields seems ve...

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.

brave delta
#

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.

shut harness
brave delta
vagrant hollow
pale tusk
#

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?

formal goblet
prisma orchid
#

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?

formal goblet
prisma orchid
prisma orchid
formal goblet
prisma orchid
#

i'm betting that's a javascript thing. i'm no pro but isn't this when JS thruthy/falsy stuff kicks in?

formal goblet
prisma orchid
#

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!

formal goblet
prisma orchid
#

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.

prisma orchid
#

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?

formal goblet
prisma orchid
#

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.

formal goblet
#

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.

prisma orchid
#

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

prisma orchid
#

dang. naja. dann muss ich mir was anderes überlegen.

formal goblet
#

Würde einfach die Rollformel anpassen. Also sowas wie, wenn 1. Dropdown nicht leer ist, soll der Wert vom 2. genommen werden.

prisma orchid
#

das... geht natürlich auch.

prisma orchid
shut harness
#

<i class="fa fa-dice-d10 fa-lg"></i>

#

as the suffix

pale tusk
shut harness
#

for the roll button

pale tusk
shut harness
#

oh wait

#

you said left

#

oops

quasi plume
#

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.

shut harness
granite apex
#

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

noble tendon
#

Can i filter items in a container using a checkbox in the actor?

brave delta
vagrant hollow
brave delta
#

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>')}$
cinder fox
#

does anyone know how to refer to a key in the item when setting up item modifiers?

cunning meteor
#

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?

sharp grotto
#

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 ?

carmine escarp
#

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?

carmine escarp
#

or at least whats the closest sheet I can find to dnd 5e to import from the gitlab?

granite apex
pale tusk
carmine escarp
#

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

noble tendon
#

i dont know what i made wrong. Token reconize bars but dont add/sustrat value. Only in sheet i can change bar values.

civic finch
#

Is there a way to have a checkbox affect a stat?

shut harness
#

${5+(checkboxKey ? 2 : 0)}$

#

for example

civic finch
#

thanks!