# Tycoon Calendar
**One date for the whole world - the same in every mod that asks for it.**
Minecraft counts ticks, not days. Tycoon Calendar gives your world a real date: a day, a month and a
year that move on with the sun, shown in the corner of your screen and shared by every mod that
uses it. It adds no blocks and no items. It is the clock other mods set their prices, rents and
birthdays by - so that "today" means the same thing everywhere in your pack.
## For players
- **Pick the year your world starts in.** "Create New World" has a **Start date** button on the Game
tab, anywhere from 1995 to today. The start is saved with the world.
- **See today's date** in the top left corner, for example *Saturday, 9 January 1999*. It hides with
F1 and while F3 is open, and you can switch it off in the client config. Month and weekday names
follow your language.
- **Time moves quickly.** By default 24 calendar days pass in one Minecraft day: a new day every 50
seconds, a year in about five hours of play.
- `/calendar` tells you today's date, `/calendar tempo` how fast the days go.
## For servers and pack makers
- **The first operator picks the start.** When a new server world has no start date yet, the first
operator who joins is asked which year it begins in - a screen with the mod, a clickable chat line
without it. `/calendar start <YYYY-MM-DD>` sets it while it is open; `force` changes it later.
- **Set the pace per world.** `/calendar tempo <1-365>` changes how many calendar days pass in a
Minecraft day, at once and without a restart. Today's date stays where it is; only the time from
now on runs faster or slower.
- **Jump to a date.** `/calendar date <YYYY-MM-DD>` makes that day today - forwards or back - without
touching the time of day.
- **Existing worlds never move.** The config (`calendar.startDate`, `calendar.daysPerMcDay`) only
presets new worlds; every world keeps its own start and pace.
- **Everyone sees the same day.** The server sends its start and pace when a player joins, whatever
the player's own config says.
Because the date comes from the world's time, `/time set` moves it as well.
## For mod developers
Ask the calendar instead of counting days yourself. `CalendarAPI` is small:
- `today(level)` - today's date in this world
- `start(level)` - the day the world began
- `day(level)`, `date(level, day)`, `dayOf(level, date)` - between calendar days and dates
- `daysPerMcDay()`, `ticksPerDay()` - the pace
- `format(date)`, `formatShort(date)` - the date in the player's language
Compile against the jar and declare `tycooncalendar` as a dependency in your `neoforge.mods.toml`.
## Mods that use it
- **Tycoon Citizens** - birthdays, growing up and growing old
- **TCG Packs** - every card and pack is priced for today's date; a set costs what it cost back then
- **Street Trade** (from 0.3.0, through Tycoon Citizens) - customers who age on the calendar
## Requirements
- Minecraft 1.21.1, NeoForge
- Nothing else. Server and client, singleplayer and multiplayer.
---
### A note on how this was made
This mod was built with substantial help from AI. The design decisions, the playtesting and the
direction are mine; a large share of the code, the textures and this text was written with an AI
assistant. I would rather say that plainly than have you wonder.
## Discord
Questions, bug reports, ideas, or just want to show what you built? **[Join the Discord](https://discord.gg/7PBBUR32Yu)** -
that is where I answer fastest, and where the next version gets shaped.

