So… I’m not 100% certain if this already exists or not- if so, then write me off as being an unobservant dummy, but… Is there an in-world timezone, or are we all just kind of winging it by general consensus? I know that many games like FFXIV, Second Life, and others employ an in-world timezone in which the setting’s clock operates, determining when it is night and day. Why not have a Rift Time Zone/Wolfery Time Zone or something of that nature for players to check with a Get Time command?
Given that the servers are located in… Sweden was it? That would be my suggestion for local time… But any timezone would be fine. It would certainly make planning scenes and events a lot easier for me- I can’t speak for others, though.
We do not have a consensus rift time, time behaves differently in different portions of the Rift, and Wolfery in general strives for an international approachability that doesn’t really need a specific time zone. We recommend people co-ordinate around GMT .
Maybe we could still have the command time. In Sinder it would be indeterminate but.. area owners could perhaps set a timezone in order to coordinate roleplay events? That would be very nice.
I agree to that but also have to say if you maybe could set a timezone per area, as an optional feature. And if it is set it shows the current time in the rooms or per command.
Might not be widely used though and I also guess that you could achieve similar with room scripts.
I think area/global script will be the way I wish to handle this.
Then it can be up to each area/realm owner/builder to add these sort of time zones/complex triple moon calendars themselves, as well as commands to show the time.
I think it is a nice idea with in-game time, but best to leave it to the creators.
Area and Global scripts are planned features. Not there yet!
But since the main work with the scripting engine is in place, it shouldn’t be too huge of an effort to add it.
I crafted a little bit and actually created a room script and a custom timezone.
For script devs and builders:
The script does listen to any script request to share the current time.
So if you’re interested take a look at this or the info below and hit me up and I send the script address.
INFO for Devs
// You would need to send a json formated timeRequest Object:
@serializable
class timeRequest {
/**
* A Unix timestamp in ms of the time that shall be converted.
* For the current time you can use `Date.now();`
*/
timestamp: i64 /*ms*/ = 0;
/**
* There are several supported formats but only the `json` format can be parsed as a PITDate object.
* Other supported formats are:
* Currently only 24h format is supported!
*
* "iso" : 2025-02-29T15:37
* "date" : 2025-02-29
* "dd.mm.yyyy" : 29.02.2025
* "mm.dd.yyyy" : 02.29.2025
* "dd.mm.yyyy hh:mm" : 29.02.2025 15:37
* "mm.dd.yyyy hh:mm" : 02.29.2025 15:37
* "longdate" : 29. February 2025
* "longdate3" : 29. Feb. 2025
* "longus" : February 29, 2025
* "longus3" : Feb. 29, 2025
* "longdatetime" : 29. February 2025 15:37
* "longdatetime3" : 29. Feb. 2025 15:37
* "longustime" : February 29, 2025 15:37
* "longustime3" : Feb. 29, 2025 15:37
* "compact" : 202502291537
* "json" : JSON fromated PITDate Object
* "full" : 2025-02-29 15:37
*
* @property {string} format
*/
format: string = 'json';
/**
* The type of leap year fix.
*
* This can be either `patched` or `aligned`.
* "date" : 2025-02-29
* **patched**
* Means that there will be 1 extra day in February each leap year which will cause an offset of 4h (in PIT 1h = 50min)
* This will be fixed by adding another leap day every 5th year. (so 2 extra days in Feb).
*
* **aligned**
* This will also add a leapday every leap year but to avoid the offsetthe leapday will be 4 PIT hours longer.
* When using this time please refer to it as Phantom Isles Aligned Time (PIAT).
*
* @property {string} type
*/
type: string = 'patched';
}
/* together with the `getTime` topic.
You will then recieve a JSON-formated `PITDate` object: */
@serializable
class PITDate {
/** Year (i16) */
year: i16 = 1970;
/** Month (i8; 1-12) */
month: i8 = 1;
/** Day (i8; 1-based) */
day: i8 = 1;
/** Hour (i8; 0-based) */
hour: i8 = 0;
/** Minute (i8; 0-based) */
minute: i8 = 0;
/** Original unix timestamp (i64, ms) */
timestamp: i64 = 0;
}
/* Example: */
const PIT_SCRIPT = 'PITScriptAdress'; /*Contact me if you want to use it.*/
function getPITTime(time: i64): PITDate|false {
/* !!!! To check if this is even used and how frequently I DO log requests and their scripts adresses. !!!! */
const req = Script.request(script,'getTime', `{"timestamp": ${now}, 'format': 'json', 'type': 'patched'}`);
if (req.is_error) {/* Do your Error handling here.*/ return false;} else {
return JSON.parse<PITDate>(req);
}
}
const now = Date.now();
const PIT = getPITTime(now);
/*Now do whatever you want with that time. ^w^*/
/*Signed: Felinex Gloomfort*/
For everyone else:
Here is a copy paste from the room description that runs the script:
Phantom Isles Time is a custom calendar system using the real-world Gregorian month names but with a unique structure and leap year rules. The year is made up of 12 months totaling 438 days. Each day has 24 hours of 50 minutes each (1,200 minutes per day). To stay in sync with the Earth’s actual year length, a “patched” leap day system is used.
More Info
Phantom Isles Time: Month Structure
Table
Month
Days
January
37
February
35
March
37
April
36
May
37
June
36
July
37
August
37
September
36
October
37
November
36
December
37
Total
438
Leap Years in Phantom Isles Time (Patched Version)
Regular year: 438 days.
Most years that correspond to the real-world leap years: Add 1 extra day to December, making it a 439-day year.
Every fifth leap year: Add 2 extra days to December, making it a 440-day year.
Result: The system accumulates a small drift (4 hours, 40 minutes) per leap year, which is corrected every fifth leap year by adding an additional leap day.
This system ensures the calendar stays roughly aligned with Earth’s solar calendar over long periods, but with a uniquely structured year and leap pattern.
Why?
I saw this disussion about an “official” timezone but since everyone live in another timezone making one official would be an disatvantage to others.
That’s why I created PIT and its little time drift each day. This way we have a similar pace to the real world but for everyone it will be night or day at any time.
The extra days are needed to stay in sync to real life months and years.
Question?
Ask ahead!
P.S.: There is also a userscript that shows the time and lets you transform your local time to PIT/PIAT and PIAT/PIT to your local time on wolfery if someone is interested: PIT/PIAT Userscript
EDIT: Userscript now also automatically converts PIT and PIAT time and replaces it on the site.