Go to file
DrakiaXYZ b1cf5df2eb Update quests to closer match the Tarkov Wiki (!93)
This is a quests.json generated using my latest changes to the Quest Generator, along with some hand changed reward values (Since those are pulled from the dump). Sorry about Gitea's web interface freaking out around the Collector part of the diff.

The following are the changes applied via the Quest Generator + manual modification:
- 'Sanitary Standards - Part 2' now also requires 'Operation Aquarius - Part 2'
- 'Stirrup' now requires 'Supplier' instead of 'The Extortionist'
- 'Loyalty Buyout' now only depends on failing 'Chemical - Part 4'
- 'The Cult Part 1' now requires 'Friend from the West - Part 2' instead of 'Eagle Eye'
- 'Gunsmith Part 8' no longer requires 'Gunsmith Part 6'
- 'Gunsmith Part 8' and 'Gunsmith Part 6' names reversed
- 'The Blood of War - Part 1' now also requires 'Make ULTRA Great Again'
- 'Database - Part 1' now also requires 'Big Sale'
- 'Lend-Lease - Part 1' now requires 'Humanitarian Supplies' instead of 'Friend from the West - Part 2'
- 'Tarkov Shooter - Part 1' now requires 'Acquaintance' instead of 'Survivalist Path - Unprotected'
- 'Decontamination Service' now also requires 'Health Care Privacy - Part 5'
- 'Huntsman Path - Woods Cleaning' renamed to 'Hunstman Path - Forest Cleaning'
- 'Nostalgia' now also requires 'Spa Tour - Part 3'
- 'Survivalist Path - Junkie' now requires 'Survivalist Path - Combat Medic' instead of 'Survivalist Path - Cold Blooded'
- 'Samples' now also requires 'Friend From the West - Part 2', and has no level requirement
- 'Chemistry Closet' now also requires 'Anesthesia'
- 'Hunter' now also depends on 'Hunstman Path - Secured Perimeter', and has no level requirement
- Fixed names of 'Revision' tasks
- 'Revision - Reserve' now depends on 'Humanitarian Supplues' and 'Friend from the West - Part 2' instead of 'Eagle Eye'
- 'Documents' no longer requires 'Ice cream cones', and has no level requirement
- 'No place for renegades' no longer requires 'Ice cream cones'
- 'Back Door' now requires 'Scout' instead of 'Surplus Goods'
- 'Pest Control' now requires 'Reserve'
- 'Trophies' now requires 'The Guide' instead of 'Hunstman Path - Forest Cleaning' and level 55
- 'Energy Crisis' no longer requires 'Postman Pat Part 2' and now requires level 25
- 'Revision - Lighthouse' no longer requires 'Eagle Eye'
- 'Cease Fire!' now requires 'The Delicious Sausage'
- 'Huntsman Path - Eraser - Part 2' no longer requires 'Huntsman path Secured perimeter'
- 'Information Source' now requires 'Getting Acquainted' instead of 'Knock Knock'
- 'Getting Acquainted' now requires 'Knock Knock'
- 'The Stylish One' now requires accepting 'The Huntsman Path - Sellout'
- 'Season Vacation' no longer requires 'Pharmacist', and now requires level 17
- 'Collector' quest is implemented with the requirements listed on the wiki

- 'Silent Caliber' now requires level 30
- 'Regulated Material' now requires level 25
- 'Anesthesia' now requires level 21
- 'Colleagues Part 1' now requires level 21
- 'Rigged Game' no longer has a level requirement
- 'Bunker Part 1' now requires level 10
- 'Bunker Part 2' now requires level 11
- 'Safe Corridor' now requires level 15
- 'Escort' now requires level 60
- 'Capturing Outposts' now requires level 42
- 'Intimidator' now requires level 45
- 'Crisis' now requires level 48
- 'The Cleaner' now requires level 45
- 'Calibration' now requires level 47
- 'The Courier' now requires level 52
- 'Long Line' now requires level 45
- 'The Choice' now requires level 50
- 'Corporate Secrets' now requires level 17
- 'Long Road' now requires level 20
- Remove level requirement from 'Textile Part 2' and 'Textile Part 1', as it's implicitly level locked via loyalty requirement from 'Textile Part 1' (As per dump)

