schat2-clive/config/default.js

159 lines
2.5 KiB
JavaScript
Executable File

'use strict';
module.exports = {
platform: 'schat',
user: {
id: 'clive',
username: 'Clive',
realName: 'Clive',
avatar: null,
key: null,
},
style: {
// color: 'var(--message-56)',
},
operators: ['admin'],
server: 'irc.libera.chat',
port: 6697,
socket: 'ws://127.0.0.1:3000/socket/',
api: 'http://127.0.0.1:3000/api',
reconnectDelay: 10, // seconds
prefix: '~',
labels: true,
greeting: 'Hi, I am Clive, your game host!',
usernamePrefix: '@',
channels: ['GamesNight'],
games: [
'chat',
'mash',
'trivia',
'letters',
'numbers',
'hunt',
'8ball',
'geo',
'riddle',
'dice',
'rock-paper-scissors',
'duck',
'ping',
'say',
'kill',
'uptime',
'help',
],
schatColors: {
white: 'white',
blue: 'var(--message-40)',
navy: 'var(--message-40)',
},
schatColorAliases: {
red: 'red',
brown: 'brown',
orange: 'orange',
beige: 'beige',
yellow: 'yellow',
forest: 'forest',
green: 'green',
mint: 'mint',
cyan: 'cyan',
blue: 'blue',
sky: 'sky',
purple: 'purple',
violet: 'violet',
pink: 'pink',
grey: 'shadow',
silver: 'shadow',
},
chat: {
apiKey: null, // OpenAI
validModels: [
'gpt-3.5-turbo',
'text-davinci-003',
'gpt-4',
],
model: 'gpt-3.5-turbo',
userTokenLimit: 20000, // daily, roughly 100+ messages or $0.04 per user
userTokenPeriod: 24, // hours
replyTokenLimit: 1000,
replyWordLimit: 70,
replyWordLimitPublic: true,
temperature: 1,
history: 3,
rule: 'a tired game host',
rulePublic: true,
},
trivia: {
mode: 'first', // first or timeout
rounds: 10,
timeout: 60,
bounds: {
rounds: [1, 30],
timeout: [5, 300],
},
},
duck: {
interval: [10, 3600], // seconds
duck: ':duck:',
missRatio: 0.25,
},
letters: {
length: 9,
timeout: 60,
consonantBias: 0.56, // for auto fill
// http://www.thecountdownpage.com/letters.htm
vowels: {
a: 15,
e: 21,
i: 13,
o: 13,
u: 5,
},
consonants: {
b: 2,
c: 3,
d: 6,
f: 2,
g: 3,
h: 2,
j: 1,
k: 1,
l: 5,
m: 4,
n: 8,
p: 4,
q: 1,
r: 9,
s: 9,
t: 9,
v: 1,
w: 1,
x: 1,
y: 1,
z: 1,
},
},
numbers: {
length: 6,
timeout: 90,
points: [3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1], // points by distance
},
riddle: {
timeout: 30,
score: false,
},
dice: {
maxRolls: 20,
maxFaces: 1000,
},
hunt: {
minLength: 5,
maxLength: 9,
guesses: [4, 4, 6, 7, 9],
// guesses: [2, 3, 4, 5, 6, 7], // by word length, last number repeats for longer words
},
geo: {
url: 'https://geo.unknown.name/',
},
};