#Custom System Builder

1 messages Β· Page 57 of 1

dense pine
#

How can i achieve that?

#

Is it possible to create a kind of user input where the user inputs how good the roll was? Like the interface when you activate a nested effect

formal goblet
#

Creating Active Effects through Label Roll Messages will require you to use a script. There's no CSB-function for that atm

dense pine
formal goblet
dense pine
#

aye

formal goblet
fathom cave
#

Is there any way to tell a module/macro to display a chat message roll the same way as CSB does? Is there something I could point to to utilize that behavior? The CSB tooltips for rolls are great, I can mimic the look with the class, but not seeing how to get the tooltip to populate.

fathom cave
#

Thanks! I will work on it. Would have just liked to do it in CSB but the macro is too complicated.

formal goblet
marble mural
#

Is there a way to format the initiaitve roll chat message? I'm trying to do it with custom CSS but I can't figure it out.

#

And by format I just mean centering the text, removing the d20 icon, changing font family, size, and color.

#

Or maybe to set initiative from a rollable field from within a character's sheed (which I could then format)

brittle moth
brittle moth
#

Fixes and QoL !

#package-releases message

**Version 4.6.1 is now generally available, with the following changes : **

Features

Fixes

  • Made Convenient Effects passive by default
  • Fixed modifier conversion to include tags by default and disable active effects according to active modifier groups
  • Fixed global template reloading to not crash when token references a deleted actor
  • Fixed active effect toggling in User Input Template
  • [#455] Fixed active effect handling for other modules
  • Fixed an issue with ActiveEffect creation triggering an error message on other players screens
  • Fixed an issue with transferred ActiveEffect trying to be computed wrongly

Full documentation : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/stable/en/Home

If you encounter any issue with this new version, please post an issue on Gitlab : https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new

Enjoy !

brittle moth
#

And here we go... Released, and the first bug arises instantly !

#package-releases message

**Version 4.6.2 is now generally available, with the following changes : **

Fixes

  • Fixed active effect creation not setting the correct flags

Full documentation : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/stable/en/Home

If you encounter any issue with this new version, please post an issue on Gitlab : https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new

Enjoy !

foggy grotto
#

Lol. Just updated

stone hare
#

Noob question regarding visibility: How do I say: Hide this number if another stat is equal 0, otherwise it should be visible?

dense pine
#

Im a bit afraid to click this button.
@brittle moth could you explain what will be the consequences? Dont want to kill my system. are all modifiers deleted and automatically transfered to an activ effect that will be created on the fly?

formal goblet
polar socket
#

vtt Hi, I would like some help. Is there any way to create a MACRO or something like that to insert a created item directly into the sheet (directly into the item displayer)?

For example, I have a standard item that I would like my players to be able to insert into their sheet whenever they want without having to drag it from the items tab, just by running a macro.

formal goblet
polar socket
#

How can i do this? I have no ideia how to start kkkk

quick dagger
#

Does anybody here know how to point to a specific row in a dynamic table? I know I must be missing something very basic, but I can't for the life of me figure it out.

So far I have
${find('skills_table', 'skill_col_3')}$
which is properly finding the table and returning the result in the first row, I just can't find the syntax to specify which row to pull it from.

Ideally I'd like a relative reference that returns the result in the same row as the function, if that's possible.

quick dagger
#

πŸ™

formal goblet
#

This Macro is the bare-minimum, which does one job: Create an Item with specified Item data into a specified Actor.

latent sorrel
#

I have been away from CSB for a bit and now I am trying to understand the implementation of the Active Effects "feature". I have not delt with this thing in other Foundry games. Specifically, I want to define races as items and allow them to assign bonuses to certain fields when dropped on the actor. I have looked at the wiki but I am baffled. I have defined an active effect and assigned it to an item, placed the item on the actor, but I can not figure out how to get the value to be applied to the actor.

ornate haven
formal goblet
# ornate haven

Semicolon must go inside "" ("color: red;"). And use ! at the beginning of the formula

ornate haven
#

Perfect!

formal goblet
#

You can also shorten it: degress_value > 0 ? 'green' : degrees_value < 0 ? 'red' : 'black'

latent sorrel
# formal goblet What have you done so far? We also have a Wiki-page covering Active Effects: htt...

Thanks for the assist. I have seen the wiki but it is not clear to me.
The image is from the created effect. There is a number field with key "test1" (also tested with a label) on the actor. I added the Effect displayer to the item and selected the effect. I dropped on item the actor. The "test1" numeric field (or label) does not update. I have no idea if any part of what have I done so far is correct as far as reaching my goal.

formal goblet
#

Also, if the Active Effect comes from an Item, there must be 2 conditions met:

  • Apply Effect to Parent must be true
  • Effect Suspended must be false
latent sorrel
#

These conditions were already as indicated. When the label key is "test1", the value is not appearing within the label. I changed the label text value to 0 incase a base value was needed. This also did not work.

sinful spade
latent sorrel
#

Yes, "test1" is a label. I am not sure what you mean by "active on the sheet". If you mean that is selected in the Effect Viewer on the item, yes.

lost wigeon
#

The new version has broken something on my sheet, and I'm trying to figure out how to fix it.

Here is the code:

#

The label is supposed to be +1, as you can see, but, instead, it's:

#

It's resolving to just plain 1 for some reason. So, what do I need to change to make it be 1 again? Thank you! πŸ™‚

#

Fixed it. It seems that using the standard + works fine.

formal goblet
#

And I suspect that the + got eliminated because numerically +1 and 1 are equal

#

Let's say that this is a monkey-patch for our Active Effects until the Components and their properties get proper type-control

sinful spade
#

Can someone who knows the backend a little better explain the change to active effects over item modifiers, and why it happened?

Also - will item modifiers still work or will they need to be done from scratch?

latent sorrel
#

Perhaps I am going about this the wrong way. I want to define an item as something like "Elf" and when this item is dropped on the actor, "Agility" label is increased by +1. This is possible under the "old system" but I want to do this under Active Effects so it automatic on item drop

lost wigeon
formal goblet
sinful spade
#

im not familiar enough with the backend of foundry to understand the changes and why i'd want to update and redo things

formal goblet
sinful spade
latent sorrel
#

Since I can't get squeeze any effects out of Active Effects. I guess I will stay with Item Modifiers and re-evaluate when their function is removed.

crystal finch
#

Is there a way to write a formula so there are commas between numbers? As in, so 3000 is displayed as 3,000?

formal goblet
crystal finch
#

Where would I put the script? Sorry, I don't have any coding experience

crystal finch
#

Hello?

agile zinc
#

Was just trying to import the CBR+PNK template from the template library here (https://github.com/RemyAllegro/CBR-PNK-CSB?tab=readme-ov-file) into a game hosted on the forge. I uploaded the export.json to my forge assets library, it is located at (https://assets.forge-vtt.com/60931aa72763f04a1fb41a8a/export.json) but when I click the file in the file browser and choose select file, console shows this error (Uncaught (in promise) SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON) and nothing seems to happen. Suggestions? I have no idea what is wrong.

GitHub

This is my implementation of the CBR+PNK system by Emanoel Melo for use with Custom System Builder for FoundryVTT - GitHub - RemyAllegro/CBR-PNK-CSB: This is my implementation of the CBR+PNK syste...

sudden ore
#

I'm getting some weirdness when using the Upgrade or Downgrade modes on the active effects. They work as expected when the value would replace the previous value. However, if the new value is equal to or less than the previous value for Upgrade, or equal to or greater than the previous value for Downgrade, the value becomes undefined. I'm on 4.6.2, and this happens in the simplest test case I can put together of an actor with a single property of 0 being Upgraded to 0.

oblique willow
#

So some entries in my dynamic table are marked as deleted, but still exist and throw errors due to not being computed?
How would I get rid of them?

formal goblet
formal goblet
formal goblet
formal goblet
crystal finch
formal goblet
crystal finch
#

Ah, that's too bad. Thanks for the help either way.

formal goblet
crystal finch
#

Where's the format number? Do I just put the formula in the visibility formula box, or the label box?

formal goblet
oblique willow
#

What is the reason some actors take multiple loops (3-4) to compute? And doing it several times (3 loops 3 times for example?)

formal goblet
oblique willow
#

Just wondering why it differs so much, and if theres performane issues I should be worried about that I've caused.
Not asking to understand the technical side πŸ˜„

formal goblet
#

Dependency chains cost performance. The bigger they are and the more you have generally, the more time it'll need to compute everything

#

CSB can't know which properties should be computed in which order, so we just do it without an order. If something fails to compute because the dependent property wasn't computed yet, we postpone it to a later cycle. And that costs quite a lot of performance.

#

You can enable debug-logs and skim through it when you update your Actor

oblique willow
#

That tracks, I think the most I have is 3 orders deep so 3 loops would make sense

brittle moth
#

Fixes, fixes, fixes...

#package-releases message

**Version 4.6.3 is now generally available, with the following changes : **

Fixes

  • [#457] Fixed Active Effect side-effect when coming from an Item
  • Optimized computation by not computing disabled Active Effect keys unless needed
  • Fixed Active Effect application when using a key not present in props

Full documentation : https://gitlab.com/custom-system-builder/custom-system-builder/-/wikis/stable/en/Home

If you encounter any issue with this new version, please post an issue on Gitlab : https://gitlab.com/custom-system-builder/custom-system-builder/-/issues/new

Enjoy !

plush maple
#

I am so so sorry. what dose this mean for the Active Effect Displayer?

formal goblet
plush maple
#

it won't let me even make it. So i am not sure what is happening. XD;;;

#

So weird... NOW i can make it. I have NO idea what caused it not to work

#

So sorry again, just trying to figure out how to use this before the next update and how to transfer some code XD;;;

sudden ore
stone hare
#

i was wondering, how do i reference the dropdown menu? Lets say I have a label and i want it to say whatever i select on this dropdown menu.
${itemCategory_Armor}$ only returns the KEY* instead of Label.

storm stream
#

hah! i was coming here for a similar question πŸ˜„

#

i have an item display that has a field for magic type but it shows the text of the key column instead of the lable column from the item dropdown in question

latent sorrel
#

I cannot get the following to work with the filter for an Item Display. It returns a blank. "Vaulted" is the value in a text field on the item. Does anyone have any suggestions?
${alookup('imSpellsVault', 'domain', 'Vault', '===', 'Vaulted')}$

warm quartz
# storm stream

The label in a Dropdown is purely for 'cosmetic' purpose. You can only get the key for your item displayers.
Two solutions : make key & label identical in the dropdown or use a switchCase in the item displayer to transform your key in a meaningfull text.
I usually use the first solution, less things to code & less risks of mistyping something....

formal goblet
latent sorrel
#

That works. Thanks

gusty agate
#

Hi! How can I extract a parameter from an Item Container? For example, weight - I downloaded an example, and the character sheet calculates it, but instead of a formula there is just 0.

formal goblet
gusty agate
#

At the moment I am making the functionality of equipping items (armor, in this case) via Item Container (I took it from example template). I figured out how to extract the values, but I ran into another problem: I plan to have 8 types of damage with 3 values ​​for each type. Is there a more convenient way to output them to the Item Container for subsequent extraction and use than using 24 columns?
For example, can I access the prefix and suffix in an Item Container via lookup?

formal goblet
gusty agate
# formal goblet No, prefix and suffix are purely visual. They aren't stored in the properties. I...

Not sure how Dropdown applies here. Armor can (and usually will) have protection against multiple damage types, and as I understand it, I need to display all the values ​​in the Item Container so I can extract them to the main character sheet and use them for damage calculations later.

I have no problem displaying eight columns - it makes a cool table. But when all 24 values ​​need to be displayed for items in the list... Well, it's not a big problem, but I was curious if there was a more convenient option.

formal goblet
red bloom
#

I'm trying to reference data from one dynamic table in the cell of another with the find() function, but it doesn't appear to be working and is returning null. Is there something limiting the scope within a dynamic table?

formal goblet
red bloom
#

setup?

formal goblet
# red bloom setup?

Yeah. Your Dynamic Tables with formulas and such, so I can take a look at it

red bloom
#

nvm I think i fixed it, the key I was searching on just needed a .toString() attached

dense pine
#

I would like to open a predetermined Journal Page when i click on a label. Is this possibly? What is the code for the Label Roll Message please?

formal goblet
#

Works for every type of document

dense pine
#

How did you do that? I copied your exact line and it doesnt show the skull

sinful spade
#

.

storm stream
#

hey, do you mind if I dm you on this subject?

placid arch
#

Hey, I have two types of health in my system (grit and health), damage subtracts from grit first before subtracting from health. It's very similar to temp hp. How can I handle this for applying damaging to tokens?

formal goblet
placid arch
#

Ideally relative modifiers. Lets say I have 10 grit and 15 health, if the user types in -15, it should set grit to 0, then health to 5.

#

Positive modifiers should only apply to grit

formal goblet
#

Ok, that's basically overriding the behavior of the Token. Usually you can only modify 1 attribute bar at a time from the Token

placid arch
#

I see

#

Is that how it's handled in other systems (say 5e's temp HP vs HP)?

#

If so I can probably just copy them

formal goblet
placid arch
#

Also, is there a "right way" to load custom script file? Does it need to be done as module?

formal goblet
#

What could also work is to intercept the update to the Actor and reset the negative value in grit to 0 and subtract the difference from HP

placid arch
#

Yes

#

I have some general foundry development experience though it's been well over a year

formal goblet
#

When it comes to Hooks, you should use either the world script module or you modify your world.json to point to a script

placid arch
#

That's helpful, thank you. Also, can I use this to define options? Like I have some properties used though out my system (ie color of mana). Which each item, spell and creature share from the allow. Can I define a const in the world script file and use them in the CBS scripts, ie const ManaTypes = ["Red", "Green", "Blue", .... ]; Then reference it like this: ${ManaTypes[i]}$

#

Or is there no-script way for CSB to handle this?

formal goblet
#

Formulas read their variables from system.props, you can't change that. But that's not a real issue, because you could just use JS if you use these delimiters %{}%. Or you use math.import to import your function, which handles that.

placid arch
#

Ok, I'll look into that. Thanks again.

formal goblet
#

The data should be somewhere, where you have access to it from the console

#

A simple variable declaration in a file won't do because it's not globally available

pure palm
#

Hey im struggling to make items and subtypes work.
EX: item > subtype damage

Currently trying to make a sword (1) with the subtype that holds damage values (2). (3) is my item template, (4) is where id like to have the item damage subtype (5) that holds info (6)

Im trying to use the itemdisplayer (7) but no templates are available in the filter (8)...

Not sure where im going wrong, I was following a tutorial. If theres a good tutorial for creating items lmk!

stone hare
#

I imported Custom System Builder - Example but i dont see anything in my project. On website it says its compatible with 4.6.3

manic crypt
formal goblet
stone hare
#

I am not sure if i found a bug or i am doing this the wrong way:

  • Created an Item Template for Ability (spell)
  • Inside there is a dropdown menu (that only GM uses to set the item properties) that uses formula with comma separation to fetch the information from parent. What i am referencing is the label/number that can be changed by player or an item.
  • Inside the same item i have another label that is referencing whatever was selected from the dropdown menu and it is used as information for player.

All of this works when i open the item from the inventory of the character. It looks at the stat of the character and it references it inside the item as information.

Bug:
When I change the the referenced stat. e.g. +1 to it, when I go back to item, the information is still the previous number. When i refresh the item it loses the information from the dropdown menu (it goes back to default which in my case is blank). Then if i close and open the item, it also loses that information for the player. Its just blank like in dropdown menu that was changed with hitting refresh button.

brittle moth
# stone hare I am not sure if i found a bug or i am doing this the wrong way: - Created an I...

You are doing this the wrong way ^^"
Dropdown save the selected key in the item data

Let's say basicRange_final = 10 and halfRange = 5

The way you are doing it, your dropdown generates two options :

10 => Basic Range
5 => Half Range

When selecting an option, let's say Basic Range, the Item will have in its values :

RangeType => 10

Then, when changing the value on the parent, let's say by making basicRange_final = 12, your dropdown will generate

12 => Basic Range
5 => Half Range

And the item, when displaying the dropdown, will try to select the option with key 10 since that is its value, and since it doesn't exist, select the blank value by default.

The way I recommend you do it is to set the option keys to the parent keys, i.e. : basicRange_final,halfRange, and calling fetchFromParent when needed. Or better yet, add a hidden property with this value :

RangeTypeValue => ${fetchFromParent(RangeType)}$

Which will automatically fetch the correct value based on what it selected on the dropdown

tame karma
#

hi, I don't know if i should ask here or there is a different channel.
I'm using Custom System Builder, and I'm having an issue where duplicating a sheet doesn't copy it exactly. Some things in dynamic tables are shuffled.
Does anyone know the cause and/or a solution to that?

#

(Both screenshots show a part of the original and duplicate sheet. Just a list of traits, but for some reason some traits and spaces(placed for convenience) are ending up at the end of the table...)

formal goblet
tame karma
#

Is it possible to turn it off?

formal goblet
tame karma
#

oh, ok thank you

#

i just didn't want to remake the sheet every time i want to copy it

dense pine
#

Trying to create an effect in an item that fetches a value from parent actor.
With item modifiers this works fine, but how can i reproduce this with an effect please?

formal goblet
dense pine
#

FollowUp Question regarding effect creation: I have a good amount of items (Skills) that change Values in the Parent Actor in lots of different ways: Is it good practice to precreate every single effect possible and just drop it in my items or would it be better to create an empty effect, eg. called "Bonus" and define its effects later when it is copied to the item? Do lots of effects bloat/slow down my system?

bright berry
#

I don't know how to search within threads, so forgive me: CSB work with V13 yet?

dense pine
formal goblet
#

Can you show the details-tab?

dense pine
formal goblet
#

Give the effect a priority

bright berry
dense pine
formal goblet
#

Ok, try it with a static effect value

dense pine
#

tried ${fetchFromParent("target.CHARISMA", {fallback: 0})}$
and
${fetchFromParent("CHARISMA", {fallback: 0})}$
both dont work.

#

static vales work, already checked that

formal goblet
#

I can at least confirm that fetchFromParent() works in there

#

Adjust the fallback-value to something else

dense pine
#

fallback triggers

formal goblet
#

Confirm that CHARISMA is a valid key

dense pine
formal goblet
#

Best would be fromUuidSync('uuid').system.props in the console

dense pine
formal goblet
dense pine
#

used:
${fetchFromParent(target.CHARISMA, {fallback: 3})}$
now it doesnt trigger fallback, gives error message

flint rapids