#Custom System Builder

1 messages · Page 51 of 1

formal goblet
#
  1. Seems fine
  2. Also seems fine
  3. He's right, that only the owners are allowed to update their stats. So the final request must go through a GM. You can automate this with scripts, but the constraint must apply.
gritty lichen
#

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.

formal goblet
# gritty lichen Hey Everyone, I would like to try and build my own world, making a copy of the C...
inland hawk
#

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

gritty lichen
inland hawk
#

Thanks

inland hawk
#

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

formal goblet
inland hawk
#

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

formal goblet
inland hawk
#

It gives me "playerskills.0."

#

playerskills is the key of the dynamic table itself.

formal goblet
inland hawk
#

No. I'm trying to get it to give me the text in the text box in the column of keyability.

formal goblet
trim oxide
normal jolt
#

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.
normal jolt
umbral wraith
#

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

ruby frigate
#

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?

formal goblet
umbral wraith
#

I figured it out, the issue was with the window tabs module for some reason

ruby frigate
#

Thank you so much !!

misty terrace
#

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?

strong thicket
#

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.

misty terrace
#

is the control inside another panel or table that is set to Center?

strong thicket
#

It's not

misty terrace
#

so the center bottom panel is how yuo want them all to look?

#

or that's the problem panel?

strong thicket
#

That's the problem panel

#

I would prefer it to show up like this:

#

Which is another world's system which shows up fine

misty terrace
#

and the specific one in question is the skills_skill Item Displayer?

strong thicket
#

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

misty terrace
#

And are you using any CSS?

strong thicket
#

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?

formal goblet
summer turtle
#

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

strong thicket
#

not an easy way at least
you might be able to do it with a bit of scripting

summer turtle
#

Cool, thank you

austere lantern
#

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.

formal goblet
austere lantern
#

Thanks!

obtuse birch
#

what i'm getting wrong here? it dosent work the roll

formal goblet
# obtuse birch

Because that is a normal formula, not a roll formula. This is a real roll formula: ${[1d20]}$

obtuse birch
#

soooo how do i add the value from "background_skill_rank" as a number to add to the roll?

ancient temple
#

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?

frosty niche
#

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.

formal goblet
ancient temple
formal goblet
frosty niche
#

Wasn't talking about the styling.

#

I meant the table layout, plus math.

formal goblet
formal goblet
frosty niche
#

Provided that I'm fine with making a lot of component keys and formulas?

formal goblet
frosty niche
#

I mean, I was trying this earlier, but it looked goofy:

#

Maybe I can put dynamic tables into regular tables? 🤔

formal goblet
frosty niche
#

On the subject of styling, is there a way to apply a style to a whole sheet?

strong thicket
#

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)

formal goblet
strong thicket
#

it's updating a number field

formal goblet
#

Alright, and on which entity is the button?

strong thicket
#

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

Then self isn't the right entity reference, because as the name suggests, it updates the prop of the same entity.

strong thicket
#

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

formal goblet
strong thicket
#

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

formal goblet
#

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.

strong thicket
#

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

formal goblet
ancient temple
#

is there a limit to how many items can be in a switchCase()?

formal goblet
ancient temple
#

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

formal goblet
ancient temple
#

okay bear with me, how do i open the console

formal goblet
#

F12

ancient temple
#

thank you so much

sturdy zealot
#

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?

formal goblet
#

replaceAll() should exist as a standalone function

sturdy zealot
#

that's a function built into arrays, right?

formal goblet
sturdy zealot
#

holy shit you're a lifesaver

#

found it, .join('') worked so much better. This makes the rest of the sheet easy now LOL

ancient temple
#

is there a way to attach a roll label message to the initiative formula in the settings?

formal goblet
#

You could execute a script from there. But as I said, you must return a number at the end

austere lantern
#

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.

formal goblet
#

And yeah, you can

austere lantern
#

ah, uncomputable token

formal goblet
#

The assignment is only doable right at the beginning of a formula, not somewhere midway.

austere lantern
austere lantern
#

