Custom Quests 3.1.0

Create your own quests without pain.

Please backup your profile before using new mods!


using Custom Quests Editor will help you A LOT to create and edit json quests files.


Main Readme

Documentation - How to create quests (manually)

Description

This mod allow to add your own quests easily with a single json file.

Mods made for Custom Quests (work on aki 3.3.0)

- Baba Yaga

- The Double Agent

- Ashley's Custom quest pack

- Darker World questline

- Angel in white kiriko

- Meguru is coming!

- InternalError_'s Tarkov Mastery



Features


Usage

Place your json files in the quests directory.


Sub-directories can be used to organize your quest files.


So these are valid:

  • quests/my_first_quest.json
  • quests/my_quests/my_first_quest.json


Please read the usage manual to get more infos on how to create your own quests.

This quest example can help too.


You can rename the folder quests/examples.disabled in <span style="color:#FFA07A;">quests/examples</span> to try out the examples ;)


Global configuration (config/config.json)

  • enabled: allow to enable or not CustomQuests mod
  • debug: more verbose console
  • quest_directory: The directory with custom quests
  • limit_repeated_quest: The maximum number of time you can repeat a quest during the same game session (default to 1000). Please see API Documentation - How to create quests for more details
  • at_start.disable_all_vanilla_quests: Disable all vanilla quests (this will unlock Jaeger without editing your profile)
  • at_start.wipe_enabled_custom_quests_state_from_all_profiles: wipe all enabled custom quests from all profiles

Resources


For modders

Custom Quests API is available if you want to integrate your mod with Custom Quests (it allows to load custom quests payloads)


Credits

- Thanks to all contributors! reporting bugs, giving ideas and making quests! It's awesome and it motivates me like mad

