SetCalendar(int, int, int)

From NWN Lexicon
Revision as of 00:22, 9 August 2020 by Jasperre (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Set the calendar to the specified date.

void SetCalendar(
    int nYear,
    int nMonth,
    int nDay


Specific year to set calendar to from 0 to 32000 inclusive.
Specific month to set calendar from 1 to 12 inclusive.
Specific day to set calendar to from 1 to 28 inclusive.


Set the calendar to the specified date.

Time can only be advanced forwards; attempting to set the time backwards will result in no change to the calendar.

If values larger than the month or day are specified, they will be wrapped around and the overflow will be used to advance the next field. e.g. Specifying a year of 1350, month of 33 and day of 10 will result in the calender being set to a year of 1352, a month of 9 and a day of 10.


The start module date is setup in the module properties. The values available are the same as this function.

This moves time forward further than SetTime. Therefore setting the calendar also affects anything using the in-game time - ie:

  • Effects and any temporary durations (done with in game seconds)
  • Poison effect times (1 in game minute)
  • Disease incubation times (24 in game hours)
  • DelayCommand() calls (done with in game seconds)

Therefore especially around DelayCommand be aware of when SetCalendar is used. If a DelayCommand fires another DelayCommand, only one is issued (moving forwards a day won't fire 24 hours worth of DelayCommand functions).

SetTime is more suitable for smaller time changes, since this is just basically a longer version of it (going from a day and up).

Known Bugs

No known bugs.



See Also


SetTime GetCalendarYear GetCalendarMonth GetCalendarDay


OnModuleLoad Event

 author: Jody Fletcher, editor: Lilac Soul, additional contributor(s): Jon Dewey, Lilac Soul