{

  // GENERAL CONFIGURATION
  // ParseFrequencyMilliseconds : Polling frequency for individual log file updates.
  // DirectoryPollFrequencyMilliseconds : Polling frequency for new logs in OutputLogRoot
  // OutputLogRoot : Absolute path to output log root for VRChat. Environment variables will be expanded.
  // LogNotificationEvents : Determines whether or not logs of parsed events will be written to the session log in the user folder. Valid values: true, false
  // Opacity : Opacity for toast notifications. Valid values: 0.0 -> 1.0.

  "ParseFrequencyMilliseconds": 300,
  "DirectoryPollFrequencyMilliseconds": 5000,
  "OutputLogRoot": "C:\\Users\\decid\\AppData\\LocalLow\\VRChat\\VRChat",
  "LogNotificationEvents": true,
  "Opacity": 0.75,

  // PLAYER JOINED
  // DisplayPlayerJoined : Determines whether or not player join notifications are delivered. Valid values: true, false
  // PlayerJoinedNotificationTimeoutSeconds : Period of time in seconds for the player join notification to remain on screen. Valid values: 0.0 -> float32 max
  // PlayerJoinedNotificationVolume : Volume for incoming notification sounds. Valid values: 0.0 -> 1.0.
  // PlayerJoinedIconPath : Relative path to icon for player joins. Other valid values include: "", "default", "warning", "error"
  // PlayerJoinedAudioPath : Relative path to ogg-formatted audio for player joins. Other valid values include: "", "default", "warning", "error"

  "DisplayPlayerJoined": true,
  "PlayerJoinedNotificationTimeoutSeconds": 2.5,
  "PlayerJoinedNotificationVolume": 0.200000003,
  "PlayerJoinedIconPath": "\\Resources\\Icons\\player_joined.png",
  "PlayerJoinedAudioPath": "\\Resources\\Audio\\player_joined.ogg",

  // PLAYER LEFT
  // DisplayPlayerLeft : Determines whether or not player left notifications are delivered. Valid values: true, false
  // PlayerLeftNotificationTimeoutSeconds : Period of time in seconds for the player left notification to remain on screen. Valid values: 0.0 -> float32 max
  // PlayerLeftNotificationVolume : Volume for incoming notification sounds. Valid values: 0.0 -> 1.0.
  // PlayerLeftIconPath : Relative path to icon for player left. Other valid values include: "", "default", "warning", "error"
  // PlayerLeftAudioPath : Relative path to ogg-formatted audio for player left. Other valid values include: "", "default", "warning", "error"

  "DisplayPlayerLeft": true,
  "PlayerLeftNotificationTimeoutSeconds": 2.5,
  "PlayerLeftNotificationVolume": 0.200000003,
  "PlayerLeftIconPath": "\\Resources\\Icons\\player_left.png",
  "PlayerLeftAudioPath": "\\Resources\\Audio\\player_left.ogg",

  // WORLD CHANGED
  // DisplayWorldChanged : Determines whether or not world change notifications are delivered. Valid values: true, false
  // WorldJoinSilenceSeconds : Period of time in seconds for player join/leave notifications to be silenced on world join. This is to avoid spam from enumerating everyone currently in the target world. Valid values: 0.0 -> float32 max
  // DisplayJoinLeaveSilencedOverride : Determines whether or not player join/leave notifications are silenced on world join. Warning, this gets spammy if on! Valid values: true, false
  // WorldChangedNotificationTimeoutSeconds : Period of time in seconds for the world changed notification to remain on screen. Value values: 0.0 -> float32 max
  // WorldChangedNotificationVolume : Volume for incoming notification sounds. Valid values: 0.0 -> 1.0.
  // WorldChangedIconPath : Relative path to icon for world changed. Other valid values include: "", "default", "warning", "error"
  // WorldChangedAudioPath : Relative path to ogg-formatted audio for world changed. Other valid values include: "", "default", "warning", "error"

  "DisplayWorldChanged": true,
  "WorldJoinSilenceSeconds": 20,
  "DisplayJoinLeaveSilencedOverride": true,
  "WorldChangedNotificationTimeoutSeconds": 3,
  "WorldChangedNotificationVolume": 0.200000003,
  "WorldChangedIconPath": "\\Resources\\Icons\\world_changed.png",
  "WorldChangedAudioPath": null,

  // SHADER KEYWORDS EXCEEDED
  // DisplayMaximumKeywordsExceeded : Determines whether or not shader keywords exceeded notifications are delivered. Valid values: true, false
  // MaximumKeywordsExceededTimeoutSeconds : Period of time in seconds for shader keywords exceeded notification to remain on screen. Valid values: 0.0 -> float32 max
  // MaximumKeywordsExceededCooldownSeconds : Period of time in seconds after a shader keywords exceeded notification is sent to ignore shader keywords exceeded events. Valid values: 0.0 -> float32 max
  // MaximumKeywordsExceededNotificationVolume : Volume for incoming notification sounds. Valid values: 0.0 -> 1.0.
  // MaximumKeywordsExceededIconPath : Relative path to icon for shader keywords exceeded. Other valid values include: "", "default", "warning", "error"
  // MaximumKeywordsExceededAudioPath : Relative path to ogg-formatted audio for shader keywords exceeded. Other valid values include: "", "default", "warning", "error"

  "DisplayMaximumKeywordsExceeded": false,
  "MaximumKeywordsExceededTimeoutSeconds": 3,
  "MaximumKeywordsExceededCooldownSeconds": 600,
  "MaximumKeywordsExceededNotificationVolume": 0.200000003,
  "MaximumKeywordsExceededIconPath": "\\Resources\\Icons\\keywords_exceeded.png",
  "MaximumKeywordsExceededAudioPath": null,

  // PORTAL DROPPED
  // DisplayPortalDropped : Determines whether or not portal dropped notifications are delivered. Valid values: true, false
  // PortalDroppedTimeoutSeconds : Period of time in seconds for portal dropped notification to remain on screen. Valid values: 0.0 -> float32 max
  // PortalDroppedNotificationVolume : Volume for incoming notification sounds. Valid values: 0.0 -> 1.0.
  // PortalDroppedIconPath : Relative path to icon for portal dropped. Other valid values include: "", "default", "warning", "error"
  // PortalDroppedAudioPath : Relative path to ogg-formatted audio for portal dropped. Other valid values include: "", "default", "warning", "error"

  "DisplayPortalDropped": true,
  "PortalDroppedTimeoutSeconds": 3,
  "PortalDroppedNotificationVolume": 0.200000003,
  "PortalDroppedIconPath": "\\Resources\\Icons\\portal_dropped.png",
  "PortalDroppedAudioPath": null
}