Interaction Event Types

Interaction Outcome Event

class S4CLInteractionOutcomeEvent(interaction, outcome, outcome_result)

Bases: CommonEvent

An event that occurs after a Sim has performed an interaction.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionOutcomeEvent) -> bool:
        # Return True from here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run.
        return True
Parameters:
  • interaction (Interaction) – The interaction that was performed.

  • outcome (InteractionOutcome) – The outcome of the interaction that was performed.

  • outcome_result (OutcomeResult) – The result of the interaction that was performed.

property interaction

The interaction that was performed.

Returns:

The interaction that was performed.

Return type:

Interaction

is_failure()

Determine if the outcome was a failure.

Returns:

True, if the interaction was not performed successfully. False, if the interaction was performed successfully.

Return type:

bool

is_success()

Determine if the outcome was a success.

Returns:

True, if the interaction was performed successfully. False, if the interaction was not performed successfully.

Return type:

bool

property outcome

The outcome of the interaction that was performed.

Returns:

The outcome of the interaction that was performed.

Return type:

InteractionOutcome

property outcome_result

The result of the interaction that was performed.

Returns:

The result of the interaction that was performed.

Return type:

OutcomeResult

Interaction Queued Event

class S4CLInteractionQueuedEvent(interaction, interaction_queue)

Bases: CommonEvent

An event that occurs upon a Sim adding an interaction to their interaction queue.

Note

This event fires BEFORE the interaction is actually queued. Like a Pre-Queue. If False or None is returned from any of the listeners of this event, the interaction will be prevented from queuing; All subsequent listeners will still receive the event, but their return will be ignored.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionQueuedEvent) -> bool:
        # Return True here to allow the interaction to queue and to signify the event listener ran successfully. Return False or None here to prevent the interaction from being queued or to signify the event listener failed to run.
        return True
Parameters:
  • interaction (Interaction) – The interaction that is being queued.

  • interaction_queue (InteractionQueue) – The interaction queue of the Sim.

property interaction

The interaction that is being queued.

Returns:

The interaction that was queued.

Return type:

Interaction

property interaction_queue

The interaction queue of the Sim that is queuing the interaction.

Returns:

The interaction queue of the Sim that is queuing the interaction.

Return type:

InteractionQueue

property queuing_sim

The Sim that is putting the interaction into their queue.

property queuing_sim_info

The SimInfo of the Sim that is putting the interaction into their queue.

Interaction Post Queued Event

class S4CLInteractionPostQueuedEvent(interaction, interaction_queue, queue_result)

Bases: CommonEvent

An event that occurs after a Sim adds an interaction to their interaction queue.

Note

This event fires AFTER the interaction is actually queued. Like a Post-Queue.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionPostQueuedEvent) -> bool:
        # Return True here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run.
        return True
Parameters:
  • interaction (Interaction) – The interaction that was queued.

  • interaction_queue (InteractionQueue) – The interaction queue of the Sim.

  • queue_result (CommonTestResult) – The result of the interaction being Queued.

property interaction

The interaction that was queued.

Returns:

The interaction that was queued.

Return type:

Interaction

property interaction_queue

The interaction queue of the Sim that queued the interaction.

Returns:

The interaction queue of the Sim that queued the interaction.

Return type:

InteractionQueue

property queue_result

The result of the interaction being Queued.

Returns:

The result of the interaction being Queued.

Return type:

CommonTestResult

Interaction Started Event

class S4CLInteractionStartedEvent(interaction, sim_info, target)

Bases: CommonEvent

An event that occurs when a Sim has started an interaction.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionStartedEvent) -> bool:
        # Return True here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run.
        return True
Parameters:
  • interaction (Interaction) – The interaction that was run.

  • sim_info (SimInfo) – The Sim doing the interaction.

  • target (Any) – The Target of the interaction.

property interaction

The interaction that was run.

Returns:

The interaction that was run.

Return type:

Interaction

property sim_info

The Sim that started the interaction.

property target

The target of the interaction.

Interaction Pre Run Event

class S4CLInteractionPreRunEvent(interaction, interaction_queue, timeline)

Bases: CommonEvent

An event that occurs upon a Sim running an interaction.

Note

This event fires BEFORE the interaction is actually run. Like a Pre-Run. If False or None is returned from any of the listeners of this event, the interaction will be prevented from running; All subsequent listeners will still receive the event, but their return will be ignored.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionPreRunEvent) -> bool:
        # Return True here to allow the interaction to run and to signify the event listener ran successfully. Return False or None here to prevent the interaction from being run or to signify the event listener failed to run.
        return True
Parameters:
  • interaction (Interaction) – The interaction that is being run.

  • interaction_queue (InteractionQueue) – The interaction queue of the Sim.

  • timeline (Timeline) – The timeline of the interaction.

property interaction

The interaction that is being run.

Returns:

The interaction that is being run.

Return type:

Interaction

property interaction_queue

The interaction queue of the Sim that is running the interaction.

Returns:

The interaction queue of the Sim that is running the interaction.

Return type:

InteractionQueue

property timeline

The timeline of the interaction.

Returns:

The timeline of the interaction.

Return type:

Timeline

Interaction Run Event

class S4CLInteractionRunEvent(interaction, interaction_queue, run_result)

Bases: CommonEvent

An event that occurs after a Sim has run an interaction.

Note

