Special Events / Tournament Example

TEMPLATE NAME: Special Events
CORE VERSION: 1.0.187-prod-s

This package makes it easy to setup in-game events that have a specific start and end dates, and that are scheduled ahead of time. With this package, there is no need to publish a new build to enable some game systems and then another publish to turn them off.

Special events are time periods in the game where the rules change. The start and end dates are configured manually to occur at a specific interval. These events affect all server instances and happen simultaneously for all players across all timezones.

In This Package:

  • Special Events: The main package that registers events.

    • EventDefinitions: This folder will contain all the events you define
      using the custom properties of a copy of SpecialEvent.

    • Server Registaration and Client Registration: Register the events in
      EventDefinitions in a lua table accessible on the server and client

  • Special Events Full List: A client-side display for all the events you
    have created.

  • Special Events Status Popup: A client-side display of the current event if
    there is one or next upcoming event if there is not.

  • SpecialEventsTest: A script that will print all registered events to the
    Event Log for debugging.

Also includes:

  • DateTimeUtils: A script that handles time zone conversion and advanced parsing of date&time values.

  • A working example of the "Data Folders" architecture, that is used here for the event definitions.

I would like to add support for automatically recurring events, such as Halloween that happens at the end of every October, or more a frequent recurring events, such as "Double XP weekend".

1.0.0 - Initial release

TEMPLATE NAME: Tournament Event

This is a supporting package that depends on the Special Events package. Useful directly, it also provides a rich example of what can be built on top of Special Events.

This Tournament system is intended as a starting point, to be modified to best suit each game. It follows the start and end dates specified in the Special Event definitions. While an event is active, the Tournament system listens for round start and round end game events. At the end of each round it calculates a score for each player and submits those to a leaderboard. Finally, a basic user interface displays a player's score at the end of each round.

1.0.0 - Initial release