Class SpamOptions
Anti-spam thresholds, bound from the "Spam" config section. Defaults are lenient enough that a fast typist never trips them; Mods and above are always exempt.
public sealed class SpamOptions
- Inheritance
-
SpamOptions
- Inherited Members
Constructors
SpamOptions()
public SpamOptions()
Properties
AutoMuteMinutes
Auto-mute duration once a user accumulates ViolationThreshold rejected
sends within ViolationWindowMinutes. 0 disables auto-mute (rejections
still apply). The mute uses the normal timed-mute machinery, so moderators see it
and MuteExpirationService lifts it.
public int AutoMuteMinutes { get; set; }
Property Value
ChannelCreateWindowMinutes
public int ChannelCreateWindowMinutes { get; set; }
Property Value
Enabled
Master switch for all spam protection.
public bool Enabled { get; set; }
Property Value
JoinWindowSeconds
public int JoinWindowSeconds { get; set; }
Property Value
MaxChannelCreatesPerWindow
Max channel creations per ChannelCreateWindowMinutes window.
public int MaxChannelCreatesPerWindow { get; set; }
Property Value
MaxDuplicateMessages
How many identical messages in a row are tolerated; the next one is rejected. (End-to-end encrypted rooms are naturally exempt — identical plaintext produces different ciphertext per message, so repeats never look identical to the server.)
public int MaxDuplicateMessages { get; set; }
Property Value
MaxJoinsPerWindow
Max first-time channel joins per JoinWindowSeconds window. Joins of channels the user already belongs to (reconnect/auto-join) never count, but a brand-new user's first connect joins every public channel at once — keep this above your public channel count.
public int MaxJoinsPerWindow { get; set; }
Property Value
MaxMessagesPerWindow
Max messages a user may send per WindowSeconds window.
public int MaxMessagesPerWindow { get; set; }
Property Value
ViolationThreshold
public int ViolationThreshold { get; set; }
Property Value
ViolationWindowMinutes
public int ViolationWindowMinutes { get; set; }
Property Value
WindowSeconds
public int WindowSeconds { get; set; }