Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/guillaumearm/spt_customquests
a spt mod for easy custom quests creation
https://github.com/guillaumearm/spt_customquests
Last synced: about 2 months ago
JSON representation
a spt mod for easy custom quests creation
- Host: GitHub
- URL: https://github.com/guillaumearm/spt_customquests
- Owner: guillaumearm
- License: mit
- Created: 2022-03-09T10:43:37.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-08-22T20:09:14.000Z (4 months ago)
- Last Synced: 2024-08-22T22:13:54.917Z (4 months ago)
- Language: TypeScript
- Homepage: https://hub.sp-tarkov.com/files/file/588-custom-quests/
- Size: 1.94 MB
- Stars: 1
- Watchers: 2
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Custom Quests
Easy quests creation tool for [SPT](https://www.sp-tarkov.com/)Using [Custom Quests Editor](https://hub.sp-tarkov.com/files/file/596-custom-quests-editor/) will help you A LOT to create and edit json quests files.
[API Documentation - How to create quests](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md) (manually)
## Description
This mod allow to add your own quests easily with a single json file (per quest).## Features
- [Online App: Custom Quests Editor](https://hub.sp-tarkov.com/files/file/596-custom-quests-editor/)
- Create a custom quest with a single json file
- [Quest chaining](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#chained-quests)
- Several mission types available: [`Kill`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#kill), [`GiveItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#giveitem), [`FindItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#finditem), [`PlaceItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#placeitem), [`VisitPlace`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#visitplace), [`PlaceBeacon` and `PlaceSignalJammer`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#placebeacon-and-placesignaljammer)
- [`GiveItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#giveitem), [`FindItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#finditem) and [`PlaceItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#placeitem) missions are compatible with [quest items](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/ALL_QUEST_ITEMS.md)
- [`Kill`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#kill) missions can have a `weapons_whitelist` to limit the kill count to certain weapon ids
- [Repeatable quests](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#repeatable-quests) (it's not vanilla daily quests)
- [Rewards](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#rewards): xp, reputations and items (with attachements using [`@build` directive](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#build-directive)) on quest success or quest start
- Group items ids using [`@group` directive](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#group-directive) (valable for `accepted_items` fields only)
- Compatible with modded traders (you still need to have the correct trader id)
- [Multilingual support](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md#multilingual-support)
- Options to wipe custom quests progression from profile (useful during the development)## 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.jsonPlease read [the usage manual](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md) to get more infos on how to create your own quests.
Check [the examples](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/EXAMPLES.md) can help too.
You can rename the folder `examples.disabled` in `examples` to try out the examples ;-)
## Global configuration
- `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](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/USAGE_MANUAL.md) 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
- [All zones](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/ALL_ZONES.md)
- [All places](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/ALL_PLACES.md)
- [All quest items](https://github.com/guillaumearm/aki_CustomQuests/blob/master/docs/ALL_QUEST_ITEMS.md)## Modding API
Since 2.2.0, you can inject custom quests dynamically from other mods.In the `delayedLoad` method:
```ts
const myExampleQuest = {
id: "trap_quest_example_1_with_api",
trader_id: "mechanic",
name: "My first quest",
description: "My first quest description",
success_message: "My success message",
};// call this in `delayedLoad` method
const injectQuests = (logger: ILogger) => {
if (!globalThis.CustomQuestsAPI) {
logger.error(`CustomQuestsAPI not found, are you sure a version of CustomQuests >= 2.2.0 is installed ?`);
return;
}globalThis.CustomQuestsAPI.load([myExampleQuest]);
}
```#### Typescript support
The `CustomQuestsAPI.load` method take an array of [`StoryItem`](https://github.com/guillaumearm/aki_CustomQuests/blob/master/src/mod.ts#L23) in parameter.Check the [`CustomQuestsAPI` type definition](https://github.com/guillaumearm/aki_CustomQuests/blob/master/src/mod.ts#L23) for more details.
## Planned features
- New mission type: `SurviveRaid`
- More rewards: unlock traders and maps (with [Path To Tarkov](https://hub.sp-tarkov.com/files/file/569-path-to-tarkov/) compat)
- Unlock barters reward
- 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 attachments restrictions
- Mission type `Kill` improvements: weared 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) ;-)
## The original README
[The original readme file](https://github.com/guillaumearm/aki_CustomQuests/blob/master/README.md) is available on github.