so something like ```
${statnum:=item.wpntype == 'r' ? MEstat : statnum:= BEstat}$

#

oh wait

formal goblet
austere lantern
#

I see what I did

#

sorry

austere lantern
#

ah Thank you!

civic furnace
#

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 ?

formal goblet
civic furnace
#

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 🤣

normal jolt
#

@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') : ''}$
inland hawk
#

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.

vocal sorrel
#

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?

formal goblet
formal goblet
formal goblet
hollow crow
#

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!

manic crypt
hollow crow
#

They're coming from the item displayer in the character sheet.

manic crypt
#

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.

hollow crow
#

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

manic crypt
#

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.

hollow crow
#

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!

timid marten
#

this is their reply

timid marten
#

any idea on how to help them?

timid marten
#

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

manic crypt
#

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.

normal jolt
inland hawk
austere lantern
#

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.

manic crypt
austere lantern
#

thank you!

manic crypt
#

No problem!

manic crypt
austere lantern
#

good to know. That'll come in handy

honest forge
#

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:

  1. If A contains the specific string All I want it at the top
  2. All other entries should be sorted on A ASC.
  3. If multiple entries have the same value for A, they should be sorted on B DESC.

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!

empty cloud
#

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?

ornate junco
#

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.

manic crypt
#

Try == instead?

ornate junco
manic crypt
#

Some screenshots of your component configurations would help too

ornate junco
#

This is the table its pulling from.

#

Table its going to go into under Total Armor.

manic crypt
#

The template view of it would be more helpful

ornate junco
#

Yup grabbing those now.

manic crypt
#

That sheet looks great, btw.

ornate junco
ornate junco
#

Let me know what else you need.

manic crypt
#

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?

ornate junco
#

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.

manic crypt
#

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.

ornate junco
#

I'll change it to see if it works

manic crypt
#

other than that I'm not intimate with alookup() so it might have to defer until Martin can get to it.

ornate junco
#

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

manic crypt
#

Do you have multiple items equipped on the torso? Why use alookup() for that versus like.. first()?

ornate junco
#

I'm going off a previous conversation I had with Martin.

manic crypt
#

Oh, I see you have multiples on the other locations, so having cross-compatibility works better.

ornate junco
#

I do need the two values in arms and legs combined.

#

If you do know how to add them together. I would be grateful.

manic crypt
#

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.

ornate junco
#

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.

manic crypt
#

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.

ornate junco
#

You're good Panz.

#

Thank you for trying. I do appreciate it.

normal jolt
#

Is there a way to automate marking a target as defeated, once their HP reaches 0?

formal goblet
#

You can double-check by doing fromUuidSync('uuid').system.props.inv_armor in the console.

formal goblet
silver lake
#

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

silver lake
silver lake
silver lake
#

I might've asked this in a previous day, but I seem to have forgotten if it was possible

torn loom
#

is there a way to limit how many items can be put into an inventory/item displayer?

timid marten
timid marten
#

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

timid marten
#

nvm this only happens if an item is not inside a sheet

#

this is not an issue anymore

ornate junco
ornate junco
#

@manic crypt Would you be able to help me sum those two values together?

mild valve
#

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

glad spade
#

What's the property on items that determines if an item belongs to a backpack/container?

sinful spade
#

Either way that's just my thoughts for now. please keep me in mind if you figure out a solution.

mild valve
mild valve
sinful spade
ornate junco
#

I an trying to add the two values together.

#

So it just displays one value.

sinful spade
#

in the 3rd column?

#

how is that calculated?

ornate junco
#

Its pulling in the value of two different armor pieces.

manic crypt
ornate junco
sinful spade
#

ah. i understand.
left and and right arm are being displayed as 5, 8.
and yes panzer is correct

ornate junco
#

I didn't know where to place the sum.

#

I do have one more thing I need help with as well.

manic crypt
#

alookup() returns an array, which sum() handles inherently.

ornate junco
#

I am trying to make the Total armor values a button that will transfer their value to the number field armor box.

sinful spade
#

by the way, i'd recommend adding a total wieght and armor column at the bottom ^^

ornate junco
#

So for example: Clicking 10 will cause the value to be 10 in the Armor box.

ornate junco
#

This is just for combat purposes.

manic crypt
#

Use an sPIE() in the Roll message.

ornate junco
#

Like what would the roll message be exactly?

sinful spade
#

not bad, a good outline.

ornate junco
#

One day I'll actually sit down and apply more CSS to it to make it pretty.

manic crypt
#

Give me a sec to look at your properties on the template.

sinful spade
manic crypt
#

Scyrizu's stuff is amazing to look at, if you haven't seen his progress shots.

sinful spade
#

appreciate it panzer ❤️
still a long way to go.
nearly done with the character creator, party and guild sheets up next.

ornate junco
#

I do programming for a living, but I hate it with a passion. So maybe I'll time sink this at some point.

manic crypt
#

RED, quick question, is that a dynamic table or a standard table?

ornate junco
sinful spade
#

@ornate junco this was my last post about it

ornate junco
#

If you're talking about this. Then its just a regular table.

manic crypt
#

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"

ornate junco
#

How did you do the xp counter? I've been wanting to do something like that.

sinful spade
#

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

ornate junco
#

I just never sat down and wanted to do the code.

sinful spade
ornate junco
#

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.

manic crypt
#

In the roll message for the Total Armor field: ${setPropertyInEntity('self', '<HeadArmorKey>', <TotalHeadArmorKey>)}$

sinful spade
#

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

sinful spade
ornate junco
ornate junco
ornate junco
#

Thank you.

manic crypt
#

No problem.

ornate junco
#

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.

sinful spade
#

yk i just realized my hp shield broke. again

sad trombone

#

its overlaying rather than pushing

#

lord give me strength

sinful spade
#

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.

ornate junco
#

Oh not the whole sheet at all.

#

Just a few things. Would dming you work?

#

So I don't clog this chat up.

sinful spade
#

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

normal jolt
sinful spade
#

so in my case
.healthBar .custom-system-meter-fill { background-color: rgb(rgb color here); }

normal jolt
#

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.

normal jolt
# sinful spade

Easily one of the nicest sheets I have seen made in this system. Kudos.

sinful spade
#

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.

manic crypt
#

you have fractional damage?

sinful spade
#

i was really hoping to avoid tertiary logic for this 🤣 but i guess not.

sinful spade
#

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.

manic crypt
#

Oof, that's a complex one to try to map out. Yeah, I think you need conditionals for it.

sinful spade
#

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

manic crypt
#

Always being 1 meaning that if you only have 6 HP and you take a T1 wound, you still lose 1 HP, right?

sinful spade
#

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
🤔

manic crypt
#

You could use int() for it?

sinful spade
#

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

humble sonnet
#

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

sinful spade
#

i could take the % and /10 and subtract that? 🤔

#

10 % = 10 / 10 = 1

manic crypt
#

You'd need a non-visible variable somewhere that decides which damage value to take anyway for the selection of the wound teir.

humble sonnet
#

hm
maybe like
min((max HP - number of T1 wounds), ceil(max HP * (1 - (0.1 * number of T1 wounds))))

manic crypt
#

part of deciding which fraction to use would be summing the assorted wounds.

sinful spade
#

i'm trying to avoid brute forcing it with ? : notation

humble sonnet
#

tbh a really gross nested ternary might just be unavoidable

sinful spade
#

if result == normal max ? take the % value / 10 and subtract that... : do it normally

sinful spade
sinful spade
#

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 🙂

manic crypt
#

Nice.

marble beacon
#

Is there a FVTT system with this rule?

#

Righteous Blood, Ruthless Blades

sinful spade
#

if you want to build that system this would be a good place to start ^^

marble beacon
sinful spade
#

best of luck then ^^

#

has anyone figured out how to use the get isGM() function in a visability formula??

manic crypt
#

Other than the advanced setting on the component?

sinful spade
#

yeah, that operates as an AND i need an OR

manic crypt
#

No, I haven't run into that one yet

sinful spade
#

😅 well if anyone knows ping me, else i'll return with answers eventually

sinful spade
#

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

role : 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 🤔

manic crypt
#

assistant-gm

sinful spade
#

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

manic crypt
#

it's not in the current API

sinful spade
#

i guess they removed it when they added the dropdown... shame

manic crypt
#

are you just trying to have the assistant gm able to see something? Because it's a minimum role to see the component...

sinful spade
#

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

manic crypt
#

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

sinful spade
#

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

manic crypt
#

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.

sinful spade
#

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

manic crypt
#

I mean, it's a thing for the 5e implementation.

sinful spade
#

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

manic crypt
#

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.

sinful spade
#

... you can change dae wrench visability?

#

... lemme just... launch my 5e server real quick.

manic crypt
#

I'm pretty sure.

#

Not at the PC right now to check.

honest forge
#

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?

sinful spade
#

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?

honest forge
manic crypt
#

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.

sinful spade
#

you could use js to reference the item by name

manic crypt
#

I read it as 'only one item at a time' as in an equipped armor set

sinful spade
#

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

honest forge
#

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.

manic crypt
#

Depends on how he's using his templates in that case.

sinful spade
honest forge
honest forge
#

Right, or throw a warning and cancel the addition.

sinful spade
#

point being, very doable

honest forge
#

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.

sinful spade
#

hey, progress is progress.

#

i've spent too many hours today trying to handle an erronious padding on my sheet lol

honest forge
#

Your sheet is incredibly slick. I am not looking forward to the CSS phase.

sinful spade
#

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

honest forge
#

Oh god

#

I know that feeling, but that is still horrifying. 😂

sinful spade
#

🤣 it's okay. the void is used to the screaming

river sierra
# mild valve So I have a bit of an odd question and I can absolutely explain further. But I'm...

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.

mild valve
#

Oh dang this might do exactly what I need! I'll take a look at it, thank you!

oblique spear
#

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 🙂

manic crypt
oblique spear
manic crypt
#

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 😄

oblique spear
oblique spear
#

Nevermind, it seems to work now

formal goblet
formal goblet
river sierra
spare cape
#

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 ?

formal goblet
spare cape
#

That's a thing to personalize your character sheets using a pdf base, you need to add each attributes individually

formal goblet
spare cape
#

nothing

#

here everything i have

formal goblet
spare cape
#

i think not (not sure tho)

formal goblet
sinful spade
formal goblet
manic crypt
#

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

formal goblet
shy stag
#

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?

formal goblet
shy stag
#

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

formal goblet
shy stag
#

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

formal goblet
shy stag
#

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

formal goblet
cedar talon
#

Is there a way to link notes in a character sheet?

manic crypt
#

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?

cedar talon
#

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

manic crypt
#

Is it a fixed journal entry you're looking for, or a link to like a background section that might vary?

cedar talon
#

I just want to have a way to link a journal in a character sheet.

manic crypt
#

You can drag/drop a journal entry into an RTA to create a link to it that way.

cedar talon
#

Would anyone be willing to send me screenshots of their finished CSB character sheets? Id love to see what some finished projects look like.

manic crypt
#

Once the RTA is saved the link becomes clickable

cedar talon
manic crypt
#

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.

manic crypt
cedar talon
#

Okay thank you! I appriciate it!

cedar talon
#

What are the benifits of switching from sandbox to CBS? Would it be easy to learn (I dont know how to code)?

manic crypt
# cedar talon What are the benifits of switching from sandbox to CBS? Would it be easy to lea...

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.

honest forge
#

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?

manic crypt
honest forge
# manic crypt I agree that sounds pretty complex; you're working with something like Diablo Af...

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:

  1. List these conditions as part of the definition of each Class.
  2. 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.

manic crypt
#

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.

cedar talon
manic crypt
honest forge
manic crypt
honest forge
manic crypt
#

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

honest forge
manic crypt
#

No problem.

untold crescent
#

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

sturdy zealot
#

yle

untold crescent
#

Yle?

I'm sorry, I don't understand

vagrant hollow
languid hornet
#

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!

untold crescent
vocal sorrel
#

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.

austere lantern
#

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?

formal goblet
formal goblet
vocal sorrel
formal goblet
vocal sorrel
austere lantern
#

even for the weapons, which is when they should be showing

formal goblet
vocal sorrel
#

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) : ''}$```
untold crescent
#

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?