- 'No offence' no longer has a fail reward
- Update 'Huntsman Path - Trophy' XP 7100 -> 15300
- Update 'Huntsman Path - Sell-out' XP 7200 -> 18000
- Update 'Huntsman Path - Woods Keeper' XP 7300 -> 18000
- Update 'Huntsman Path - Justice' XP 7200 -> 12300
- Update 'Huntsman Path - Eraser Part 1' XP 8900 -> 18300
- Update 'Textile Part 1 - Bear' XP 0 -> 32000
- Update 'Textile Part 2 - Bear' XP 0 -> 34800
- Update 'Pest Control' XP 7400 -> 15300
- Update 'The Courier' XP 115000 -> 137000
- Update 'Stray Dogs' XP 12000 -> 30500
- Update 'Road Closed' Roubles 64000 -> 62300

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/93
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2023-05-11 13:13:03 +00:00
project Update quests to closer match the Tarkov Wiki (!93) 2023-05-11 13:13:03 +00:00
.drone.yml Update drone branch 2023-03-03 17:20:50 +00:00
.gitattributes Add Repo 2023-03-03 15:23:46 +00:00
.gitignore Add Repo 2023-03-03 15:23:46 +00:00
LICENSE.md Add Repo 2023-03-03 15:23:46 +00:00
README.md Update readme 2023-03-14 10:44:45 +00:00
set_gitcredential.sh Add Repo 2023-03-03 15:23:46 +00:00

Server

Modding framework for Escape From Tarkov

Build Status Quality Gate Status

Privacy

SPT is an open source project. Your commit credentials as author of a commit will be visible by anyone. Please make sure you understand this before submitting a PR. Feel free to use a "fake" username and email on your commits by using the following commands:

git config --local user.name "USERNAME"
git config --local user.email "USERNAME@SOMETHING.com"

Requirements

  • NodeJS (with npm)
  • Visual Studio Code
  • git LFS

Observations

  • The server was tested to work with NodeJS 16.17.1, if you are using a different version and experiencing difficulties change it before looking for support
  • If you are updating a branch you've had for some time, run npm ci before running any tasks. This will run the clean and install target from npm.
  • You can debug your mods using the server, just copy your mod files into the user/mods folder and put breakpoints on the JS files. DO NOT contact the dev team for support on this.

Pulling

  • Run git lfs fetch and git lfs pull to acquire loot files

Setup

  1. Visual Studio Code > File > Open Workspace... > project\Server.code-workspace
  2. Visual Studio Code > Terminal > Run Task... > npm > npm: Install

Build

This is for preparing for a release, not to run locally.

Mode Location
release Visual Studio Code > Terminal > Run Build Task... > build:release
debug Visual Studio Code > Terminal > Run Build Task... > build:debug

Test / Run locally

Visual Studio Code > Run > Start Debugging

Features

Progression

Player profile is stored in SPT folder as a JSON file, allowing for changes to persist

  • Scav:
    • Stats increase by doing scav raids
    • Skills increase by doing scav raids
    • Scav reputation system (Karma)
      • Scavs hostile below certain level
      • Scav run cooldown adjustment
      • Scav follow chance adjustment
      • Scav case
        • Completion time adjustment NOT IMPLEMENTED
        • Equipment chance adjustment NOT IMPLEMENTED
      • Bosses hostile below certain level
      • Exfil price adjustment NOT IMPLEMENTED
      • Improved gear with higher rep
      • Increase rep by exiting through car extracts
  • PMC:
    • Stats increase by doing PMC raids
    • Skills increase by doing PMC raids
    • Hydration/food
      • Increase out of raid
      • Post-raid levels are persisted to profile
    • Raid stat tracking
      • Raid count
      • Survived count
      • KIA count
      • MIA count
      • AWOL count
      • Kills count

Bots

  • Emulated bots:
    • assault (scav)
    • bossBully (Reshalla)
    • bossGluhar
    • bossKilla
    • bossKnight
    • bossKojainy (Shturman)
    • bossSanitar
    • bossTagilla
    • bosszryachiy
    • curedAssault
    • exUsec (Rogue)
    • followerBigPipe
      • Grenade launcher
    • followerBirdEye
    • followerBully
    • followerGluharAssault
    • followerGluharScout
    • followerGluharSecurity
    • followerGluharSnipe
    • followerKojaniy
    • followerSanitar
    • followerzryachiy
    • gifter
      • Gives gifts NOT IMPLEMENTED
    • marksman
    • pmcBot (raider)
    • sectantPriest (Cultist)
    • sectantWarrior (Cultist)
  • Gear
    • Semi-randomised gear chosen with weighting system
    • Randomised durability of gear
  • Ammo
    • Ammo weighting system
  • Loot
    • Semi-randomised loot
    • Item type spawn limit system
  • Per-map AI types

PMCs

  • Simulated PMC players
    • Custom weapons
      • Semi-randomly generated with weighting system
      • Semi-randomly chosen ammo with weighting system
    • Custom gear
      • Semi-randomly generated with weighting system
    • Custom headgear
      • Randomised attachments with percentage based chance to appear
        • Face shields
        • Flashlights
    • Dogtags
      • Random level
      • Random name
    • Voices
      • Bear/usec voices for each faction
    • Item blacklist/whitelist
    • Item
    • Highly configurable in config

Inventory

  • Move/split/delete stacks
  • Tags (add/modify/remove)
  • Armor/weapon kit item repair
  • Auto-sort (SEMI-BROKEN - MOVES ITEMS OUT OF VISIBLE INVENTORY SPACE)
  • Out of raid healing
  • Out of raid eating
  • Special slots (compass etc)

