{weapon.name}
{weapon.category}{weapon.postLaunch ? ' · DLC' : ''}
No weapon level rank
{/if}Level {data.rank?.level ?? '—'}{playerLimits.maxLevel ? ` / ${playerLimits.maxLevel}` : ''} · Prestige {data.rank?.prestige ?? '—'}{data.game.rules.rankCaps ? ` / ${playerLimits.maxPrestige}` : ''}{data.rank?.level === playerLimits.maxLevel && data.rank?.prestige === playerLimits.maxPrestige && data.game.rules.rankCaps ? ' · Prestige Master' : ''}
{weapons.length} weapons · {achievements.length} achievements · {data.challenges.length} challenges & unlocks
{#if !data.user}sign in to save your progress.
{/if} {#if form?.message}{form.message}
{/if} {#if saveError}{saveError}
{/if}{weapon.category}{weapon.postLaunch ? ' · DLC' : ''}
No weapon level rank
{/if}No weapons match these filters.
{/each}Showing {weaponRows.length} of {weapons.length} weapons · Changes save immediately. Prestige + starts the next prestige at level 1.
{:else if tab === 'achievements'} {#each categories as [category, list] (category)} {@const rows = list.filter((item) => !hideDone || !isDone(item.id, 'done'))}{list.filter((item) => isDone(item.id, 'done')).length} of {list.length}
{challenge.category}
{challenge.requirement}
{#if challenge.reward}Unlock: {challenge.reward}
{/if}{data.challenges.length ? 'No matching challenges.' : 'No multiplayer challenge catalog has been imported for this game yet.'}
{/each}Requirements adapted from Call of Duty Wiki contributors under CC BY-SA. Each card links to its source. This catalog includes confirmed source rows; coverage is not exhaustive.
{/if}{form.message}
{/if}{[...rules.milestones, ...rules.tiers] .filter((r) => r.description) .map((r) => `${r.label}: ${r.description}`) .join('. ')}. DLC weapons do not gate class or overall camos.