Skip to content

ekill-solution/quests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftlyLogo

[Swiftly] Quests

Quests is a plugin designed to manage quests for players in CS2 used Swiftly. It provides a straightforward way to create, configure, and manage quests directly from a configuration file, making it easy to expand your game with new content.

🛠️ Requirements

✨ Features

  • Simple Configuration: Define quests easily using configuration files.
  • Dynamic Quest Creation: Supports various quest types like fetch, kill, and exploration quests.
  • Automatic Quest Tracking: Monitors player progress and quest states in real-time.
  • Player Rewards: Grants experience points, items, and other rewards upon quest completion.
  • Modular Design: Integrates seamlessly with other systems using player objects or player IDs.

⚙️ Configuration Guide

Quests allow you to track player progress on various quests and customize requirements for each quest type. This document explains the structure and required fields for configuring quests.

Predefined Quests

The following table lists all predefined quests, their goals, and the rewards granted upon completion:

Quest ID Progress Key Goal Reward
planter_1 planted_bombs 5 500 shop points
planter_2 planted_bombs 50 5000 shop points
defuser_1 defused_bombs 5 500 shop points
defuser_2 defused_bombs 5 500 shop points
striker_1 dealed_damages 500 500 shop points
striker_2 dealed_damages 5000 500 shop points
killer_1 killed_enemies 5 500 shop points
killer_2 killed_enemies 50 500 shop points
assister_1 assisted_killed_enemies 5 500 shop points
assister_2 assisted_killed_enemies 50 500 shop points
winner_1 won_rounds 5 500 shop points
winner_2 won_rounds 50 500 shop points
mvp_1 mvp_rounds 5 500 shop points
mvp_2 mvp_rounds 50 500 shop points

Quest-Specific Requirements

Each quest tracks a specific progress key with additional fields to filter player actions. Below are the required and optional fields for each progress key:

1. planted_bombs

Field Description Type
site Site number (22 = A, 23 = B) Integer
map Map name(s) String or List of Strings

2. defused_bombs

Field Description Type
site Site number (22 = A, 23 = B) Integer
map Map name(s) String or List of Strings

3. dealed_damages

Field Description Type
map Map name(s) String or List of Strings
weapon Weapon name(s) String or List of Strings
team Team (2 = T, 3 = CT) Integer

4. killed_enemies

Field Type
map String or List of Strings
weapon String or List of Strings
team Integer
assistedflash Boolean
headshot Boolean
noscope Boolean
thrusmoke Boolean
distance Integer/Float
hitgroup Integer

5. assisted_killed_enemies

Field Type
map String or List of Strings

6. won_rounds

Field Type
map String or List of Strings
team Integer

7. played_rounds

Field Type
map String or List of Strings
team Integer

8. mvp_rounds

Field Type
map String or List of Strings
team Integer

9. blinded_enemies

Field Type
map String or List of Strings
team Integer

Reward Type Options

The reward.type field can have the following values:

  • shop_points – Grants shop points to the player.
  • shop_items – Grants specific items to the player.

⚠️ Customization

You can modify the reward and progress conditions for each quest by adjusting the fields in the configuration. The system is designed to be flexible, so you can define your own quests and set the requirements as needed.


{
    "id": "striker_2",
    "progress_key": "dealed_damages",
    "title": "quests.events.striker_2.title",
    "description": "quests.events.striker.description",
    "goal": 5000,
    "reward": {
        "type": "shop_points",
        "value": 500
    },
    "require": {
        "map":"de_inferno",
        "weapon": "weapon_ak47"
    }           
},    
    

🌍 Example of Translations

In your translation file, you can define the quest names and descriptions like this:


{
    "events.planter_1.title": {
        "en": "Planter I"
    },
    "events.planter_2.title": {
        "en": "Planter II"
    },
    "events.planter.description": {
        "en": "You have to plant {QUEST_GOAL} bombs."
    },
    "events.defuser_1.title": {
        "en": "Defuser I"
    },
    "events.defuser_2.title": {
        "en": "Defuser II"
    },
    "events.defuser.description": {
        "en": "You have to defuse {QUEST_GOAL} bombs."
    },
    "events.striker_1.title": {
        "en": "Striker I"
    },
    "events.striker_2.title": {
        "en": "Striker II"
    },
    "events.striker.description": {
        "en": "You have to deal {QUEST_GOAL} damage."
    }
}
    

About

Quest system for Swiftly CS2 writed in Lua

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages