Victor B. said: @Wolfspirit, I'm going beyond what Robin did in concentration. I'm intercepting new spells, determining if those spells are in CM yet or in an ignore list and add them to CM once someone casts a spell. In order for me to support shaped, I'll need more info because it goes beyond concentration. Concentration might not even be used, but someone may still want to auto-add new spells. So for me to support shaped, you'll need to log the incoming spell and give me more information on what is a spell vs a ranged/melee/skill roll. For OGL, it looks like this if (state[combatState].config.status.autoAddSpells) { if (msg_orig && msg_orig.rolltemplate && msg_orig.rolltemplate === 'spell') { handleSpellCast(msg_orig) } } I'm still getting my wings on newer versions of Javascript, my last was in it's early stages when the Netscape Navigator browser was still a thing, and it and Internet Explorer were all you coded for. So, sadly, I'm badly out of date with unravelling that code in my head. I hope it's ok, but I'm going to give you a few spells' code and see if you can understand what you need, as I am lost in how to give direction here. One thing about Shaped is that it's much simpler - it doesn't have an individual template for everything - there is only one: &{template:5e-shaped} . So - everyone's favorite, but it's an instant duration spell; just for reference, FIREBALL . @{Graol Edun|output_option} &{template:5e-shaped} {{character_name=@{Graol Edun|character_name}}} @{Graol Edun|show_character_name} {{title=Fireball}} {{spell=1}} {{spell_first_line=1}} @{Graol Edun|attacher_spell} @{Graol Edun|attacher_spell_level_3} {{spell_level=^{3RD_LEVEL}}} {{school=^{EVOCATION}}} {{casting_time=^{1_ACTION}}} {{range=150 feet}} {{components=^{COMPONENTS_V_S_M}}} {{materials=A tiny ball of bat guano and sulfur}} {{duration=^{INSTANTANEOUS}}} @{Graol Edun|hide_gm_info} {{@{Graol Edun|shaped_d20}=1}} {{content=A bright streak flashes from your pointing finger to a point you choose within range and then blossoms with a low roar into an explosion of flame. Each creature in a 20-foot-radius sphere centered on that point must make a Dexterity saving throw. A target takes 8d6 fire damage on a failed save, or half as much damage on a successful one. The fire spreads around corners. It ignites flammable objects in the area that aren’t being worn or carried.}} {{saving_throw_vs_ability=DEXTERITY}} {{saving_throw_dc=19}} {{has_saving_throw_damage=1}} {{saving_throw_damage=[[8d6[damage] + ([[(@{Graol Edun|higher_level_query_3} - 3) * 1]])d6[higher level]]]}} {{saving_throw_damage_type=fire}} {{has_saving_throw_damage=1}} {{saving_throw_damage_macro=[Saving throw failure:](~-MBUSrGd8_eKPZHKcH5V|repeating_spell3_-MBUT6unTNLG5uNZtN1U_saving_throw_damage)}} {{higher_level=At Higher Levels. When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for each slot level above 3rd.}} {{cast_as_level=@{Graol Edun|higher_level_query_3}}} Here's one with concentration, WEB : @{Graol Edun|output_option} &{template:5e-shaped} {{character_name=@{Graol Edun|character_name}}} @{Graol Edun|show_character_name} {{title=Web}} {{spell=1}} {{spell_first_line=1}} @{Graol Edun|attacher_spell} @{Graol Edun|attacher_spell_level_2} {{spell_level=^{2ND_LEVEL}}} {{school=^{CONJURATION}}} {{casting_time=^{1_ACTION}}} {{range=60 feet}} {{components=^{COMPONENTS_V_S_M}}} {{materials=A bit of spiderweb}} {{duration=^{CONCENTRATION_UP_TO_1_HOUR}}} @{Graol Edun|hide_gm_info} {{@{Graol Edun|shaped_d20}=1}} {{content=You conjure a mass of thick, sticky webbing at a point of your choice within range. The webs fill a 20-foot cube from that point for the duration. The webs are difficult terrain and lightly obscure their area. If the webs aren’t anchored between two solid masses (such as walls or trees) or layered across a floor, wall, or ceiling, the conjured web collapses on itself, and the spell ends at the start of your next turn. Webs layered over a flat surface have a depth of 5 feet. Each creature that starts its turn in the webs or that enters them during its turn must make a Dexterity saving throw. On a failed save, the creature is restrained as long as it remains in the webs or until it breaks free. A creature restrained by the webs can use its action to make a Strength check against your spell save DC. If it succeeds, it is no longer restrained. The webs are flammable. Any 5-foot cube of webs exposed to fire burns away in 1 round, dealing 2d4 fire damage to any creature that starts its turn in the fire.}} {{cast_as_level=@{Graol Edun|cast_as_level_2}}} And for References/ Comparisons, here is a Melee Attack using a QUARTERSTAFF : @{Graol Edun|output_option} &{template:5e-shaped} {{character_name=@{Graol Edun|character_name}}} @{Graol Edun|show_character_name} {{title=Quarterstaff (Versatile)}} {{offense=1}} @{Graol Edun|attacher_offense} @{Graol Edun|hide_gm_info} {{@{Graol Edun|shaped_d20}=1}} {{attack_type_macro=[Melee Weapon Attack:](~-MBUSrGd8_eKPZHKcH5V|repeating_offense_-MBUTbjnJVu8PMf49rij_attack)}} {{has_attack_damage=1}} {{attack_damage_crit=[[1d8]]}} {{attack_damage=[[1d8[damage] + 1[str]]]}} {{attack_damage_type=bludgeoning}} {{has_attack_damage=1}} {{attack_damage_macro=[Hit:](~-MBUSrGd8_eKPZHKcH5V|repeating_offense_-MBUTbjnJVu8PMf49rij_attack_damage)}} {{attack_damage_crit_macro=[Crit:](~-MBUSrGd8_eKPZHKcH5V|repeating_offense_-MBUTbjnJVu8PMf49rij_attack_damage_crit)}} {{attack1=[[@{Graol Edun|shaped_d20}@{Graol Edun|d20_mod}cs>20 + 6[proficient] + 1[str]]]}} {{attack2=[[@{Graol Edun|shaped_d20}@{Graol Edun|d20_mod}cs>20 + 6[proficient] + 1[str]]]}} {{targetAC=@{target|AC}}} {{reach=5 ft.}} A ranged attack with a DART (THROWN) : @{Graol Edun|output_option} &{template:5e-shaped} {{character_name=@{Graol Edun|character_name}}} @{Graol Edun|show_character_name} {{title=Dart (Thrown)}} {{offense=1}} @{Graol Edun|attacher_offense} @{Graol Edun|hide_gm_info} {{@{Graol Edun|shaped_d20}=1}} {{attack_type_macro=[Ranged Weapon Attack:](~-MBUSrGd8_eKPZHKcH5V|repeating_offense_-MBUUsV-QdzZgxoMtcBx_attack)}} {{has_attack_damage=1}} {{attack_damage_crit=[[1d4]]}} {{attack_damage=[[1d4[damage] + 1[fin]]]}} {{attack_damage_type=piercing}} {{has_attack_damage=1}} {{attack_damage_macro=[Hit:](~-MBUSrGd8_eKPZHKcH5V|repeating_offense_-MBUUsV-QdzZgxoMtcBx_attack_damage)}} {{attack_damage_crit_macro=[Crit:](~-MBUSrGd8_eKPZHKcH5V|repeating_offense_-MBUUsV-QdzZgxoMtcBx_attack_damage_crit)}} {{attack1=[[@{Graol Edun|shaped_d20}@{Graol Edun|d20_mod}cs>20 + 6[proficient] + 1[fin]]]}} {{attack2=[[@{Graol Edun|shaped_d20}@{Graol Edun|d20_mod}cs>20 + 6[proficient] + 1[fin]]]}} {{targetAC=@{target|AC}}} {{range=20/60 ft.}} {{ammo=[[@{Graol Edun|repeating_ammo_-mbuusei8ozeg15bebre_uses}-1]]}} {{ammo_name=Darts}} A skill (PERSUASION) check: @{Graol Edun|output_option} &{template:5e-shaped} {{ability=1}} {{character_name=@{Graol Edun|character_name}}} @{Graol Edun|show_character_name} {{title=Persuasion (^{CHA})}} {{@{Graol Edun|repeating_skill_-mbussnk3fh1onog97m2_skill_d20}=1}} {{roll1=[[@{Graol Edun|repeating_skill_-mbussnk3fh1onog97m2_skill_d20_wrap} + 6[proficient] + 5[cha]]]}} {{roll2=[[@{Graol Edun|repeating_skill_-mbussnk3fh1onog97m2_skill_d20_wrap} + 6[proficient] + 5[cha]]]}} @{Graol Edun|hide_gm_info} @{Graol Edun|attacher_skill} A saving throw ( CONSTITUTION ): @{Graol Edun|output_option} &{template:5e-shaped} {{saving_throw=1}} {{character_name=@{Graol Edun|character_name}}} @{Graol Edun|show_character_name} {{title=^{CONSTITUTION_SAVING_THROW}}} {{@{Graol Edun|shaped_d20}=1}} @{Graol Edun|constitution_saving_throw_formula} @{Graol Edun|hide_gm_info} @{Graol Edun|attacher_constitution_saving_throw} For Concentration check bonuses, you want this attribute also: constitution_check_mod_with_sign, which differs from OGL's standard attribute of - i believe - constitution_save_bonus . As I look through, the main if's you want are against the template (5e-shaped) and a line inside of it {{spell=1}}, which differs from {{offense=1}}, {{ability=1}}, and {{saving_throw=1}}, among other things.