You are viewing a potentially older version of this package. View all versions.
cheesasaurus-EventScheduler-1.0.0 icon

EventScheduler

Enables server operators to schedule recurring Events.

Date uploaded a year ago
Version 1.0.0
Download link cheesasaurus-EventScheduler-1.0.0.zip
Downloads 86
Dependency string cheesasaurus-EventScheduler-1.0.0

This mod requires the following mods to function

BepInEx-BepInExPack_V_Rising-1.733.2 icon
BepInEx-BepInExPack_V_Rising

BepInEx pack for V Rising. Preconfigured and includes Unity Base DLLs.

Preferred version: 1.733.2
cheesasaurus-HookDOTS_API-1.1.0 icon
cheesasaurus-HookDOTS_API

Provides an API for mods to hook Unity DOTS systems.

Preferred version: 1.1.0
deca-VampireCommandFramework-0.10.2 icon
deca-VampireCommandFramework

Command framework for developers to easily create universal commands for their plugins.

Preferred version: 0.10.2

README

EventScheduler

Enables server operators to schedule recurring Events.

Installation

  • Install BepInEx.
  • Install HookDOTS.
  • Extract EventScheduler.dll into (VRising folder)/BepInEx/plugins.

Scheduling an event

An Event is really just a series of chat commands to be executed on a schedule.

Events are set up in BepinEx/config/EventScheduler/events.jsonc

Example:

{
    // Chat commands have to be executed by a user, so we specify which user
    "executingAdmin": {
        "steamId": 123456
    },

    // List of all events
    "events": [

        // an event to reset shards every 2 weeks
        {
            // after you've decided on an eventId, it shouldn't be changed
            "eventId": "Bi-Weekly Shard Reset",
            "schedule": {
                // when the first run of the event should happen
                "firstRun": "2069-12-15 20:00:00",

                // how frequently the event should run
                "frequency": "2 weeks",

                // In case the event is overdue: allow running it late, but not too late.
                // This could happen if the server was down/restarting when the event was supposed to run.
                // If it's too late, the event will be skipped until the next valid time slot.
                "overdueTolerance": "5 minutes",
            },
            "chatCommands": [
                // a series of chat commands to be executed each time the event runs
                ".shards-reset",
                ".buff all rage 2h",
                ".buff all witch 2h",
            ]
        },

        // an event to give players a gift every hour
        {
            "eventId": "Hourly lumber gift",
            "schedule": {
                "firstRun": "2069-12-15 20:00:00",
                "frequency": "1 hour",
                "overdueTolerance": "1 minute",
            },
            "chatCommands": [
                ".give all 9 wood",
            ]
        },

    ]
}

Configuration changes are automatically applied; no need to restart the server every time.

Note that all chat commands shown above are only examples. The actual commands available depend on which mods you have installed.

Frequency and overdueTolerance

The expected format is {integer} {unit}

Valid units are: weeks, days, hours, minutes, seconds

examples:

  • 2 weeks
  • 1 week
  • 30 days
  • 1 day
  • 5 hours
  • 1 hour
  • 90 minutes
  • 1 minute
  • 30 seconds
  • 1 second

Support

Join the modding community.

Post an issue on the GitHub repository.

CHANGELOG

1.2.2

  • Another potential fix for events not running when scheduled.

1.2.1

  • Potential fix for events not running when scheduled.

1.2.0

  • Added command .testRunEvent to immediately do a test run of a specific scheduled event.

1.1.0

  • When running an event with adminOnly commands, the executingAdmin is no longer required to be online / AdminAuth'd.

1.0.0

  • Initial release