Ok, thanks for the auto-calc info, i ended assuming this too thats why i'm converting all to readonly, but it's a long task x) For the charms, before posting it i have to explain a bit, Exalted 3e is a complex system so there is many tabs but i will list only the ones usefull here one to configure the charms (name, multiple costs, type of action, long & short desc, effect, and more ... you can include Roll20 expr/macro in some, like cost, because i coded a diceroller script/mod that also remove ressource consumed, and more ... told you i was a madman) then, because Exalted is complex, and charms can be combined depending on ... many things xD, i did a "reminder" area where charms can be seen on other tabs but only their name, cost, type of action icon, a short desc, and the cast buttons these can be found on : the dice roller UI tab : provide a live visual feedback to the players on how much power they can add to the roll and how many dice&successes the roll is gonna send the combat tab : provide also a dice roller UI but more configurable to include Roll20 macros so you can adjust more in-depth but without live visual feedback so, yeah, the repeating_charms-all is included 3 times ... ^^' the config part : <fieldset class="repeating_charms-all" style="display: none;">
<input type="hidden" name="attr_isEvoc" class="sheet-tab-charms-inside-check" value="">
<input type="hidden" name="attr_charm-skill" class="sheet-tab-charms-inside-check" value="">
<input type="hidden" name="attr_charm-name" class="sheet-tab-charms-name-check" value="">
<div class="flex flex-col sheet-body">
<div class="flex flex-wrap">
<input type="hidden" name="attr_charm-learnt" class="charm-learnt-check" value="1">
<input type="text" name="attr_charm-name" class="sheet-charms-spells-trait-name" placeholder="Excellent Solar Larceny"><span> </span>
<select name="attr_charm-type" style="width: 109px">
<option value=""></option>
<option value="Simple">Simple</option>
<option value="Supplemental">Supplemental</option>
<option value="Reflexive">Reflexive</option>
<option value="Double">Suppl. ou Reflex.</option>
<option value="Permanent">Permanent</option>
<option value="Enchantment">Enchantment</option>
</select>
<div class="flex grow-normal"><label><span>Cost: </span><input type="text" name="attr_charm-cost" class="sheet-charms-spells-trait sheet-charms-spells-trait-cost" placeholder="1m/die"></label></div>
<input type="hidden" name="attr_charm-buttons-isextended" class="charm-buttons-include-check" value="0">
<input type="hidden" name="attr_rep-cost-macro">
<div class="charm-buttons charm-buttons-show-default sheet-grouped-buttons">
<button type="roll" class="sheet-roll btn ui-draggable default-whisper" name="act_charmcast" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n!exr @{rep-cost-macro}">Cast</button>
<button type="roll" class="sheet-roll btn ui-draggable gm-whisper" name="act_charmcast-gm" value="/w gm &amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n!exr @{rep-cost-macro}">to GM</button>
<button type="roll" class="sheet-roll btn ui-draggable" name="act_charmcast-show" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}" title="Cast the Charm without the cost nor the macro">Show</button>
</div>
<div class="charm-buttons charm-buttons-show-extended sheet-grouped-buttons">
<button type="roll" class="sheet-roll btn ui-draggable default-whisper" name="act_charmcast-ex" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n@{charm-rollexpr} @{rep-cost-macro}">Cast</button>
<button type="roll" class="sheet-roll btn ui-draggable gm-whisper" name="act_charmcast-ex-gm" value="/w gm &amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n@{charm-rollexpr} -gm @{rep-cost-macro}">to GM</button>
<button type="roll" class="sheet-roll btn ui-draggable" name="act_charmcast-show" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}" title="Cast the Charm without the cost nor the macro">Show</button>
</div>
<input type="text" name="attr_charm-short-desc" class="sheet-charms-spells-trait sheet-charms-spells-trait-short-desc" placeholder="short desc">
<input type="checkbox" name="attr_charm-learnt" class="sheet-charms-spells-trait sheet-charms-spells-trait-learnt" title="Learnt" value="1" checked>
</div>
<div class="sheet-table-row" style="width: 100%">
<input type="checkbox" name="attr_charm-effect-display" class="sheet-charmeffect" value="1"><span class="sheet-charmeffect" title="Show Description &amp; Effect"></span>
<div class="sheet-charm-effect">
<div class="flex grow-max"><label><span>Book: </span><input type="text" name="attr_charm-book" class="sheet-charms-spells-trait grow-normal" placeholder="Core"><span> </span></label></div>
<div class="flex"><label><span>Page #: </span><input type="number" name="attr_charm-page" class="sheet-charms-spells-trait" placeholder="255"><span> </span></label></div>
<div class="flex"><label><span>Duration: </span><input type="text" name="attr_charm-duration" class="sheet-charms-spells-trait" placeholder="Instant"><span> </span></label></div>
<div class="flex trait-div"><label><span class="default-trait">Trait: </span><span class="artifact-trait">Artifact Name: </span><input type="text" name="attr_charm-skill" class="sheet-charms-spells-trait" placeholder="Fire form"><span> </span></label></div>
<div class="flex grow-max"><label><span>Keywords: </span><input type="text" name="attr_charm-keywords" class="sheet-charms-spells-trait grow-normal" placeholder="Uniform, Psyche"></label></div>
<label title="Mute"><span>Mute: </span><div class="flex"><input type="checkbox" name="attr_charm-mute" class="sheet-charms-spells-trait" value="1"></div></label>
<div class="flex grow-normal"><label><span class="show-to-db-only">Aspect: </span><select name="attr_charm-aspect" class="show-to-db-only sheet-charms-spells-trait grow-normal"><option value="unknown" hidden>Unknown</option><option value="none">None</option><option value="air">Air</option><option value="earth">Earth</option><option value="fire">Fire</option><option value="water">Water</option><option value="wood">Wood</option><option value="dawn" hidden>Dawn</option><option value="zenith" hidden>Zenith</option><option value="twilight" hidden>Twilight</option><option value="night" hidden>Night</option><option value="eclipse" hidden>Eclipse</option><option value="full moon" hidden>Full Moon</option><option value="changing moon" hidden>Changing Moon</option><option value="no moon" hidden>No Moon</option><option value="casteless" hidden>Casteless</option><option value="journeys" hidden>Journeys</option><option value="serenity" hidden>Serenity</option><option value="battles" hidden>Battles</option><option value="secrets" hidden>Secrets</option><option value="endings" hidden>Endings</option><option value="adamant" hidden>Adamant</option><option value="jade" hidden>Jade</option><option value="moonsilver" hidden>Moonsilver</option><option value="orichalcum" hidden>Orichalcum</option><option value="soulsteel" hidden>Soulsteel</option><option value="starmetal" hidden>Starmetal</option><option value="daybreak" hidden>Daybreak</option><option value="day" hidden>Day</option><option value="dusk" hidden>Dusk</option><option value="midnight" hidden>Midnight</option><option value="moonshadow" hidden>Moonshadow</option><option value="defiler" hidden>Defiler</option><option value="fiend" hidden>Fiend</option><option value="malefactor" hidden>Malefactor</option><option value="scourge" hidden>Scourge</option><option value="slayer" hidden>Slayer</option><option value="blood" hidden>Blood</option><option value="breath" hidden>Breath</option><option value="flesh" hidden>Flesh</option><option value="marrow" hidden>Marrow</option><option value="soil" hidden>Soil</option><option value="sorceries" hidden>Sorceries</option></select></label></div>
<label title="Balanced"><span class="show-to-db-only">Balanced: </span><div class="flex"><input type="checkbox" name="attr_charm-balanced" class="show-to-db-only sheet-charms-spells-trait"></div></label>
<label title="Can Change Aspect"><span class="show-to-db-only">Multi: </span><div class="flex"><input type="checkbox" name="attr_charm-can-cycle-aspects" class="show-to-db-only sheet-charms-spells-trait"></div></label>
<div class="cost-section grow-max flex flex-wrap">
<p class="mote-color-down rounded-box grow-double flex caste-have-exc-toggle">
<label>Mote:<input type="text" name="attr_rep-cost-mote" class="sheet-cost-mote grow-normal" title="Cost as Atome of Essence&#013;&#010;You can include roll20 syntax like @{essence} or [[]] for complex configurations"></label>
<select name="attr_rep-cost-mote-pool">
<option value="?{Spend Peripheral First ?|Yes,1|No,0}" selected>Prompt</option>
<option value="1">Peripheral</option>
<option value="0">Personal</option>
</select>
<input type="hidden" name="attr_rep-cost-mote-commit" value="0">
<label title="Commit on Cast ?"><span>C: </span><div class="flex caste-have-exc-toggle"><input type="checkbox" name="attr_rep-cost-mote-commit" class="sheet-charms-spells-trait" value="1" title="Commit on Cast ?"></div></label>
</p>
<p class="will-color-down rounded-box grow-normal flex">
<label>Will:<input type="text" name="attr_rep-cost-will" class="sheet-cost-will grow-normal" title="Cost as Willpower&#013;&#010;You can include roll20 syntax like @{essence} or [[]] for complex configurations"></label>
</p>
<p class="init-color-down rounded-box grow-normal flex">
<label>Init:<input type="text" name="attr_rep-cost-init" class="sheet-cost-init grow-normal" title="Cost as Initiative Points&#013;&#010;You can include roll20 syntax like @{essence} or [[]] for complex configurations"></label>
</p>
</div>
</div>
<div class="sheet-charm-effect">
<textarea name="attr_charm-description" class="desc" placeholder="Harnessing the great power of The Unconquered Sun, Karal focuses his efforts!"></textarea>
</div>
<div class="sheet-charm-effect">
<textarea name="attr_charm-effect" class="effect" placeholder="Add dice to a Larceny roll"></textarea>
</div>
<div class="sheet-charm-effect">
<input type="hidden" name="attr_charm-buttons-isextended" class="charm-buttons-include-check" value="0">
<input type="text" name="attr_charm-rollexpr" placeholder="EX: '!exr -setOnce -d 9 -CRStarter @{essence}', '!exr 15# -d 8,9 -r 6 -v', '!exr (10+?{Motes?|5})#+?{Succes ?|0}', ..."/>
</div>
</div>
</div>
</fieldset> (i know the charm_name is included twice but its for a css tricks i use with :has() and i can't figure how to make it work with a tag 2 level downward ... tried many syntax but none works) the "reminders" part (included twice in the sheet, i could include it only once if i change the css to move the div depending on the tab selected, but css is my weakest point T_T) : <fieldset class="repeating_charms-all" style="display: none;">
<input type="hidden" name="attr_isEvoc" class="sheet-tab-charms-inside-check">
<input type="hidden" name="attr_charm-aspect">
<input type="hidden" name="attr_charm-balanced">
<div class="db-aspect-quickshow">
<input type="hidden" name="attr_charm-can-cycle-aspects" value="0">
<button type="action" name="act_change-aspect" class="quick-change-aspect" title="Change Aspect"></button>
<img class="aspect" />
<img class="balanced" src="<a href="https://s3.amazonaws.com/files.d20.io/images/290329500/ecMmiM8rUcJ-ziYHX9d18w/max.png?1655517656" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/290329500/ecMmiM8rUcJ-ziYHX9d18w/max.png?1655517656</a>" title="Balanced"/>
</div>
<input type="hidden" name="attr_charm-learnt" class="charm-learnt-check" value="1">
<input type="text" name="attr_charm-name" class="sheet-tab-charms-name-check" readonly tabindex="-1">
<input type="hidden" name="attr_charm-buttons-isextended" class="charm-buttons-include-check" value="0">
<input type="hidden" name="attr_rep-cost-macro">
<input type="hidden" name="attr_charm-skill" class="sheet-tab-charms-inside-check">
<input type="hidden" name="attr_charm-keywords">
<input type="hidden" name="attr_charm-mute">
<input type="hidden" name="attr_charm-type">
<img class="charm-icon-type"/>
<input type="text" name="attr_charm-cost" readonly tabindex="-1">
<input type="hidden" name="attr_charm-duration">
<input type="hidden" name="attr_charm-description">
<input type="hidden" name="attr_charm-effect">
<input type="hidden" name="attr_charm-rollexpr">
<div class="charm-buttons charm-buttons-show-default sheet-grouped-buttons">
<button type="roll" class="sheet-roll btn ui-draggable default-whisper" name="act_charmcast" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n!exr @{rep-cost-macro}">Cast</button>
<button type="roll" class="sheet-roll btn ui-draggable gm-whisper" name="act_charmcast-gm" value="/w gm &amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n!exr @{rep-cost-macro}">to GM</button>
<button type="roll" class="sheet-roll btn ui-draggable" name="act_charmcast-show" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}" title="Cast the Charm without the cost nor the macro">Show</button>
</div>
<div class="charm-buttons charm-buttons-show-extended sheet-grouped-buttons">
<button type="roll" class="sheet-roll btn ui-draggable default-whisper" name="act_charmcast-ex" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n@{charm-rollexpr} @{rep-cost-macro}">Cast</button>
<button type="roll" class="sheet-roll btn ui-draggable gm-whisper" name="act_charmcast-ex-gm" value="/w gm &amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}\n@{charm-rollexpr} -gm @{rep-cost-macro}">to GM</button>
<button type="roll" class="sheet-roll btn ui-draggable" name="act_charmcast-show" value="&amp;{template:exalted3e_cast} {{charm-name=@{charm-name}}} {{show-character-name=@{show_character_name}}} {{character-name=@{character_name}}} {{aspect=@{charm-aspect}}} {{balanced=@{charm-balanced}}} {{skill=@{charm-skill}}} {{keywords=@{charm-keywords}}} {{type=@{charm-type}}} {{cost=@{charm-cost}}} {{duration=@{charm-duration}}} {{description=@{charm-description}}} {{effect=@{charm-effect}}} {{mute=@{charm-mute}}}" title="Cast the Charm without the cost nor the macro">Show</button>
</div>
<div class="charm-buttons sheet-grouped-buttons charm-button-learn">
<button type="action" name="act_learn-charm" class="sheet-roll btn ui-draggable" title="Learn !">Learn !</button>
</div>
<input type="text" name="attr_charm-short-desc" readonly tabindex="-1">
</fieldset> so, yeah, now you see xD, i hope i'm somehow comprehensible, and sorry for the huge code pastes X_x i can remove one reminder, but it's "only" 33% gain, that wont reduce 15s to 3s lol (but that's still the biggest improvement i found) if you have other ideas, it's really appreciated, thanks a lot for your time ! PS: now i read it again, i know you will tell me about the attack of divitis even more x) but learning flex was hard and it's a mistake i'll fix, though do you think it can impact "that much" ? Edit: an idea i have is switch the buttons type from roll to action in the reminders so i "load" data on click each time instead of at sheet load ... that would reduce the count of hidden fields in the reminders but i tested, and it doesn't feel a lot faster (plus it's hard to have consistent time on the loads so some time i think i improved a bit but its only the delay which vary a bit) Edit2: or ... i move my config tab in this "reminder" kinda div (which can be toggled open above the tab selected) and make a "reminder mode" checkbox to change the display of the charm, so i only have 1 repeating section, but it will be a pain in the ass to adapt from what i have .... f*** me xD