Quick Guide to the Activities System

The new activities system makes it super easy to add/remove activities dynamically! Just call (activities:) with your conditions and let the system handle the rest.

Basic Format

(activities: boolean_condition, "Activity Name", "time_slot")

The system will automatically:

  • Add the activity when condition is true
  • Remove it when false
  • Handle all the cleanup (remove from lists, reset current activity if needed)

Simple Example

Here’s how to add “Go to the library” on weekdays:

(activities: (a:"Monday","Tuesday","Wednesday","Thursday","Friday") contains $day_of_week, "Go to the library", "daytime" )

Forcing Activities

You can force an activity by adding two more parameters:

(activities: $needs_to_study is true, "Go to the library", "daytime", true, "You have an important test coming up - better hit the books!" )

Time Slots

  • “morning”
  • “daytime”
  • “evening”

Pro Tips:

  1. Call your activities code frequently enough (like in daily refresh passages) – the system handles cleanup automatically!
  1. No need to manually remove activities – just let the condition go false:

Bad (old way):

(if:not condition)[(set:$evening_activities to it - (a:"My Activity"))] (if:condition)[(set:$evening_activities to it + (a:"My Activity"))] 

Good (new way):

(activities: condition, "My Activity", "evening")
  1. For forced activities that override player choice:
(activities: $doctor_appointment is true, "Doctor Visit", "daytime", true, "Can't skip this appointment!" )

Remember: The system handles all the complex stuff like:

  • Deduplication
  • Removing activities when conditions are false
  • Managing forced activities
  • Cleaning up activity lists
  • Resetting to “Nothing” when needed

BUT, the old method will still work. This will just work better! At the moment, you can’t add additional emojis to the activity list. I plan to add the ability for you to add those.