NSS Docs
DiscordStoreHomepage
nss_quest
nss_quest
  • README
  • Changelog
  • Objects
    • Quests
    • Quest steps
Powered by GitBook
On this page
  • id
  • name
  • description
  • max_solves
  • restart_delay_in_seconds
  • steps
  • show_previous_step_in_quest_log
  • restricted_to_jobs
  • blacklisted_jobs
  • in_game_time_windows

Was this helpful?

  1. Objects

Quests

PreviousChangelogNextQuest steps

Last updated 1 year ago

Was this helpful?

id

  • required

A unique identifier for the quest. Ensure that these id only exists one time only. The id is used to identify the quest in the config file and for internal programming things.

Important: Only a-zA-Z0-9 and -_ are allowed.


name

  • required

The name of the quest. It will be shown in the prompt and quest dialog.


description

  • default nil

An internal description for the quest, e.g. like notes for the quest writers. It is currently not used and shown anywhere.


max_solves

A positive number limits the times a quest can be solved. A value of 0 means that the quest can be solved infinite times.


restart_delay_in_seconds

  • default nil

A positive number (in seconds) adds a delay until the next start of the quest. A value of 0 means no delay.

Note: Set max_solves to 0 to allow infinite solves for daily quests.


steps

  • required


show_previous_step_in_quest_log

  • default false

Defines if not the current step of the quest should be shown in the quest dialog, but the step before.


restricted_to_jobs

  • default nil

  • New since version 1.4.0

Defines if the current quest is only available for the given jobs. The job names must be the same as in the vorp_inventory.jobs table (case-sensitive).

Example:

MyDemoQuest = {
    -- ... other properties
    restricted_to_jobs = {
        ["hunter"] = 1, -- Job "hunter" of minimum grade 1 or higher is allowed to use this quest.
        ["farmer"] = 3, -- Job "farmer" of minimum grade 3 or higher is allowed to use this quest.
        ["driver"] = 0, -- Job "driver" of all grades is allowed to use this quest.
    },

}

Important: If the blacklisted_jobs property is set then ensure that there are no conflicts with the restricted_to_jobs. The restricted_to_jobs is better used if there are no blacklisted_jobs set.


blacklisted_jobs

  • default nil

  • New since version 1.5.0

Defines if the current quest is available for all jobs except the given ones. The job names must be the same as in the vorp_inventory.jobs table (case-sensitive).

Example:

MyDemoQuest = {
    -- ... other properties
    blacklisted_jobs = {
        ["hunter"] = 1, -- Job "hunter" of minimum grade 1 or higher is NOT allowed to use this quest.
        ["farmer"] = 3, -- Job "farmer" of minimum grade 3 or higher is NOT allowed to use this quest.
        ["driver"] = 0, -- Job "driver" of all grades is NOT allowed to use this quest.
    },
    -- ... other properties
}

Important: If the restricted_to_jobs property is set then ensure that there are no conflicts with the blacklisted_jobs. The blacklisted_jobs is better used if there are no restricted_to_jobs set.


in_game_time_windows

  • default nil

  • New since version 1.6.0

Defines time windows for the availability of quests.

Note: The time windows are based on the in-game time and not the real time.

Note: The time windows of a quest apply to each step. Example: If a quest is available from 8:00 to 12:00 then each step of the quest is only available (can be started/finished) in this time window.

Example of multiple time windows each day:

MyDemoQuest = {
    -- ... other properties

    -- From 8:00 to 12:00 on Monday and Wednesday
    -- From 14:00 to 18:00 on Monday, Tuesday, Wednesday and Thursday
    in_game_time_windows = {
        {
            start_hour = 14,
            start_minute = 0,
            end_hour = 18,
            end_minute = 0,
            days = {
                tuesday = true,
                thursday = true,
            },
        },

        {
            start_hour = 8,
            start_minute = 0,
            end_hour = 12,
            end_minute = 0,
            days = {
                monday = true,
                wednesday = true,
            },
        },

        {
            start_hour = 14,
            start_minute = 0,
            end_hour = 18,
            end_minute = 0,
            days = {
                monday = true,
                wednesday = true,
            },
        },
    },

    -- ... other properties
}

Example of specific days:

MyDemoQuest = {
    -- ... other properties

    -- Only on Tuesday and Thursday the whole day
    in_game_time_windows = {
        {
            start_hour = 0,
            start_minute = 0,
            end_hour = 0,
            end_minute = 0,
            days = {
                tuesday = true,
                thursday = true,
            },
        },
    },

    -- ... other properties
}
Attributes
Type
Optional
Default
Description

start_hour

required

-

The start hour of the time window.

start_minute

required

-

The start minute of the time window.

end_hour

required

-

The end hour of the time window.

end_minute

required

-

The end minute of the time window.

days

nil

A table of days when the time window should be applied. If the table is empty or not set then the time window applies to all days. Available days: monday, tuesday, wednesday, thursday, friday, saturday, sunday

Important: In contrast to the times (e.g. start_hour), the days of the week are in real time and not in in-game time. The reason for this is firstly that otherwise the script would have to use weathersync, and secondly that players would otherwise get completely confused if the days of the week in-game were suddenly different from those in the real world. The time, on the other hand, is bound in-game, as some servers run the time in-game many times faster than in reality.

Example of simple time window:

in_game_time_windows = {
    {
        start_hour = 8,
        start_minute = 0,
        end_hour = 12,
        end_minute = 0,
    },
}

Example of time window with specific days:

in_game_time_windows = {
    {
        start_hour = 8,
        start_minute = 0,
        end_hour = 12,
        end_minute = 0,
        days = {
            monday = true,
            wednesday = true,
        },
    },
}

-required

of step s

A list of all steps for the quest. The steps are executed in the order they are defined in the list. See for more information.

quest steps properties
string
string
string
optional
number
number
optional
list
table
boolean
optional
table
optional
table
optional
table
optional
number
number
number
number
table
optional