terse snow
#

How do I put a horizontal rule into the description for an ItemAlteration rule element?

#

oops, wrong channel

austere lantern
#

hey how do you round down in CBS?

sinful spade
austere lantern
#

thanks!

elfin laurel
#

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?

sinful spade
sinful spade
#

le fin

austere lantern
foggy grotto
austere lantern
#

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.

manic crypt
austere lantern
#

ok

marble beacon
#

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?

manic crypt
#

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.

marble beacon
#

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?

manic crypt
#

Could I see the code you're using? Also, apologies about the language misunderstanding.

marble beacon
#

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

marble beacon
manic crypt
marble beacon
#

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

manic crypt
#

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

marble beacon
#

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?

manic crypt
#

Could I see the configuration for the waigondengji dropdown?

marble beacon
manic crypt
#

remove the '<>' from your roll message

#

those were just to indicate that the words inside them were referring to a specific key

marble beacon
manic crypt
#

correct

marble beacon
#

But even so, it was not successfully activated and there was no response

manic crypt
#

is there an error in the console?

marble beacon
#

Yes, but I don't know how to find them, haha

manic crypt
#

It should be the second tab at the top, you're on the "Elements" tab

marble beacon
manic crypt
#

remove the "button-green" filter

marble beacon
edgy barn
#

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.)
marble beacon
manic crypt
# marble beacon

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)

