Help this asset pack reach its goal

Raised
$30.00
Goal
$800.00
3%
of goal
1
contributors
$30.00
average contribution
$30.00
top contribution

A customizable time and calendar system for your Godot 4 game with signals for creating time-based events and UI controls, now featuring robust save/load capabilities!

Game Time

  • The game time system by default automatically increments game seconds and uses the GameCalendar to recalculate the current DateTime for your game state on process intervals.
  • Scale time differently depending on your game needs (e.g., 1 day in 10 minutes).
  • Modify the speed of character movement and animations separately with EngineTimeSpeedSlider or by setting `Engine.time_scale` directly.

Calendar Display

  • Displays days, weeks, and months for any given year, including future or past calendar cycles.
  • Highlights EventDays to show when special days occur in your game, like birthdays or festivals.
  • Updates automatically to show the current day as the date progresses on the TimeState.

Time of Day & 2D Lighting

  • Define special Time of Days that serve as important markers for your game and UI.
  • Trigger events at specific times of day, such as when Dawn or Dusk enters.
  • Set up lights to adjust color and strength settings as the time of day updates.

Ageing

  • Age any object in the game by giving it an AgeingComponent. When the world AgeState ages, objects tied to the world age as well.
  • Replacing objects by age is an option baked into AgeingComponent. The total object age is passed into the replacement scene.
  • Age is measured by an arbitrary unit threshold you define, tied to the TimeState. An age can be days, hours, minutes, etc., giving you control over how fast objects age in your game.
  • AgeState provides signals for reaching a full age unit threshold and each time the age is modified.

Saving & Loading with WorldTimeSerializer

  • Easily save and load all time-related states, including **TimeState**, **WorldAgeSystem**, and **AgeStateRegistry**.
  • Integrate seamlessly with your custom save/load system.

Tutorials & Updates Playlist

Here's a preview of the main systems and components in this package:

Combine game time multiplier with Engine.time_scale for desired results.

There are currently 3 major systems that handle the processing of data and emission of signals through the Time State and AgeState resources:

  1. Game Time System - Tracks the time and date as real-world time progresses by converting it to game time changes and storing game seconds and DateTime data on the TimeState, which emits signals as its values are updated so you can easily create time-based events.
  2. Day Night Cycle System - Uses the HoursTime from the current DateTime to determine what time of day it is. After calculating a new TimeOfDay, it is emitted on the TimeState through time_of_day_changed signals. This is useful for game events or lighting that wants to rely on the TimeOfDay as a triggering event, like switching the lighting color with TimeOfDayDirectionalLight2D nodes.
  3. World Age System - After a set amount of game time passes, the world age will increase and emit aging signals on the world AgeState. This can be used by components like AgeingComponent to age other objects in the game and replace them with new scenes through a nested SceneReplacement resource (e.g., switch out a young character to an adult one with different game mechanics).
Age objects in your game at time intervals to refresh harvestables. Works great with ItemDrops plugin!

Useful Components that React to Game Time

  • TimeOfDayDirectionalLight2D - Light that reacts in color and intensity as the time of day transitions from one to the next.
  • AddAfterGameSecondsComponent - Calls `add(amount : float)` on another node after game seconds elapsed. Handy for replenishing depleted resources in the game as time progresses.
  • AddWhenAgeingComponent - Calls `add(amount : float)` on another node after the current age on an AgeData resource increases. This can be another way of replenishing a resource or increasing some other statistic as age milestones are reached in your game.

The plugin README.md has details about setting up each system with relevant signal bus resource objects and components to receive the data from for game play mechanics.

License

Assets in Demo & Promo

Assets Used in Screenshots & Videos

Updated 14 days ago
StatusIn development
CategoryAssets
AuthorChris' Tutorials
Made withGodot
Tags2D, Godot, godot4, lighting, plugin, time

Purchase

Get this asset pack and 8 more for $75.00 USD
View bundle
Buy Now
On Sale!
25% Off
$30.00 $22.50 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $22.50 USD. You will get access to the following files:

World Time 1.0.2 (Godot 4.3) 40 kB
World Time Demo Project v1.0.2 1.3 MB
World Time v1.1.2 - Plugin & Demo [Godot 4.4] 1.9 MB
World Time 1.2.2 (Godot 4.4 with Demo) 4.9 MB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

(+1)

Hey thanks for creating such seamless plugins! 

Wanted to double check - are they all allowed to be used commercially after purchase? (World Time, Grid Builder, Item Drop, etc...)

(1 edit) (+2)

Yes it is allowed to use each plugin for commercial usage in games.  Just no repackaging and reselling of the source code itself. Update coming soon for World Time with a visual calendar, weeks, and event days among other improvements.

Edit: Added a license to the project. It's included in the latest version and also listed at the bottom of the store page post (above comments section)