eft-domain

EFT Domain Knowledge Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "eft-domain" with this command: npx skills add tuckerandrew21/eft-tracker/tuckerandrew21-eft-tracker-eft-domain

EFT Domain Knowledge Skill

Game Context

Escape from Tarkov (EFT) is a hardcore tactical FPS with RPG elements. Players complete quests from traders to unlock gear, gain reputation, and progress toward the Kappa container (ultimate goal).

EFT-Tracker helps players track quest progress and visualize quest dependencies.

Quest System

Quest Status

type QuestStatus = "locked" | "available" | "completed";

  • locked - Prerequisites not met (level or quest requirements)

  • available - Can be started (all prerequisites met)

  • completed - Already finished

Quest Types

type QuestType = | "standard" // Regular trader quests | "pvp_zone" // PVP Zone quests (Arena) | "reputation" // Fence reputation repair | "lightkeeper" // Lightkeeper questline | "faction_bear" // BEAR-only quests | "faction_usec" // USEC-only quests | "story" // Main story quests (1.0) | "prestige"; // Prestige quests (require The Collector)

Quest Dependencies

Quests can have prerequisites with different status requirements:

type RequirementStatusType = "complete" | "active" | "failed";

// Quest A requires Quest B to be completed { requiredQuest: questB, requirementStatus: ["complete"] }

// Quest A requires Quest B to be active OR completed { requiredQuest: questB, requirementStatus: ["active", "complete"] }

Traders

Trader Specialty Color

Prapor Weapons, ammo Red

Therapist Medical, food Purple

Fence Scav items, reputation Gray

Skier Western weapons Blue

Peacekeeper NATO weapons, USD Light Blue

Mechanic Weapon mods Yellow

Ragman Armor, clothing Orange

Jaeger Survival, hunting Green

Lightkeeper Special endgame Cyan

BTR Driver Convoy quests Olive

Ref Arena quests Pink

Kappa Container

The Kappa Secure Container is the ultimate progression goal:

  • Requires completing all "Kappa required" quests

  • Quest: "The Collector" unlocks Kappa

  • kappaRequired: boolean flag on quests indicates if needed for Kappa

Kappa Progress Tracking

// Filter for Kappa-required quests only const kappaQuests = quests.filter((q) => q.kappaRequired);

// Calculate Kappa progress const completed = kappaQuests.filter((q) => q.computedStatus === "completed"); const progress = (completed.length / kappaQuests.length) * 100;

Data Structures

Quest Interface

interface Quest { id: string; title: string; wikiLink: string | null; levelRequired: number; kappaRequired: boolean; questType: QuestType; factionName: string | null; // "BEAR" | "USEC" | null traderId: string; trader: Trader; objectives: Objective[]; dependsOn: QuestDependency[]; dependedOnBy: QuestDependent[]; }

Quest with Progress

interface QuestWithProgress extends Quest { progress: QuestProgress | null; computedStatus: QuestStatus; // Calculated based on dependencies }

tarkov.dev API

The app syncs quest data from tarkov.dev GraphQL API.

Key Endpoints

query { tasks { id name wikiLink minPlayerLevel kappaRequired taskRequirements { task { id } status } trader { id name } } }

Data Sync

Quest data is periodically synced and stored in the database. The sync process:

  • Fetches all tasks from tarkov.dev

  • Maps API structure to internal Quest model

  • Updates database with new/changed quests

  • Preserves user progress associations

Quest Tree Visualization

The quest tree uses ReactFlow to visualize dependencies:

  • Nodes = Quests (colored by status)

  • Edges = Dependencies (arrows show requirement direction)

  • Layout = Hierarchical (dagre algorithm)

Node Colors

const statusColors = { locked: "gray", available: "cyan", completed: "green", };

Focus Mode

Double-click a quest to enter Focus Mode:

  • Shows only the selected quest and its dependency chain

  • Filters out unrelated quests

  • ESC exits focus mode

Common Operations

Mark Quest Complete

await updateQuestProgress({ questId: quest.id, status: "completed", completedAt: new Date(), });

Get Next Available Quests

const nextQuests = quests.filter( (q) => q.computedStatus === "available" && q.levelRequired <= playerLevel );

Calculate Dependency Chain

function getDependencyChain(quest: Quest): Quest[] { const chain: Quest[] = [quest]; for (const dep of quest.dependsOn) { chain.push(...getDependencyChain(dep.requiredQuest)); } return chain; }

Wipe Cycles

EFT has periodic wipes that reset all player progress. The tracker supports:

  • Resetting all quest progress for new wipe

  • Preserving historical progress (optional)

  • Quick-start options for returning players

Terminology Reference

Term Meaning

PMC Private Military Contractor (main character)

SCAV Scavenger (alternate play mode)

Wipe Server reset of all progress

Kappa Best secure container (5x3 slots)

Hideout Player base for crafting

Labs High-tier locked map

FIR Found In Raid (item status)

Fence rep Scav karma system

Files Reference

File Purpose

packages/types/src/quest.ts

Quest type definitions

packages/types/src/api.ts

API response types

apps/web/src/app/api/quests/

Quest API routes

apps/web/src/components/quest-tree/

ReactFlow visualization

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

frontend-design

No summary provided by upstream source.

Repository SourceNeeds Review
Security

security-auth

No summary provided by upstream source.

Repository SourceNeeds Review
General

deployment

No summary provided by upstream source.

Repository SourceNeeds Review