#Custom System Builder
1 messages · Page 51 of 1
Hey Everyone, I would like to try and build my own world, making a copy of the CSB template and starting from scratch. I have good (self taught) HTML/CSS/PHP but only learning Java now is there any video/youtube tutorials guiding through the basics of making a copy, uploading to git hub, and then importing my unique CSB world into foundry for me to work / test with?
Sorry I looked for a pin if this might have been asked before.
You probably want to create a Compendium and distribute that via GitHub or GitLab. Some links you might want to read through:
The official website and community for Foundry Virtual Tabletop.
The official website and community for Foundry Virtual Tabletop.
A walkthrough of the new Package Release API for package developer use.
The official website and community for Foundry Virtual Tabletop.
I have hit another wall. I am trying to make a dynamic table for skills. What I am trying to do is reference a "Key ability" section for the code to pick up, look up STR, DEX, etc... and then return the result as a modifier based on the text in "Key Ability"
Is there a way to say "if X then run this code, if Y run this?"
Thank you, gives me a starting point I appreciate the help.
Thanks
This code isn't seeming to do what I'm asking it to do. Am I doing something wrong?
${(switchCase(sameRowRef(keyability:),
'STR', ${floor(((STR+STR_adjust)-10)/2)}$,
'DEX', ${floor(((DEX+DEX_adjust)-10)/2)}$,
'CON', ${floor(((CON+CON_adjust)-10)/2)}$,
'INT', ${floor(((INT+INT_adjust)-10)/2)}$,
'WIS', ${floor(((WIS+WIS_adjust)-10)/2)}$,
'CHA', ${floor(((CHA+CHA_adjust)-10)/2)}$,
0))}$
- You should check the return of
sameRowRef() - No random
:. These are only allowed as part of a ternary operatorcondition ? truthy : falsyor inside Roll Formulas[]to delimit CSB-Formulas. - No random nested Formulas
${}$, these can bite you - Optional: No random
(). They don't cause syntax issues, but make the code less readable in your case.
So
${(sameRowRef(keyability))}$
This should be giving me the output of the samerow text in the column of "keyability" no?
Or should it look like this?
${(sameRowRef(columnName: keyability:))}$
Test it and validate it. The syntax is at least correct
Is it the result you've expected?
No. I'm trying to get it to give me the text in the text box in the column of keyability.
Then you've got the wrong function. Try it with a different one
Much appreciated, I'll look at equalText() and see if I can route requests through the GM
There is a quirk with "Dice So Nice" that when I build an "IF" function, it rolls all the 3D dice in the function, not just the TRUE one. Any way to stop it from doing that?
?{adv:"# Advantages"[number]},
?{disadv:"# Disadvantages"[number]}
)}$
${#MATHS:=(adv-disadv)}$
${#DIE:=1+(abs(MATHS))}$
${roll:=(MATHS>=0 ? [:DIE:d20kh] : MATHS <0 ? [:DIE:d20kl] : [1d20])}$```
So, if there are 5 advantages, 0 disadvantages - Dice So Nice would be rolling 13 dice.
It's not a quirk of DSN. It's just that every definition of a Roll Formula [] will be executed unconditionally: https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/Guides/Formula-System#315-conditions
Awesome. Thank you! Worked like a charm.
I can't figure out what might be causing this, IDK if it's a CSB issue, has anyone had any issues with trying to add tokens to a combat? Right clicking tokens seem to only bring up a weird blank dialog box
It looks like this fwiw
Hi i was wondering is there a way to add more active effects on CSB? or should i just stick to making them items instead?
Show the error in the console
I figured it out, the issue was with the window tabs module for some reason
And you also have the Active Effect Displayer, where you can create Active Effects on the go.
Thank you so much !!
Code question. I'm using an external Macro to do Skill Checks/Damage for the Vagabond system. In that system, items (mainly weapons) have 1 or more properties that I'm currently storing in a text field on the item. I am passing the item name into the macro, I'm just trying to figure out how to retreive the "properties" value from the specific instance of the item associated with the actor. Where is the array of item UUIDs for each actor stored in the data model?
Hi, my Tabbed Panels are acting very weird. For some reason the tabs are on the left? It's causing really troublesome formatting
I couldn't find any settings that are causing this, and it also highlights everything in a weird way
on the template, it looks like this
I've used them before and they showed up properly centered, so I don't know what's going on with it now.
is the control inside another panel or table that is set to Center?
It's not
so the center bottom panel is how yuo want them all to look?
or that's the problem panel?
That's the problem panel
I would prefer it to show up like this:
Which is another world's system which shows up fine
and the specific one in question is the skills_skill Item Displayer?
The problem pannel is "Tabbed Panel tabs" which has the tabs showing up on the left for some reason
I would like to be able to put all of the character sheet contents into a "Narrative" tab, but the tab alignment is causing the formatting weirdness
I can probably get by fine by just making the panels collapsible, at least, it's just a curious issue
And are you using any CSS?
Not that I know of
I did import a lot of settings using Forien's Copy Environment from a 5e world, but I don't think that would've cause this?
Embedded Items are stored under actor.items
I suspect there isn't but is there a way for a label to only display/use the highest value of any given modifier (ie: the highest armour value on a location out of multiple armour items)?
Nope
not an easy way at least
you might be able to do it with a bit of scripting
Cool, thank you
Ok, so I have rollable skills on a character sheet, but I want to put a button on the weapon item template so that it can pull the stats from the character sheet for attacking. I'm using a dynamic table for what dice need to be rolled.
here is the code from the rollable sheet
${#concat(
?{checkdifficulty: "Check Difficulty"[number]},
?{statchoice:'Which Stat'|'MEstat',"Mind"|'BEstat',"Body"|'CEstat',"Community"}
)}$
${#statnum:= ref(statchoice)}$
${switchCase(statchoice, 'MEstat', 'Mind Exert', 'BEstat', 'Body Exert', 'Community Exert')}$
:${rangedcombat_nm}$ Difficulty ${checkdifficulty}$
<br>
Your Proficiency stat is:${rangedcombat}$
<br>
You Roll:${find('rolltable', 'dicerollformula', 'checkdifnum', statnum - checkdifficulty, '==')}$
<br>
${#roll:= find('rolltable', 'dicerollformula', 'checkdifnum', statnum - checkdifficulty, '==')}$
Results:${[:roll:+:rangedcombat:]}$
I've tried fetchFromParent but I'm not sure whether or not to apply it inside of the find function or if it needs to be used separately or per variable.
Whatever you want to pull from the character sheet, must be formulated within fetchFromParent()
Thanks!
Because that is a normal formula, not a roll formula. This is a real roll formula: ${[1d20]}$
soooo how do i add the value from "background_skill_rank" as a number to add to the roll?
How do i get the values inside of a drop down menu be shown in chat for the label roll and not the name of the variables?
Is there a reasonable way to get this sort of layout? Master stat with value + mod in the total, and all the skills with stat + value + mod in their totals.
Which values of the Dropdown?
an example is i dont want the pc_mon_named_attack_1_melee to be posted to the chat but its label Melee
Questions regarding styling nearly always lead to CSS, so you should try it with your own CSS rules.
A Dropdown can only return the key options, the Label is just for display.
You can use switchCase() to map the key options back to the label options.
That's doable with a normal Table Component
Provided that I'm fine with making a lot of component keys and formulas?
Yep. Or you shift a bit away from the exact layout and use one or more Dynamic Tables, which would help reducing your Component definitions.
I mean, I was trying this earlier, but it looked goofy:
Maybe I can put dynamic tables into regular tables? 🤔
Also possible. But that's all I can tell. The decision is up to you
On the subject of styling, is there a way to apply a style to a whole sheet?
How would I go about setting a property in all items in an item displayer?
I'm currently trying to make a button that resets all items 'activations' number field in the 'actions' item displayer reset to 0, but this doesn't seem to be doing it, despite the documentation making it seem like it would
setPropertyInEntity('self', lookupRef('actions', 'activations'), 0)
You can only update the content of Input Components. Labels and Meters are out.
Alright, and on which entity is the button?
the actor, when you press the End Turn button, it does:
${!name}$ ends their turn at Time ${!time}$ out of ${!combat_time}$
<br>
${!name}$ has ${combat_time + 10 - time}$ Time to spend on their next turn.
${#
setPropertyInEntity('self', 'combat_time', combat_time + 10)
setPropertyInEntity('self', lookupRef('actions', 'activations'), 0)
}$
Then self isn't the right entity reference, because as the name suggests, it updates the prop of the same entity.
i thought so, although the documentation was worded a little strangely on this with Reset all base values within a Dynamic Table column to 0: setPropertyInEntity('self', lookupRef('Skills', 'Base'), 0)
some of the lookupRef also worked with Item Displayers, so it was hard to tell if it was just being silly or not
That's a Dynamic Table within the same entity
Yee, I might just have to move to a Dynamic Table in order to do what I want to do
unless I want to fenangle with using scripting to loop through item displayer contents
Not needed. You should be able to use the item-reference if you execute it within the Item Displayer. Or you use setValues() and fetch the UUIDs from the Displayers.
oh! the UUID approach would probably be what I want
Decrease the value of the key uses by 1 in all Items within the Item Displayer Spells: setValue(lookup('Spells', 'uuid'), 'uses', "target.uses - 1")
ah, yeah, that'll be perfect
thanks muchly!
although it does look like there's a typo in the documentation there, should be setValues not setValue
Yeah, I know. Already fixed, but the patch is pending.
is there a limit to how many items can be in a switchCase()?
No, there's no such limit (except your RAM space)
thats strange then, i have around 51 items for a switchCase() and it's not returning whats been selected in the dropdown
like its not even showing up on the sheet as a label lmao i have the switchCase() in a hidden attribute to calculate everything
Open the console and check for errors
okay bear with me, how do i open the console
F12
thank you so much
Hi, dumb question maybe? I'm trying to take the labels from an item list column and join them together to display on a different part of the sheet (context: the item list is not shown, its gm data). Thing is, when i use this code
${lookup('archetype_abilities_data', 'abilities')}$
i get a result like this, under Passive abilities, with a large space between them and a comma. I've tried to remove the comma with replace, replaceAll, and concat, but in Foundry v11 replace and replaceAll dont exist according to the console.
is there a way to get rid of that massive gap and comma?
You can get rid of the comma if you use .join() right after the lookup.
replaceAll() should exist as a standalone function
that's a function built into arrays, right?
Yep, a prototype function
holy shit you're a lifesaver
found it, .join('') worked so much better. This makes the rest of the sheet easy now LOL
is there a way to attach a roll label message to the initiative formula in the settings?
And how do you determine the numeric return value?
You could execute a script from there. But as I said, you must return a number at the end
Can you set a formula result using a condition? like ```
${statnum:=ref(item.wpntype == 'r' ? 'MEstat' : statnum:= 'BEstat')}$
woops
wrong thing
wait no, thats the right thing I grabbed.
Check the console and you'll see the issue
And yeah, you can
ah, uncomputable token
The assignment is only doable right at the beginning of a formula, not somewhere midway.
gotcha. I'm trying to just set some variables based on wpntype I figured that a formula would work, but I guess not. Any idea on how to approach it?
${result:= x ? y : z}$
so something like ```
${statnum:=item.wpntype == 'r' ? MEstat : statnum:= BEstat}$
oh wait
:= only allowed right at the start
ah Thank you!
Just a quick question, i am trying to throw a item on my map to show it to my players. But i am getting a msg written
CustomActor validation errors:
type: may not be undefined
[Detected 2 packages: system:custom-system-builder(4.2.0), item-piles(3.1.6)]
Any idea on how to make it work ?
It must be configured in the settings of the module. It doesn't work without.
How would i do that exactly ?
Is it here ?
I dont know if it is on Item-Piles or Custom-System-Builder...
I think i got it to work, i dont know how but it is working 🤣
@formal goblet - Is there a way to make it so if the player doesn't have enough AP that it won't even do the rest of the roll message?
I have this at the end:
${#equalText(ACTIONS, '0') ? notify('error', 'Not enough Action Points') : ''}$
But, would there be a way to move that to the top and basically prevent the enture function from running if they don't have enough?
${#skill:=fallback(lookup('char_skill_list','char_skill_total','char_skill_name',item.m_skill),0)}$
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
.tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
overflow:hidden;padding:10px 5px;word-break:normal;}
.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
.tg .tg-0lax{text-align:left;vertical-align:top}
</style>
<table class="tg"><tbody>
<tr>
<td class="tg-0lax">Attack:</td>
<td class="tg-0lax">${item.name}$</td>
</tr>
<tr>
<td class="tg-0lax">Roll:</td>
<td class="tg-0lax">${attack:=[1d20]}$</td>
</tr>
<tr>
<td class="tg-0lax">Bonuses:</td>
<td class="tg-0lax">${skill}$</td>
</tr>
<tr>
<td class="tg-0lax">Total:</td>
<td class="tg-0lax"><i class="fa-solid fa-hand-fist"></i> ${total:=attack + skill}$</td>
</tr>
</tbody>
</table>
<table class="tg"><tbody>
<tr>
<td class="tg-0lax">Result:</td>
<td class="tg-0lax"><i class="fa-solid fa-shield-slash"></i> Glancing Blow</td>
</tr>
</tbody>
</table>
${#setPropertyInEntity('self','actions_remaining_1',ACTIONS <= 3 ? 'true' : 'false')}$
${#setPropertyInEntity('self','actions_remaining_2',ACTIONS <= 2 ? 'true' : 'false')}$
${#setPropertyInEntity('self','actions_remaining_3',ACTIONS <= 1 ? 'true' : 'false')}$
${#equalText(ACTIONS, '0') ? notify('error', 'Not enough Action Points') : ''}$
I have no idea why this code isn't working.
${switchCase(keyability,
'STR', (floor(((STR + STR_adjust)-10)/2)),
'DEX', (floor(((DEX + DEX_adjust)-10)/2)),
'CON', (floor(((CON + CON_adjust)-10)/2)),
'INT', (floor(((INT + INT_adjust)-10)/2)),
'WIS', (floor(((WIS + WIS_adjust)-10)/2)),
'CHA', (floor(((CHA + CHA_adjust)-10)/2)),
0)
}$
keyability refers to a column on a dynamic table, the "(floor(((STR + STR_adjust)-10)/2))" code works just like it should. I just can't figure out how to write the code so it reads keyability (which is a text input and has STR, DEX, etc input in it), and then checks for it to match one of the described variables, to then run the code associated with it.
I'm sure this code should be what I need, am I just writing it wrong?
I forgot about sameRow.
${switchCase(sameRow(keyability),
'STR', (floor(((STR + STR_adjust)-10)/2)),
'DEX', (floor(((DEX + DEX_adjust)-10)/2)),
'CON', (floor(((CON + CON_adjust)-10)/2)),
'INT', (floor(((INT + INT_adjust)-10)/2)),
'WIS', (floor(((WIS + WIS_adjust)-10)/2)),
'CHA', (floor(((CHA + CHA_adjust)-10)/2)),
0)
}$
this should be allowing keyability to be referenced from the row the code is running on, then check which case it matches to, then run the code for it, no? It's not working for me.
Hi, I was wondering how to approach specific effects from items. For example, if I have an item with a skill that is supposed to give a +1 to 'something' when 'something' is 'something' but items might have different conditions or not have those effects at all. Essentially I am trying to make "Item Skills" and am not sure where to start. What is the best approach to handle this? Should I build these conditions on the item itself or on the character sheet?
That's up to you on where you want to handle the conditions. If the conditions are always equal (equipped vs. unequipped), then toggling it from the Item is the way. If the conditions are not equal for each Item, then using a Conditional Modifier List to toggle the groups might be the preferred way.
Open the console and check for the error
You could throw an error with a script, but that will suppress the creation of the Chat Message.
Hi guys, what's up? I have a problem that I really can't solve, I would like to know if you have any suggestions. So, in the cleric sheet I have this Item Displayer where I have dragged in some spells that can only be used once a day. To determine the remaining uses of these spells I have created a column called ‘DomainDaily’ and in the Label Text of this column I have entered the value 1. When I open the spell sheet there is a label called ‘Lancia!’ and inside it there is the Label Roll Message which starts the Macro that manages the spell. In this Label Roll Message I have tried inserting the function setPropertyInEntity in combination with ‘lookupRef’ and ‘lookup’ to decrease the ‘DomainDaily’ field in the actor's Item Displayer by 1, but with no results...Could someone tell me what formula I need to insert in the spell's Label Roll Message to achieve this? And to reset the number of uses on the following day, I've tried entering the instruction ${setPropertyInEntity(‘self’, ‘sameRow(’DomainDaily‘)’, 1)}$ in the label roll message of the Item Displayer's ‘Reset’ column, but the value of ‘DomainDaily’ doesn't seem to change... Thanks in advance!
Are the uses per day coming from the item, or from the item displayer? Those look like labels, so sPIE() won't change them the way you have it.
They're coming from the item displayer in the character sheet.
The easiest way to do it (IMO) is to have a GM-only number field on the items, which is called into the label on the item displayer, then use setPropertyInEntity('item', ...) to change it in the roll message.
Yes, this seems to me the smartest approach. And about resetting the value to 1 once used, do you think the 'reset' label Roll message should act in the item's props or in the 'DomainDaily' column of the item displayer? Because in the last case i didnt manage to change the daily uses label value even with samerow or samerowRef in combination with setPropertyInEntity...
That fixes itself if it's a number field. something like ${newuses:= item.DomainDaily -1}$ ${setPropertyInEntity('item', 'DomainDaily', newuses}$ in the roll message to reduce it, then on the reset button you could have ${setPropertyInEntity('item', 'DomainDaily', 1}$ to reset it.
actually, looking at the wiki, that first code could just be ${setPropertyInEntity('item', 'DomainDaily', "item.DomainDaily -1"}$ but I have an aversion to doing calculations inside the sPIE(), so I tend to think about it in two lines instead of one.
both of those assume a number field component on the item keyed as 'DomainDaily', btw.
Ok! So i should avoid messing around with item displayer's columns an their values, and use formulas to modify item's props (that could be a number field in this case). So i wasted so much time trying the opposite approach😩 I doubt at this point there's a way to modify item displayer's column value with a formula inside items label Roll messagges. Thanks for your support m8!
any idea on how to help them?
On a side note, do you think it would be possible to add a feature that when someone drag & drops an item inside an item that has an item displayer, it will drop the item inside the item's displayer?
example: I drag & drop an apple on the "backpack" item's name, it moves the apple item from my character to the backpack item displayer
The function of the various item displayers are more like filters than separate bins. The character just has a list of items attached to them, and specific item displayer components are filtered to only show certain items based on the filter criteria in the component.
There isn't a specific attribute of an item that determines that filter, which is by intent. So even the idea of "dropping the item sets the item attribute to match the filter of the item displayer" wouldn't necessarily work.
in other systems, they have class types for the various items set, and the item displayers are specific to those item classes.
So long as I can throw up the error notification, suppressing chat would be ideal. Do you happen to have any examples I can study?
Yeah it's saying some props were not computed.
What's the best way to sum up weight of items on an item displayer?
I want to put it on a label so the players know how much of their max capacity they've used up.
${sum(lookup('<table key>', '<target column>'))}$
thank you!
No problem!
from a functional "why this?" standpoint, lookup() returns an array, which a sum() can handle directly.
good to know. That'll come in handy
Question re: Dynamic Table auto-sorting - I'm not sure if what I'm trying to do is possible but it seems like it should be.
I've got three columns, A, B, and C. I want to use three sorting rules:
- If
Acontains the specific stringAllI want it at the top - All other entries should be sorted on
AASC. - If multiple entries have the same value for
A, they should be sorted onBDESC.
Screenshots of my actual data attached. The part that isn't working is getting All entries to be sorted to the top. I think I must have the syntax wrong?
Edit: I'm an idiot and did indeed have the syntax wrong. For anyone who finds this in the future with a similar problem, my issue was specifying All (the Label) as opposed to all (the key) to sort by. Case sensitiveness!
Hello, when I add an item to the actor sheet of an unlinked token, then reload the sheet (to get values to update properly), the item disappears. I presume this is to make the unlinked actor match up with the base one, but is there a way to avoid this?
Can someone help me with this code?
${alookup('inv_armor', 'Durability', 'ArmorType', '===', 'Head', 'Equipped', '===', True)}$
I have followed the alookup guide, but when I enter this part of the code: 'Equipped', '===', True)}$
No value is given.
Try == instead?
Still a blank value sadly.
Some screenshots of your component configurations would help too
This is the table its pulling from.
Table its going to go into under Total Armor.
The template view of it would be more helpful
Yup grabbing those now.
That sheet looks great, btw.
Oh, thanks man. I have to do more CSS to it, but she does the job for now.
Let me know what else you need.
Let me go down to my pc, give me a min.
Quick question while I read it, what format are the values in ArmorType kept in on the item? Is it a string, dropdown? And is it throwing any console errors?
So just as a heads up. We have been on hiatus for a while so I just updated everything to the updated CSB package.
This is within a piece of armor.
Its a label.
There is also no console error for this.
Just double checking.
the only thing I see that departs is that you have your true capitalized, which I'm not sure matters for the boolean check, but it's a thing.
I'll change it to see if it works
other than that I'm not intimate with alookup() so it might have to defer until Martin can get to it.
I did change it and still a blank value.
A shame.
Another issue I am having is with this code: ${alookup('inv_armor', 'Durability', 'ArmorType', '===', 'Torso')}$
Same code but its also showing a blank value
Do you have multiple items equipped on the torso? Why use alookup() for that versus like.. first()?
Oh, I see you have multiples on the other locations, so having cross-compatibility works better.
I do need the two values in arms and legs combined.
If you do know how to add them together. I would be grateful.
if we get the alookup() working then you can just sum() the result, it works with arrays.
much like Martin said in your earlier conversation, this would probably work better if you can change the Armor Type on the item template to a Dropdown with the various locations available.
I mean the alookup() seems to be working for everything besides the torso armor and the equipped filter.
The problem is each armor piece has its own template.
I had to do that before alookup was a thing to do something similar to what I'm doing now.
Putting a dropdown in each template would just have it hold one value.
I did fix the torso value.
My only problem is the equipped code now
It might be better in the long term to just put all of the armor under one template.
Yeah, I don't see the problem with what you have compared to the wiki either, so I suppose the best thing is to just @formal goblet and hopefully he'll be able to help you out when he's online.
Sorry, I wish I could have been more help.
Is there a way to automate marking a target as defeated, once their HP reaches 0?
Should be True in quotes. Otherwise it seems fine on the first glance.
You can double-check by doing fromUuidSync('uuid').system.props.inv_armor in the console.
${#%{
return entity.system.props.ACTIONS <= 0 ? throw Error('Not enough Action Points') : null;
}%}$
In a character sheet I just use ${item.Quantity}$ and it works. How should I type it in this case?:
Also, is it possible to be able to modify the quantity of an item in a player's sheet through the sheet?
Cause every time they must open the item sheet to change the quantity
props.Quantity
Thank you, I'll try
Worked perfectly, thank you.
What about editing quantity through the sheet?
I might've asked this in a previous day, but I seem to have forgotten if it was possible
is there a way to limit how many items can be put into an inventory/item displayer?
@formal goblet
Adding an item inside an item's item displayer doesn't make the item sheet refresh
which means dynamic values that change based on the number of items present in the item displayer only update when manually refreshing the sheet
this is quite troublesome
example of the issue:
https://i.gyazo.com/575657d07be18517cbe74dd5fbdae3e3.mp4
nvm this only happens if an item is not inside a sheet
this is not an issue anymore
Thank you. It didn't show that on the wiki. So I thought it didn't need quotes.
@manic crypt Would you be able to help me sum those two values together?
So I have a bit of an odd question and I can absolutely explain further. But I'm trying to essentially attach an actor to another actor as if they were a piece of equipment.
And I'm wondering if anyone's ever successfully managed something like that in CSB before
the TLDR version is I'm helping a friend build a game system where travel is one of the central functions of the game, and each vehicle is doing to have a statblock, which it gains benefits from depending on who's doing what
so if I'm driving, and he's navigating, some of our stats could be referenced as bonuses for, say for example, a car.
I've kinda sorta figured out a way I might be able to make it kinda sorta work so far by just asking an item to pretend to have the relevant actor's stats (using the fetchfromactor function) but this creates a small problem of trying to tell the sheet how to distribute the bonuses. Either I have one item display container for the entire crew and figure out a way to tell the sheet who's where and where to put bonuses, or I have an item display for each possible role and a copy of each character made from a different equippable item template for each of those boxes
and I just want to stop myself from creating six trillion templates if there's a better way to do what I want to do
What's the property on items that determines if an item belongs to a backpack/container?
ah so essentailly a party sheet?
That's actually something on my todo list as well.
I haven't figured out how to solve that yet either.
I'm considering an item that refernces critical values from the parent - but then how would i export that information to the party sheet - if i move it to the party 'actor' it'll just... change values to the party. Duplicate? Mirror? 🤔
Either way that's just my thoughts for now. please keep me in mind if you figure out a solution.
Will do, because a party sheet is a potential application of what I'm trying to do!
As far as I can tell it's the template the item is based on.
what values? I saw you getting the isEquipt function working earlier.
I an trying to add the two values together.
So it just displays one value.
Yes. Here is the code as well: ${alookup('inv_armor', 'Durability', 'ArmorType', '===', 'Arms', 'Equipped', '===', 'True')}$
Its pulling in the value of two different armor pieces.
Just put sum() around the alookup()
Thank you. :)
ah. i understand.
left and and right arm are being displayed as 5, 8.
and yes panzer is correct
I didn't know where to place the sum.
I do have one more thing I need help with as well.
alookup() returns an array, which sum() handles inherently.
I am trying to make the Total armor values a button that will transfer their value to the number field armor box.
by the way, i'd recommend adding a total wieght and armor column at the bottom ^^
So for example: Clicking 10 will cause the value to be 10 in the Armor box.
Weight is in the inventory tab. :)
This is just for combat purposes.
Use an sPIE() in the Roll message.
For your viewing pleasure.
Apologies. Can you elaborate for me?
Like what would the roll message be exactly?
not bad, a good outline.
One day I'll actually sit down and apply more CSS to it to make it pretty.
Give me a sec to look at your properties on the template.
^^ now that's a timesink if i've ever seen one haha.
if you're interested, I do sell CSS help/design work.
Scyrizu's stuff is amazing to look at, if you haven't seen his progress shots.
appreciate it panzer ❤️
still a long way to go.
nearly done with the character creator, party and guild sheets up next.
Do you have examples?
I do programming for a living, but I hate it with a passion. So maybe I'll time sink this at some point.
RED, quick question, is that a dynamic table or a standard table?
Take your time.
@ornate junco this was my last post about it
If you're talking about this. Then its just a regular table.
Ok, so this one will be for the head only, and you'll have to tailor each one of the entries for the right key. Stuff in <> is "replace with your values"
Amazing job my dude.
How did you do the xp counter? I've been wanting to do something like that.
man, i also want to figure out how to get information in tooltips, so you can hover to see weapon properties 🤣 but honestly at some point i'm just sinking time into it that my players wont care about haha
I just never sat down and wanted to do the code.
thanks ^^
and what do you mean? the gold bar?
The 0 and the 0 out of 1000. I'm making the assumption when you reach 1k it then shows that 0 golden box switching to 1.
In the roll message for the Total Armor field: ${setPropertyInEntity('self', '<HeadArmorKey>', <TotalHeadArmorKey>)}$
ah i understand the box, not the dispaly.
prefix: XP:
numberfield
separate label
prefix: of
content ${xpMaxFormula}$
so the "max" display, which is the "hard" part.
or you could reference it from elsewhere
and no, the 0 in the golden box is the character's level. so... one moment.
Ooh I see. So each level it shows the amount of needed xp?
Thank you thank you. Let me try this really quick.
You are the best.
Thank you.
No problem.

Would you be willing to share how you did all of that?
I would love to implement it.
I would also be willing to hear your prices to make my sheet look fancy. So I don't have to do it.
yk i just realized my hp shield broke. again
sad trombone
its overlaying rather than pushing
lord give me strength
i'd be happy to give you pointers?
i pitch in here and there to be helpful ^^
but if you want like a full walkthrough, or anything time intensive that's when we need to start talking numbers
currently the going 'template' rate is like $35 for small project components, etc. $100 for a tutorial session ~3 hours long.
design works, (just outlines/sketches/small assets) are about the $35 rate.
building your whole sheet out for you would be discussed on what you want.
Oh not the whole sheet at all.
Just a few things. Would dming you work?
So I don't clog this chat up.
ofc
as far as the leveling system, incase anyone wants something similar.
my level button:
${xpValue >= requiredXP ?
(levelValue == ceil(ref('levelValue') / 5) * 5 ?
(milestoneValue >= requiredMilestones ?
(setPropertyInEntity('self', 'levelValue', ref('levelValue') + 1') ? notify('info', 'Congratulations! You have leveled up.') : '') :
notify('warn', 'You do not have enough Milestones to level at this time.')) :
(setPropertyInEntity('self', 'levelValue', ref('levelValue') + 1') ? notify('info', 'Congratulations! You have leveled up.') : '')) :
notify('warn', 'You do not have enough XP to level at this time.')}$
man it's been so long since i made that... i dont even remember it 🤣
reference level value / 5 * 5 round up? for what purpose
ooohh...
/5 * 5 checks if it's a multiple of 5.
if you have enough xp
- check if levels are a multiple of 5 if so check milestones
- do you have enough milestones? Yes Level. No sent warning no milestones.
- level is not a multiple of five, skip checking milestones and level up if you ahve enough xp.
this is because my system does both XP and milestones to feature "bottlenecks" in progression.
wizards cant just murder 10000 goblins to become a god. sorry. you must study in there somewhere. you also cant just read every book in existence, you must practice too.
omg i just spent 30 minutes trying to fix my health bar code 🤣 it's entirely functional. it was busted because i leveled down the character and therefore it had more MAX HP than it should and it was messing up the display.
jeez.
😩
i guess i should add a condition for that...
min(currentHP, MaxHP) at least to handle display properly
Look awesome. How did you get the different colors for the bars?
target the custom-system-meter-fill class under the class of your meter
so in my case
.healthBar .custom-system-meter-fill { background-color: rgb(rgb color here); }
Thank you for that. I really need to start getting my hands dirty with the CSS. I have the basic functionality in place, but I need to start prettifying it.
Easily one of the nicest sheets I have seen made in this system. Kudos.
Thank you!
It's a lot of time cycling through values figuring out what looks good any why lol
^^ but like i mentioned to red, I'm always happy to talk shop, but i also take commissions
right now i'm struggling on getting the math for a HP redux to work.
rather -- it works but, i want to make it always reduce at least 1, but otherwise round up in the player's favor.
you have fractional damage?
i was really hoping to avoid tertiary logic for this 🤣 but i guess not.
i have a "wound system" that takes away a % of max hp depending on the tier of wound
tier 1 = 10% each
2 = 35%
3 = 95%
-- but, onlly the highest tier counts.
so if you have 2 tier 1s and a tier 2 only the tier 2 counts.
so hpMax - 35% in that case
not inflicted often but a way to make certain damages more impactful rather than just raw HP.
Oof, that's a complex one to try to map out. Yeah, I think you need conditionals for it.
i've gotten it to work, less always being at least 1 HP
i could just floor round, but i want it to be in the players favor except for the first HP
Always being 1 meaning that if you only have 6 HP and you take a T1 wound, you still lose 1 HP, right?
yes--
but i only want it to be 1 IF it's the first hp is the issue im struggling with
for example...
102 * .9 = 91.8 = 92.
I'd like to work in the players favor if it's > 1
in the case of
8 * .9 = 7.2 -- it should be 7 since it's the first hp
doesnt make sense to lose 10% and it = 0 lol
cant use max because
7.2 > 1
🤔
You could use int() for it?
doesnt that just conver it to an integer?
wouldnt that be the same as round()?
if that's the case, i'm trying to always round in the player's favor (why im using ceil) UNLESS the result is < 1hp
i can brute force it with logic...
if outcome = maxHP ? -1 hp : ' '
lol
but thats.... inelegant
maybe something like
min((max HP - 1), ceil(max HP * .9))
so that way it takes the ceiling, and if it's higher than max - 1, it takes max - 1 instead
i did think about that, yet it doesnt work in the sense you can incur that 10% penalty up to 3 times.
so that'd be
-10% = -1hp
-20% = -1hp
i could take the % and /10 and subtract that? 🤔
10 % = 10 / 10 = 1
You'd need a non-visible variable somewhere that decides which damage value to take anyway for the selection of the wound teir.
hm
maybe like
min((max HP - number of T1 wounds), ceil(max HP * (1 - (0.1 * number of T1 wounds))))
part of deciding which fraction to use would be summing the assorted wounds.
everything's done EXCEPT the 1hp rounding haha. i just realized that issue about 30m ago when i started working on it. but the logic is killing me
i'm trying to avoid brute forcing it with ? : notation
tbh a really gross nested ternary might just be unavoidable
if result == normal max ? take the % value / 10 and subtract that... : do it normally
man i have so many of those already haha
i think im actually going to make a new invisible counter called woundCount and have it sum the number of wounds * their tier.
and min(hp-WoundCount, hp-%)
thanks for letting me bounce ideas off you two
worked like a charm 🙂
Nice.
hello, this thread is for building your own system using custom system builder.
you may have better luck in #discussion - but i have no clue otherwise
if you want to build that system this would be a good place to start ^^
Yes, I know, so I came here to inquire. Perhaps I can find character cards and item templates that are suitable for this rule, haha
best of luck then ^^
has anyone figured out how to use the get isGM() function in a visability formula??
Other than the advanced setting on the component?
yeah, that operates as an AND i need an OR
No, I haven't run into that one yet
😅 well if anyone knows ping me, else i'll return with answers eventually
burried in the repo i found:
4.2.15. currentUserHasRole
currentUserHasRole(role: String): Boolean
Checks if the current user has at least the specified role.
Argumentsrole : String
The role the current user has to check against. Valid roles are:
none
player
trusted-player
assistant-gm
gm
yet currentUserHasRole('gm-assistant')
does not work 🤔
assistant-gm
that was an example straight off the wiki
but no assistant-gm doesnt work either
in fact:
Custom System Builder | Undefined function currentUserHasRole Error: Undefined function currentUserHasRole
i wonder if it was removed
it's not in the current API
i guess they removed it when they added the dropdown... shame
are you just trying to have the assistant gm able to see something? Because it's a minimum role to see the component...
i mean idc if its gm or assistant lol
i have a textbox that when filled in, i want to disappear for the player (which i can do with count( ))
but i want it to remain if i open the sheet so i can clear it out easily
i may just say fuck it and leave it tbh, but 😩
ah i see that currentUserHasRole isn't released yet. 😦 sad
Ah, I see. Conditional visibility, yeah. Can you do it with a CSS script on the character sheet?
No, that wouldn't work either, now that I think about it
i havent figured a way to make a whole label visable or not with css conditionals.
maybe a span or something inside of a label haha
I mean, you could check the role with JS, then if it's not GM, set the div size to 1px to hide it, if that doesn't mess up the rest of the formatting.
heh... if i could do that, i'd just set the visibility to none -- i just dont know how to work JS lol
alright i'll just let it say regardless of content. it's fine.
i trust my players, it was just a "security device" anyway. i prefer to build them where possible to prevent accidents but... its not worth this much
with all these feilds, its easy to make changes / mistakes without meaning to -- and my players are not very techy
maybe i just need to make one big edit lock checkbox haha
reference that
I mean, it's a thing for the 5e implementation.
yeah, haha
and that confuses my players 🤣
the number of times they go "why cant i change this!?"
i even break it down for them sometimes haha
"click the wrench on the top left..."
"what is edit active effects"
"yo bruh i said LEFT not RIGHT."
friggin DAE
I just turn that stuff to not visible for them. They don't even want to know the nuts and bolts i get into.
As long as they see that lightning bolt go out.
... you can change dae wrench visability?
... lemme just... launch my 5e server real quick.
On an actor sheet, I have an item displayer that should only ever contain one item. I want to pull a value from a specific field on that item. What is the simplest way to accomplish this?
i think we're going to need a little more detail than that.
are you trying to pull it to the item displayer? to a formula?
To a formula - specifically to a label
You can add a column with item.key to pull the value from that item. Then you can use find() to use it elsewhere. If you don't want it visible to players you can set the visibility on the column component advanced settings.
Ah, smart. Thank you!
im not sold you need to have it as a column on the displayer, though that may be easier if you want it that way (and can set it's visability to none)
you could use js to reference the item by name
If you don't its more steps, since the item in the displayer could change
I read it as 'only one item at a time' as in an equipped armor set
i mean more like
check items in the actor that use a certain template, save it as a varaible, then call that variable in the next line getting the component key you wanted.
so
get items that use _chestplate == x, get the value of the component key equipt in item x
Yeah, it's a Class. While I can't strictly prevent more than one from being applied, that isn't a state I need to plan for.
Depends on how he's using his templates in that case.
you could have a world script checking if an item exists within the actor with that tempalte already, and if so remove the new item or the old item.
Yeah, that's an idea. I assume there's a hook on adding an item as well.
yessir
Right, or throw a warning and cancel the addition.
i dont know if you could cancel the addition exactly, but you could definertly remove the one just added and achieve the same effect
point being, very doable
I think I found a simple way to do the thing I wanted to do - I just added an item modifier to my equippable item template so that the label on the actor is set by the field on the equipped item.
This doesn't solve the 'What if they add two of this item?' problem, but.
hey, progress is progress.
i've spent too many hours today trying to handle an erronious padding on my sheet lol
Your sheet is incredibly slick. I am not looking forward to the CSS phase.
i really appreciate it haha
but to put it in perspective, i literally spent about 4 hours today trying to handle a bit of extra spacing in the health bar. i mean litteraly 6px.
completly time i could have used doing something functional
but i couldnt let it go haha
🤣 it's okay. the void is used to the screaming
Sure, I made something for our BattleTech/MechWarrior game where you can add a "'Mech" actor to a "Person" actor. I didn't bother to update it above Foundry 11 yet, through it technically should still work with 12, mostly. It's not that much code: https://gitlab.com/Akjosch/csb-component-additions
Feel free to use that code as inspiration for your own module if you like.
Oh dang this might do exactly what I need! I'll take a look at it, thank you!
Hey guys, I've recently started playing around with making my own system through CSB, I was wondering if anyone would be able to help me with some code. I've got a dynamic table that players can add spells to, one of the columns is the "Overload Cost" of the spell. On the character sheet there is a number field called "overload" that I want to be increased by the cost of the spell each time my roll button is pressed. Would greatly appreciate some guidance 🙂
${#currOL:= overload}$
${#newOL:= spellOL + currOL}$
${#setPropertyInEntity('self', 'overload', 'newOL'}$```
That should just get added to your roll message. I guessed about the column name, you'll want to check that the keys are right before trying it (column key for "Overload Cost" and key for the overload number component).
I've changed the column keys so that its correct, but it seems to just send the formula to the chat box as text
I forgot to close one of the commands. Try again with the updated stuff above.
it was literally just a matter of a closing }$, they sneak in sometimes 😄
It doesn't send anything to the chat now, I think its erroring somewhere
Nevermind, it seems to work now
The property is system.container. This contains the ID of the Item the current Item is stored in. If the Item is the root element (Actor ignored), then system.container is null. You can also use CustomItem#items, CustomItem#getParent() if it should help you.
Interesting to see that someone already created an Actor Displayer Component (or something similar). I had a similar idea because my system uses vehicles and drones and those need the stats of the operator in some places. Do you also handle update dependencies between Actors or do you not care about that?
I mostly didn't pay attention to that, since it's mostly used to simply display some base stats of the vehicle along with the type (actor) name and image. I had some plans to allow for more automation, but no time or pressing need to do so yet.
Hello im creating a system from scratch using Custom System Builder and Freeform Sheets
I created attributes on my Character Template but Freeform Sheets isnt detecting it how can i resolve this problem ?
How does Freeform Sheets work? Never heard of that
That's a thing to personalize your character sheets using a pdf base, you need to add each attributes individually
(sorry for bad explaining here the link https://foundryvtt.com/packages/ffs)
What's the content of hidden?
Does it try to fetch from the template.json? Because that won't work with our system, because most properties cannot be defined statically by design: https://gitlab.com/custom-system-builder/custom-system-builder/-/blob/develop/src/template.json?ref_type=heads
i think not (not sure tho)
It does!
That's from an old feature-branch, which is not in the current version obviously. Only main (stable), beta (beta) and develop (unstable) are published installable versions.
I figured it was removed for some reason, or not yet added.
any chance something similar exists or is in the work?
I'd love role for conditional "OR" permissions.
Check game.user.role and CONST.USER_ROLES in the console. With that, you should be able to build your own little script to check the permission level
The part that stymied me on that was he had two conditions: User == GM or Field == blank (changes visibility to player). That second condition was what seemed difficult. Easier in script, for sure, but having a conditional visibility modifier resident in CSB might be an interesting feature, although I'm not sure how easy it is to implement (is it functionally similar to the item visibility filters on item displayers?)
The fact that these are visibility formulas makes conditions possible
is there a command i could put in a macro/label roll message that would reload the selected sheet before running the rest of the code?
%{await entity.reloadTemplate();}%
i tried putting it on the sheet and got this error, putting it in the macro gave the same error but for the entity part of it
Different delimiters in the sheet
so putting this in the roll message did actually work but it didnt actually reload all the values from the token thats being targeted until i roll it again.
and i guess it has this error thing at the top but i dont really care
What are you trying exactly
im trying to make a macro/label roll that reloads all of the stats that it pulls from a targetted token(otherwise it uses the stats of the last targetted token) before running any more of the code
Just pull everything you need within the Label Roll Message. You can't circumvent the anomaly, because the value fetch happens before the reload
Is there a way to link notes in a character sheet?
Link as in click and open the journal, or to be able, for instance, to see the content of a longer text input component on an item in the character sheet?
click and it opens the journal
Also, Is there a way to do tabs outside of the Tabbed Pannel? I am coming from sandbox where I was able to organize things wherever I wanted, but for some reason I cant have things next to one another in the tabbed pannels
You can add columnated panels to divide the space up, but it's pretty set in filling top-to-bottom.
As for the first question, I haven't tried, and I'm not sure how much of the core linking from something like 5e is based on Foundry versus how much is from the system itself.
Is it a fixed journal entry you're looking for, or a link to like a background section that might vary?
I just want to have a way to link a journal in a character sheet.
You can drag/drop a journal entry into an RTA to create a link to it that way.
Would anyone be willing to send me screenshots of their finished CSB character sheets? Id love to see what some finished projects look like.
Oh awesome! Thank you
Once the RTA is saved the link becomes clickable
Thanks!
Looks like that's core foundry after all. No problem, good luck. If you scroll up a bit or search for posts from Scyrizu, he has some very slick looking sheets.
There's also some finished sheets that have been linked on the wiki, you can download those and import them to see how other people have done their finished work, although some of them are from earlier versions of CSB and might not work as well.
Okay thank you! I appriciate it!
What are the benifits of switching from sandbox to CBS? Would it be easy to learn (I dont know how to code)?
Overall, I found the documentation on Sandbox a bit incomplete and nonspecific. From what I remember, Sandbox had a bit less customization available, but it had more stuff pre-organized for a user.
The coding part of CSB isn't exhaustive, but it's not exactly simple either. I would say that at this point, I don't know how to code either, but with some logic and by keeping the wiki handy you can work through that.
In the overall, Linked and Martin have been working towards different goals than Seregras or Ramses, so they're not directly comparable. In the end, it's going to be based on how you feel when working in each. I found I was able to get my head around CSB easier, and I tried all three of the major options (Sandbox, Simple Worldbuilding, and CSB) before settling in here for tinkering.
So, I have an equippable item template that contains a dynamic table. Each equippable item using this template will add an arbitrary number of rows to that dynamic table, so depending on the item it could be 1 row, 2 rows, 3 rows, etc.
On my actor sheet I have another dynamic table with the same number of columns.
Ideally, I'd like to use an item modifier on my equippable item template that causes all of the rows in the dynamic table on the equippable item to be added as new rows in the corresponding actor table when the item is equipped.
If I understand correctly, this is actually fairly complex - I'd need a script that iterated through each column of each row on the source table and copied each value over one by one. Does that sound right, or is there an easier method that I'm missing?
I agree that sounds pretty complex; you're working with something like Diablo Affixes then? The main issue is if there's no maximum number of rows. If you can leave some rows blank (they'll return blank results from the blank rows in the item) then it's less of an issue.
The item template I'm working with is for a character class. Each class has an arbitrary number of conditions under which the character gains a resource - ie, "Gain 2 resource units per round" or "Gain 3 resource units the first time each combat you do >10 damage in a single attack", etc.
What I'm trying to do is:
- List these conditions as part of the definition of each Class.
- Copy them somewhere prominent on the Actor sheet to help the player remember what they are at a glance.
This would be reasonably easy if each class had the same number of conditions, I'd just use a text field on the item and a label on the actor for each one, but since it is a variable number a table seemed useful.
But since there isn't an easy 'Copy all the rows in table A to table B' method I may go with a slightly clunkier but much simpler solution.
You could create an RTA and have the list there, then reference that on the sheet in a label.
That makes it non-editable by the player and lets you position it wherever you like.
Thank you very much for this answer! Yes I also found sandbox's documentation lacking, but their discord server really helped me. They've got a great community too.
I appriciate you getting back with me so quickly on everything. It's been a nice welcome.
I'll be sure to give CBS a try, expecially since Sandbox is out of development currently.
like in this image, the verbose description part is all included in the TestAbility item.
Yeah that's a useful solution, good idea.
My other thought was to find the max possible number of conditions, make paired fields for each one, and just hide any empty fields from the player. Your method is simpler provided I don't want to add checkboxes or some other foolishness.
This is the configuration I used:
Oh interesting, thanks. I assume you're counting on one ability in the displayer at any given time?
Correct. I have to set the ability attribute that's checked by the item displayer filter, so even if a player DID manage to get two of them on there at a time, I would still have to configure it to have it show up. They're not intended to be changed much (if ever).
Thanks. I have a couple of other cases where that specific implementation may be handy, actually.
No problem.
Hey folks,
Does anyone know if Elevation Ruler / Terrain Mapper is compatible with CSB?
I've created a custom movement handler that's basically D&D3.5 (walk/run/fly/etc) -- and I know that's working. On my sheet there's a movement value (system.props.movement). When I tell Terrain Mapper to have a given effect of 0.5 to system.props.movement, it's actually multiplying movement * grid scale (so if it's a 5 foot square, and movement is 30, one tile is 150 feet).
yle
Yle?
I'm sorry, I don't understand
I don’t know this Terrain Mapper, but from your example it sounds like with a setting to 0.5 it counts every map square COST only a half movement point.
So, if you change setting to 2, it should count every map square with double moment points.
Just a idea
Hello, how do I color this part of the character sheet? I tried using the f12 to find out what to put into the template code and pasted it but it just turns every table cells red
.custom-system-cell-alignLeft, .custom-system-cell {
background-color: rgba(106,13,13,0.3);
}
(using custom css module, i also dont know what im doing)
I tried using the name of the panel (strength_input) instead but it looks too narrow
Edit: lol I'm an idiot, it's working now!
Good theory, but unfortunately this is happening after a single tile/square, rather than 5 feet counting as 10 feet, it's 5 feet counting as 150
Hello, trying to figure out a formula here. Essentially I want a "radio-like" rollable button for each item in an item container. Each item has a checkbox called Active. The approach I decided to follow is to first set all Active checkboxes in the items of the item container to 0 (i.e. false), and then set the item who's rollable button I am pressing to 1 (i.e. true).
Here is my current formula, which doesn't work:
${setValues(lookup('Item_Displayer', 'uuid'), 'Active', "target.Active==0") and setPropertyInEntity('item', 'Active', item.Active==1)}$
What happens is that for some reason all items in the container get toggle their Active checkbox between true and false after each roll button click. And also I get this error message:
Custom System Builder | Cannot convert "Item Gamma 2 => {"Active":true}, Item Gamma => {"Active":true}" to a number Error: Cannot convert "Item Gamma 2 => {"Active":true}, Item Gamma => {"Active":true}" to a number
Item Gamma and Item Gamma 2 are the item names.
Help would be greatly appreciated.
So I've tried hiding roll buttons based on whether or not component exists on the item
item.wpn_acc == 'null'
actually works, but I see a bunch of errors popup in the console as well. I don't want to do it in a janky way only for it to break later. would there be a better way of doing this?
You're trying to convert a boolean to a number. You can just use false to set all Checkboxes to false
You're using == for a string-comparison, which doesn't work. Remove the quotes from null, because that is not a string.
I've tried it, but for some reason it still seems to toggle back and forth between true and false rather than remaining at false.
It looks like this right now:
${setValues(lookup('Item_Displayer', 'uuid'), 'Active', "target.Active==false")}$
Because true == false returns false and false == false returns true
Oh, okay. I'll have to figure something out then, thanks!
Ok, removing the quotes from null hides all the buttons now
even for the weapons, which is when they should be showing
Just use a literal value like false You don't need any checks there, so why do you compare it with the current value?
That makes complete sense, yes.
I fixed it and the radio-ish function works, it looks like this if anyone is interested:
${setPropertyInEntity('item', 'Active', true)}$```
Except if you click on the button again, it toggles them all again... him...
Nvm, fixed it again, thanks Martin.
${item.Active==0 ? setPropertyInEntity('item', 'Active', true) : ''}$```
Going to expand my query a bit:
Has anyone used Elevation Ruler, Terrain Mapper (or something similar) to achieve terrain with reduced movement with Custom System Builder?
How do I put a horizontal rule into the description for an ItemAlteration rule element?
oops, wrong channel
hey how do you round down in CBS?
floor()
thanks!
Trying to use a visibility formula in a user input template. I have an item displayer showing the item "Ability." The item displayer has a label which prompts a roll based on that item. When I click on that, I want one of the drop downs on the input template to have a visibility formula based on a checkbox from the item, let's say it's got a Component Key of "Weapon".
How would I check if that item's checkbox is checked for the visibility formula? I've tried both 'item.Weapon' and just 'Weapon' - also tried setting both equal to true, as in item.Weapon==true and that didn't work either.
Any thoughts?
y'all, check this out!
le fin
Wow, that's impressive!
That's darn Impressive
Just wondering, can I put code into a rich text editor? Like if I have a description that includes a formula and I want it to compute, can it be done? For example I have and item that has a description that says "x mission retries. This allows the Cogsune to respawn from a spare core on a Lumen ship. It will take several hours for the core to arrive." I have the x calculated on the sheet as 'x_num' and I just want to pull it into the description.
I don't think so. The RTA has its own code that's resident to Foundry, not CSB. I tried making some fixed links and it didn't work, and <script></script> in the css just clears itself on save, so it's probably not capable of that.
ok
How can I achieve the effect of automatically calculating formulas by clicking on the skill name, similar to the DNd5e system? I need to associate this with the code in my dropdown menu and automatically roll the d10 dice with a skill level of 2+. Can someone teach me?
When you type code into the "Label Roll Message" section of the component, the name becomes a clickable item that transfers the code in the roll message to the system. For a quick version, try typing in ${[d20]}$ in one of the skill label roll messages.
I don't read japanese, so I won't be able to be very familiar with the specific words on the screen, but I'm talking specifically about the label where you typed the kanji in to the left of the dropdowns, not one of the dropdowns.
Unless you're already good with that and you're asking how to pull the value from the dropdown to the roll message on the 2nd image?
I'm sorry if I misinterpreted your question as being more basic than it was, I just noticed that your sheet is pretty well developed compared to the question.
This is a Chinese character... not Japanese. Then I tried and found that multiplying by a certain numerical value resulted in a multiplied number instead of a separated result. How can I solve this problem?
Could I see the code you're using? Also, apologies about the language misunderstanding.
For example, for this external skill, the base value is 2, multiplied by the level numbers 1-3 inside, and the results are obtained separately
${[d10]}$
It's okay, I can understand, haha. For various reasons, when you see these fonts or cultures, you will think of Japan. I can understand, and there's no need to apologize or anything
It was more because I had just been seeing messages from かまいたち and had it on the brain. Normally I think of them as Hanja instead.
So the goal is to roll the multiplied number of d10s when you roll?
Yes, but the effect I want to achieve is to click on the Chinese character (default is 2d10) and then add the number d10 in the box, throw xd10 points separately, and list the results
2+x=y, the result of yd10 dice count, haha, I hope the translation software can accurately translate it
Please replace anything shown as <> (including the <>, don't leave those in) with your appropriate key.
${[!(2 + :<dropdown key>:)d10]}$
If you know the target number for each die, you can suppress the total that's sent to the roll message by altering the roll after the d10 using Foundry's normal dice formulae
I used ${[! (2+:<waigongdengji>:) d10]} $and ${[! (2+: waigongdengji:) d10]} $, but it seems to have no effect and there is no response when clicked. Did I misunderstand? Or is it?
Could I see the configuration for the waigondengji dropdown?
remove the '<>' from your roll message
those were just to indicate that the words inside them were referring to a specific key
correct
But even so, it was not successfully activated and there was no response
is there an error in the console?
It should be the second tab at the top, you're on the "Elements" tab
remove the "button-green" filter
Heey im new to the system and have some questions. If someone can help me it wuld be nice.
- Which modules do you recomand to have for like more opions if there any
- is ther an option to make HP bars or something else
- is ther an option to calculate between stats ( like its in dnd that 10 = 0, 12=1, 16=3 etc.)
It's weird to me; I have almost literally the same thing in my test label and it works fine. (see pics).
(TTarg is just a handy key I recalled right away)
${[(2 + waigongdengji )d10]}$
- There's a limited number of mods that work well due to the way that CSB is implemented, it sort of works aside to normal foundry's JS system.
- Yes? Meters can be bars and you can have bars on tokens.
- Yes. Math.js is natively implemented and can do that calculation
floor((10-stat)/2)
Is it a problem with the input method? Do some symbols seem to have problems in different translations? Can you either use your input method to type a paragraph of my message and send it to me?
Okay, I succeeded. It seems that some code errors were indeed caused by input method issues
Ah, that makes sense.
How do I set up the code here? I want to add multiple d10 dice functions according to my own preferences
Like an input message that pops up before the roll resolves?
It's about popping x dice together, and this dice is something I can control
popping as in adding, or rolling? For instance, when I roll a skill for my sheet, this is shown before the roll is resolved: (In order: Attribute For Roll, Skill Roll Modifier, and Difficulty of Check?)
At first ty for the help ❤️
For point 3: How can I transfer the stats automatically? I'm trying to write a stat in such a way that its base amount is always 1 and increases by +1 for every 100 (10 = 1, 100 = 2, 200 = 3, etc.).
Does it increase only at the 100 point, or is it fractional?
And that modifier is added to the number of d10s that are rolled?
only at the 100 marks
sum(1,int(stat/100)) would do that.
assuming that the key you're setting for the modifier is Modifier, and modifying the earlier code:
${[(2 + :waigongdengji: + :Modifier:)d10]}$
Ah, no, no, no, it's independent. Just choose d10 to increase the number of dice
Could you give me a more detailed description of how a roll is resolved? I think I'm misunderstanding, sorry.
How it would be resolved in a tabletop situation, I mean.
It's like I can choose a few d10 dice to roll myself, that's what it means
Ah, ok. No target numbers or anything, just you click a button, a popup occurs, and you select how many d10s are rolled?
yes
One sec
?
Wait a moment, please.
ok
One sec is a slang term, sorry.
ha ha
?{dicepick:'Dice To Roll'[number]|0}
)}$
${[!:dicepick:d10]}$```
wich component type did i have to use for that?
You need a number component with the key stat to start, then a label component with that code in the label text section, encased in ${}$ to work. So it would look like ${sum(1,int(stat/100))}$.
Oh, he failed, he can't run it
Could I see the error?
You have to apply a number in the popup.. change this part to be : [number]|1}$ and it should fix the possibility of having that error unless you change the dice to roll to be 0
That number sets the default value that will appear in the popup
Like that?
No, this should be a label type component, and the formula should go in the label text field.
sorry im kinda stupid xD
Hm. It's working for me, maybe it's another input issue?
No worries, it's a bit to wrap your head around to start. You can also use the Prefix field to include your Dice: in front if you like.
That looks like it should work, does it show up on the sheet?
You have to have a test character created, and apply the template to it. Then you have to refresh any time you change the template in order to see your changes on the character.
${#concat(
?{dicepick:'骰骰子'[number]|1}
)}$
${[!:dicepick:d10]}$
The screenshot you just sent is from a Template.
sry
quick question is your name german? ^^
is that even right xD
It's in german, but I don't speak or read it very well. I'm American, and functional in Korean. I just liked the name way back when and I've been using it for like 30 years now.
i like it and im german xD
Tanksquid or armored xD
That looks right, honestly.
that seems to be right, let me test it a sec and I'll see if I gave you bad code. I'm only a hobbyist.
Yes, it works on mine.
That's unbelievable
Martin, the guy who's the dev on here (Martin1522 [CSB Dev]) is also german, so if you feel more comfortable asking questions that way he has no issues replying in kind.
im okay withe you but i can ask him is he online?
No, he's offline right now, probably at work, but he checks in regularly, so say hi if you see him on. I'm kind of juggling you and 池鱼 right now, working on your thing now.
than i will wait on Martin ty for your help ❤️
do you think i can write a privit message or better to look for him being on?
I would say just wait for him. I'm still looking at your thing, I think I might have messed the math up on it and I'm double checking the commands.
Haha, it still hasn't been resolved, but thank you, big shot. Wishing you abundant wealth and all the best
I'm sorry I wasn't able to resolve it, I hope you're successful as well!
try replacing the int( with floor(. Should do the same thing, I might just be making up a command in my head.
omg it works TY ❤️
can i ask an additional question xD
Of course.
Hello, I need your help. i not really good at coding... so i need help xD
I'm looking for two things:
First, I want to create multiple d20 rolls and test the number of successes. i tryed ${[!2d20]>12}$ but it just show me false or true, and not how many dice are bigger than 12 (12 is a exemple)
Second, I've been trying for a few days to select multiple tokens and have them roll. But I can't find the line of code to select multiple tokens into my coding.
(last sorry i'm not good in english but i try)
thanks if you find the time to read me
For the first one:
${[!2d20]cs>12}$ should be what you need.
i made a Helth bar (Thanks to you xD) now im looking for a way to display it under the token as bar i guess i mad it a bit stupid xD
i will send my 3 parts sec.
ERROR ( i already try this)
oh, sorry. I didn't type it properly.
${[!2d20cs>12]}$
oh god thanks you , this work ... my lord, my swords his yours
it looks like the value on the left is the hp max one and the value on the right is the current hp?
yes
For the second thing, what do you have for the script so far? It's not going to work in baseline CSB code, it'll have to be JS.
ok i expecting this response, but i wanted to be sure if a another solution could be possible;
SO i guess i need to check for hard coding XD
but thanks you for your time
It could be done in a macro, or in a roll message with JS code in it (%{}% style), but it's not as simple as the CSB code normally is.
In fact, it might not be doable in a roll message alone, probably only in a macro.
Though you could have a fixed macro that calls a specific roll for all selected targets if you're thinking of a certain circumstance.
@edgy barn Everything about the bar you set up says it should be good. Is it going ok? I recreated a test version of it as well.
it works but i cant have a bar under the token and addid the HP from the token
hope you understand what i say xD
Like this one?
Ah. Yeah, that's a limitation of the system, sorry. It's not hard-coded together like the more specialized ones.
Actually.. wait.
so I can go in and edit the number on mine.
What do you have the resource bar set to?
Those are separate values, btw.
And it won't let you right click and edit that?
Oh, because you don't have a max set on the hp_status component.
i can eddit the hp in sheet withe token but dont see a bar under the token one of bothe is easy to make but bothe in one is not possible i guess xD
So go into hp_status and set the max in the number field to ${hp_max}$ and it should work.
You might need to set the min to 0 as well.
Then refresh the character and see if that fixed it.
thats work better but i guess i have to live without litle Bars under my tokens xD
nvm
im stupid
ty so much
it works
No problem 😄
but i find a new problem again like the calculate bevor
i want the Max hp to be 10 + 1 per 10 Endurence over 10
(End 10 = 10 hp, 20 = 11, 30 = 12 etc)
end_score
i tried ${sum(10,floor(end_score/10))}$ but that means 10 end = 11 xD
and so on
in the hp_max label field: ${sum(10,floor((end_score-10)/10))}$
so at 10 end it adds 0.
oh ty it allso works xxD
Does having a lower end affect anything? Is it possible to have one below 10?
normaly not but magic will make the same with MP and magic can be 0
at 0 magic a char have 0 MP
In the case of MP then I'd use: ${mag_score > 0 ? sum(10,max(0,floor((mag_score-10)/10))) : 0}$
that's a conditional expression, like an if/else statement from javascript. formatted as IF (boolean) ? Then : Else.
so it checks to see if mag_score (I made that up, change it to what you like) is greater than 0. If it is, take the formula. If not, set it to 0.
perfect you helpt me so much ❤️ , i try to make a smal and easy systhem for a Danmachi (anime) like setting and not realy codet ever. I will lern it buit yea not that easy
No problem, I like helping people. Let me know if you have any questions, I'm pretty good about keeping an eye on here.
i will but i guess it do not take long xD i figgert some out for me but i guess all my over works are a bit clumsy or to complicatet for what i want to do xD
It'll get easier as you practice.
When you're ready to talk about rolls is when it gets slightly more complicated. And then there's making it pretty, which is something I'm not good at at all.
yes i tryd to make wapons tamplates and inventorys that works but the filter systhem confuses me xD
the biggest thing there is getting it to be a boolean statement. Something that resolves to true or false.
whjat xD
is there an option to change the collor of the bars ?
This item displayer is filtered to only show items that have the _Weapons template and that have the Readied check box on the item checked (so item.readied == true):
Via CSS, yes.
em, whats that mr. God helper xD
it's what replaced html in a lot of applications related to formatting websites and such. That's the part that I'm not good at. At the stage you're at I'd think about just leaving them at the default color for now.
https://www.w3schools.com/css/default.asp is the tutorial website that gets tossed around here a lot if you want to do some reading on it. There's a mod you can install called Custom CSS that lets you edit it pretty easily, but it's not awfully easy even with that.
@manic crypt could explain how you hid the template drop-down in your character sheet?
Sorry? I don't think you can, for the GM. It's not visible to players though.
ah ok!
You mean this part, right?
yeah
This is what a player login sees:
Liliruca!
Thanks!
And here's the man himself. Martin can help you pretty much do anything as long as you're willing to learn to do it.
Yeah, I've heared the summoning calls
I think I was able to keep everyone answered well enough to keep them from tagging you. There was a question about how to do multiple rolls, which I think needs to be a macro because of how rolls are called, right?
You mean something like reactions?
It was in the context of having multiple tokens selected and having each do a roll, like calling for a Perception check from a group of monsters.
Should be easy with game.user.targets.forEach(target => target.actor.roll('rollKey'))
Right, but it would have to be in a macro, not a button, correct?
or, I should say not in a label roll message.
Macro or Script. Not a regular CSB Formula
Right then, as I thought.
Label Roll Messages can execute Scripts btw
Oh I see. So yeah, it could. Interesting thought for a GM panel actor.
hey i don't get what's wrong with that it sends an error instead of either true or false value in the chat message but i saw in the documentation that you can use text wit the 'text' when i use this code:
${#Roll:=[:food:]}$
${Roll<=2 ? 'Lower Dice' : 'Your fine!'}$
food is a dropdown with 1d6,1d8 etc.
maybe someone here has an idea
Syntax is fine. Validate the content of food with ${food}$
And the error message in the console would help
Take a look at the bottom of the error message. That's not what you've posted
Probably because you've used the Rich Text Editor in the Label. That one converts special characters like < to <
so i can either check something and have an ugly ass chat message or not check something and make it look pretty?
You can make it pretty, go back to the normal view and fix those issues. The formatting of the result will stay the same
well that worked thank you very much i thought i was beeing dumb but it was not my fault 😄
@verbal wren So Martin corrected my answer earlier regarding part 2; it's possible to have a group of tokens all do the same roll with a button on the sheet using this code in the label roll message:
%{game.user.targets.forEach(target => target.actor.roll('rollKey'))}%
Note that you need to have the code for the roll written in a different component, which you slot in the 'rollKey' part above. If you have a group of rolls you'd like to do you can use an input with a dropdown of the various keys to select which one you want to use at a given time.
ok i will try and come back
how tf do i write propper items like that xD
You can use CSS on the label and make it nearly ide identical to a label, or even put a button in a panel and have the rich area below it, then style the button to be the full display of the panel and invisible
I don't follow 😂
Also fuck yeah @manic crypt, you crushed it today!
I have item templates for various item types, with the item component keys for input (1). Then you create the items, using the appropriate template and fill them in (2). Then you have to configure the item displayers to show those items on the sheet using filters to only show the items you want in a given section. That's what you saw there, the Inventory tab of the sheet.
My combat tab has the same sort of thing, but only shows equipped weapons and has the rolls configured on those displayers to shoot them.
Heads up if you do it that way players can change values... While most parties are chill, it's really just ttp yk?
For my sheet I've made labels that ref the input fields and hid the inputs with a gm edit lock
okay i guess my head is smokin right now xD
Tracking. I might do that, but it's an easy adjustment to add later. Right now this is all still prototyping, I need to sort out how I want to handle the hacking rules for this particular game (Cities Without Number).
my items meanwhile xD
You don't want to see some of my early work. Like I said before, you're learning, stick with it. Want to be shamed? We'll get scyrizu to put up a shot of his sheet.
Oorah?
HE knows how to make stuff pretty.
Nope, Army. Retired since 2019 🙂
i just send it in for joke xD i know im just at the start xD
Sick shit. The only soldier I met that said tracking was in bct and he was a marine prior. Lmao
But congrats on the retirement, that's a wonderful accomplishment.
Eh, it's a common thing. Same usage as "Yup," or "Got it." It was a good job, I got to do a lot of stuff and go all over the place.
Dude don't sweat it hah. The lurning curve is brutal but rewarding. 💪💪
are the damage and attack dies in the weapon it self or in the pc sheet?
On the weapon.
did i missd it xD
"Damage" at the very top
It's a text input, then the roll message uses that to form the roll later.
😅 like I said, I always heard Roger, Hooah, or some other nonsense. Only one guy ever said tracking.
He'd also say "tracking like a tank sgt" made me chuckle
Oh, I see what you were asking.
They're on the character sheet's item displayer.
If you look at the combat tab picture they're to the right of the weapons
okay so there are not rollebale from the item
No, the item is just to configure the data that's used on the sheet, so you don't have to open it every time you're going to use it.
They are if you make the item displayed column a button
okay i think im kinda understand xD
Btw panz, speaking of making cool shit - did you get to see my CHART 😀
I DID. That's badass.
i guess i need to grab some food to think better xD
Is it a CSS object?
Randomly at 1am before bed, I was like... How dope would that be?
ADHD moment next thing I know it's 6:30 am and I have a chart haha
Birds were out chirping and the works
And it's largely html, actually.
lol. Put it up again so Ragnar can see it, it's just the sort of thing he should work towards for his anime-themed game.
A few SVG tags, mostly
Oooooo.. so you're changing the properties of the svg with the values from the csb data and adjusting the shape. Nice one.
I can see why it took hours to get that to line up properly.
so I do the ONLY thing I lernd to doo xD Coocking xD
Well the points are actually using a polygon tag, that get values from CSB into mathJS
Your next ridiculous challenge should be making those points draggable and have them update the stats on the sheet 🙂
So la
<polygon class="radar-fill" points="
0,${-(50 + (ref('affinityWater') / 2))}
${0.866 * (50 + (ref('affinityEarth') / 2))},${-0.5 * (50 + (ref('affinityEarth') / 2))}$
...
Et al. Lol
Lord! You want to kill me haha
lol
Thankfully there's no mechanical use case for that in my system. 😅😅
Else I may have done it
speaking of that, I was wondering if I could get so general pointers on the sheet I'm making. It pretty much done, but I'd like to get some ideas for version 3.
Show it off, we like looking at sheets here 😄
ok, should I drop just screenshots or do you want to see the json and the css too?
Screenshots for a character and the template would probably do to start.
Totally depends on what you want suggestions for lol
Did someone say css? 🐽🐽🐽
Right? Picked a good time to flash that around here.
btw @sinful spade , how did you do the multi-segment meter?
It's a label calling the meter's classes in separate spans.
I can send the code over if you like
Here's a few
There are a few very minor display bugs with the ::before class rounding out the left side of the additional bars.
But when I say minor I mean a few px. I'm sure it could be fixed by someone less wrench monkey than me.
Thought so, because the edges are rounded
yep, though it's not a lot
Yeah, I've mostly correctes it with manual changes to the math here and there (+1%, calc( +3px) but it's stubborn and keeps coming back with certain values.
Not worth further efforts for me. Could be fixed by having solid edges AND OR not having a transparent background for missing hp (e.g. make wound black and missing grey)
Also the response to this is "EVERYTHING". lol. I'm still working my way around the system. an I keep finding new ways of automating stuff, but I have to balance it out with time.
Good start! The blue is a bit intense, I tend to use less saturated colors especially on large parts of the screen but other than that what are you looking for feedback on?
Oh.. if you want time effective suggestions I'm not your guy 🤣🤣🤣
Not for this at least haha
I think it looks pretty good overall. The sheet seems kind of long, maybe splitting some of it off to another tab would be useful.
looking for ways to pretty it up/make it more readable. as well as things I could automate.
Oh, things to automate. Hm. What's your base system?
as in the ttrpg the sheet is for? Hc Svnt Dracones 2.0 (or HSD2) made by one person.
so its an odd ball system
Definitely start with the color palette, your blues contrast with the reds so much unless that's the look you're going for. And the black text on bright blue is a bit distracting.
Generally I'd also be looking for what can be condensed. Are any values calculated from others and if so can they be formula? Can the 'boons' and 'faults' labels be moved to the top like column headers to make it less wide? Or even better be condensed into one button visually?
Looks like you could automate the save calculation with floor(skillkey/10).
Also -- TEXTURES are huge in making things look less routine.
It's not overly noticable in my sheet but I made stains and sand dunes appear all over the background in an unorderly fashion... Helps break up the monotony, even if you don't consciously recognize it
ah ok
if the maximum wounds is a function of Body that could probably be automated too.
it's futuristic setting so a lot of gear modifies things, but I'm considering making more stuff items
wounds are a function of mass for this
There is a chart and I felt obligated to add it.
this is it
items need to modify labels 😦 its why so much of my sheet changed from number input to labels referencing number inputs.
There's a slippery slope on that. So far I have all these item templates:
I would like to automate the wholeness chart away eventually.
and yeah items are a slippery slope
originally base score was just 1 value, but now i had to add a modifier column for items too, as well as a sum column.
ah ok
I guess I'll hold off on item-ifying everything unless it becomes necessary for automation.
btw on texturing:
you can see it in the background if this chart if you look close, it's most noticeable on the mental row and the base dice and modifier columns
it's only about 5-10% opacity, but it really breaks up the table looking like it's just masive.
ah nice!
I see what you mean
also the system uses a progression chart for characters.
This was my attempt at making a functional one
i see in test dummy you have a hex-grid looking texture in the background, i actually didnt see it (im a little color blind
actually thats a good start, 90% of my stuff started looking the same way 😩 you should have seen the nightmare.
yeah, I had a lighter one before. Someone else used my v1 sheet and I gave him this version and he changed up the background for a darkmode.
I like how you made the unselected options disappear. Still looks a little.. chunky.
this was the bg for the normal
for an upgrade chart, i'd actually prefer to see all my options, but only when im using it -- then have all my selections displayed elsewhere on my sheet.
yeah I think I need to do some table column css to make it look better
thats on the top of the sheet here
and here on main info
yeah then no need to hide the other information imo. in fact, i'd do it like i did my character creator, and have it be an entire screen panel that only displays when the character enters that mode.
so if you click the 'level' button in your case full window panels show up to walk you through advancement, then go away.
Your automation looks really good, tbh. I think scyrizu's going to have the good feedback for you.
Thanks!
🤣 not the best time use.
i get way too ocd about my sheets haha
idk what it is, it just scratches the itch. i get the same way when building data dashboards man
"yess, the pixles must move 3 inches to the left they must" dies coughing
Everything must be in it's perfect place
so the checkbox enabling this mode is just here for demo purposes (its usually hidden but then i cant click it lol)
but this is what i mean
everything else hides, and the advancement windows show up
aaaaah ok. when I check a box just the progression sheet will show!
thus cutting out the need for that 3rd page!
that or some other condition.
for me its when a character sheet is first made.
or when a player enters downtime, i'll have a button somewhere on the sheet that lets them use downtime actions to bring back up that minigame
Hell yeah! that gives me some ideas!
also how do you change clickable links to a different color?
you mean getting rid of the default red?
yeah.
idr if i did it globally or not 🤣
uh
you just need to override the color in css
either by class, or globally
ok, so I would just need to change the font color I guess.
ah ok, I'll set that up.
yeah, i cant seem to find where i did it (if i did it globally) this is weird.
but uh
hm.. there's a few elements, text-shadow and box-shadow
.class a button{
border: none;
background: unset;
color: rgb(115, 17, 48) !important;
}
.class a button:hover, .class a button:focus {
box-shadow: none;
}```
that shoud get ya
ah, thank you!
i did leave text shadow in there btw, it works for my sheet, but you can use the f12 inspector to find it's path and remove it like i did with box shadow
I tried throwing in the css as is just to see what would happen, but I don't see any changes unless I put it in the wrong spot.
well... it functions based on the class class lol
you'll either need to give your buttons the class (class) or change class to something else lol
ah, oops
Really took you back to school with that one huh?
Like a high school dropout... No class. 🤣
Or maybe too many classes hah
lol
hey got a wierd problem if i increas the endurence not only the HP increase allso the MP and idk why xD
wtf now it stopt
im confudsed
You probably used the first version of the code I put up for the MP, it still had end_value called in it. I went back and edited it to say mag_value.
Hi I am trying to upload, but I don't understand where, some CSS classes for my templates
I have to put in actor folder?
i dont understand what you're asking
Trying to use a visibility formula in a user input template. I have an item displayer showing the item "Ability." The item displayer has a label which prompts a roll based on that item. When I click on that, I want one of the drop downs on the input template to have a visibility formula based on a checkbox from the item, let's say it's got a Component Key of "Weapon".
How would I check if that item's checkbox is checked for the visibility formula? I've tried both 'item.Weapon' and just 'Weapon' - also tried setting both equal to true, as in item.Weapon==true and that didn't work either.
Any thoughts?
Is it possible to make an item that has some rich text with a formula in it, and then make a button in the item displayer that rolls that formula?
I want to make an item that is an ability, and when used it gives the player another specific item in their inventory. I don't really know how to go about it though.
#1037072885044477962 message
I've found this guy in this chat asking a similar question, I wonder if he figured it out and how.
I actually don't know how to write the formula to give the character an item from a button in their own sheet either.
Trying to figure that part out right now.
Oh, and is it possible to make a roll label play a sound or even run a macro? Cause I know how to make sounds with Macros.
I am having trouble with checkboxes. Is there a way to tie in Condition Lab and Triggler so that anytime a status is applied, to apply it to the CSB Character Sheet? I have been trying to for hours, but cannot get the value / formula right.
Can you show the relevant config?
%{fromUuidSync('uuid').execute();}%
${${!item.richTextArea}$}$
Thank you! That's awesome
This is for sounds specifically, right?
Thank you! I'll be working on it today!
No, that just executes a Macro
Oh, perfect then
basically when i put the status on the token, i want it to autocheck within the char sheet and uncheck when it is removed.
when i do the operator to = true it doesnt affect the char sheet
Then idk, never worked with this module before.
no worries thanks for trying
hey hey i noticed that my rolls are not privit evin if i turn rolls to privit etc. what did i wrong?
Check the settings of CSB. You have to set it up there
oh okay ty
how can i set the Initaiativ Formular to an existing stat?
i tryed [[(@Agi*1)d10x10]]
but it dosnt work
We don't use the @-Syntax
and all other i tryd just give me an error
Keys/Formulas in Roll Formulas are surrounded by ::
so how wuld it look?
${[:Agi:d10x10]}$
okay bc it says enter a formular without ${ }$
Actually, just without ${}$ in the settings, because these will be supplied automatically
ty
Okay, I used this and replaced 'uuid' with the Uuid of a macro that plays a sound and nothing else. Added it to a richTextArea in an item, then I added ${${!item.richTextArea}$}$ to an ItemDisplayer in a sheet directed at the key of that richTextArea
the roll didn't come out and I got this error
Expand the formula at the bottom of the error message
I don't know if the json of the console was necessary, :P
But just in case
It's not, I don't need the package list
I only need the full content of formula
"<p><span style="font-family: 'Franklin Gothic Medium'">%{fromUuidSync('Macro.n5c1uxvyV2GCI1DG').execute();}%</span></p>"
That's the formula
Seems fine though
The Macro works..
I don't think it's permission related, cause I'm the one testing it
I'm on 4.4.2 and saw that there's a new update. Could that be influencing it? Is having macros in richText a newer feature*?
Apologies, I've been awake for many many hours now.
I've been trying to figure out how to remove that formatting to see if would make a difference, but no success so far.
@formal goblet sorry for the ping but this guy's question got buried a couple times now. I haven't answered because i don't use user input templates and don't know how
Btw @silver lake if you want to style a label, you can. You just need to use CSS, I'm confused why you're trying to roll macros through rich text areas to begin with
I don't wish to style anything. I just want to click a button in an ItemDisplayer in a character sheet, and for it to make a roll and play a sound.
Therefore a formula pulling a macro in a richText in the item, then executing it
Just item.Weapon should suffice