Traders

  • Buy/Sell
  • Listed items are refreshed every hour
  • purchase limits per refresh period
  • Track sold rouble count
  • Loyalty levels
  • Build reputation
  • Item repair
    • Calculate randomised durability level based on item type/values
  • Alternate clothing from Ragman
    • Buy/unlock new clothing
  • Insurance
    • chance for items to be returned - higher chance for more expensive trader
    • Chance parts will be stripped from returned weapons
  • Fence
    • Lists random items for sale
    • Emulated system of 'churn' for items sold by fence
      • every 4 minutes 20% of fences' items are replaced
    • Configurable through config

Flea market

  • Buy and sell items
  • Prices pulled from live data
  • Listing tax fee
  • Offer filtering
  • Offer search
  • Filter by item
  • Linked search
  • Simulated player offers
    • Generated with random names/ratings/expiry times
    • Variable prices based on live price (20% above/below)
    • Weapon presets as offers
    • Bartering offers
    • Listed currency
      • Rouble
      • Euro
      • Dollar
  • Rating
    • Increase flea rating by selling items
    • Decrease flea rating by failing to sell items
    • Will be purchased by simulated players
    • Greater chance listed item will be purchased the lower it is listed for
  • Adjust flea prices that are massively below trader buy price
  • Receive purchased item through mail from seller
  • Sorting by
    • Rating
    • Price
    • Name
  • Configurable using config

Quests

  • Accurate quest list INCOMPLETE (85% complete)
  • Trader quests
    • Accept/Complete
  • Daily Quests
    • Simulated system of daily quests
    • Replace daily quest
      • Replace quest with new one
      • Charged fee
    • Scav daily quests
    • Types
      • Elimination
      • Exit location
      • Find
  • Trader item unlocks through completion of quests
  • Receive mail from traders after accepting/completing/failing a quest
  • Item rewards given through mail

Hideout

  • Areas supported
    • Air filter
      • Air filter degradation speed calculation
      • Skill levelling boost + 40%
    • Bitcoin farm
      • Coin generation speed calculation
    • Booze generator
      • Create moonshine
    • Generator
      • Fuel usage calculation
    • Heating
      • Energy regen rate
      • Negative effects removal rate x2
    • Illumination
    • Intel centre
      • Unlocks scav tasks from fence NOT IMPLEMENTED
      • Reduces insurance return time by 20% NOT IMPLEMENTED
      • Quest money reward boost
    • Lavatory
    • Library
    • Medstation
    • Nutrition unit
    • Rest space
    • Scav case
      • Custom reward system
      • Configurable in config
    • Security
    • Shooting range
    • Solar power
    • Stash
      • Gives bonus storage space
    • Vents
    • Water collector
    • Workbench
    • Christmas tree
  • Item crafting
    • Found in raid on completion
    • Crafts when server not running

Weapon building

  • Create weapon presets
  • Saving of presets

Raids

  • Supported maps
    • Customs
    • Factory day
    • Factory night
    • Reserve
    • Woods
    • Lighthouse
    • Laboratory
    • Shoreline
    • Streets
  • Loot
    • Generated from over 30,000 loot runs on live, spawn chances calculated from all runs to give fairly accurate depiction of live loot.
    • Static loot (containers)
      • Each container type can contain items appropriate to that type
    • Loose loot
      • Randomised loose items found on map
  • Airdrops
    • Randomised chance of spawning
    • Fire red flare to request an airdrop
    • Drops 1 of 3 randomised loot crate types NOT IMPLEMENTED
    • Drops lootable crate in:
      • Customs
      • Reserve
      • Woods
      • Lighthouse
      • Shoreline
      • Streets
    • Can be adjusted via config file
  • Raid damage
    • Exiting a raid with injury to player character will be persisted out of raid
  • Post-raid therapist healing

Messages

  • Receive from traders
  • Pin/unpin senders
  • Accept all attachments
  • Accept individual mail attachment

Modding

  • Extensive system that allows for the modification of nearly any aspect of SPT
  • Example mods covering a good slice of modding capabilities

Misc

  • Profiles
    • Standard/Left Behind/Prepare To Escape/Edge Of Darkness
    • Custom profiles
      • SPT Easy start
        • Lots of money / some QoL skills level 20 / level 69
      • SPT Zero to hero
        • No money, skills, trader rep or items, only a knife
      • SPT Developer
        • Testing profile, level 69, most skills maxed, max trader rep
        • USEC have all quests ready to start
        • BEAR have all quests ready to hand in
  • Note system
    • Add
    • Edit
    • Delete
  • Extensive config system
    • Alter how SPT works
  • Holiday themes in hideout on appropriate days
    • Halloween
    • Christmas

Code

  • TypeScript
    • Majority of EFT request/response classes passed from client to server have been mapped
  • Unit Tests
    • Supports tests via jest
  • Dependency injection
  • Config files accessible from Aki_Data\Server\configs / project\assets\configs