marble beacon
#

${[(2 + waigongdengji )d10]}$

manic crypt
marble beacon
#

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

manic crypt
#

Ah, that makes sense.

marble beacon
#

How do I set up the code here? I want to add multiple d10 dice functions according to my own preferences

manic crypt
marble beacon
#

It's about popping x dice together, and this dice is something I can control

manic crypt
#

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

edgy barn
manic crypt
manic crypt
# marble beacon

And that modifier is added to the number of d10s that are rolled?

edgy barn
manic crypt
manic crypt
# marble beacon yes

assuming that the key you're setting for the modifier is Modifier, and modifying the earlier code:

${[(2 + :waigongdengji: + :Modifier:)d10]}$

marble beacon
#

Ah, no, no, no, it's independent. Just choose d10 to increase the number of dice

manic crypt
#

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.

marble beacon
#

It's like I can choose a few d10 dice to roll myself, that's what it means

manic crypt
#

Ah, ok. No target numbers or anything, just you click a button, a popup occurs, and you select how many d10s are rolled?

marble beacon
#

yes

manic crypt
#

One sec

marble beacon
#

manic crypt
#

Wait a moment, please.

marble beacon
#

ok

manic crypt
#

One sec is a slang term, sorry.

marble beacon
#

ha ha

manic crypt
edgy barn
manic crypt
#

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

