config.yaml file
this section covers everything in the lightsocket config. this yaml file controls the whole program.
lightsocket automatically checks your config's validity before starting and will refuse to start if something is formatted incorrectly in a way that it can't autocorrect. if this is the case, it'll tell you what part is wrong before exiting.
here's an example config to help you get started. it comes with your installation, too, and it's commented:
general:
logging:
debug: true # [true, false] (true, debug logging will be enabled)
log: true # [true, false] (true, general logging will be enabled)
info: true # [true, false] (true, info logging will be enabled)
warn: true # [true, false] (true, warning logging will be enabled)
error: true # [true, false] (true, error logging will be enabled)
account_limit: 2 # [integer] - max number of accounts (0 = no limit) (2, only 2 accounts will be used)
# settings for the keepalive module (connects to discord on the account to make it display online)
keepalive:
enabled: true # [true, false] (true, the keepalive module will be enabled and accounts will connect to discord's servers)
percent_chance_custom_status_message: 50 # [0-100] - % chance of the account displaying a custom status message (50, 50% chance for each account to have a custom status message)
percent_chance_custom_status_emoji: 20 # [0-100] - % chance of the account displaying an emoji in the custom status message. (20, 20% chance for each account to have an emoji in their status)
distribution: # these values *must* add up to 100
online: 15 # [0-100] - % of accounts set to online (15, 15% of accounts will be online)
idle: 5 # [0-100] - % of accounts set to idle (5, 5% of accounts will be idle)
dnd: 20 # [0-100] - % of accounts set to do not disturb (20, 20% of accounts will be set to dnd)
invisible: 60 # [0-100] - % of accounts set to invisible (visual offline) (60, 60% of accounts will appear offline)
# settings for the oauthjoiner module (uses a real bot to join accounts to a server)
oauthjoiner:
enabled: false # [true, false] (true, the oauthjoiner module will be enabled and accounts will be joined to a server)
nickname_on_join: true # [true, false] (true, accounts will be given a nickname upon joining the server)
guild_id: "################" # [string] - server id to join (the id of the server you want the accounts to join)
bot_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # [string] - the token of the discord app
client_id: "################" # [string] - the client id of the discord app
client_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # [string] - the client secret of the discord app
redirect_uri: "localhost" # [string] - should not need to edit (the redirect uri for oauth is what the callback url is)
scope: "identify guilds.join guilds" # [string] - should not need to edit (the required oauth scopes to join the server. technically, only guilds.join is needed, but extra permissions are added for safety; e.g. not joining a server the account is already in)
# settings for the meower module (sends messages in channels)
meower:
enabled: false # [true, false] (false, the meower module will be off)
mode: "conversation" # ["conversation", "random"] - "conversation" will send messages in a conversation-like manner. "random" will send messages randomly. (conversation, the meower will use the conversation mode)
humanize: false # [true, false] - make the messages more human-like by adding typos, etc. (false, messages will be sent completely unmodified)
wpm: # the words per minute accounts will type at (how long between they start typing and they send the message).
min: 20 # [integer]
max: 100 # [integer]
message_delay: # the delay between messages in seconds
min: 5 # [integer]
max: 12 # [integer]
channels: # [array of objects] - the channels you want the messages to be sent in
- channel_id: "xxxxxxxxxxxxxxxxxxx"
conversation_file: conversation_one.txt
- channel_id: "xxxxxxxxxxxxxxxxxxx"
conversation_file: conversation_two.txt
# settings for the voice module (joins voice channels)
voicemeower:
enabled: true # [true, false] (true, the voicemeower module will be enabled and accounts will join assigned voice channels)
distribution: # these values *must* add up to 100
unmuted: 100 # [0-100] - % of accounts that will be unmuted (100, all accounts will be unmuted)
muted: 0 # [0-100] - % of accounts that will be muted (0, no accounts will be muted)
deafened: 0 # [0-100] - % of accounts that will be deafened (0, no accounts will be deafened)
channels: # [array of objects] - settings for the voice channels the accounts will join.
- channel_id: "xxxxxxxxxxxxxxxxxxx" # [string] - the id of the voice channel you want the accounts to join. if set to 0, accounts will be first given to normally set channels, then the remaining will be evenly distributed among the rest that are set to 0.
guild_id: "xxxxxxxxxxxxxxxxxxx" # [string] - the id of the server the voice channel is in
accounts: 0 # [integer] - the number of accounts you want to join the voice channel
soundboard: # this controls the soundboard spammer
enabled: true # [true, false] (true, the accounts will play soundboards)
mode: "join" # ["join", "spam"] - "join" will play the sounds once after joining the voice channel. "spam" will spam the sounds in the voice channel constantly. (join, the accounts will play the sounds once after joining the voice channel)
spam_delay: # the delay between sounds in seconds
min: 5 # [integer]
max: 12 # [integer]
sounds: # [array of objects] - the sounds the soundboard spammer will play (this single entry is the "quack" default sound)
- custom: true # [boolean] - whether or not this is one of the 6 default sounds
emoji: "🦆" # [string] - the emoji associated with the sound. if the sound has a custom server emoji, use the emoji's snowflake id.
sound_id: "1" # [string] - the id of the sound. default sounds are 0-5. custom sounds use the snowflake system.
source_guild_id: null # [string] - the id of the server the sound is from. if the account doesn't have nitro, it won't be able to play sounds from other servers. set to null if using a default sound.
# settings for the profileeditor module (edits the profile of the account)
profileeditor:
enabled: false # [true, false] - enable or disable the whole profile editor module (false, the profile editor module will be off and accounts will not change their profiles)
banner_color: # settings for changing the banner color
enabled: true # [true, false] (true, the banner color will be changed)
mode: "random" # ["random", "specific"] - "random" will generate a random color based on the settings in random_color. "specific" will use the custom_color setting. (random, color will be changed)
random_color:
hue: null # [null, 0-360] - the hue of the color. null will generate a random hue. (null, random hue will be selected)
saturation: 50 # [null, 0-100] - the saturation of the color. null will generate a random saturation. (50, the saturation of the color will be 50)
value: 50 # [null, 0-100] - the value of the color. null will generate a random value. (50, the value of the color will be 50)
custom_color: "ff0000" # [string] - the hex code of a custom color you want to set the banner to. (this will not affect anything since the mode is set to random.)
bio: # settings for changing the bio/about me
enabled: true # [true, false]
mode: "random" # ["random", "remove"] - "random" will choose a random bio from the list in ./settings/profileeditor/bios.txt. "remove" will remove the bio text.
humanize: false # [true, false] - make the bio more human-like by adding typos, etc.
pronouns: # settings for changing the pronouns
enabled: true # [true, false]
mode: "random" # ["random", "remove"] - "random" will choose a random pronoun text from the list in ./settings/profileeditor/pronouns.txt. "remove" will remove the set pronouns.
humanize: true # [true, false] - make the pronouns more human-like by adding typos, etc.
# internal settings for the program. you probably don't need to edit these.
internal:
oauthjoiner_server_port: 3000 # [integer] - the port the oauthjoiner server will run on. (3000, available to change in case another program you're using needs this port.)
tokens_per_thread: 10 # [integer] - the amount of tokens each thread will handle. (10, each thread will handle 10 tokens)
femboys: true # [true, false] <3
catboys: true # [true, false] <3