SHARED PRIMARY PROFILEFOUR ABILITY-SCOPED STATS · ONE RANGE PER QUALITY
{#each SKILL_CHIP_QUALITIES as quality}{quality.toUpperCase()}{primaryProfiles.filter((profile) => profile.values[quality]).length}OF 4 CONFIGURED{/each} CALCULATION—NOT YET DEFINED
SHARED SECONDARY POOLONE CANONICAL ATTRIBUTE POOL FOR EVERY SKILL CHIP
{#each SKILL_CHIP_QUALITIES as quality}{quality.toUpperCase()}{SKILL_CHIP_SECONDARY_CAPACITY[quality]}SECONDARY {SKILL_CHIP_SECONDARY_CAPACITY[quality] === 1 ? 'ROLL' : 'ROLLS'}{/each} ATTRIBUTE POOL{secondaryPool.length}SHARED OPTIONS
{#if primaryEditing}

SHARED CONFIGURATION

SKILL CHIP PRIMARY RANGES

Every Skill Chip rolls one of these four ability-scoped primary stats. Configure the direct minimum and maximum for each quality. Current combat calculations do not apply these values.

{#each primaryDraft as profile}
{stats.find((item) => item.id === profile.statId)?.name ?? 'UNKNOWN ATTRIBUTE'}{stats.find((item) => item.id === profile.statId)?.unit || 'FLAT'} · ABILITY SCOPED
{#each SKILL_CHIP_QUALITIES as quality}{/each}
{/each}
{#if primaryError}

{primaryError}

{/if}
{/if} {#if secondaryEditing}

SHARED CONFIGURATION

SKILL CHIP SECONDARY POOL

Standard has no secondary roll. Specialized selects one option; Superior and High-end select two distinct options. Skill Chips have no item level, so each quality uses one direct range.

AVAILABLE ATTRIBUTESSPECIALIZED · SUPERIOR · HIGH-END RANGES
{#each secondaryDraft as profile, index}
{String(index + 1).padStart(2, '0')} itemIndex !== index).map((item) => item.statId)} bind:value={profile.statId}/>{#each SKILL_CHIP_SECONDARY_QUALITIES as quality}{/each}
{/each}
{#if secondaryError}

{secondaryError}

{/if}
{/if}