dotfiles/hosts/dark-firepit/srb2k.nix

117 lines
2.9 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
colors = builtins.fromJSON ''{
"white": "\u0080",
"purple": "\u0081",
"yellow": "\u0082",
"green": "\u0083",
"blue": "\u0084",
"red": "\u0085",
"gray": "\u0086",
"orange": "\u0087",
"cyan": "\u0088",
"lavender": "\u0089",
"gold": "\u008a",
"lime": "\u008b",
"steel": "\u008c",
"pink": "\u008d",
"brown": "\u008e",
"peach": "\u008f"
}'';
colorsLua = {
white = "\\128";
purple = "\\129";
yellow = "\\130";
green = "\\131";
blue = "\\132";
red = "\\133";
gray = "\\134";
orange = "\\135";
cyan = "\\136";
lavender = "\\137";
gold = "\\138";
lime = "\\139";
steel = "\\140";
pink = "\\141";
brown = "\\142";
peach = "\\143";
};
in {
config = {
modules.services.srb2k = with lib; with builtins; let
addonDir = "/var/lib/srb2k/firepit/";
fileNames = attrNames (readDir (/. + addonDir));
addonFileNames = filter (n: hasSuffix ".lua" n || hasSuffix ".kart" n || hasSuffix ".pk3" n || hasSuffix ".wad" n) fileNames;
in {
enable = true;
advertise = true;
addons = map (n: "${addonDir}${n}") addonFileNames;
config = {
maxplayers = 16;
http_source = "https://yugoslavia.best/srb2kaddons/";
maxsend = "max";
servername = with colors; "${white}[${cyan}EU${white}] ${lime}yugoslavia.best";
server_contact = "oat.zone||home of bar";
};
serv = with colorsLua; ''
kmp_hardsneakers on
kmp_extendflashtics on
kmp_floatingitemfuse on
kmp_hyudoro on
kmp_haste on
kmp_respawnpoints on
kmp_battleaccel on
maxsend max
fr_enabled off
khaos enable off
wait 1
fd_finishkill off
fd_hitkill off
wait 1
nametag_star on
wait 1
hm_bail on
hm_timelimit 8
hm_motd on
hm_motd_nag on
hm_motd_name "${lime}yugoslavia.best"
hm_motd_tagline "home of bar"
hm_motd_contact "oat.zone"
hm_restat on
hm_restat_notify on
hm_votable exitlevel
hm_vote_timer 20
wait 1
hm_specbomb on
hm_scoreboard on
hm_scoreboard_humor on
wait 1
hm_scoreboard_addline "${lime}yugoslavia.best${white}: home of bar"
wait 1
hm_scoreboard_addline " hosted by ${lime}oat.zone"
wait 1
hm_scoreboard_addline "casual server, anything goes,"
hm_scoreboard_addline "feel free to suggest mods to"
wait 1
hm_scoreboard_addline "${pink}oatmealine#5397 ${white}/ ${pink}oatmealine@disroot.org"
//hm_scoreboard_addline "${white}80${purple}81${yellow}82${green}83${blue}84${red}85${gray}86${orange}87${cyan}88${lavender}89${gold}8a${lime}8b${steel}8c${pink}8d${brown}8e${peach}8f"
wait 1
hf_displaymode 3
''; #"
};
};
}