marble beacon
manic crypt
marble beacon
manic crypt
#

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

marble beacon
#

It's useless, still can't come out?

manic crypt
# edgy barn Like that?

No, this should be a label type component, and the formula should go in the label text field.

manic crypt
manic crypt
manic crypt
manic crypt
#

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.

marble beacon
#

${#concat(
?{dicepick:'骰骰子'[number]|1}
)}$
${[!:dicepick:d10]}$

manic crypt
#

The screenshot you just sent is from a Template.

edgy barn
edgy barn
#

is that even right xD

manic crypt
manic crypt
#

Tigersquid 😄

#

er.. no, Armoredsquid.

edgy barn
manic crypt
manic crypt
marble beacon
#

Can you copy this to your FVTT and run it

#

manic crypt
marble beacon
#

That's unbelievable

manic crypt
# edgy barn i like it and im german xD

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.

edgy barn
manic crypt
edgy barn
#

do you think i can write a privit message or better to look for him being on?

manic crypt
#

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.

marble beacon
#

Haha, it still hasn't been resolved, but thank you, big shot. Wishing you abundant wealth and all the best

manic crypt
manic crypt
# edgy barn no xD

try replacing the int( with floor(. Should do the same thing, I might just be making up a command in my head.

edgy barn
#

can i ask an additional question xD

manic crypt
verbal wren
#

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

manic crypt
edgy barn
# manic crypt Of course.

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.

verbal wren
edgy barn
manic crypt
verbal wren
#

oh god thanks you , this work ... my lord, my swords his yours

manic crypt
# edgy barn

it looks like the value on the left is the hp max one and the value on the right is the current hp?

manic crypt
manic crypt
verbal wren
#

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

manic crypt
#

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.

edgy barn
#

hope you understand what i say xD

manic crypt
#

Like this one?

edgy barn
#

y

#

if i make it to see it i cant eddit it without opening the sheet

manic crypt
#

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.

manic crypt
#

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.

edgy barn
#

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

manic crypt
#

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.

edgy barn
#

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

manic crypt
#

No problem 😄

edgy barn
#

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

manic crypt
#

Send it. I like working those out.

#

what's the key for Endurance?

edgy barn
#

(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

manic crypt
#

in the hp_max label field: ${sum(10,floor((end_score-10)/10))}$

#

so at 10 end it adds 0.

edgy barn
#

oh ty it allso works xxD

manic crypt
#

Does having a lower end affect anything? Is it possible to have one below 10?

edgy barn
#

at 0 magic a char have 0 MP

manic crypt
#

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.

edgy barn
#

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

manic crypt
#

No problem, I like helping people. Let me know if you have any questions, I'm pretty good about keeping an eye on here.

edgy barn
manic crypt
#

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.

edgy barn
manic crypt
#

the biggest thing there is getting it to be a boolean statement. Something that resolves to true or false.

edgy barn
manic crypt
# edgy barn whjat xD

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

manic crypt
edgy barn
manic crypt
#

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.

austere lantern
#

@manic crypt could explain how you hid the template drop-down in your character sheet?

manic crypt
austere lantern
#

ah ok!

manic crypt
#

You mean this part, right?

austere lantern
#

yeah

manic crypt
#

This is what a player login sees:

austere lantern
#

ah, ok!

#

I didn't know that.

austere lantern
#

Thanks!

edgy barn
#

xD

manic crypt
#

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.

formal goblet
#

Yeah, I've heared the summoning calls

manic crypt
#

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?

formal goblet
manic crypt
#

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.

formal goblet
#

Should be easy with game.user.targets.forEach(target => target.actor.roll('rollKey'))

manic crypt
#

Right, but it would have to be in a macro, not a button, correct?

#

or, I should say not in a label roll message.

formal goblet
manic crypt
#

Right then, as I thought.

formal goblet
manic crypt
#

Oh I see. So yeah, it could. Interesting thought for a GM panel actor.

olive trellis
#

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

formal goblet
#

And the error message in the console would help

formal goblet
# olive trellis

Take a look at the bottom of the error message. That's not what you've posted

olive trellis
#

weird in the text box its like i posted it here

formal goblet
olive trellis
#

so i can either check something and have an ugly ass chat message or not check something and make it look pretty?

formal goblet
olive trellis
manic crypt
#

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

verbal wren
#

ok i will try and come back

edgy barn
sinful spade
sinful spade
#

Also fuck yeah @manic crypt, you crushed it today!

manic crypt
# edgy barn how tf do i write propper items like that xD

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.

sinful spade
#

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

edgy barn
manic crypt
edgy barn
#

my items meanwhile xD

manic crypt
# edgy barn 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.

manic crypt
#

HE knows how to make stuff pretty.

manic crypt
edgy barn
sinful spade
#

But congrats on the retirement, that's a wonderful accomplishment.

manic crypt
#

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.

sinful spade
edgy barn
manic crypt
#

On the weapon.

edgy barn
manic crypt
#

"Damage" at the very top

#

It's a text input, then the roll message uses that to form the roll later.

sinful spade
manic crypt
#

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

edgy barn
manic crypt
#

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.

sinful spade
manic crypt
#

Oh, yeah, sorry.

#

so my rolls are on the sheet, here, they're in red:

edgy barn
sinful spade
#

Btw panz, speaking of making cool shit - did you get to see my CHART 😀

manic crypt
#

I DID. That's badass.

edgy barn
#

i guess i need to grab some food to think better xD

manic crypt
#

Is it a CSS object?

sinful spade
#

Birds were out chirping and the works

#

And it's largely html, actually.

manic crypt
#

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.

sinful spade
#

A few SVG tags, mostly

sinful spade
#

The styled one is right below it haha

manic crypt
#

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.

edgy barn
sinful spade
#

Well the points are actually using a polygon tag, that get values from CSB into mathJS

manic crypt
#

Your next ridiculous challenge should be making those points draggable and have them update the stats on the sheet 🙂

sinful spade
#

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

sinful spade
manic crypt
#

lol

sinful spade
#

Thankfully there's no mechanical use case for that in my system. 😅😅

#

Else I may have done it

austere lantern
#

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.

manic crypt
#

Show it off, we like looking at sheets here 😄

austere lantern
#

ok, should I drop just screenshots or do you want to see the json and the css too?

manic crypt
#

Screenshots for a character and the template would probably do to start.

sinful spade
#

Did someone say css? 🐽🐽🐽

manic crypt
#

Right? Picked a good time to flash that around here.

formal goblet
#

btw @sinful spade , how did you do the multi-segment meter?

sinful spade
austere lantern
sinful spade
#

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.

formal goblet
austere lantern
sinful spade
# formal goblet Thought so, because the edges are rounded

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)

austere lantern
sinful spade
# austere lantern Here's a few

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

manic crypt
# austere lantern Here's a few

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.

austere lantern
#

looking for ways to pretty it up/make it more readable. as well as things I could automate.

manic crypt
#

Oh, things to automate. Hm. What's your base system?

austere lantern
#

so its an odd ball system

sinful spade
#

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?

manic crypt
#

Looks like you could automate the save calculation with floor(skillkey/10).

sinful spade
#

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

austere lantern
#

ah ok

manic crypt
#

if the maximum wounds is a function of Body that could probably be automated too.

austere lantern
#

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

sinful spade
manic crypt
austere lantern
#

I would like to automate the wholeness chart away eventually.

#

and yeah items are a slippery slope

sinful spade
#

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.

austere lantern
#

ah ok

#

I guess I'll hold off on item-ifying everything unless it becomes necessary for automation.

sinful spade
#

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.

austere lantern
#

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

sinful spade
#

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.

austere lantern
#

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.

sinful spade
#

... that's the dark mode?

#

god damn

manic crypt
austere lantern
#

this was the bg for the normal

sinful spade
austere lantern
#

thats on the top of the sheet here

#

and here on main info

sinful spade
#

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.

manic crypt
#

Your automation looks really good, tbh. I think scyrizu's going to have the good feedback for you.

austere lantern
#

Thanks!

sinful spade
#

🤣 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

austere lantern
#

Everything must be in it's perfect place

sinful spade
#

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

austere lantern
#

aaaaah ok. when I check a box just the progression sheet will show!

#

thus cutting out the need for that 3rd page!

sinful spade
#

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

austere lantern
#

Hell yeah! that gives me some ideas!

#

also how do you change clickable links to a different color?

sinful spade
#

you mean getting rid of the default red?

austere lantern
#

yeah.

sinful spade
#

idr if i did it globally or not 🤣
uh

#

you just need to override the color in css

#

either by class, or globally

austere lantern
#

ok, so I would just need to change the font color I guess.

sinful spade
#

there's also a text-shadow property

#

on hover

austere lantern
#

ah ok, I'll set that up.

sinful spade
#

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

austere lantern
#

ah, thank you!

sinful spade
#

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

austere lantern
#

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.

sinful spade
#

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

austere lantern
#

ah, oops

sinful spade
#

Or maybe too many classes hah

austere lantern
#

lol

edgy barn
manic crypt
#

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.

verbal portal
#

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?

sinful spade
elfin laurel
#

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?

silver lake
#

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.

#

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.

silver lake
#

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.

next root
#

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.

formal goblet
formal goblet
next root
silver lake
silver lake
silver lake
formal goblet
formal goblet
silver lake
next root
#

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

formal goblet
next root
#

no worries thanks for trying

edgy barn
#

hey hey i noticed that my rolls are not privit evin if i turn rolls to privit etc. what did i wrong?

formal goblet
edgy barn
#

oh okay ty

#

how can i set the Initaiativ Formular to an existing stat?

#

i tryed [[(@Agi*1)d10x10]]

#

but it dosnt work

formal goblet
#

We don't use the @-Syntax

edgy barn
#

and all other i tryd just give me an error

formal goblet
#

Keys/Formulas in Roll Formulas are surrounded by ::

edgy barn
formal goblet
#

${[:Agi:d10x10]}$

edgy barn
#

okay bc it says enter a formular without ${ }$

formal goblet
#

Actually, just without ${}$ in the settings, because these will be supplied automatically

edgy barn
#

ty

silver lake
# formal goblet `%{fromUuidSync('uuid').execute();}%`

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

formal goblet
silver lake
silver lake
#

But just in case

formal goblet
#

It's not, I don't need the package list

silver lake
#

Roger that

#

Shows how much I know :P

formal goblet
#

I only need the full content of formula

silver lake
#

"<p><span style="font-family: 'Franklin Gothic Medium'">%{fromUuidSync('Macro.n5c1uxvyV2GCI1DG').execute();}%</span></p>"

silver lake
formal goblet
#

Seems fine though

silver lake
#

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.

silver lake
#

I've been trying to figure out how to remove that formatting to see if would make a difference, but no success so far.

sinful spade
#

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

silver lake
#

Therefore a formula pulling a macro in a richText in the item, then executing it

formal goblet