An advanced BepInEx mod menu for Single Player Tarkov (SPT) featuring combat utilities, ESP overlays, movement enhancements, visual tweaks, and a full in-game GUI with seven configuration tabs.
| Requirement | Version |
|---|---|
| SPT (Single Player Tarkov) | 4.0+ |
| BepInEx | 5.x |
| .NET Framework | 4.7.2 (bundled with SPT) |
- Download the latest
MasterTool.dllandMasterTool.Core.dllfrom the Releases page. - Copy both DLLs into your SPT installation:
SPT\BepInEx\plugins\MasterTool.dll SPT\BepInEx\plugins\MasterTool.Core.dll - Launch SPT. The mod menu is accessible in-raid by pressing Insert.
git clone https://github.com/dashed/Master-Tool.git
cd Master-ToolCreate a libs/ folder in the repository root and copy the following DLLs from your SPT installation:
| DLL | Source path |
|---|---|
BepInEx.dll |
SPT/BepInEx/core/BepInEx.dll |
0Harmony.dll |
SPT/BepInEx/core/0Harmony.dll |
Assembly-CSharp.dll |
SPT/EscapeFromTarkov_Data/Managed/Assembly-CSharp.dll |
UnityEngine.dll |
SPT/EscapeFromTarkov_Data/Managed/UnityEngine.dll |
UnityEngine.CoreModule.dll |
SPT/EscapeFromTarkov_Data/Managed/UnityEngine.CoreModule.dll |
UnityEngine.IMGUIModule.dll |
SPT/EscapeFromTarkov_Data/Managed/UnityEngine.IMGUIModule.dll |
UnityEngine.PhysicsModule.dll |
SPT/EscapeFromTarkov_Data/Managed/UnityEngine.PhysicsModule.dll |
UnityEngine.TextRenderingModule.dll |
SPT/EscapeFromTarkov_Data/Managed/UnityEngine.TextRenderingModule.dll |
UnityEngine.InputLegacyModule.dll |
SPT/EscapeFromTarkov_Data/Managed/UnityEngine.InputLegacyModule.dll |
Comfort.dll |
SPT/EscapeFromTarkov_Data/Managed/Comfort.dll |
dotnet buildThe compiled MasterTool.dll and MasterTool.Core.dll will be in build/. Copy both to your SPT plugins folder.
| Feature | Description |
|---|---|
| God Mode | Comprehensive immunity: blocks damage, instant kills, limb destruction, fractures, and bleeds across 7 Harmony patches on both Player and ActiveHealthController. |
| Damage Reduction | Configurable percentage slider (0–100%) that scales all incoming damage to the local player. |
| Keep 1 Health | Prevents lethal damage by clamping HP to 3 on protected body parts. Four protection modes: All (all 7 parts), Head And Thorax, Vitals (Head + Chest + Stomach), or Custom (per-body-part toggles for Head, Chest, Stomach, Left Arm, Right Arm, Left Leg, Right Leg). |
| Headshot Protection | Toggle to completely ignore head damage, plus a separate head damage percentage slider (0–100%) for fine-grained control. |
| Enemy Damage Multiplier | Configurable multiplier (1–20x) applied to all damage dealt to non-local players (bots/AI). |
| COD Mode | Auto-heal: after not taking damage for a configurable delay (default 10s), all body parts regenerate HP at a configurable rate. Damage resets the timer. |
| Teleport Enemies | Teleport all enemies to 3 meters in front of you. |
| Feature | Description |
|---|---|
| Infinite Stamina | Keeps leg stamina, arm stamina (aiming), and oxygen at 100% at all times. |
| Infinite Energy | Keeps energy at maximum — no need to eat. Only calls ChangeEnergy when below max for zero unnecessary overhead. |
| Infinite Hydration | Keeps hydration at maximum — no need to drink. Same efficiency guard as Energy. |
| No Weight Penalties | Configurable weight scale (0–100%) — set to 0% for weightless, or fine-tune to reduce weight penalties without removing them entirely. |
| No Fall Damage | Eliminates fall damage by setting safe fall height to an extreme value. State-tracked: only resets when the mod forced the change, never interferes with game defaults. |
| Fly Mode (Noclip) | Spectator-style free flight through walls and terrain. Disables CharacterController for collision-free movement. WASD + Space (up) + Ctrl (down), configurable speed. |
| Speedhack | Adjustable movement speed multiplier. |
| Reload Speed | Adjustable magazine load/unload times. Lower values = faster reloads. State-tracked: restores game defaults when disabled. |
ESP (Extrasensory Perception) draws on-screen text labels showing positions, distances, and details for players, items, and quest objectives. Chams (short for "chameleon") are colored shader overlays applied directly to 3D models, making them visible through walls and geometry by replacing the normal material with a flat-colored always-visible shader (depth testing disabled).
| Feature | Description |
|---|---|
| Player ESP | Displays all players and bots with faction-based color coding (BEAR, USEC, Boss, Scav/Raider). Includes distance tracking, customizable colors via RGB sliders, adjustable update rate, distance filter, and optional line-of-sight mode that only shows players you can directly see (no wall visibility). |
| Item ESP | Shows loose items on the ground. Supports multi-filter search by name or ID with comma-separated lists (e.g., LedX, GPU, Salewa). Optional line-of-sight mode hides items behind walls/terrain. Optional wishlist mode shows only items in your in-game wishlist. |
| Container ESP | Reveals items inside containers, crates, jackets, safes, and bodies. Uses a smart caching system (10-second refresh) and squared-distance calculations for zero FPS impact. |
| Quest ESP | Highlights quest-related items in the world and quest zone markers (placement zones, visit locations, flare zones) with configurable colors for items and zones. Optional line-of-sight mode hides quest markers behind walls/terrain. |
| Player Chams | Applies colored material overlays to player models for enhanced visibility through geometry. Three rendering modes: Solid (flat color, all faces), CullFront (hollow silhouette, back faces only), and Outline (normal model + colored edge via inverted hull). Configurable color intensity (10%–100%), opacity (10%–100%), outline thickness, and dedicated max distance (independent from ESP label distance). Anti-occlusion: forces renderer visibility through multiple walls. |
| Loot Chams | Applies colored material overlays to loose loot items for through-wall visibility. Same three rendering modes as player chams. Configurable color via the Item ESP tab. Shares intensity and opacity settings with player chams. Dedicated max distance slider (independent from item ESP label distance). |
| Feature | Description |
|---|---|
| Thermal Vision | Toggles thermal imaging overlay. Does not interfere with vanilla thermal goggles when disabled. |
| Night Vision | Toggles night vision overlay. Does not interfere with vanilla NVGs when disabled. |
| Big Head Mode | Scales enemy head bones for easier target acquisition. Only resets heads the mod scaled. |
| Weapon FOV | Per-weapon-category FOV adjustment (pistol, SMG, assault rifle, shotgun, sniper, machinegun, melee). Applied in LateUpdate for flicker-free operation during stance changes and ADS. Configurable "Override FOV During ADS" toggle (default OFF) lets ADS use native game zoom. |
| Feature | Description |
|---|---|
| Unlock All Doors | Instantly unlocks every locked door on the map. No keys required. |
| Peaceful Mode | Bots completely ignore the local player. Four Harmony patches block enemy registration at every level of the bot AI pipeline (group, memory, knowledge). Toggling on mid-raid clears existing aggro. Bot-vs-bot AI remains unaffected. SAIN compatible — works alongside SAIN's custom AI; for best results enable before entering a raid (see Mod Compatibility). |
| Performance Culling | Deactivates distant bots for a performance boost. Only re-enables bots the mod deactivated — does not interfere with the game's native bot sleep system. |
| Teleport Items | Teleports all loose loot matching the item ESP filter to your position. If no filter is set, all loose loot is teleported. |
| Player Teleport | Save/load position system: save your current spot, teleport back anytime. Includes a Teleport to Surface rescue button that finds the terrain above you — fixes falling under the map. |
| Feature | Description |
|---|---|
| Mod Menu | Full in-game GUI with 7 tabs and sub-tabs for configuring all features. Also accessible via a button in the F12 ConfigurationManager panel. |
| Hotkey Rebinding | In-game hotkey configuration with draft state. Click [Rebind] to capture a keypress, or [Type] to enter key names like "ctrl + b". Changes are staged (marked with *) and committed with Save All. Supports 80+ key aliases. Press Escape to cancel, [Clear] to unbind. |
| Status Window | Compact overlay showing active feature toggles and current settings. |
All hotkeys below are defaults and can be rebound in-game from the Hotkeys tab in the mod menu.
| Key | Action |
|---|---|
Insert |
Open / Close Mod Menu |
Numpad 0 |
Toggle Status Window |
Numpad 1 |
Toggle God Mode |
Numpad 2 |
Toggle Infinite Stamina |
Numpad 3 |
Toggle Quest ESP |
Numpad 4 |
Toggle No Weight Penalties |
Numpad 5 |
Toggle Player ESP |
Numpad 6 |
Toggle Item ESP |
Numpad 7 |
Toggle Container ESP |
Numpad 8 |
Toggle Performance Culling |
Numpad 9 |
Unlock All Doors |
K |
Toggle Chams |
L |
Toggle Weapon Info |
| (unbound) | Toggle Infinite Energy |
| (unbound) | Toggle Infinite Hydration |
| (unbound) | Toggle No Fall Damage |
| (unbound) | Toggle Peaceful Mode |
MasterTool is compatible with all major SPT mods. The only feature with mod-specific considerations is Peaceful Mode:
| Mod | Compatible | Notes |
|---|---|---|
| SAIN | Yes | SAIN patches the same bot AI methods as Peaceful Mode. Both coexist because Harmony 2.x runs all prefix patches — our "block local player" and SAIN's "block invalid bots" are orthogonal checks. SAIN's parallel enemy tracking system is also protected: it requires a base-game EnemyInfo which our prefix prevents from being created. Caveat: if you toggle Peaceful Mode on mid-raid after bots already have aggro, SAIN's internal enemy dictionary may retain a stale entry. For best results, enable Peaceful Mode before entering a raid. |
| BigBrain | Yes | Only patches brain layers and logic nodes — no enemy detection overlap. |
| Questing Bots | Yes | Patrol/quest behavior only. |
| Looting Bots | Yes | Loot behavior only. |
| Phobos | Yes | Movement overhaul only. |
| Waypoints | Yes | Navigation only. |
| That's Lit | Yes | Lighting/visibility at a different layer. |
| Fika | Yes | Multiplayer mod, different scope. |
All settings are persisted to a BepInEx config file at:
SPT\BepInEx\config\com.master.tools.cfg
Settings are saved automatically when changed through the mod menu and are loaded on each game start.
MasterTool includes optional SQLite telemetry for debugging. When enabled, it records feature toggles, damage events, performance samples, and errors to a local database file.
Set 16. Telemetry > Enabled to true in the BepInEx config (F12 menu or config file). Telemetry is disabled by default and has no performance impact when off.
Default: SPT/BepInEx/plugins/telemetry.db
Configurable via the Database Path setting. Relative paths resolve from the BepInEx plugins folder; absolute paths are used as-is.
| Category | Config Toggle | Description |
|---|---|---|
| Feature Toggles | Record Feature Toggles |
When features are enabled/disabled (GodMode, ESP, etc.) |
| Damage Events | Record Damage |
Incoming damage, body part, original vs. modified values, blocked status |
| Performance | Record Performance |
FPS, frame time, memory usage (sampled every 5 seconds) |
| Errors | Record Errors |
Caught exceptions with source, message, and stack trace |
Each category can be individually enabled/disabled. Sessions are automatically cleaned up based on the Retention Sessions setting (default: keep last 20).
Open the .db file with any SQLite tool (DB Browser for SQLite, sqlite3 CLI, DBeaver). See docs/telemetry-queries.md for example queries covering damage analysis, feature usage patterns, performance trends, and error diagnostics.
| Setting | Default | Description |
|---|---|---|
| Max Queue Depth | 10,000 | Records queued before dropping (prevents memory bloat) |
| Batch Size | 500 | Records written per batch transaction |
| Flush Interval | 1,000 ms | Background writer wake interval |
| Retention Sessions | 20 | Old sessions auto-deleted beyond this count |
Master-Tool/
├── .editorconfig # C# coding conventions
├── .gitignore
├── Directory.Build.props # Shared build properties (TFM, version, metadata)
├── Makefile # Build, test, lint, and format targets
├── MasterTool.sln # Solution file
├── libs/ # Game & BepInEx assemblies (not checked in)
├── src/
│ ├── MasterTool.Core/ # Shared pure-logic library (netstandard2.0)
│ │ ├── MasterTool.Core.csproj
│ │ ├── BodyPart.cs # Body part enum (Head, Chest, Stomach, Arms, Legs)
│ │ ├── BodyPartProtection.cs # Keep 1 Health protection logic (4 selection modes)
│ │ ├── ChamsLogic.cs # Chams distance/state/material logic
│ │ ├── ChamsMode.cs # Chams rendering mode enum
│ │ ├── ConfigSections.cs # BepInEx config section names
│ │ ├── DamageLogic.cs # Full damage chain (god mode, reduction, keep 1 health)
│ │ ├── EspLogic.cs # ESP position and LOS layer mask logic
│ │ ├── FallDamageDefaults.cs # Fall damage safe height constants
│ │ ├── HealingLogic.cs # COD Mode heal calculations
│ │ ├── KeyBindParser.cs # Key bind string parser
│ │ ├── KeyCode.cs # Platform-agnostic KeyCode enum
│ │ ├── MathTypes.cs # Vec3, Vec2, Color structs for pure logic
│ │ ├── MovementLogic.cs # Fly mode and teleport movement calculations
│ │ ├── RebindLogic.cs # Hotkey rebind state machine
│ │ ├── ReloadDefaults.cs # Reload speed default values
│ │ ├── ScreenLogic.cs # ESP screen-bounds logic
│ │ ├── SpeedhackLogic.cs # Speedhack displacement formula
│ │ ├── StringExtraction.cs # String extraction utilities
│ │ ├── SustenanceLogic.cs # Energy/hydration sustenance logic
│ │ ├── TabDefinitions.cs # UI tab and sub-tab names
│ │ ├── VisionLogic.cs # FOV mapping and override logic
│ │ ├── WeightLogic.cs # Weight calculation logic
│ │ ├── WishlistLogic.cs # Wishlist filter logic
│ │ └── PeacefulLogic.cs # Peaceful mode blocking logic
│ └── MasterTool/
│ ├── MasterTool.csproj # Main plugin project (net472)
│ ├── Plugin/
│ │ ├── MasterToolPlugin.cs # BepInEx entry point and orchestrator
│ │ └── GameState.cs # Cached game references with periodic refresh
│ ├── Config/
│ │ └── PluginConfig.cs # BepInEx configuration bindings
│ ├── Models/
│ │ ├── EspTarget.cs # Player ESP data model
│ │ ├── ItemEspTarget.cs # Item ESP data model
│ │ └── QuestEspTarget.cs # Quest ESP data model
│ ├── Utils/
│ │ ├── CoreConversions.cs # Vec3/Color/BodyPart conversion extensions
│ │ ├── KeyBindParser.cs # Unity-side key bind parser (delegates to Core)
│ │ ├── PlayerUtils.cs # Player helper methods
│ │ ├── ReflectionHelper.cs # Centralized reflection with validation and error logging
│ │ └── ReflectionUtils.cs # Quest condition reflection probing
│ ├── Features/
│ │ ├── GodMode/
│ │ │ └── DamagePatches.cs
│ │ ├── CodMode/
│ │ │ └── CodModeFeature.cs
│ │ ├── InfiniteStamina/
│ │ │ └── StaminaFeature.cs
│ │ ├── Sustenance/
│ │ │ ├── EnergyFeature.cs # Infinite energy
│ │ │ └── HydrationFeature.cs # Infinite hydration
│ │ ├── FallDamage/
│ │ │ └── FallDamageFeature.cs # No fall damage (state-tracked)
│ │ ├── FlyMode/
│ │ │ └── FlyModeFeature.cs
│ │ ├── Performance/
│ │ │ └── CullingFeature.cs
│ │ ├── DoorUnlock/
│ │ │ └── DoorUnlockFeature.cs
│ │ ├── Speedhack/
│ │ │ └── SpeedhackFeature.cs
│ │ ├── ReloadSpeed/
│ │ │ └── ReloadSpeedFeature.cs
│ │ ├── Vision/
│ │ │ └── VisionFeature.cs
│ │ ├── BigHeadMode/
│ │ │ └── BigHeadFeature.cs
│ │ ├── NoWeight/
│ │ │ └── NoWeightFeature.cs
│ │ ├── PeacefulMode/
│ │ │ └── PeacefulPatches.cs
│ │ └── Teleport/
│ │ ├── TeleportFeature.cs
│ │ └── PlayerTeleportFeature.cs
│ ├── Telemetry/
│ │ ├── TelemetrySchema.cs # SQLite DDL and INSERT constants
│ │ ├── TelemetryRecord.cs # Record struct and table enum
│ │ ├── TelemetryWriter.cs # Background drain thread with WAL
│ │ └── TelemetryRecorder.cs # Static facade for recording events
│ ├── ESP/
│ │ ├── EspRenderer.cs # Shared ESP drawing utilities
│ │ ├── PlayerEsp.cs # Player & bot ESP
│ │ ├── ItemEsp.cs # Loose item & container ESP
│ │ ├── QuestEsp.cs # Quest objective ESP
│ │ └── ChamsManager.cs # Chams material manager
│ └── UI/
│ ├── ModMenu.cs # Main mod menu window (7 tabs)
│ ├── GuiStyles.cs # IMGUI style definitions
│ ├── ColorPicker.cs # RGB color picker widget
│ └── StatusWindow.cs # Status overlay window
└── tests/
└── MasterTool.Tests/
├── MasterTool.Tests.csproj # Unit tests (NUnit, net9.0)
└── Tests/
├── Config/
│ └── ConfigSectionTests.cs
├── Models/
│ ├── EspTargetTests.cs
│ └── MathTypesTests.cs
├── Utils/
│ ├── FovMappingTests.cs
│ ├── KeyBindParserTests.cs
│ ├── PlayerTagTests.cs
│ ├── ReflectionUtilsTests.cs
│ └── ReflectionValidationTests.cs
├── Features/
│ ├── BigHeadStateTests.cs
│ ├── BodyPartProtectionTests.cs
│ ├── CodModeTests.cs
│ ├── CullingStateTests.cs
│ ├── DamageReductionTests.cs
│ ├── EnergyHydrationTests.cs
│ ├── FallDamageStateTests.cs
│ ├── FeatureConflictTests.cs
│ ├── FlyModeTests.cs
│ ├── FovOverrideTests.cs
│ ├── GodModePrefixTests.cs
│ ├── NoWeightPrefixTests.cs
│ ├── PlayerTeleportTests.cs
│ ├── ReloadSpeedTests.cs
│ ├── SpeedhackTests.cs
│ ├── VisionStateTests.cs
│ ├── WeightPercentageTests.cs
│ └── PeacefulModeTests.cs
├── ESP/
│ ├── ChamsAntiOcclusionTests.cs
│ ├── ChamsCleanupTests.cs
│ ├── ChamsDistanceTests.cs
│ ├── ChamsIntensityTests.cs
│ ├── ChamsModeTests.cs
│ ├── EspPositionTests.cs
│ ├── EspScreenBoundsTests.cs
│ ├── LineOfSightTests.cs
│ ├── WishlistFilterTests.cs
│ ├── LootChamsTests.cs
│ └── QuestZoneExtractionTests.cs
├── Telemetry/
│ ├── TelemetrySchemaTests.cs
│ └── TelemetryRecordTests.cs
├── UI/
│ ├── HotkeyRebindTests.cs
│ └── SubTabTests.cs
└── GameStateRefreshTests.cs
A Makefile is provided for common tasks. Run make help to see all targets:
make build # Build plugin DLL (requires libs/)
make deploy # Build and show deploy-ready files
make install # Build and install to SPT_DIR
make test # Run unit tests
make format # Auto-format code with CSharpier
make format-check # Check formatting (CI-safe, no changes)
make lint # Check code style against .editorconfig
make lint-fix # Auto-fix code style issues
make clean # Remove build artifacts
make all # format-check + lint + test
make ci # Full CI pipelinemake build # or: dotnet build667 tests cover pure logic: models, utilities, feature state machines, ESP calculations, config defaults, and reflection validation. Pure logic lives in the MasterTool.Core shared library (netstandard2.0), referenced by both the plugin (net472) and test project (net9.0). Game-dependent code requires Unity/EFT assemblies and cannot be unit-tested.
make test # or: dotnet test- Fork the repository.
- Create a feature branch (
git checkout -b feature/my-feature). - Commit your changes.
- Push to your fork and open a Pull Request.
This project is licensed under the MIT License. See LICENSE for details.