- Special greetz to gabe_over for making the image ;)

  • Version 3.1.0

    Work on SPT-AKI 3.3.x

    Compatible SPT-AKI 3.1.x and 3.2.x

    Changelog

    Features

    added default_quest_name_prefix field in config/config.json to differentiate easily custom quests from vanilla quests.

    In a future version, I'll see to add the ability to a custom quest to override the default prefix.

  • Version 3.0.2

    Work for SPT-AKI 3.3.x

    Compatible SPT-AKI 3.1.x and 3.2.x

    Changelog

    Update for SPT-AKI 3.3.0

  • Version 3.0.1

    Work for SPT-AKI 3.2.0

    Compatible SPT-AKI 3.1.x

    Changelog

    Migration to SPT-AKI 3.1.0


    Fixes

    - AKI 3.2.0 migration

    - AKI 3.1.x retro-compat

  • Version 3.0.0

    Work for SPT-AKI 3.1.x

    Changelog

    Migration to SPT-AKI 3.1.0

  • Version 2.5.0

    Work for SPT-AKI 3.0.0

    Changelog

    Features

    Added traders_reputations reward

    Fixes

    Fixed where empty "locations" array should be equivalent to "any"

  • Version 2.4.3


    Changelog

    Fixes

    Fixed crash caused by ids with space characters inside.

    Now, spaces are replaces by "_".

    For example: "My Quest 1" will be renamed into "My_Quest_1" (this will generate a warning in the console)

  • Version 2.4.2


    Changelog

    Fixes

    Fixed client crash when a new profile is created

  • Version 2.4.1


    Changelog

    Fixes

    • repeatable quests counters are correctly reset
    • reduce limit_repeated_quest to 200 in config.json
  • Version 2.4.0


    Changelog

    Features

    • Added "weapons_whitelist" option to Kill missions.
    • Updated mission_kill.json example quest file to add a mission with a weapon restriction (using the new "weapons_whitelist" option)

    Fixes

    • Fixed bad target in mission kill example quest (should be "Savage" instead of "Scav"
  • Version 2.3.2


    Changelog

    Fixes

    Reset backend and condition counters for success repeatable quests (on game start)

  • Hey there !


    Custom Quests Editor is out, please take a look ^^


    it's easy to create quests now !


    Please share your quests here ;)


    Edit: for now, there are missing Custom Quests features in the editor, consider manual editing for missing features.

    consider take a look to this Documentation page to see all available features

  • Planned features for next versions

    - New mission type: `SurviveRaid`

    - More rewards: unlock traders and maps (with Path To Tarkov compat)

    - Unlock barters reward (I'm currently waiting for the next spt-aki version)
    - More kill targets: bosses, raiders, rogues.
    - Failure quests: this allow to create several path in your story
    - Rewards on fail
    - Custom quest image

    - Mission type `Kill` improvements: limbs restrictions
    - Mission type `Kill` improvements: weapon mods restrictions

    - Mission type `Kill` improvements: equipment restrictions
    - Mission type `Kill` improvements: range restrictions, physical effects restrictions

    - Mission type `Kill` improvements: kill at certain time of the day (or night)
    - New mission type: `WeaponAssembly` (allow to create gunsmith missions)
    - New mission type: `TraderLoyalty`
    - New mission type: `Skill`



    If you have some ideas to improve the mod, you can create an issue on github (or comment on the hub) ;)

    Thumbs Up 1
    • Can't wait for it ! I use many mods I configured for having an "almost open-world" (with Path to Tarkov, limited inventory traders, economy tweaks, realism mod) and I want to add new traders with quests in order to replace QuestManiac and make something similar from scratch with more varied quests

      Heart 1
  • update to 3.7.0+? It'd be nice to add this to my mods


    If you want, I dont want to bother you

  • You should really patch this so 3.5.0+ works.

  • Hi trap. Could you please update to 3.4.1?

  • Update this please

  • working on 3.4.0 ?

  • So, I'm trying to get the Custom Quests mod to work but I get critical errors when trying to do so
    How can I fix this? (Im quite new to all this)

    • Which version of spt-aki do you use ?

    • 3.3.0

  • Hello Trap, is there any way to make the rewards hidden until the quest is completed?

  • Do you still intend on adding the ability to unlock Traders and/or Maps?

    • Yes but this is not so easy since I want to preserve compatbility with Path To Tarkov.


      In addition, I don't think when I can find the time to do this.


      Stay tuned.

  • Hi gain! I was looking at some files and wondered if you've tried to use custom quests to unlock trader items from the base game. like if i wanted to do 1 quest and unlock an ammunition that the base game traders sell.

    • It's not implemented yet, but it's planned, just be patient ;)

      Heart 1
  • I'm sure this has been asked but i cannot find it. can you make players get quest item like the postman patt letter. i can make it an accepted item in the quest but can't get it to load the item in raid. is there something to that? if so, maybe you know the files where it's located if i have to make it spawn through editing the original files.

    • You can achieve this with a FindItem mission using the id 591093bb86f7747caa7bb2ee (you can find all mission ids on this documentation page)


      In addition you can find some quest examples here and this quest is exactly what you want.

    • ahhhh thank you! i see what i have done wrong now!

    • You can useCustom Quests Editor to create your quests and avoid mistakes.


      Even if not all features are available in Custom Quests Editor, it's compatible with the latest version of Custom Quests (and you can still edit manually the generated json to add the properties you need)

  • This error only appears when I use Baba Yaga please make sense of this!


    (node:9852) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'replace' of undefined

    at QuestsLoader.transformIds (D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:114:26)

    at Array.map (<anonymous>)

    at QuestsLoader.injectStory (D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:131:14)

    at QuestsLoader.loadFile (D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:158:21)

    at D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:51:37

    at Array.forEach (<anonymous>)

    at QuestsLoader.loadDir (D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:49:32)

    at D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:41:46

    at Array.forEach (<anonymous>)

    at QuestsLoader.loadAll (D:\Tark\user\mods\Trap-CustomQuests\src\QuestsLoader.js:34:47)

    (Use `Aki.Server --trace-warnings ...` to show where the warning was created)

    (node:9852) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.htm…unhandled_rejections_mode). (rejection id: 1)

    (node:9852) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

    • It seems you have a wrong quest file in the quests directory.


      Can you provide more infos on your setup ? version of spt-aki, version of custom quests, version of baba yaga.

  • i dont know why, but iam taking this error with this mod :


    TypeError: Cannot read property 'difficulty' of undefined

    TypeError: Cannot read property 'difficulty' of undefined

    at Function.changeSettingByName (D:\SPTAKI_main\user\mods\zFin-AITweaks\src\mod.js:4883:30)

    at Function.applyAdvancedAIConfig (D:\SPTAKI_main\user\mods\zFin-AITweaks\src\mod.js:4876:34)

    at Function.setDifficulty (D:\SPTAKI_main\user\mods\zFin-AITweaks\src\mod.js:4736:26)

    at Function.runOnGameStart (D:\SPTAKI_main\user\mods\zFin-AITweaks\src\mod.js:4353:18)

    at Object.action (D:\SPTAKI_main\user\mods\zFin-AITweaks\src\mod.js:71:30)

    at $79469d862e09d5e9$export$1d24e66a30f2c3c6.handleStatic (D:\SPTAKI_main\obj\bundle.js:12648:61)

    at Proxy.handleRoute (D:\SPTAKI_main\obj\bundle.js:12943:41)

    at Proxy.getResponse (D:\SPTAKI_main\obj\bundle.js:12933:30)

    at HttpServer.sendResponse (D:\SPTAKI_main\obj\bundle.js:14510:38)

    at Inflate.cb (D:\SPTAKI_main\obj\bundle.js:14535:22)


    I tried deliting all mods, except this one, and game freezes at the start

    • The error trace say me you don't have deleted all mods ;) (the error seems to say it comes from zFin-AITweaks)

  • Whenever i try to add this mod it stops my ServerValueModifier from working and breaks my game.


    Edit: i Learned it was the baba yaga addition that was breaking my game

    • Did you try to change the mods load order ?

  • Allo!
    Ill start off by saying awesome work, I've had an awesome time with this mod so far.


    However I have had to disable it as ive encountered an error where whenever I exit the game and SP server, then get back in to it, ALL of my progress is reset to the last point at which this mod was active.

    By all I mean everything. Level, XP, quest progress, hideout building etc etc.


    If I can assist with any logs or what not please let me know how and I will do my best to get them to you.


    Thanks again for your work.

    • Are you sure this come from Custom Quests ?


      mods list and used version would be appreciated.


      are you sure the `wipe_enabled_custom_quests_state_from_all_profiles` option is disabled ? (in config.json)

    • I went thru and disabled every mod and re-enabled one at a time, And that was the one causing the drama :(.

      The config false option was the first clue I found and have checked, can confirm is "false".

    • This is so strange !


      What quests do you use ? any repeatable quests ?


      EDIT: can you mp me your profile and the quests you use ?

  • You mad lads! All these awesome new quests being added by people using this is amazing, and breathes new life into SP Tarkov. Coupled with the update to AQM (hope original author is safe and okay) I have quests for days!


    Keep up the wonderful work everyone!

    Like 1
  • I was looking through the documentation but couldn't find what I was looking for so thought I would ask. Is it possible to create quests that unlock a trader or unlock a map?


    For example, all traders are locked at the beginning except Factory. Fence gives you a quest to kill 10 scavs on Factory which unlocks Skier and unlocks Customs. Something like that.

    • Hmmm this is a very interesting idea.


      I already have plans to create an integration between Custom Quests and Path To Tarkov to unlock traders properly.


      But the idea to unlock map is awesome (even if it comes with some limitations, it's added to the planned features)

  • So waiting the new version of mod. Need the reputation reward type... much need :)

    • the `traders_reputations` reward type is now available in 2.5.0


      Enjoy ;)

      Thanks 1
    • Wonderful 8)

  • I just finished "My First Quest" from Fence. How did that feel? Was it awesome when it worked the first time? amazing stuff, well done sir, and thank you for your work

    Like 1
  • Hi everyone !


    If you experimented a client crash with "TypeError: Cannot convert undefined or null to object" errors


    Please consider follow this instructions.


    EDIT: This is now fixed in version 2.4.2

  • Hi,

    I tried to figure it out but I get the errors bellow when tried running with Baba Yaga. Sadly can't make any sense of it myself. Appreciate your help beforehand!


    TypeError: Cannot convert undefined or null to object

    TypeError: Cannot convert undefined or null to object

    at Function.keys (<anonymous>)

    at filterInObject (F:\SPT-AKI\user\mods\Trap-CustomQuests\src\RepeatableQuests.js:7:12)

    at GameCallbacks.controller.gameStart (F:\SPT-AKI\user\mods\Trap-CustomQuests\src\RepeatableQuests.js:138:35)

    at $de60112e0288ef4d$export$1dd35d19c79daa7c.action (F:\SPT-AKI\obj\bundle.js:13904:43)

    at GameStaticRouter.handleStatic (F:\SPT-AKI\obj\bundle.js:12648:61)

    at Proxy.handleRoute (F:\SPT-AKI\obj\bundle.js:12943:41)

    at Proxy.getResponse (F:\SPT-AKI\obj\bundle.js:12933:30)

    at HttpServer.sendResponse (F:\SPT-AKI\obj\bundle.js:14510:38)

    at Inflate.cb (F:\SPT-AKI\obj\bundle.js:14535:22)

    at Inflate.zlibBufferOnEnd (zlib.js:153:10

    • No, this error appears without Baba Yaga, it's Custom Quests issue. I tried to start client on fresh spt 3.0.0 (not moded), always have this error.

    • Same issue if you find how to fix it please share

    • Yup, here too, doesn't work at all, don't think it is a problem with any mods.

    • I mean it seems like its a problem with something in the repeatable quests

    • I finnaly worked it out.

      You just need to start a fresh profile, start the game and choose bear or usec.

      After you have acces to your stash and traders, just close the game, install the mod and it works.

  • Hi Trap,


    I am currently writing a long story quest line with ~40 Quests using your mod.

    There are some things I would really like to add, when do you plan to add these features?


    - Loyalty rewards to quests

    - Quest completes when a trader loyalty level is reached

    - One quest fails if another one is completed

    - Kill Bosses and Raiders

    - Custom Quest Images are also nice

    • Hi @Lavax,


      To be clear, I don't have any idea, I'm not very available this week + I don't have a windows pc with spt to continue the development for this week.


      And for sure, I'll work on bugs first.


      Anyway, I hope you will share your quests with the community when it will be done :)



      EDIT: After known bugs, Loyalty rewards will be my highest priority

      EDIT2: trader loyalty as a reward is available since 2.5.0 ;)

  • TypeError: Cannot convert undefined or null to object

    TypeError: Cannot convert undefined or null to object

    at Function.keys (<anonymous>)

    at filterInObject (C:\Battlestate Games\Escape from Tarkov\user\mods\Trap-CustomQuests\src\RepeatableQuests.js:7:12)

    at GameCallbacks.controller.gameStart (C:\Battlestate Games\Escape from Tarkov\user\mods\Trap-CustomQuests\src\RepeatableQuests.js:138:35)

    at $de60112e0288ef4d$export$1dd35d19c79daa7c.action (C:\Battlestate Games\Escape from Tarkov\obj\bundle.js:13904:43)

    at GameStaticRouter.handleStatic (C:\Battlestate Games\Escape from Tarkov\obj\bundle.js:12648:61)

    at Proxy.handleRoute (C:\Battlestate Games\Escape from Tarkov\obj\bundle.js:12943:41)

    at Proxy.getResponse (C:\Battlestate Games\Escape from Tarkov\obj\bundle.js:12933:30)

    at HttpServer.sendResponse (C:\Battlestate Games\Escape from Tarkov\obj\bundle.js:14510:38)

    at Inflate.cb (C:\Battlestate Games\Escape from Tarkov\obj\bundle.js:14535:22)

    at Inflate.zlibBufferOnEnd (zlib.js:153:10)


    Server starts, client is not, just empty startscreen after game wallpaper

  • Hi Trap,


    Excellent job with the mod.


    Question: will quests created with earlier versions of the mod work with the latest version 2.0?

    • Yes it's retrocompatible usually, let me know if it's not the case ;)

  • Probably not a concern, but curious if you are aware of this as an issue or potentially an issue i am having. So i downloaded this in hopes of obtaining the adik tracksuit without hunting Killa 100 times. I was pleased to see it as an option for reward, but when taking the quest and trying to collect the reward, what would be the tracksuit (i tried this with other clothing as well, usec only.)is replaced with a red skull and the words "Factory Cellar Key (99999)"

    Great mod idea and the editor is the perfect way to make your mod accessible

    • Share your json file quest here and I'll take a look (or just give me the item id you used for the tracksuit)

    • This happened to me when a reward item id is undefined, can you share your json quest file here ?


      Edit: This could happens if you try to use a `@group` directive as a reward (like me) if you think a bit, it's a non-sense, I'll add in next versions some internal checks to verify quests files on load to avoid that.

  • Great mod!

    Me and my friend are working on making our own custom spt campaign with mainly this mod and path to tarkov. very excited and hopeful to see updates to this mod. :)

    • Ooohhh, this look very interesting.


      Custom Quests 2.0.0 will be available very soon btw (for spt-aki 3.0.0)

  • Excuse me, are u also going to add kills within an specific ranges or under certain physical effects?

    • Added to the planned features on gihtub.

      Thanks 1
  • Awesome mod, didn't know how to do any modding until i found this mod with the links you have in how to create quests . gave fence 2 quest. Its the automatic chain quest, just a simple kill scav, 5 at first for a couple medical supplies.. I gave myself a lot of medical supplies XD more then fence would of given for 5 scav kills. but glad to see it work, the next quest was available and did that as well, 10 scav kills. only 1 question; for some reason the quest resets when closing and opening up the game again. No complaints there honestly I was hoping the missions would reset somehow.. I now don't have figure that out, but is that normal? Noticed that when i woke up today on day 2 of modding this game... yes now im addicted, made my first Trader... turned out to be easy once i learned how to read JSON files and how to write them from this tutorials.. still dont know how most of it works like the java files but they work .. weeeeeee ima have so much fun haahaha

    Haha 1
    • also keep in mind i have the SPO single player mod that has ton of mods on top of things, so i can't be sure if the missions reset cause of something there. let me know if anyone is noticing the missions restart and its not just me breaking the game:whistling:

    • To keep missions from resetting you have to change "wipe_enabled_custom_quests_state_from_all_profiles" to false in the config file. Had me baffled for a second too.

      Like 1
    • Woops, the `wipe_*` booleans should be false by default, I left them to true during my dev sorry.


      In next versions, it will be false ;)


      @CodeIIISIX: I'm glad you learned something from my code.

      Like 1
    • @Perrehkeet oooooh awesome thank you, now I know things are working properly for my small future projects.


      @trap yeah! this community's pretty cool. :D:thumbup: