スキル一覧に戻る
tuckerandrew21

eft-domain

by tuckerandrew21

EFT Tracker

0🍴 0📅 2026年1月3日
GitHubで見るManusで実行

SKILL.md


name: eft-domain description: > Escape from Tarkov game domain knowledge for EFT-Tracker. Understands quest structures, traders, Kappa container progression, and tarkov.dev API integration. Activates when user mentions: quest, trader, Kappa, task, hideout, PMC, SCAV, Tarkov, wipe, progression, locked, available, completed. allowed-tools: Read, Write, Edit, Glob, Grep, Bash, WebFetch

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

TraderSpecialtyColor
PraporWeapons, ammoRed
TherapistMedical, foodPurple
FenceScav items, reputationGray
SkierWestern weaponsBlue
PeacekeeperNATO weapons, USDLight Blue
MechanicWeapon modsYellow
RagmanArmor, clothingOrange
JaegerSurvival, huntingGreen
LightkeeperSpecial endgameCyan
BTR DriverConvoy questsOlive
RefArena questsPink

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:

  1. Fetches all tasks from tarkov.dev
  2. Maps API structure to internal Quest model
  3. Updates database with new/changed quests
  4. 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

TermMeaning
PMCPrivate Military Contractor (main character)
SCAVScavenger (alternate play mode)
WipeServer reset of all progress
KappaBest secure container (5x3 slots)
HideoutPlayer base for crafting
LabsHigh-tier locked map
FIRFound In Raid (item status)
Fence repScav karma system

Files Reference

FilePurpose
packages/types/src/quest.tsQuest type definitions
packages/types/src/api.tsAPI response types
apps/web/src/app/api/quests/Quest API routes
apps/web/src/components/quest-tree/ReactFlow visualization

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です