This event fires AFTER the interaction is actually run. Like a Post-Run. If False or None is returned from any of the listeners of this event, the interaction will be prevented from running; All subsequent listeners will still receive the event, but their return will be ignored.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionRunEvent) -> bool:
        # Return True here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run.
        return True
Parameters:
  • interaction (Interaction) – The interaction that was run.

  • interaction_queue (InteractionQueue) – The interaction queue of the Sim.

  • run_result (bool) – The result of the interaction being run.

property interaction

The interaction that was run.

Returns:

The interaction that was run.

Return type:

Interaction

property interaction_queue

The interaction queue of the Sim that ran the interaction.

Returns:

The interaction queue of the Sim ran the interaction.

Return type:

InteractionQueue

property run_result

The result of the interaction being run.

Returns:

True, if the interaction was run successfully. False, if not.

Return type:

bool

Interaction Cancelled Event

class S4CLInteractionCancelledEvent(interaction, finishing_type, cancel_reason, ignore_must_run=False, **kwargs)

Bases: CommonEvent

An event that occurs upon an interaction being cancelled.

Note

This event fires BEFORE the interaction is actually cancelled. Like a Pre-Cancel.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLInteractionCancelledEvent) -> bool:
        # Return True from here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run successfully.
        return True
Parameters:
  • interaction (Interaction) – The interaction that is being cancelled.

  • finishing_type (FinishingType) – The finishing type of the interaction.

  • cancel_reason_msg (str) – The reason the interaction was cancelled.

  • ignore_must_run (bool, optional) – If True, interactions flagged as “Must Run” will be ignored. Default is False.

property cancel_reason

The reason the interaction was cancelled.

Returns:

The reason the interaction was cancelled.

Return type:

str

property finishing_type

The finishing type of the interaction.

Returns:

The finishing type of the interaction.

Return type:

FinishingType

property ignore_must_run

Whether or not interactions flagged as “Must Run” will be cancelled.

Returns:

If True, interactions flagged as “Must Run” will be cancelled. If False, interactions flagged as “Must Run” will not be cancelled.

Return type:

bool

property interaction

The interaction that is being cancelled.

Returns:

The interaction that is being cancelled.

Return type:

Interaction

property keyword_arguments

Keyword arguments sent to the cancelled interaction.

Returns:

Keyword arguments sent to the cancelled interaction.

Return type:

Dict[str, Any]

Super Interaction Cancelled Event

class S4CLSuperInteractionCancelledEvent(interaction, finishing_type, cancel_reason, **kwargs)

Bases: CommonEvent

An event that occurs upon a super interaction being cancelled.

Note

This event fires BEFORE the super interaction is actually cancelled. Like a Pre-Cancel.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLSuperInteractionCancelledEvent) -> bool:
        # Return True from here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run successfully.
        return True
Parameters:
  • interaction (SuperInteraction) – The super interaction that is being cancelled.

  • finishing_type (FinishingType) – The finishing type of the interaction.

  • cancel_reason_msg (str) – The reason the interaction was cancelled.

property cancel_reason

The reason the interaction was cancelled.

Returns:

The reason the interaction was cancelled.

Return type:

str

property finishing_type

The finishing type of the interaction.

Returns:

The finishing type of the interaction.

Return type:

FinishingType

property interaction

The super interaction that is being cancelled.

Returns:

The super interaction that is being cancelled.

Return type:

SuperInteraction

property keyword_arguments

Keyword arguments sent to the cancelled interaction.

Returns:

Keyword arguments sent to the cancelled interaction.

Return type:

Dict[str, Any]

Mixer Interaction Cancelled Event

class S4CLMixerInteractionCancelledEvent(interaction, finishing_type, cancel_reason, **kwargs)

Bases: CommonEvent

An event that occurs upon a mixer interaction being cancelled.

Note

This event fires BEFORE the mixer interaction is actually cancelled. Like a Pre-Cancel.

Example usage:

from sims4communitylib.events.event_handling.common_event_registry import CommonEventRegistry
from sims4communitylib.modinfo import ModInfo

class ExampleEventListener:

    # In order to listen to an event, your function must match these criteria:
    # - The function is static (staticmethod).
    # - The first and only required argument has the name "event_data".
    # - The first and only required argument has the Type Hint for the event you are listening for.
    # - The argument passed to "handle_events" is the name or identity of your Mod.
    @staticmethod
    @CommonEventRegistry.handle_events(ModInfo.get_identity())
    def handle_event(event_data: S4CLMixerInteractionCancelledEvent) -> bool:
        # Return True from here to signify the event listener ran successfully. Return False or None here to signify the event listener failed to run successfully.
        return True
Parameters:
  • interaction (MixerInteraction) – The mixer interaction that is being cancelled.

  • finishing_type (FinishingType) – The finishing type of the interaction.

  • cancel_reason_msg (str) – The reason the interaction was cancelled.

property cancel_reason

The reason the interaction was cancelled.

Returns:

The reason the interaction was cancelled.

Return type:

str

property finishing_type

The finishing type of the interaction.

Returns:

The finishing type of the interaction.

Return type:

FinishingType

property interaction

The mixer interaction that is being cancelled.

Returns:

The mixer interaction that is being cancelled.

Return type:

MixerInteraction

property keyword_arguments

Keyword arguments sent to the cancelled interaction.

Returns:

Keyword arguments sent to the cancelled interaction.

Return type:

Dict[str, Any]