#Custom System Builder
1 messages ยท Page 56 of 1
Navigate to the console-tab. That's the only one
unless I am looking in the wrong place
You do
I think I found a bug in CSB sorting for item filters
That are you current props. I need the error message
the columns contain ${item.ComponentKey}$ logic and nothing else, should be 1 1, 1 2, 1 3, 1 4...
How do I get that?
Click on that
Can the hidden attributes be sorted? If so, I can't found an option to do it. And if not, will sorting be added in the future?
Nope, and it's not planned
Okay, thanks!
Weird question but has anyone figured out integration with random roll tables within an item?
It'd be cool to display the contents and animation within a sheet im building.
I haven't even worked with Foundrys roll tables, so I'm out
I'm thinking I can make a pseduo table in the item with a bunch of checkboxes outcome1 outcome2 set to invisible, and check them based on a roll formula...
setPropertyInEntity('self', '${concat('outcome', '${roll}$')}$ 1)
but that'd be a lot of data-entry work compared to importing a json, especially since all backgrounds come from one template.
also martin, i dont know if you saw this -- but sorting in an item displayer doesnt seem to work.
There was a fix a while ago, but can't remember for which version exactly
You could test if it is fixed in the beta-build to make sure
im on 4.4.2 - just made backups and will try updating
latest stable build... i guess i'll try the beta.
unless i am using it wrong, it is not fixed as of 4.5.0-rc2
K, time for rev 3 ๐
just verified it wasn't my css formatting since i broke it into a flex-row display rather than the usual column
We don't do logic with CSS besides some classes
yep, im saying i just did another item container without the formatting
it's also not working
wanted to verify it wasn't me chaning the display logic
^^ kinda a cool effect, need to do a few things to it to make it complete but really happy with these upgrades to the character creator
ok, so when I click on ythat nothing happens
found a show console sidebar button
was finally able to make the different types of items do different things. Which leaves me room to fix the script without it becoming messy! Only thing to do now is find a way to add the click option to the class tag I have.
This code ${setPropertyInEntity('item', 'isEquipped', "item.isEquipped ? false : true")}$ is what I needed to activate the checkbox within the item. But now I need to add this same code (or something simular) to only the items that are equippable, such as weapons and armor. Not everything else.
However, if I put it in the Label roll message then the whole row becomes clickable. That is the trouble shooting I've found out so far. So my next goal is trying to avoid that specific thing. I am just trouble shooting but, I think the only way to have this work is to apply a HTML <script> in the Label text part. ๐ค Sense the <i class="fa-regular fa-shield"</i> is already there. Unless different code types can be put into one label area.
But yeah! That is what I am tackling next. ๐ I have a rough code but I won't show anything till I have something a little fleshed out. Thank you guys agian for all the help so far! Learning has been a blast! ๐คฉ
Hey Hey,
Anyone tried making custom module for Daggerheart?
I am asking before making one myself if there is none ^^
(since my coding is poor and I know that my version will be quite basic)
Probably, but canโt be shared (for licensing reasons).
Huh, didn't thought of that
Ow well, I will need to make some half-baked character sheets then myself
hello everyone! just joined the cord, i was wondering if anyone ever tried making a card based game in the csb system? I searched a bit and i was wondering if there was a way to implement card values in formulas, like lets say add a dex attribute to a drawn card?
We don't do anything with cards
I see, thanks! Would there still be a way to have a html or something pop up in chat saying a cardโs value? Maybe Iโd have to look up a module for that
Hello! @formal goblet, your helped got me to the point where I was able to automate a bunch of fx from character sheet rolls! Thanks a lot!
That's dope!
Just put the code in the label roll message if the column with the shield? That should target only that column
hello, i would like some help on this line of code i made ${floor(ref('Body') * (1/8))}$}$
the code works just fine, the thing i cant figure out is most of the time when i use this the result would be 0. so i would like to change it so when the result is less than 0 it will instead get 1 as the result
${max(<your code>, 1)}$
that worked perfectly, thank you!
i was trying to do some wierd fallback stuff then just decided to ask here lmao
Theres a lot of other ways to do it, but I like to work with the math.js code when I can, its very functional.
Hey just bought Foundry and was trying to find this in the systems to install, couldn't find it. And it's not in the add-ons either.
Am I missing something or is it removed?
I see it listed on the site still so I figure it's still there.
Are you on v13 Foundry? CSB is on v12.
Probably....Having just bought and downloaded.
Is there any roadmap/plan for updating to 13 or should I go ahead and install 12 if I'm wanting to work with CSB?
Its going to be a bit. LinkedFluuuush, the author, wants to get over a major api hurdle before going to v13.
alright. I'll see where it's at when I'm ready to see if I can port this RPG system over to Foundry.
Thanks for the info! o7
No problem.
Is there a way for an item to check a box off on the actor when it is added...and if so, how?
I tried the item modifier, but I am not sure what to put in the value formula to make it check the box on the actor off.
Item Modifiers can only modify Labels and Meters. All other Components cannot be influenced by that
I'm on Foundry v11 with CSB 3.0.0 and tabs for tabbed panels appear on the left. How do I fix this?
Use a different key for the Tab-Component. There's a bug if you use tabs as the key
Hi, I'm not so good at scripts. Maybe someone can help. I want to set up a two-handed sword so that when dealing damage to an enemy. I was given temporary hp equal to the additional fire damage of this sword.
hey @formal goblet , sorry to bother I haven't had time to carry on because of the job, could you (or anyone else abvailable) help me locate where in the console I find the information i need to fix the errors in this?
this is the current state of the formula I am trying to fix ${agilityTotal + 7 + (fallback(find('items', 'itemMod', 'itemAbility', 'physicalarmour'), 0))}$
this is the look of my console
holy s
i updated the sheet with the console open and this appeared
what am I looking for
it seems find(...) is the issue
if i replace find() for lookup(), it works kinda?
but if there is no entry assigned as armour, then it returns bothing
look at the lil dude running icon
${agilityTotal + 7 + (fallback(lookup('items', 'itemMod', 'itemAbility', 'physicalArmour'), 0))}$
ok so
'items',
'itemMod',
'itemAbility',
'physicalArmour'
)```
i don't get it
Which version of CSB are you using?
4.4.2
i think the order is reversed?
table, column, value to filter, value to use if filter is true
'items', 'itemAbility', 'physicalArmour', 'itemMod' ?
No it's not
i don't understand the instructions in the wiki, it's a bit over my head
we are not using filterColumn, right?
You are. You have to specify a column and a value you want to filter by
You can take a look at lookup() in the Wiki
They behave the same with the input parameters. They only return different things
ok, let me see
oh ok
so i am telling the funtion to return the value of the column bonus when the value of the column ability is equal to armour
value: the result of the column itemMod
filter: the word 'physicalArmour' in the column item itemAbility
therefore: 'items', 'itemMod', 'itemAbility', 'physicalArmour'
right, so i know that ยดfind('items', 'itemMod', 'itemAbility', 'physicalArmour')ยด is supposewd to be correct
Can you expand items in there, so I can see what it contains?
Yeah. One more level
current formula: ${agilityTotal + 7 + (fallback(find('items', 'itemMod', 'itemAbility', 'physicalArmour'), 0 ))}$
Delete the row in the Template and reload your sheet
Show the props again
Show the Dynamic Table of the Template
You sure you reloaded the sheet?
the sheet named test, yes
i'll reload everything hang on
refreshed foundry, reopened the template, reopened the test sheet, hit reload
Nope, I don't see the rename
table renamed
and i did not update the formula
looks like that
ill get the console in a sec
should i update the formula too?
with the new table name
as is just new table name, formula not updated
It's not renamed here
Can you show the header of the Actor Sheet?
header?
Nvm, I already see it
look
Is that an old entry of the command or did you execute it again after the reload?
i executed it again
i mean
wait
no
not after the renam
no errors now
and it's doing the math
so, once i renamed the table to stuff, updated the formula in the label, it worked
i don't lnow what is up
out of curiosity, i renamed it back to items and all and it also works correctly
i don't understand what i was doing wrong
Look at the first entry of the Table. That was causing the issue
The rename made sure, that the whole Table is cleared in the props
i see!
dang
i am sorry for all the trouble
i did learn something new though
since i could have multiple armour entries, i would like to add them together instead of picking just the first
Then switch to lookup() and wrap it with sum()
understood!
thank you, i was wondering which one would replace find looking at the wiki
so sum(lookup()) ?
done!
thank you!
this template is now ready for a spin
i very much appreciate your support
Hello! I'm preparing for a new campaign, and I'm thinking about creating my own system. Since I'm not much of a programmer (but willing to learn), CSB seems like a good option for my needs - it certainly looks easier than creating my own system in Foundry or even creating an application in Unity/Godot/etc.
However, I have a couple of questions that I couldn't find answers to in the wiki or outdated YouTube videos. What are the limitations? Looking at the system, I can definitely see that I can create a character sheet with stats, skills, and even, probably, an inventory. And, it seems, probably a library of various items (weapons, armor, equipment, implants) - correct me if I'm wrong. But I'm interested in automation (at least through macros):
-
Can the system, upon pressing a button (or macro), make an attack roll, take into account the effects on the attacker and his target, and apply damage if successful? Preferably, using a relatively complex damage formula that takes into account the damage type and armor type, armor class and armor penetration (for example, even if it hits, armor penetration 3 will not damage armor class 4)?
-
Does the system support Automated Animations? Is it possible, given the presence of different firing modes (single, burst, full auto), to pass different attack names for different animations to Automated Animations? I assume yes, since most likely different firing modes will require different buttons for attack, but I still decided to clarify.
-
It seems that in CSB you can create effects, and assuming full "customization", which comes from the idea itself - these effects can affect stats. Is there support for Monk's Active Tile Triggers to issue these effects to characters?
- The calculation can be done without issues. The only issue you have at this point is, that players are not allowed to change the stats of other Actors they don't own. So the update must go through a GM. This restriction cannot be lifted by systems or modules, but there's a workaround if you utilize sockets: https://foundryvtt.wiki/en/development/api/sockets
- See it for yourself: #1037072885044477962 message
- I haven't used the module, but I'd say yes
API documentation for the Socket functionality available to packages.
Will a system made with CSB work in version 13 of foundry? or will i have to wait for an update?
You have to wait
ok, thank you, is there somewhere to keep track of when a v13 update will come out?
Not really tbf, but we release beta-versions when we're close to
Ok! keep it up
Thank you, this was very helpful! Now all that's left is to actually figure out how to set it up.
When using a button to automatically roll, is it possible for the button to use conditional statements to automatically apply modifiers?
i.e. if you have a checkbox for a +10 bonus applied, it will automatically add 10 to the roll
that and can it compare the result to a pre-existing value on the sheet to determine its success?
It must be defined in the Label Roll Message. But yeah, that's possible.
so I would just write the entire thing out in the message?
including all the if statements?
Awesome. TY
2 questions...regarding me looking at porting EABA over for anyone who may be familiar with the system....
1 - can foundry/CSB handle "declaring initiative" via user input? EABA you declare between 0 and an agility score for initiative.
2 - Can healthbars have dual color? The system uses lethal and non lethal hits in a checkbox format. I want to say 100% health it'd be green, take non lethal the green goes down but you have "grey health" but lethal would bring Grey health down and leave it empty. In system non-lethal is marked as "/" and lethal as 'X' and you overwrite non lethal first.
Sorry if any of that's confusing.
I'm trying to figure out why /sheetroll isn't working for a roll listed on my character sheet, I've tried to resolve it myself, but I fear I might be stupid. I'm trying to get it to roll 'Power' and I'm not sure what I'm doing wrong
My assumption is that I need to set Power as an attribute or something, but I'm not sure how
-
Foundry in General Uses a Formula which might or might not use Dice-Rolls. Meaning you could have a input field inside your charakter sheet, where players put a value thats used for initiative later. CSB does support max inputs based on set parameters like your Agility. So totally possible.
-
As far as I know, that is possible when using css with Java script. I am not really sure if you can solve this with just csb though. Maybe Martin can answer that in more detail. In programming easy, but not sure about csb.
-
That's possible with a bit of scripting.
-
That one is a bit more complex. The built-in resource bars of Foundry and CSB do not support that. So it depends on how much effort you want to put into it.
It must be a Label with a Label Roll Message. Everything else is not considered as a roll
Ty guys!
How could I set it up to roll from a player input on the character sheet?
That link helped, thank you
Hi, does anyone know how to make the rolls from a Label Roll Message display the same as a roll would in chat if you were to input the command there? I have the 2 messages back to back, and I'd prefer to have the sort that is on the bottom
Remove the ! At the start to get rid of the dice
Then add a line with the same values are the roll not in [] so it doesn't actually roll, preferably in its own div e.g.
<div class="rollExpress"> 1d8 </div> <div class="rollOutcome">${[1d8]}$</div>
Then use css to style those classes to match foundry
Ohhh gotcha, thanks!
And I can just throw the CSS in the dialogue box?
Or well, Label Roll Message?
Yes,
Instead of calling a class there use the style tag to code inline.
Classes are useable across labels though, and if you want that style you'll be using it each label.
${Critical_Success:='<td style="color:green;">Critical Success</td>'}$
can someone help me?
why does this not work?
i want a variable to be colored by html and am setting it like this
${Critical_Success:='<td style=\"color:green;\">Critical Success</td>'}$
ok now the calculation works but it seems it doesn't add any color
coloring the whole formula with html outside of a ${}$ formula delimiter does color it but seems very inflexible
I had the same issue. I cheated, I created variables with my html formatting outside the actual table. The result is more flexible.
But this makes a very long formula.
First part - asking the player to enter a modifier, setting all the variables and rolling a d100:
${#?{modifier:'Bonus/Malus'[number]|0}}$
${#Roll:=[1d100]}$
${#Skill:=item.CFI_CS_SkillValue+modifier}$
${#Failure:='<td style="color:orange">Failure</td>'}$
${#Fumble:='<td style="color:red">FUMBLE</td>'}$
${#Critical:='<td style="color:green">CRITICAL</td>'}$
${#Success:='<td style="color:blue">Success</td>'}$
${#SkillVE:=round(Skill2)}$
${#FumbleVE:=SkillVE > 100 ? 99 : 100}$
${#SkillE:=round(Skill1.5)}$
${#FumbleE:=SkillE > 100 ? 99 : 100}$
${#FumbleS:=Skill > 100 ? 99 : 100}$
${#SkillHa:=round(Skill0.66)}$
${#FumbleHa:=SkillHa > 100 ? 99 : 100}$
${#SkillF:=round(Skill0.5)}$
${#FumbleF:=SkillF > 100 ? 99 : 100}$
${#SkillHe:=round(Skill*0.2)}$
${#FumbleHe:=SkillHe > 100 ? 99 : 100}$
Second part - Displaying the result with a nice table :
Rolling ${!item.name}$ at ${!modifier>=0 ? '+' : ''}$${!modifier}$
<table>
<caption>Result</caption>
<thead>
<tr>
<th>Difficulty</th>
<th>Roll</th>
<th>Skill</th>
<th>Result</th>
</tr>
</thead>
<tr>
<th>Very Easy</th>
<th>${!Roll}$</th>
<th>${!SkillVE}$</th>
<th>
${!Roll <= round(SkillVE/10) ? Critical : Roll <= max(min(SkillVE, 95), 5) ? Success : Roll <= FumbleVE ? Failure : Fumble}$
</th>
</tr>
<tr>
<th>Easy</th>
<th>${!Roll}$</th>
<th>${!SkillE}$</th>
<th>
${!Roll <= round(SkillE/10) ? Critical : Roll <= max(min(SkillE, 95), 5) ? Success : Roll <= FumbleE ? Failure : Fumble}$
</th>
</tr>
<tr>
<th>Standard</th>
<th>${!Roll}$</th>
<th>${!Skill}$</th>
<th>
${!Roll <= Skill/10 ? Critical : Roll <= max(min(Skill, 95), 5) ? Success : Roll <= FumbleS ? Failure : Fumble}$
</th>
</tr>
<tr>
<th>Hard</th>
<th>${!Roll}$</th>
<th>${!SkillHa}$</th>
<th>
${!Roll <= round(SkillHa/10) ? Critical : Roll <= max(min(SkillHa, 95), 5) ? Success : Roll <= FumbleHa ? Failure : Fumble}$
</th>
</tr>
<tr>
<th>Formidable</th>
<th>${!Roll}$</th>
<th>${!SkillF}$</th>
<th>
${!Roll <= round(SkillF/10) ? Critical : Roll <= max(min(SkillF, 95), 5) ? Success : Roll <= FumbleF ? Failure : Fumble}$
</th>
</tr>
<tr>
<th>Herculean</th>
<th>${!Roll}$</th>
<th>${!SkillHe}$</th>
<th>
${!Roll <= round(SkillHe/10) ? Critical : Roll <= max(min(SkillHe, 95), 5) ? Success : Roll <= FumbleHe ? Failure : Fumble}$
</th>
</tr>
</table>
thank you very much
Hope you can adapt it to your needs.
๐
Any chance you have a guide, I would be interested in doing the same.
Hey all,
Does anyone know if there is any plan for a V13 update?
Thx
can't you use a roll formula and reference the text of the card to do this?
Reference the text of the card inside of the roll formula? I would need a component key no?
Heyyy~ Got it working, wanted to give my thanks by posting my solution!! :D Following this logic it was everything i needed to connect variables from my label to my macro.. I'll post some personal things that might help others that might have had the same issue. Its basic stuff, but who knows it might help someone?
%{
return await (await fromUuid('Compendium.world.macros.Macro.KQACm2khWDuEWzks')).execute({
entity: entity.entity,
Strength: ${str_text}$,
Modifier: ${strm_text}$,
LABLE: "Strength",
});
}%
IMPORTANT its the actor, dont do entity.entity.actor, entity.entity is already the actor data,
LABLE is just a string that appears at the end of the macro, shows what the roll is for. Ex, a skill check or a weapon roll..its for later applications!
Variables Strength, Modifier, and Label, can be referenced directly in a macro once connected. EX ' const fixedSuccesses = Modifier; '
Make sure that the code is wrapped properly, otherwise, wont work.
Discord did some weird formatting stuff
You can use the code marks in discord to avoid that.
I don't know if it matters, but I have a lot more actors lately that take multiple loops to compute?
can we upgrae to v13 foundry and still have csb work
No
Linked posted about the milestones yesterday, its moving along but its not there yet.
I mean, I didn't test it really, so you can try by editing the system.json file in your system folder, and setting the max version to 13
But I don't know if it's going to work, and I won't be able to help should any issue arise ๐
The end of the beta ?
**Beta version 4.5.0-rc3 is now available, with the following change from 4.5.0-rc2 (#1037072885044477962 message) : **
Fixes
- [#454] Fixed Active Effect formula resolving by adding all relevant properties to the scope (see documentation)
- Added default icon to new Active Effects
Please refer to the Beta Wiki for instructions on new features : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/beta/home
FYI, Manifest URL for the beta version is https://gitlab.com/api/v4/projects/31995966/jobs/artifacts/beta/raw/out/system.json?job=build-beta
If you want to switch an existing world to the beta version, you can follow this guide : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/Guides/Switch-to-Beta
If you encounter any issues with the beta version, please open issues on gitlab and specify you are using the Beta in the issue title !
https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new
And, even though I relinked it just above, I'll relink it there, because... it seems like the place : v13 is coming, here is the Roadmap up to it !
https://gitlab.com/custom-system-builder/custom-system-builder/-/blob/develop/ROADMAP.md?ref_type=heads
Enjoy !
Thanks link!
Thank you @brittle moth for mentioning that v13 is coming.
Hi, can someone help me with item containers? I am trying to make so that they just stay at the container that i put them on (right now they go to every container that they can possible show to) ((Context: Trying to make a system that has talents for every level))
Think of it as theres only one container for the actor and the item displayer components are filters to choose whats shown where on the sheet.
Thks guys
So that means there is no way to do it in a simple way?
I guess a can make a container to put all features that they gain, and make them put the level that they obtained (so that i could filter it after)
To target a number field key in an Item from a module (griddy in this case), how does that look like?
Stuff like item.key or attribute.key, or @props.key
I currently have it as item.system.props.Quantity and it doesn't work. (Quantity is the key)
What is the entry point of the module? token, actor/item, system?
It's looking to establish what the quantity value of an item is so it can stack it in the inventory
Also, maybe the problem is that I don't know how to stack items in CSB in general, now that I think about it?
Like, every time I drag the same item onto a player's sheet, or they pick it up, it creates a new iteration of that item in the inventory rather than stacking it
That's not the answer to the question. I'll give an example:
Imagine you are navigating through a file explorer with folders. You want to target a specifc file in a specific folder. You are not allowed to use absolute paths, you have to use relative paths. How do you do that? You have to know, where you're currently looking at in the directory and start navigating from there.
Thank you for the example.
I think actor, in that case? Since that is what the Griddy inventory is attached to. Then it sees the quantity value in the item once it is in that actor's inventory.
Then you have to start with system, because that is what comes right after actor
system.props.Quantity, then? I'll try!
Was working so I took a minute
So
This didn't work, what if the entry point is the item, then?
is it just item.system.props.key?
That one doesn't work either though.
I'll try some more
No luck
Where in the System data quantity is stored. (the double clicking thing, and ctrl thing doesn't work sadly)
So I guess that means the entry point is System?
You can use If statements in CSB?
I mean, not in formulas, right?
Yeah
You can at least check if something is true or not
Might be I'm talking about formulas, but it's how I'm checking if a player is trained in a skill that requires training to roll without penalty
the chat message dispensed by the roll button checks if a checkbox is true or not and rolls differently based on that
Ah, yes. Alright, I do use that. Sorry I can't answer your question though, as I'm so bad at JS I don't even really know for sure what 'nest' means.
bad at programming in general
Oh, that's just general programming lingo
yup
To "nest" a statement means to put a check inside a check
(pseudocode for ease of explaination)
if trained = true:
roll without penalty
if + 10 = true:
roll with +10 bonus
roll with penalty
Checks for one, if one is true, it checks for the next thing
Try out system.props.Quantity or props.Quantity
if the first thing isn't true, it won't check for the other
You basically use the ternary operator like in JS
Tried that before, tried again in case I'm remembered wrong. No dice. Griddy must be incompatible with CSB as is.
How do you simply stack items in CSB? like, no griddy involved
Is it possible?
You increase a counter in a number field. That's it. New Item is new item
And you can only alter that from within the item, not the item display in the sheet, right? Unless you make a button to alter the item's values.
Correct
Alright, that must be why then. Thank you Martin!
I'm trying to automate character creation and I wanted to see if I can add Race/Class to an item container. Is there any way to reference the values within an item container outside of the actual item container?
lookup()?
I've used lookup before for dynamic tables but I'm not 100% how to get data out of an item.
For example i have an item container called "race". Inside it I have the item "Wookie" added to it. Inside the item Wookie I have the stats and I'm trying to target "Int" which should give me a value of 16.
I know inside I can just do item.Int and it would give it to me but I'm trying to target it outside of the item container. I'm trying the lookup() command and I'm not really getting anything
The lookup only works if the data is actually in an Item Displayer. If it's in an Item exclusivly, then you can use a combination of lookup() and fetchFromUuid(). Every Item Displayer has a UUID-column for for every Item.
Anyone know a quick way to set up an inventory tab with CSB?
Hey! just wanted to ask if we could get an extra setting under sheet display for Minimum Width & Height, so that you can allow resizing of a sheet, but not beyond a certain minimum (to prevent it getting messy) :)
and another small request - icons in Tabbed Panel headers would be awesome :D
Is there a way to make a certain component key universal? So that every formula can identify and use it across templates, even if not in close proximity of it?
Just set up an item displayer that filters by the items that you want to be visable. That's the bare minimum.
if you want it to be a tab as you indicated, use a tabbed pannel to set up the different options you want to tab through, including inventory, and set your item displayer inside the inventory tab
Is there a specific feature you meant to ask about instead?
Hi friend, you can already manage that with CSS ๐ you can use full responsive design in fact.
However I didn't want to account for every possible monitor, especially given one of my players for sure plays on a literal widescreen TV, so I used CSS to lock the width and height to specific values.
And you can manage this as well, either with css content, OR within the tabbed pannel label name used the HTML link from font awesome. EX
<i class="fa-solid fa-skull"></i>
will place a skull icon as your tabbed pannel name
you can still add text before or after it
Not sure of your usecase or why
but if you had a constant variable, you could use javascript in a 'world script' and call for that using %{ }%.
Honestly, I don't know a lick of coding, so I don't know what a world script is
I've been fumbling my way through this system and somehow been working things out haha
dont blame you, i'm only just starting to learn JS, everything I've done is brute force lol.
world scripts are like modules, but contained within the world specifically... basically a global macro lol
dont ask me how to make one ๐คฃ couldnt tell you, i'm just confident that's the correct answer as well... assigning a constant variable so that it's accessable from anywhere in the world, then calling it using JS since it's out of CSB scope
but can i ask, why? there may be a better workflow if i understood what you're doing
I have something called a Base Attack Bonus, which is determined by certain stats and would be identified in the character sheet. It's added to damage rolls, but rolling damage is in the actual item itself and not on the character sheet, so adding the Base Attack Bonus doesn't work since it isn't identified in the item.
So I was thinking that if there was a way to attach a component key to the identified number of the Base Attack Bonus (and make it universally identified), then I could just add the variable to the formula of each item and make the number be added automatically.
so let me get this right, you're attack bonus is located on the charactersheet, but the weapon attack is in the item...
so you need to access the parent actor's bonus within the item?
Yeah, it's like this. In an ideal world, the button at the bottom would roll the damage with the ATK bonus, but I don't believe the formula would be able to identify a variable outside of the template, unless I'm wrong.
i mean.. the item is always inside the actor's character sheet right?
I mean... I guess? Outside of just being in the item list.
${fetchFromActor('attached', 'baseAttackBonus')}$?
THAT'S A FORMULA???
if it's not attached, then you can also use 'targeted' or 'selected' but that can be a bit of a pain
What indicates that something is attached? The inventory is built with Item Displayers
it's attached if it's inside the charactersheet
targeted would be like im using my sword ON you
same with selected really, as far as i understand one just uses foundryvvt targeting one is just left clicking
so my sword is attached to me, but targets or selects you
there's also
fetchFromUUID, if you're always using it to target something specific.
havent found a usecase for that yet, but i'm sure it'll eventually come up.
item that can weaken a specific boss maybe?
There are plenty of actions that I'm fine with doing manually, I just thought my players would get frustrated with adding their ATK bonus to their damage rolls for every attack they did.
This is what my current formula looks like, really basic.
How would fetching the variable work in this case?
For the sake of the hypothetical, the ATK bonus number can just be identified as ATK_Bonus
btw, fetchFromActor('attached'...
is being replaced with fetchFromParent(...)
just a heads up
In an update, or just in the actual formula?
i think both options are valid now, but the actor attached one will stop working in the next few updates
i mean... is the +100 your attack bonus?
also 1d120?
120 sided dice? ๐คฃ
The ATK bonus would be in their character sheet, determined by their stats
Yeah, this game system has some pretty big numbers lol
any reason you're saving roll as a variable?
${roll:=...
means you can call
${roll}$
to get that value later in the same label roll message
no clue, i just stole the formula from one of the example templates
when i said i have no coding experience, i mean absolutely NONE haha
Lol. fair enough, if you dont need to call it later dont save it.
${[1d20]+fetchFromParent('attackbonus')}$
should work
just replace attackbonus with the component key of whatever
Alright, I'll give it a shot
I appreciate the help!
But, quick question: The parent in this case is already identified as the character sheet, right? Since the item is attached to it?
yep
the parent of the sword is the one who weilds it ๐
else they be selected or targeted
if i drop it, it's parentless ๐ฑ
Poor orphan sword ๐ญ
don't feel bad, it deserves it.
The blacksmith didn't hammer all the kinks out tbh, it realllly likes feet.
I've made a random roll table of items (events) that can occur as a result of doing a downtime activity to progress your background level...
I made a button that rolls that table from within the background's item...
Is there a way I can get the event that occured and add it as a subitem to the item that rolled within the actor?
practical example using 5e terms,
I have the clan crafter background flavored as a smith, i spend a week in town and decide to do a downtime action to try and make some extra coin, so I roll on a custom table of possible outcomes (since i'm not just specifically trying to make an item), and lets say the event I get is 'learned a new technique' and grants 5xp...
In CSB terms, I want the 'learning' event to be added to my clan crafter background boosting that background's (item's) XP...
I have the items setup but... ๐ค cant figure out how place the event inside the background
So each Event would be a new Item added on the Background ? Or are you ok with directely changing stat on the Bacround ?
You could use rolltable. Make 1 per background. Since rolltable can containe Items you can then drag the result directly either on the Background or directely on the Actor.
well some events are non repeatable, so i think having them as unique items would be best, plus i dont want to hard code them for scalability...
some of the events will directly modify the character... so the smith may gain +5 strength,
which would, i suppose, be a hidden attribute in the smith background.
yeah, i COULD drag them, but since they're a subitem that means opening the right character sheet, and then finding the right background in them (all characters will technically have all backgrounds in their sheet even if not activated)...
I was rather hoping to avoid that haha... auto import the result to the item that rolled it basically
already plan to have... 4 tables per background ๐ actually
Depending o the number of Event they could alrwady be on the Background but hidden and a roll activate 1 or the other.
tbf each one gets smaller as you go...
tier 0, 1, 2, and 3 events.
0 is the largest, but as you level up new options get to be avaiable with a weighted backslide...
tier 2 smith event may be 60% to roll on tier 1... etc
40% to actually get a tier 2 specifc result
maybe only 5-10 'items' lol
the item format also means i can re-use them in different backgrounds ... the 'get mugged' event may be universal as an example
(It has nothing to do with the technical side, but this sounds very fun ! )
thanks, the initial tables i ran on paper were over 100 items ๐
per level 0 table i mean
some odd 24 backgrounds
๐ yhea I see why you want to be able to re-use Items !
it's all good, i just can take the original tables and convert them to jsons and import to foundry ^^
thankfully outside of character creation they're not used terribly often, and 90% of them are extremely simple...
+5 gold, +1 strength, -1 reputation tier with X npc
Ok so from what I read most of the modifications are done to the character directly.
The +1 strength can be handle withban Item Modifer, but I am not sure the the +5 gold should... because it simply adding some gold and not really a modification that comes from an Item...
Maybe you should make a difference between your repeatable event and your unique ones ?
You might be able to roll a dice then add a switchCase on the resultut of the dice to then execute the right entry from an other table ? ๐ค
i figured that'd be handled by marking non-repeatable items as unique which should just throw an error if it tries to be added again, no?
as for gold, which i agree to an extent, since you can't have multiple input fields for numberfields that all reference eachother, it would be kind of difficult to not have it automated, else you'd have to remember how much gold you've earned during character creation then manually add it... Unless i created a second 'label' that modifies and you can manually enter that value starting into your gold input
I did consider the switch-case, but that leaves no scalability (adding more events later) and cross-background events such as getting mugged lol.
Set PopertyInEntity can modify inputfield, iirc
Only item modifiers can only change label
You have a bit of scalability, if your event are in a table you can use count(lookup()) and use the result as your die.
Something like [1d:count(lookup(table)):]
i guess i could add all items that can occur as an event per each background even before the occur, then use a checkbox as a toggle to indicate whether or not the event has happened and if the stats should be added
this also allows for the use of css to grey out the ones you havent gotten, or even simply changing their names to ???...
use a random roll button and switchcase to manually change which one is 'toggled on'
This works too. I I haven't looked too much into them but Conditional Modifiers might help you for this case.
yeah i've used them a few times.
i just havent done it on such a large scale
the switchcase will also be.. funky... to implement
manually coding it to change the item.Occured for each outcome... ๐
Oh, true, I forgot about that...
then the tier functionality of
'is this a tier 1 event, then roll again'
Oh nut you can get rid of the switch case actually
Simply add a hidden column that is the number of the event, then when your roll your die. Get the number and lookup on your table filtering by this number.
Ah... crap... i just realized a flaw in my system ๐ ... multi-backgrounds of the same category...
clan crafter smith and clan crafter tailor....
i need to sort that ๐คฃ
๐ค could just use sameRowIndex for that
TIL SameRowIndex exists..... ๐
Well abviously ... I was just testing you to see if you could catch it ! ๐
๐
(Now there is bunch of stuff I need to go re-write... unrelated...)
ah that would make the column, it's not a default property tho
anyway
roll 1d100
setPropertyInEntity(find('eventsTable1', 'item.eventOccur', 'index', ==, 'roll)', 1)
that should work
Yeah, I think it should ! The nice thing is that since the table is the same for each background, you can even have event that unlock new row in the table for progression by toggeling the visibility
yeah i was just considering tabbed pannels!
in fact... that may be how I handle multi-backgrounds...
though it's not like a dynamic table where i can just... do the thing. ๐คฃ
Yes tabbed panels for the multi background sounds good ! Might depends on the number a character can get but if it's 1, 2 or even 3 it sounds reasonable
well, i use unranked, bronze, silver, and gold, as distinctions of progression to simplify things.
If the players aim was to hit gold, it'd take in game years, so hitting more than 2 would be astounding
and 2 within different categories is no problem, i just never considered someone doing 2 trades for example, smith and leather worker for example... could make saddles.
2 golds = 1 gold saddlemaker but...
implementing that into the pannels will be... interesting. ๐คฃ
if someone wanted 3 bronze ๐ค or 5 unranked for some weird reason... idk how to account for it
no accounting for the 'my character is a polymath!'
That's were you put limitations in the rules ^^" no more than X backgrounds because it takes to much time to learn and practice !
duplicating the 'background' would be the easiest solution and just renaming it on a per character sheet basis until it hit the point you could merge them into one and rename one and delete the other boosting the XP....
Or you could have a specific background that is "polymath"
With different stuff from other backgrounds.
well, i have 24 backgrounds for a reason
they're categories
i expect players to pick 1-2 they really want to hammer in on, but they're all displayed
I have to go. I really hope you can find a way to implement all of this! Please show your result on this channel when you manage to do it. I am curious to see what the end result will look like !
Putting it in the Tab name does not work, at least in 4.5.0-rc3. How would i place this in via CSS?
i mean the visuals are set up unless i need to change something for the multi-background system >...<
once i get these new items added to show teir 2 backgrounds (with a few locked for variety) i'll send a screenshot
sorry, i was thinking panel titles, i went back and found the last time i (thought) i answered that question.
quickly tested and it did not work with tabbed panels for some reason... im sure we could force it.
but anyway, css you should be able to use the content: tag
The content CSS property replaces content with a generated value. It can be used to define what is rendered inside an element or pseudo-element. For elements, the content property specifies whether the element renders normally (normal or none) or is replaced with an image (and associated "alt" text). For pseudo-elements and margin boxes, content...
don't meet prerequisits: grey & locked.
unlocked but lvl 0 = grey, but name is shown
untrained but have experience= no border but color.
bronze tier = bronze border, and so on.
im still in the works of redoing it to make it function with item containers rather than panels ๐คฃ
but that's the final 'look', again barring any changes due to repeat offenders
Ok, that looks amazing !
this is the last step of the character creator and once it's done, my entire sheet is 'done'.
digging through this - not finding a neat way to call the fontawesome classes onto this, as you can't dynamically insert new classes in via CSS and the panel headers do not have an "extra CSS classes" box.
This is insanely cool. Your players are incredibly lucky ! You are putting the WORK in that sheet ! ๐
thanks!
once im done building it in CSB i plan to recode it in JS (still learning and boy that's a nightmare) as a standalone system for distribution and download
ahhhhhhhhhhhhhhhhhhhhhhhhhhhhh, clever!
I have the same long term plan for my system. Make in in CSB for testing and then try to dive in and make a standalone system.
heeeelllll yeah ๐
best of luck to you!
got a video uploaded of my character sheet V2, very proud of this! Just gonna add in those icons now :)
ignore the choppyness when things update, thats just the lighting effects causing problems lol
im using csb for a proof of concept and playtest arena since everything is easily modular and modifyable before i hardcode..
running into thinkings like 'multiclassing' backgrounds just now is gonna save me pain later.
i'd say the CSB version will be done in the next 3 months or so (especially since i stoped over styling everything, and am focusing on pure production)
you can see the less-style focus pretty dramatically ๐คฃ but i need to get to playtesting before commiting things to hard code
hell yeah dude, looking good
While CSB rocks for prototyping i have a deep loathing of JS, so for now, I'm sticking with a CSB solution lol
i would too, if i didnt have plans for others to download and use my system lol
honestly, if i publish, I'm just gonna upload the world file lol
fair 'nuff ๐คฃ
idk what licensing issues that'll have lol
but i also plan for non tech users who just want to get into a game
downloading csb, uploading templates... ๐
if im not including copyrighted media and its a free download, none afaik
there in be the rub eh
no copyright materials, no plans to sell anything, etc etc
providing a world with preloaded sheets and a compendium of items with default icons is easy enough
and just, chuck it as a free download irrespective of owning the game
I'm struggling to work out how to import a CSB template into my CSB game hosted on the Forge - help!
Can you upload files to Forge?
Martin, maybe this isn't the way to do it i want to use the 'setPropertyInEntity' function to change a value of a subitem
Any suggestions? ๐
I think setValues() would suit better. You only need to grab the right UUID
is it possible to do with the item name? i'm working with a item displayer currently
${roll:=[1d${max(lookup('eventDisplayer0', 'indexVal'))}$]}$
${setPropertyInEntity('self', '${find('eventDispalyer0', 'item.name', 'sameRow('indexVal')', ${roll}$', '==')}$', 1)}$
roll a dice based on the # of items,
get the value on that line...
wait uuid is a call within item displayers natively, right?
Every Item Displayer contains a UUID-column, so you could do a find() with the name
set values works, but samerow does not work within it.
<br>
${setValues(find('eventDisplayer0', 'uuid', 'indexVal', roll, '=='), 'Occured', 'true')}$```
๐ this is the working version.
Thanks!
Thanks link!
Not sure if you knew about it yet btw, but item dispalyer sorting does not work ๐ฆ
**Beta version 4.5.0-rc4 is now available, with the following change from 4.5.0-r3 (#1037072885044477962 message) : **
Fixes
- Fixed active effect creation error
Please refer to the Beta Wiki for instructions on new features : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/beta/home
FYI, Manifest URL for the beta version is https://gitlab.com/api/v4/projects/31995966/jobs/artifacts/beta/raw/out/system.json?job=build-beta
If you want to switch an existing world to the beta version, you can follow this guide : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/Guides/Switch-to-Beta
If you encounter any issues with the beta version, please open issues on gitlab and specify you are using the Beta in the issue title !
https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new
Reminder : v13 is coming, here is the Roadmap up to it !
https://gitlab.com/custom-system-builder/custom-system-builder/-/blob/develop/ROADMAP.md?ref_type=heads
Enjoy !
? It should work fine, I use it frequently
What is your issue ?
it just doesn't sort?
despite having the background key set as the sorted value, it only displayes based on when the item was added
\
'brawler' should be 2nd, according to its key.
ccBackgroundKey is a column based on ${item.BackgroundKey}$ and does populate the correct number when not hidden, unhiding the column does not allow sorting
and a new item displayer setup the same way without the css changes does not sort either
it's possible i'm doing something wrong if it works on your end but ๐ฉ if that's the case i cant find it
unhidden screenshot:
Indeed, I don't use auto sorting. I'll look into it
thank you!
After a quick test, it does sort but uses item keys rather than column keys
So it should sort using "BackgroundKey" rather than "ccBackgroundKey"
It's not correct, so I will fix this, but if you want a quick temp fix
Is there a way to figure out what is causing the "Some props were not computed" message in the inspector?
It's going through these every single time a change is made and it's slowing down the world
Check the scope-object below
I'm either blind or Idk what that means. I don't see scope-object
There's usually an object called scope which contains all properties
Btw, how come that you have a property called armorInventory.ac? We don't have a Component, which would have such a structure.
I actually don't know. I'm trying to figure it out but I haven't named anything with that name that I'm aware of.
Has anyone figured out how to get a parent's UUID from a label in an item?
I want to get the UUID of the actor holding an item from the item, so i can pass it down to a subitem using fetchFromParent.
fetchFromParent("uuid", {top: true})? If I understand correctly, that the entity chain is Item => Item => Actor
fetchFromParent('uuid') was throwing an error, but didnt have anything in console to help me debug, so i didnt assume that was valid
does top: true, make it where i can place that directly in the subitem to get the main actor UUID?
uuid is a standard property beginning from v 4.5
Yeah, top always makes it fetch from the actor
Which version are you on?
console reads: Custom System Builder | Some props were not computed.
4.4.2
last stable build
uuid is standard beginning from 4.5
... crap ๐ so beta only?
Create a hidden prop uuid: %{return entity.entity.uuid;}%
that outputs the parent item as well, not just the actor, no?
i'm planning to use the resulting uuid in formulas to adjust stats of the parent actor from the sub-subitem ๐คฃ
Inside the Actor
You want the UUID of the Actor, so you have to create the prop there
havent used a hidden prop yet...
Can i call them like component keys?
so within item 1, pUUID = fetchFromParent('uuid')
then in item 2 fetchFromParent('pUUID')
Is Item 1 the child of Item 2, which is the child of the Actor?
Then skip Item 1
Don't manipulate UUIDs. They only work as a whole
yeah i saw on the wiki your examples included the actor prefix as well
They are unique for every Document. There are no duplicates
^^ had to double chekc real quick
right,
I wanted events to impact the actor they're parent item is contained within, and since they'll all be in every actor -- this seemed to be the way
helps me avoid massive switchboards too
hmm...
${fetchFromUuid('${actorUUID}$', "lookupRef('attributeTable', 'attributeBaseBonuses', 'attributeName', 'Physical')")}$
as a modifier isn't adding anything to the user's physical score
nor are there any errors to help me out here.
removing the ${ }$ around actorUUID results in
This is the formula of the modifier key?
This will modify the value of the direct parent of that entity
even though we're using the UUID to bypass the middle item?
Yes
... crap.
Resolve the formula and you'll understand why that can't work (maybe)
am i stuck building a series of modifiers in the middle item that reference the subitems?
like put it in a label?
Yep
yes, i'm stuck making a bunch of references in the middle item?
or yes, put it in a label ๐คฃ
Hello, I have a question:
From what I understand, there will come a time when item modifications will be removed and replaced with active effects, right? My question is: how would an active effect allocated to an item modify an actor? Because today, I simply make the actor modifications within the item modifiers, correct? A practical example: let's say I have an item that increases a character's HP by 10%. I would create an active effect within an item, but how would I modify the actor/character?
The same way that you are using Item Modifiers. You place the Active Effect on the Item. Active Effect have a section to add changes that works like Item modifiers used to. You specify the key to be changed, the operator and you can input a formula for the value you want to change it by.
By default, formulas from the Active Effect have access to the Item they are on. To acces the properties of the Actor they will be transferred to you need to prefix with target.
So for your example this would look like this
Key : hp_max
Operator : +
Formula : ${ floor(target.hp_max /10)}$
So you're saying that if I have an HP_max key both on my item and on my actor, and the Active Effect is attached to the item (not the actor), then when I specify the HP_max key in the Active Effect settings, the effect will modify the actorโs key and not the itemโs โ is that correct?
Sorry for insisting, but I really need to understand this concept clearly in order to make the right changes!
Can you make a rollable label that has a text field?
To use D&D 5e terminology, a skill you could rename?
I'm probably missunderstanding. A player can change the values of an item in his character sheet.
You just need to click on the item's name.
I'm using it for language skills, it allows to add the actual language name and not having to create 1 item per language.
Same with dynamic tables, players can change values that are not labels'
And you can have a label roll that displays an item/skill name.
In an item displayer, ${item.name}$ will give you the name.
You know how a label can be given a chat command to roll? I just want that but the player can rename it. Not necessarily change anything else about it
Yes, that's it !
The Actor will inherit the Effect from the Item.
Well, actually it's a setting on the Active Effect that is called "Apply Effect to Parent". (Just a checkbox)
You probably need a separate text input and then as the label text you put in the value of the text input.
Im trying to translate a niche system into foundry and just wanted to know if the switchCase function can accept a range of values? and if so what the formatting is
A stat scales at certain levels and i dont want to have to write a case for every level
It does not
Is there a better way to incorporate that kind of scaling or will i have to manually input the number for each level
Either a Dynamic Table and you use lookupRange() or a classic nested ternary operator
Im trying to set up item modifiers so that when it is equipped it raises a stat by a certain amount
But im struggling to figure out how i can get it to properly update the sheet
As soon as an item using that template is added to the sheet, the ATK key is NaN
Because ATKBNS is not a number
You should put that into a formula ${}$, otherwise it's just plain text
Then how would i make it so the amount of dice rolled depends on a certain stat for an item
Like if youre level 1 using it, roll 1 die, level 2, 2 die, etc
IK you have to use the fetchFromActor but when using that in a roll format it doesnt work on its own
current formula
Nevermind if figured it out
Forgot the : : around the x and some formatting issues
CALL TO ACTION! please vote for feature so one of best modules for foundry work with SCB https://theripper93.canny.io/feature-requests/p/system-agnostic-carousel-combat-tracker
Anyone know where to put the css file? I used the module but I'm having trouble targeting the item box background. I'm able to modify it in the inspector but I'm hitting my head againts the wall
Just realized that my favor/hinder dice are not adding to my d20 rolls. Currently this is the code I have.
<section class='secret'> ${!mod:=[:dice_Mod:d6]}$ </section> rolls for Crafting <br> ${#craftVal:= [1d20] + mod}$ ${craftVal >= craftDC ? 'Pass' : 'Fail...' }$ ${!craftVal - mod == 20 ? 'CRIT!' : '' }$
it is showing the D20 roll but not the d6 so I am thining about recoding it to show both dice numbers. ๐ค
I think the ! Before mod makes it not show the roll? Something like that
I have a feeling something is coming...
Effects are here !
**Version 4.5.0 is now generally available, with the following changes : **
Known issues
- Some russian translations are missing, they will be added very quickly !
- Active Effects are applied after every computation is made. Therefore, Formulas using values modified by an active effect will not have the active effect modifications on computation.
Deprecation
- Deprecated Item modifiers and Status Effect modifiers in favour of Active Effects, to be removed in CSB 6.0.0 - Foundry 14
Features
- Added possibility to use formulas in the classes-field of every Component (conditional formatting)
- Added
img,uuidandidto the standard-properties of every entity - Added variable
thisfor self-references - Added russian translation (thanks to ะััะผะฐะฝะธะฝ ะัะธะฝ (Drumanin Drin))
- [#446] Added indentation and removed Template History for Template Exports
- Added progress bar for Template reloads
- Added more Template reload options (e.g. Tokens in Scenes)
- Added a checkbox to activate / deactivate Active Effects from a Character Sheet
- Added Custom Active Effects feature (Documentation : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/stable/en/Guides/Active-Effects):
- Added buttons on active effects to manage a predefined list of Active Effects
- Added a Dropdown in the Active Effect Container to optionally select a predefined Active Effect to add
- Added full integration of now-recommended module DFreds Convenient Effects
- Added full integration of now-recommended module Status Counter
- Items can now be modified by an Active Effect
- Added Active, Origin and Description columns to Active Effect Container
- Added Status Effect Customization
- Added button to open Documentation in Settings Tab
Fixes
- Fixed an issue with sub templates and user input template not saving correctly
- Changed requirements for module
Chat Commander, making it optional - [#439] Fixed Rich Text Area left alignment
- [#448] Fixed Number Field wrongly triggering relative modification when its value is a negative number
- Fixed an issue with Item Displayer auto-sorting not using column keys to sort items. Both column key and item key work when Auto-sorting
If you encounter any issue with this new version, please post an issue on Gitlab : https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new
Enjoy !
This link -> Page does not exist
Fixed, thank you for the heads-up ๐
Played around with Active Effects and noticed a strange behaviour: Please see the screenshot: I added +1 to a skill "Ausweichen Mod" with an item modifier and afterwards with an effect. The I calculate the Sum of Base Value of this Skill (11) + Bonus Value (12) + Mod (1).
In the first screenshot it adds up correctly to 24. The mod (1) comes from an item modifier. Second screen shows the same with an active effects. The +1 Mod is shown correctly but ignored when i add all values to a sum. Its 23 instead of 24
Refreshing the sheet doesnt change anything
This is the formula of the Sum-Value
What is even more strange:
I have a second label that just references this Sum Label, in the upper right corner of the next Screenshot. This one is just ${AUSWEICHEN _sum}$
I added a new label just below and copied the Formula from the AUSWEICHEN_sum label instead of just referencing it, and now it shows the correct number (24)
Another question: Any idea why colored icons in status effects are not shown correctly in the upper left corner of the token?
Oh. Erm. Yeah. I may have forgotten some basic things...
Can you send me a capture of your Active Effect configuration so that I can confirm it ?
But yeah, this seems like an issue on the feature...
The icon show on the token is the icon of the Linked Active Effect, if there is one. This looks like the default Active Effect Icon, if you change this Icon it should update on the token as well
You mean this?
Yeah
Well that seals it... It's my fault
Active effects are currently applied after everything is computed. So they cannot trigger cascade effects, i.e. their modifications are not taken into account in next computation.
In your case, the sum is computed before the active effect is applied to the mod, so the sum does not have the effect change...
I'll fix this ๐
Hello there!
I'm having trouble finding the csb in foundry 13 345 in the install system menu.
Hello ๐
CSB is not yet compatible with Foundry v13.
The roadmap up to v13 can be found here : https://gitlab.com/custom-system-builder/custom-system-builder/-/blob/develop/ROADMAP.md?ref_type=heads
I was about to ask the same question. Any guess as to how soon it will be available for v13?
as of last i heard, there are some API overhaul and bacloged changes that are priority over v13 capatability.
Personally, I'm anticipating a 1 more major update to v12 before v13 support begins. I'd anticipate 6 months to a year.
Though, that's my guess and based on nothing but my own hallucinations
I am using the following formula which is working fine:
${#?#{MeleeMod}}$
${#Roll:=[1d20]}$
${#Modifier:=meleebonus-meleepenalty}$
${#Attack:=item.weaponattack+totaloffense}$
${Roll+Attack+Modifier}$
${#Total:=Roll+Attack+Modifier}$
${#Defense:=fetchFromActor('target',"npcdefense")}$
${#Result:=Defense>Total ? 'Miss' : 'Hit'}$
${Result}$
However, I would like to add one more feature that runs this formula is item.weaponequip is checked off, and if not just outputs 'Your weapon is not equipped'
I have taken a couple of stabs at this on my own with no success. Any help from the collective brain trust here is appreciated.
Hello, after the update, some formulas stopped working. I'm trying to understand why, but I haven't been able to figure it out. Can someone help me understand, for example, this error?
Note: The dynamic table is in the item, and both the table key and the fields are written exactly as shown in the formula. In fact, it was working before the update.
Is there anything in the console?
Take a look at the scope-Object in the warning and show the values of the Dynamic Table.
This?
Add == as the 5th argument of find(). The value in the filter column and value you filter by are of different types (number vs. string).
I used == as the 5th argument, and it still didnโt work.
As for the text vs. numeric issueโwhat should I do then, should I put the string formula inside escolherlista?
Thanks this is what I came to check.
Hey, quick question, maybe I've missed it but did you change the Readme on the Gitlab page? It used to be my go-to source for looking up all the components and commands and now everything is gone
You're right it changed, the documentation is now available in the wiki ๐
https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/stable/en/Home
thanks for the reply! is there a place where everything is on one site like it was before? because searching was very easy
No, it was split in smaller articles to make linking easier :/
understandable, keep up the good work
is there anywa to hide the label messages similar to ${#formula}$. I've been trying to do something similar to that but I'm struggling a bit. my formule is ${#pct:=lookup('atributos','porcentagem','atributo','forca')}$
${pct}$
Fixes ๐
**Version 4.5.1 is now generally available, with the following changes : **
Fixes
- Fixed Active Effect computation order
- Fixed Active Effect application when key formula targets multiple fields (using lookupRef or array function)
- Fixed Active Effect key computation not using the right trigger entity
- Added Modifiers to Active Effects conversion
- Added missing RU translations
If you encounter any issue with this new version, please post an issue on Gitlab : https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new
Enjoy !
Hey, I'm trying to do something I feel like should be pretty simple, but I don't know where to find the answer. I'm trying to make it so that when I enter a value in a sheet's number field, then a different number field also automatically updated to that number.
The closest thing I can do right now regarding that second field, is "set minimum/maximum" with regards to whatever value is entered in the first field, but that still requires you entering the 'wrong' number in that second field before it updates to the correct value.
I added an image for an example: When I enter a number for Population Total, the number for Food Assigned should automatically become that same number.
Number fields are for input, if the food assignment is always calculated, then it should be a label instead of a number field.
Right, makes sense! But then what should the label say? The population total key is pop_total.
${pop_total}$ if they're always equal.
That worked, thanks! Still getting the hang of the syntax (like when colons : are used. Apparently not this time.)
They're only used when youre trying to call a key inside a roll.
Ah okay, that checks out then. Thanks again!
Hey all! Noob here. I am trying to use Items to add some bonuses. But when I drag it into the inventory i am getting error from screenshot #1.
I am trying to add 1 to stat modifier screenshot #2. This Stat is controlling Dice Roll screenshot #3 by looking though the dynamic table in screenshot #4.
What is confusing me is that Item do add to those Modifiers but then the formula for calculating other stats and rolls get broken like Item is added on top of everything and then it cant look at the table to return the proper reference.
Does anyone know how to fix this?
Hi guys. I'm trying to reference a field on an item in my "Inventory_Equipped" Item Displayer. I want to grab a field on the item that is not in the Item Displayer. Item Displayer has the equipped label from the Wiki and filtering on this just isn't doing anything. Swapping true to false just lists all my Items
What I have: ${lookup('Inventory_Equipped','uuid',equipped, true)}$
I understand that this goes into the fetchFromUuid() afterwards to get the field I am looking for
Show me the props in the error message. Especially those that you use.
lookup() -> find() and you should quote equipped
this?
Nah. In the error message itself.
I am not sure what you mean. Is it this?
Yep. It seems your column keys don't match
Mod vs. Dyna_Mod e.g.
How do i fix it? Because if i Add 1 to "mod_pow_final" though something else than item, it works.
Hey yall, I was working on Custom System Builder and was wondering if there is a way to code in a sound bite whenever a you roll a 20 on a d20 (critical hit)? If so, do yall know how? Thank you
Have a problem after migrate to CSB 4.5.1
I have use item modifier to add capacity and weight from item to the character
also modifier was use on class as class type or level
I have create effects with item weight and item capacity add such effects to the item template and reload the items - all calculations is ok. But TOKEN became unreadble.
Each succh effect place an icon on the token - even if i do not need it (capacity or weight)
If you are using the dice-so-nice module, there is a special setting inside the module to do such things.
If not, you would probably need a world script or a result control in every single roll message of yours.
previously it was page in wiki or in FAQ, how to add total weight and capacity to character
based on Item Modifier, so will be good to see how now it will be WITHOUT such additional icons ๐
The icon is added to the token only if the Active Effect has a Status Condition configured
Did you add status conditions to the active effect ? Can you remove them ?
I'm talking about this =>
No It not set for ANY of my effects right now
oh wow...
I'm trying to understand what is happening, really ^^"
Which modules do you have enabled ? And did you change the status effect configuration ?
one note I have create effect here at first and than REUSE it in the template
so not create directly in template itself - maybe it valuable
maybe direct creation effect in template instead of reuse will not create icon - checking
@brittle moth yes - problem not exist if using new active effect, so no reuse here (
I'll check this, this is not normal either way ๐
Yeah, this comes from Convenient Effects... I'll have to find something to fix that, because I don't want this behaviour to be honest ^^"
Really struggeling to get into this new effects thing. Feels complicated to use. Can anyone recommmend a tutorial vid that or something that explains the interface in more detail maybe.
Okay I found it
You can edit the Convenient Effects behaviour by editing the Active Effect in the Convenient Effect Folder, and click "Convenient" on the top bar
In there, uncheck "Temporary" to disable the status icon
I'll try to make this the default ๐
Yep. Now special sign is showed, with Passive tooltip text. And NO ICON on the token.
Is it possible to create different active effect displayers for temporary effects and for passive effects?
Like a filter formula in an item displayer
Not right now, but it is a good idea to be able to filter Active Effects like that
The Wiki says the Status Conditions Field is an important one. Played around with it but cant see any effect. Can anyone explain (for dummies) please what it does?
quoting 'equipped' makes lookup() return nothing, even if it is true or false. I did verify that props has a field called "equipped" last night and one item is set to true and the other item is set to false
changing it to find() ends up showing as ERROR, but the console is empty and not showing an errors
(currently trying to get name so I am confident on what is being returned)
Then show me what you get with fromUuidSync('uuid').system.props.Inventory_Equipped in the console
These are the keys and values, which are available for you in find()
~~Should I make a different field here that is an actual checkbox to use for find()? ~~Because if I am reading this right 'equippedChk' will be this whole checkbox styling and not the actual value I want to filter off of
edit: forgetting how Item Displayers work a little
You might be better of creating an invisible column there with just true or false. No styling needed, cause it's hidden anyway
Arriving at roughly the same conclusion. But if I reference the equipped value on the item how would it be invisible? (obviously I can always just style it to be invisible)
oh, use the "visibility" filter on the column ๐
Thank you so much for the help
Is it me or isnt the adding working as it should.. I have added the item twice just to test to see what happens when you add more than one increase to a stat. If i add the 3rd it will say 444
Any tips?
yes i tried to do +4 just to check ๐
What's the base value of that field?
Well... The following is happening: base + modifier -> newValue, which translates to '' + 4 -> '4'. With the second modifier: '4' + 4 -> '44'. You have a perfectly valid string concatenation at this point
You probably want this behavior: 0 + 4 -> 4 and 4 + 4 -> 8
yes that was what i aimed for ๐
Well, '' + 4 -> '4' vs. 0 + 4 -> 4
ok, so standard value on the label 0? im a little lost here since the effects only works on labels and not on number fields etc.
Yep
ok thanks, ill try ๐
worked like a charm, thanks again ๐
If you set a status effect on the Active Effect, an icon will appear on the token of the character. The icon can then be toggled off by clicking the corresponding status effect on the token options (right click -> status conditions)
what would be a good way to toggle Active Effects gained from an item?
i have an equip/unequip checkbox on the item to be active and shown in the equipment tab and not only in the backpack. that should also trigger the active effects to be active. It practically works by setting the Effect Value: %{return ${isEquipped}$ ? 1 : 0;}%
but that seems like a fiddly workaround..
i tried the following but it only triggers the equip checkbox, not the Active Effects
${ setPropertyInEntity('self', 'isEquipped', isEquipped == false) setPropertyInEntity('self', lookup('Effect', 'Active'), isEquipped == false) }$
but that doesnt seem to work, i tried some other column names beside Active to find the checkboxes from the active effect displayer but had no luck to make it work - maybe something else entirely is wrong with my attempt there.
I took a look at Martins Macro for toggling, but i'm not yet sure how it would work for me and in its current state it only toggles a single effect as far as I understand. it feels weird to me with the creation and deletion of the effects or is this more for temporary conditions and not more lasting item buffs? isnt there a clean way to just toggle them on and off?
I'd say the %{return ${isEquipped}$ ? 1 : 0;}% is the cleanest way to do it : that way you don't need to update multiple objects on equipping / unequipping an item
Active Effects cannot be toggled like items, at least not for now. If you really want to toggle the Active Effect, you need to do something like %{linkedEntity.effects.getName('YOUR_ACTIVE_EFFECT_NAME').update({disabled: linkedEntity.props.isEquipped == false});}%
mhh okay, thank you for your help ๐
another i hope small question, is it normal that all of this stuff triggers in the console when i click a checkbox without any code/impact?
or did i fuck something up? it seems to compute the same 3 items multiple times on the testchar
this is just one checkbox click or could be dropdown menu or anything else
It's normal. The system doesn't (and can't) know which properties are used in which formulas, or if they are used in any formula at all. It is an unsolvable problem. So it has no choice but to recompute everything on every change. It's unoptimized in that way, but I didn't find any better way...
okay, thank you and big thanks for building the system anyway!
ok, but what would be the use case for this? sorry for asking so much ๐
You could have a "Burning" active effect, and want to see it on the token to remind you each round, for example
did you sort it?
Hey link, if it's not a bother I have a question about data in CSB.
Basically I want a way for items nested in other items to use their modifiers on the parent actor containing the item... containing the other item ๐คฃ
Think subclasses in a class. except more messy (there can be a lot of them and they can duplicate across various containing items).
I tried using setValues and using the actor UUID to make things work but no luck... I also think making the middle item template have a bunch of imports from the subitem will be a lot of messy data since they'll be checking if things exist, that wont often be there... e,g, most items wont have a strength mod.
any suggestions?
Hello~ So far i'm really like building the system in foundry (I'm new at foundry!) and I'm trying to figure out how to do crit thats based off getting below a certain number with a players roll.
For example, roll a 1d100 get 27, then the crit check from the characters skill stat + equipment. and by getting 27 or lower, they crit.
I searched back in the chat and their seemed to be a buncha ways to do it and I took a look at the wiki but I couldn't figure it out, and I'm new at coding too ( I know I be doin a lot).
${roll:=1d100}$
${roll < critRate ? 'crit!' : ''}$
you need to define critRate in a way that works for your system, and replace 'crit!' with whatever you want to happen.
So if I want to pull the character's roll would that be like after the : 1d20+skillVal+equipBonus. To compare them? Thank you for your patience with me.
You've explained, how a crit is defined but not, what should actually happen. We need the action you want to have.
Oh, I just want it confirm the crit and then the damage is doubled. rn I just have the 1d100 roll and the character crit check roll separate and I wanted to combine them into one thing.
Oh I think i got it into one thing ok enough lol ty for the insight
it aint cute, but it works for now. also how do I get rid of the dice at the bottom?
should only show up if you've added a ! before calling the roll...
if it's still there for some reason, add a # before it.
#1d100.
I'm probably just an idiot but I'm trying to get values to display in a tooltip (I have the tool tip module) and it will supposedly call the value if you set it up right.
I'm trying to get to display the defense (which I conviently named Defense) when I hover but it isn't showing anything. I tried setting it to Defense, ${Defense}$, [;Defense:], and none of them worked.
I did find a formula where you can set up tool tips within CSB itself but I don't where I would put that formula. In the template box itself?
never used that module but csb supports tooltips by default?
I came across it but it did say it was old. I don't know if that's just because everything got moved to the other place or support for it was trashed/ replaced.
oh is it for tokens specifically?
Yes
Yes
Well, it was a beautiful dream for 10 minutes.
ty you da best
you give up so fast lol.
try adding the component as a hidden attribute, which makes is more accessible outside of the sheet.
then try system.attributes.<componentkey>
happy building
the previous example was an attribute bar- accessed with:
system.attributeBar.<componentKey>
should also be easy
Anybody else run into issues with your formulas being slow to populate? Im pretty new at this and require feedback to my script, and as it is Ive spent a ton of time trying to fix something that wasnt broken, just because it wouldnt resolve. Im just creating a character template and adding two attributes together, my formatting has been correct on 5, but my last one will not resolve. Ive reloaded, updated, and burned incense... any help would be greatly appreciated
i only see slow updating when it's coming from an item to an item displayer.
Tons of nested keys can be slow too, like ones that have four or five nested calculations can take a while to get everything populated.
huh, dunno then...this is simply adding two keys together, sooooo...
How many passes does your sheet take whenever you refresh it?
what do you mean by passes?
If you look at the console when you refresh the sheet, does it say something like "all props for ... resolved in x loops"
1 loop
More relevant then, what do your calculations look like?
how are you adding them?
${key + key}$?
yes, that is the formula Im using
both keys in the same sheet?
yeppers
Could you show us exactly what youre doing? Like screenshots?
errors in console? ๐คฃ
Ah.
You're using a number field, that doesn't work well. You should use a label to display anything that you don't want to type in
i love how you saw that instantly haha
i was staring at the cookies pannel like 'uh'
cool, will give it a shot... appreciate the help
you're also placing your formula in the default value -- which only populates once (when the sheet is first made)
Yeah, that goes along with it, it's part of the reason it doesn't work well.
gotcha, thanks will tackle that too
So if you set the wyle_base as a number field, and then wyle_mod as a different number field, then add them for wyle (set as a label component) it should all just happen right away.\
which label field is best?
?
label text is what's displayed.
@lucid rapids
https://youtu.be/b2XcMGpjLiY?t=833
This tutorial covers the basics to intermediate functions of CSB without the use of JavaScript. We cover item / actor templates and sheets, as well as what most of the components do at their core.
We do not cover CSB provided functions, or advanced uses of components (aside from the label), which will be left for another tutorial if there's en...
Roll message is what you use if you want to click the label and have a roll sent to the sidebar.
ok, got you, sorry had to grind gears there for a sec
You know, Scy, I should really do a second install so I can get back to some of my sheets. I had to go to v13 for another project, but I'm getting rusty here.
i have a node JS server specifically for CSB ๐
Hm. I do have a stack of laptops laying around. I could probably bash one of them into a dedicated server.
Well, it was for Sandbox when that was around, but the updates were always so slow (years) that i didnt want to wait when 5e was measured in months
Yeah, I tried Sandbox a bit. Not much easier to work with than SWB
lol fair enough, sandbox was great at a limited number of things but everything else was a slog.
but highly recommend a foundry nodeJS folder for CSB, it's fantastic
great version control actually
This one worked. Had to add the value at the end like system.attributeBar.totalhp.value so it didn't say /infinity because it was a static number.
and no need for hidden attributes because I tried it with a second value and it still worked.
perfect then!
Hello, folks! I'm learning the ropes of CSB, and I'm wondering if there's a CSS-free way of adding images to templates (either inside a label component, or some other way).
I have a few use cases here: custom icons for statistics, large icons for items, a large portrait for a player's pet on its own tab.
I've been looking at the documentation and couldn't quite find anything that would answer this. Thanks in advance!
Some of your use-cases could be acheived with embedding images into rich text components, but as far as the icons for statistics go, CSS is probably the best answer.
They work just like journal entries, to some degree.
I'll tinker with it and report back if I have any issues, then. Thanks a ton!
ok i got the base attack thingy working and I spent some time trying to find how to make it look pretty..but looking up css to use to do that is my brain juices just leakin out my ears cause my searching skills are failing me... is there a base one I can go off of to start with?
like I want these to be separate in the roller and nice, but they just list out like a sentence lol:
Crit Check ${[1d20]+skillVal}$
Crit Range ${[1d100]}$
Weapon Attack ${[1d20]+strVal}$
Weapon Damage ${(strVal)+10}$
I need to count the number of maxed dice in a roll, when i don't know how much dice i will have.
Like i can have 5d6 and I need to count the number of NAT 6s in the roll. But it can be 3d6 or 8d6, based on mods.
I also want player to see what dice they did roll like normal.
Can i save individual dice in array when rolling?
Also, that's another problem, but can i filter fields in active effect displayer like in an item displayer?
(Because I don't see how) (And i don't see groups in active effects, so conditional modifiers list won't help)
add <br> at the end of each line, that'll put it on its own line. In-line html works pretty well if you're just trying to organize the stuff.
the normal foundry dice pool count commands can be used in CSB, check how to format it, but I think it winds up being something like 5d6cs6 or something like that.
That's cool, but i also need to display the sum of the dice, can i do that?
(i need both from one roll)
umm.. hm. I think that might be handled more in the scripting side of things. The rolls are handled by Foundry, not by CSB, so it uses their commands.
I can use a script, but then i can't display dice in the chat
Well, not all three at a time... Can i somehow imitate that roll panel with internal commands or css?
The problem isn't with CSB as much as it is with Foundry for that requirement. I think you'd be better off using what you showed there and just manually counting the max results, unless there's some kind of complicated calculation that needs to be done with it. The reason has to do with how Foundry looks at a kh (or any pool) roll, which is like this:
terms: ["4d6", "3d8 - 1", "2d10 + 3"],
modifiers: ["kh"]
});
pool.evaluate();```
while a regular roll of 7d4 (which outputs the normal total) would look like this:
`let die = new Die({faces: 4, number: 7}).evaluate();`
When it's rolling in a pool it doesn't keep the total of the entire roll; in your case the terms would be a string of d4s that are all compared with each other, and the highest values of them are kept, and summed because of the "kh" modifier. If it was a "cs>#" roll it wouldn't even total them, the output of the roll function would be just the count of the dice that succeeded or not; the results are re-cast as a true/false.
It would be *possible* to script in a change to the roller function but not simple.
Now that I sit and think about it though, those values on the chat card have to come from somewhere; @sinful spade has done some stuff with pulling them with css, let me paw through the history some and see what it looks like. Unfortunately I can't just pull up CSB and muck around with it at the moment.
No need, i'm making my own rolling function. But i have other problems, if you can help. Do you know active effects that well?
I haven't had a chance to play with the new ones.
I don't know why, but multiplying and downgrading doesn't work.
show me what you mean?
Sometimes we are the rubber duck here ๐
Somehow "1.1" is a string and not a number
And it's crashing my multiplications
How is that even possible to fix
I'd go run some tests and find out where it's being input as a string.
Like does it start as a number, in a number field?
It's a hidden attribute "1.1" which i want to multiply by 5 with an effect
You can set up a testing field to do a command with the key, use typeOf(<yourkey>) to see if it's a number.
Why can't floats be numbers?! Why?!
Okay, update to what I'm doing, with new question: I have a preset list of ~80 items in my game rules, each with their own unique icon. I want to display the icon that matches the item in a label component on each of the item's item sheets.
I'm trying to figure out the best pattern for doing this - a list of hidden attributes in the item sheet's template, or maybe a separate sheet only visible to the GM, where the items can be tabled with their icons...? I'm not sure what's the best way to proceed here.
How are you containing icons in text?
With a physical path to the icon?
I think I can just use the css for it + the path to the icon, right?
(I was going to avoid CSS but it might have to be done after all)
that's how Scy did his. He had a class with a key for the item image path and called it through that.
I'm pretty sure he's off for the night, but he can certainly explain more about how he did it when you see him.
sure, I'll ask! Tyty
Try to get one to work and then you'll see what's better. I'd say you'd better make it scalable and add a path to each item, because i've worked with "separate sheets" and it's pain.
yeah, hidden attributes might be easier. I'll start messing with it in a bit
it doesn't even have to be hidden, it can be right on the main item sheet, just set to not visible to players; that makes it easier for you to work with it.
oh, that makes a lot of sense, yeah!
I think if the path is its own field in a table, it shouldn't be much of an issue?
It isn't if you're not trying to read it
Don't mind me, i just hate mixing " and ', so i hated writing it. It's not that much of a problem.
This is how i've done reading from a table from another sheet. I'll just send it here, hepe it will be helpful to you and you won't spend 3 hours figuring out the problems.
${fetchFromUuid('${SizeConverterUUID}$', "find('Size', 'LiteralSize', 'Number', '${Size}$')")}$
Ooh, I'll try it out later. Thanks!
Is there a way to for players edit items directly from an item displayer component? My game's items are compact enough that all the info could be visible on the displayer, so theoretically players would never have to open the item's sheet.
AFAIK you can only have labels in item displayer. So no edit outside the item's sheet.
Ah, I was afraid that was the case. Well, I'll live with it.
The only way would be via a Label Roll Message. As mentioned before the Item Displayer only allows non-editable fields for now
thanks boss! I'll keep that in mind!! edit; bruh you saved me ty
Is that a formula or a static value?
I guess the most efficient way would be to add the subclass directly to the actor, but I imagine that may cause issues with the class item itself...
I'm afraid I don't have a clean way to do this, sorry
Static. Should i put it into ${}$?
Bruh, turns out i already have done that
If it doesn't work I have a shitty workaround for you...
Get 2 hidden field, one for the integer part and one for the decimal part (in your example : both fiel would be 1), then when you need to use it query both of them, divide the decimal one by 10 and add them together. Messy, but should get the job done...
The Active Effect can then multiply both of those hidden fields
Html in a label also works...
<Img src="..."></img>
You can arrange them within a table with html
Or break them onto new lines with <br>
I mean you can really do anything... How do you want them to look? Spend some time on paint and draw it, then figure out how to make it line by line. Ask when you get stuck โ๏ธ
I mean, number fields allow decimals, can you use that somehow?
Are they items? Or directly on the sheet? I've done this a couple of different ways, depending on how and where you need them.
Yeah I considered that, thanks for letting me know.
Sadly it's not truly a subclass, it was just easier to give you an idea that way. it's 'events' that occur per background, and there's 100+ per background, and 24 backgrounds (random roll table style), and I need to reference which background causes the event to occur...
I may have to change the rules to fit CSB better, or get really creative here
as far as i tested this now it seems to just highlight the chosen status in the HUD Context menu. No extra Symbol for the Status is display on the actor and integrated effects inside the status effect are also not applied. Is this the intended behaviour or maybe buggy?
Thank you all for your help so far!! Its really coming together. I just got placeholders in rn and wanna figure out how I wanna do the other mechanics before fleshing out style.
Yeah, I've been doing that for the most part. Seems to be working alright for my end.
They're effectively game items, so making them Foundry items is probably the easiest way to add and remove them from actor sheets...?
probably, unless there's something i don't know about them lol.
if that's the case, why use Img tags, and not just make an item with an image?
Shouldn't this key be showing up? Is this a bug, or is it not supposed to appear?
Guys, I need some help. I had item modifiers on all my items, which would, for example, increase the value of variables like maxhp, maxmana, maxdexterity, among others. I updated to the new version of CSB and all of that disappeared, even though I clicked to migrate to this so-called "Active Effects". But inside the Active Effects, none of that shows up in the list, and Iโm completely lost not knowing what to do.
As far as I know, Active Effects are active conditions on the token โ the ones you right-click to apply, like Frozen, Paralyzed, etc. How the hell am I supposed to convert that into something that increases max HP and so on? These were items from a skill tree that the player would learn and drag to their sheet โ for example, one item that increased max HP, another that increased max mana โ and now all of that is gone along with the Item Modifiers and I have no idea what to do.
There are probably a few messages or questions like this here in the chat, but I couldnโt find them โ so could someone please give me a hand? :c
thank you
I want to display a larger icon on the item displayers, and I don't know the formula for fetching the item's actual icon ๐
i used css ๐
.inventory table tbody tr td span a img {
max-width: 25.6px;
max-height: 25.6px;
border-radius: 20%;
}```
Where inventory is the class i put on the item displayer
I'll confess CSS flies over my head, so I can't quite read this, haha.
This looks pretty good, though!
css is very straight forward.
selectors {
thingToChange: value;
}
selectors can be classes, ids, or HTML labels.
the follow basic structure.
div p {
would effect all html paragraphs (<p>) that are contained within a div.
think about it like navigating folders honestly.
in the case of what i sent...
.inventory table tbody tr td span a img
Are there any instances of the inventory class? do they contain a table....
the end result is
IF there's an image, that is under a link, in a span, in a cell of a row in a table's body in the table under then inventory class...
set it's maximum width to 25.6px...
.thing means the thing class
#thing means the thing ID
thing means the HTML label <thing> (doesn't exist)
Hmmm I suppose it wouldn't hurt at all for me to learn this
i promise if you can learn html you can learn css
both pretty much are basic English, no fuss.
javascript is the nasty one ๐
lmaooo
yeah I've tried some javascript in the past
it didn't go well
anyways, ty, I will actually look into CSS
^
i can't do javascript either.
html and css i picked up within like 2 weeks.
Hello ๐
**Quick answer: **
If you add an Active Effect Displayer component to your Template, you should be able to see the Active Effects on your Items & Actors. It works a bit like the Conditional Modifier Group component, but allows you to see every Active Effect defined / applied on your actors and items
Long anwser:
The Active Effects are togglable conditions on actors & items. What you are referring to are Status Effects (I know, confusing...), which can be quick-toggled on a token, but are applied as Active Effects on the actor represented by the token.
You can customize the Status Effects list with a button in the "Settings" tab, which allows you to :
- Limit and tailor the status effects list according to your system needs
- Decide which Active Effect is applied when toggling a Status Effect
thx so much
I checked the roadmap and I'd like to ask if you have any estimate of roughly how long you think it might take for compatibility with Foundry v13
In the latest version of CSB you can acces Item's icon in Item Display with item.img. You can display it in a label with <img src="${item.img}$"/>.
AppV2 is taking me some time, I hope to be able to release a v13 compatibility version by the end of August, but I can't promise it ๐
Hello there,
First time requesting an help on CSB here and I have to admit that I'm far from mastering Foundry and CSB so sorry in advance if my question are trivial... I'm currently on foundry's 12 version, build 343.
Since I updated CSB on 4.5.1 we only made one session and my players encounters 2 problems :
-
First one is when any player appli an effect to his token with the "assign status effect" menu on the token, an error message is displayed for every other players. On the image my player "Nep's" doesn't own the action "uX..." so it is normal that he don't have the permission but this is not Nep's who is modifying this actor
-
Second problem is a key binding one I thing so maybe not linked with CSB but the problem appears after the 4.5.1 update : they cannot update the character sheet with numerical values because it makes thir token move on the map. It seems that the fact to have the character sheet open don't prioritize the keyboard interaction over the token (moreover one of my player deleted his token 6 time due to that because he wanted to erase something on his sheet)
If any of you can help It would be nice ๐
I need to add some other info for the second problem : I don't have this problem on my side has a GM while using the app
Another little problem but I may have fucked up the "configure status effects" is that the status "invisible" or "blind" no longer do the basic interaction with the token like it was the case before.
In 4.5.0 I reconfigure those effects to stick with our way to play and keep the id intact for the effect that were already available and it worked. But with 4.5.1 something changed and it no longer turn people invisible with the effect on the token or turn them reazlly blind
First issue : I'll look into it ๐
Second issue : are you sure their numlock is on ? I had the issue when editing fields with numlock off, which causes the arrow keys to fire instead of the numbers
Third issue : you can reset the status effects from the configuration. If you don't want to, for now, make sure there are status effects with the following ids :
blind
burrow
dead
fly
hover
invisible
Thanks for the answer
For the second issue that was the first thing we verified because one of my player didn't have the problem be the 3 other did have it. We tried toi switch brother too but with no effect. I will try some more tests on my own
Those Ids were correct. I've just reset to default value the "configure status effects" menu but it still doesn't work
Can you show me, what CONFIG.specialStatusEffects gives you in the console?
woo you just open a brand new world for me (never seen the console before)
Is that enough ?
Yep. And now CONFIG.statusEffects
From what I see you are missing the "hover" status effect
By default, you should have 34 status effects configured
I deleted some of them that were useless for me but I just tried to add it back and it still doesn't work.
The problem is that even when I reset all status effects to default it still doesn't work ๐ค
Morning gurus, Im hoping someone has some experience with using cards with csb. Im interested in being able to drag and drop a card into an inventory tab, and was wondering if someone has some best practices? Ive determined I can drag into a rich text field, but its kinda clunky and havent determined how to have it impart effects once there. Any pointers?
Sorry I don't use card ๐ฆ
For the first issue with the red messages maybe this pop up seen by my players can help you to find the issue because I guess they aren't suppose to see that.
For info, my problem of red messages still appears even if I convert (did some roll back with the back up)
And I have to admit I don't full understand is the consequence of converting or not
And I found the problem with the second issue : the module pop out was the culprit, didn't see it has been updated...
I found the culprit for the error message, it will be fixed on the next release.
Conversion is optional (for now), you can still use Modifiers. Active Effects are more powerful than Modifiers, so they will become the main way to alter entities properties in the system, so I recommend learning how they work, but you have time before you do that ๐
Thanks for your work !
I never used modifiers (I think) before so I don't even know what they are useful for
That's very useful to know! (and would've saved me some work hahaha) Ty!
Alright, folks, I need some basic setup assistance for this fangame I'm making.
I have a list of moves that have text and a roll formula associated with them. I want players to be able to select moves with radial buttons from a list on the left panel to view the associated text + "roll move" button on the right panel (see the picture). What I'm struggling with is how to make a table for the data of each move, and how to reference the right values of the table on the move display area. Would anyone be able to please give me any pointers?
Each move has its own Label Roll Mesage?
each move has an extensive amount of text that I want to display as a label
(I'm not sure if that is what you're asking)
Not exactly, but it helps. What should happen when clicking on "MOVE"?
If you have text that is dependent on the selection, then you basically have 2 options here on how to achieve that:
- You use the
switchCase()-function in the Label itself. All text data must be stored in this Label - You use a Dynamic Table and put text into each Row. The Label uses the
find()-function to find the selected entry and fetch the text from there. The text data is stored in the Dynamic Table.
I think I can work better with a Dynamic Table. I trying to mess around with one earlier and got a bit confused on how I could fill it in on a template (if that's at all possible), though.
Yeah, you can also fill it in the Template. These rows will be created when an Actor loads that Template
If you have a lookup-table with no dynamic table in there at all, you could also create something like a global actor, which just stores this table and fetch from there. The advantage is, that you only have 1 source of truth instead of 1 table for each Actor.
would you mind working me through setting up such a dynamic table? When I looked at the wiki page last night, it didn't exactly match what I was seeing in foundry.
The + above creates columns. The + below creates rows. Start with the columns
Something like this, then?
Yep
Alright. If I try to add rows, though, they get filled with "Label" entries
Because Labels are not editable
oh
oooh okay
okay, gotcha
so I'd use a text field or rich text area or whatever
to edit it within the template?
ye
alright, that makes more sense
I've got it, now, ty
I'll fill this in and report back if I have any issues
thanks!
CSB doesn't do anything with cards. So you can only rely on Foundry and your own scripts.
just to confirm, are Rich Text Area table entries on Dynamic Tables supposed to look like text fields/whatever on Dynamic Tables when views on a template? (I'm using the Icon Only style and it shows as such on the actor sheet, but not on the actual template)
(In the example above, the rightmost column is set as a Rich Text Area with Icon Only style)
Yeah, they should (although a bit unintuitive). You can create the entry in an actual RTA, write your stuff, switch to HTML-mode, copy that and paste it into the entry of the Template.
that's good enough for me. Ty!
Okay, I have the bare bones of what I need, but I'm struggling to figure out the find() function.
Let's say I want to write up the formula that uses find() to fetch the right table entry, based on the radial button selection.
The radial button group is moveselection, the value of all radial buttons is exactly the text on the movename column. How would the formula here be written?
Hey! I updated to the newest version of the CSB and some formulas stopped working (giving me an error) it looks like trying to get the variable from the dynamic table is not working anymore.
${find('Attributes', 'Dice', 'Mod', mod_pow_final)}$
In this case I want to read from Attributes Dynamic table
Look at mod_pow_final which is number field
Apply that number to Mod
and Fetch the Dice
My system gets a lot of information from this dynamic table so i got a lot of errors because all calculations now are not working.
Can anyone help?
What do you mean add to mod and fetch the dice
I dont even see mod_pow_final on that table
mod_pow_final is not on the table, its a key that is label. And its calculation is coming from mod_pow which is a number box to which i add 1 if you choose the Power specialization.
You're returning a string in modpowfinal.
Id ditch those quotes around the spec bonus numbers.
${find('movedata', 'moveroll', 'movename', ref('movelist'), '==')}$
Find on the movedata table, the moveroll, where the movename and movelist are equal.
assuming the movelist is the component key for the radio group and the value of the key is the same as the label portion... If it's values are number or something you'll need to use a switchCase or something
Is there a way to bind a macro to a button on the character sheet? Like when you click the button, it starts the macro
in fact, absolitude, you may want an index value of numbers as a column that are the same as the numeric values of the radio buttons --> this saves some effort of comparing strings.
yes, you can use javascript to call the macro from a label button
panzer may be able to tell you exactly how, i havent had to do that yet and uh that's not my area
Ahh yeah I also don't know that currently as well. thank you!
here's what GPT says
%{game.macros.getName("Your Macro Name")?.execute();}% no harm in trying it
I will try your suggestions, ty!
Though, question: what's the purpose of the 'moveroll' in the formula you suggested above? Unless you meant the 'movetext' column, which was the one I'm first experimenting with, haha
oh that seem to have worked, it just shows an ERROR message first before the macro starts working
This is good enough, thanks!
also, is it just me or are radio button components broken? I can "save" their Group keys and the change seems to register in the template, but if I edit the component again, it shows the field as blank (I need to input the group key again)
i figured you'd want the data from the roll not the flavor text haha.
you can use movetext as well
i'm actually not sure if the # works for JS or not, in CSB it usally silences part of chat so adding it after then %{, so like %{#, may work. Or surround the entire function in <span style="visability: hidden;">%{...}%</span>...
But check console and see what the error is, it may actually be something we can just fix
im not following can you send a video?
can't quite record a video rn but:
- I open the first radio button component here
- input anything in the Group field, hit save
- open it again, the Group field is empty
did you check for any errors in console?
lemme take a look
Inside %{ is js only, so don't use # there. Surround the whole js expression with a ${# }$ to hide it.
seems to be this
Good to know ^^ didnt know if that was a JS feature or what lol.
though that'd just silence the error output to chat, still dunno what casues it
not seeing any errors
If it doesn't return something to the chat card it always shows up as error there, just silence it, or put in a return line in the macro.
gotcha,
again good to know lol.
I didnt want to ecourage them to follow my bad habit of just slapping ductape over errors' mouths until they stop appearing
that's really odd...
I dont have that issue on my end?
I think maybe those radio buttons are just broken for me
they're behaving very weirdly
like so?
as in, they're all assigned the same group and
i wonder if it's having the text as the value honestly...
looks good enough then, thanks!
I just changed the values to numbers, so no idea
yeah this is not what's happening for me
still happening?
try new buttons with a different componentkey?
wait, do they all have the same key??
not all the same component key, no
just the same group
let me try different component key
also nope. Tried "newkey" for the group, and nothing
Radio buttons have always been pretty problematic. I'd use a dropdown for the same purposes.
yeah, I might try that
alright, so now I've got it all to work...except it's not displaying some results. I think it might have something to do with the rich text stuff?
It displays the first two moves on the list just fine (picture 2), but anything below that is blank (pic 3).
pic 1 is my setup
(this was also happening with radio buttons, for the record)
i've used dropdowns a time or two, but i have very few problems with my radio buttons, i'd be curious to poke around honestly
i'll be back in a bit ^^ trying to help someone in call rn
Figured this one out. Turns out some entries in the 'movetext' column had been edited in my test sheet
I have two more questions which are not problems ๐
-
Is there is a way to automate the reset to a certain value of a number field when a player finish his turn (click the arrow on combat encounters tab) ?
-
What is the purpose of the "configure hidden attributes" menu on templates sheet ?
- There is, but it requires you to work with Javascript and world scripts
- It lets you configure read-only Atttibute Bars, which can be selected and shown from the Token in the Canvas.
is there a way for me to set up the panels here so that 'movedisplay' takes up as much space as possible on the right, and the left section is condensed to only what the stuff in 'movelist' needs?
currently it's looking like this
You'll need CSS at that point
-
Is there is any documentation for that ? I have little knowledge on Javascript and I maybe can ask for help from a friend but I need to know where to begin
-
Need to look further into it thanks !
Thanks for the answer and thanks for your work on CSB !
Documentation for Foundry Virtual Tabletop - API Documentation - Version 13
Thanks, will try to do something with that
I am making some hidden bonuses that i want to be activated when player select specific option e.g. select specialization Power from the drop-down menu and with it uncheck "Effect Suspended" Checkbox so it becomes active?
That's scripting territory. You wanna continue?
Ohh, i thought if i have these effects inside actor template it would be looking into Key Component of the Active Effect Displayer and the name of the Effect and then activating the checkbox. How hard is it to do it? i have 0 java script exp ๐
Moderate difficulty
I guess its easier if i make these Active Effects inside an Item and then just grant it to player when they make char. Can I bug you later when i get to that deep automatizations?
You can. I also suggest to read this when you start with it: https://foundryvtt.wiki/en/basics/world-scripts
@formal goblet I have copy/pasted active effects from actor template to items. Giving item to character works for simple calculations but not if i want to reference a number from character. ( guess item on character doesnt know to read character stat for calculation) or is it something else?
Yep. Prefix it with target.
I would like to create a magic spell as active effect. This spell gives to buffs: a bonus to STR +2 and a bonus to DEX which depends on how good the spell check was rolled. Lets say for example for each 2 points the roll was better than the spell ability it give +1 to DEX.