{pkgs, ...}: {
  # Common properties
  serverProperties = {
    enforce-secure-profile = false;
    max-players = 20;
    online-mode = false;
    spawn-protection = 0;
    view-distance = 10;
    simulation-distance = 10;
    white-list = true;
  };

  # Common whitelist
  whitelist = {
    K5G = "8656dc10-6050-4a17-b29e-88c4babbc54c";
    JimmJam = "2f7affee-e10b-450f-a5e2-44c79a14a109";
    Foxzilla04 = "f583f591-ad9b-4a30-8d91-514881b31394";
    DewDemolisher = "9205524f-3886-483d-b471-82bb9905671a";
    Freecorn1854 = "8299cd8d-3cd4-4779-8180-0d9db6dc12a9";
    Tinyattack09 = "aaa8e9e2-4e51-4925-b9df-8a9504aec5d5";
    Ankha3000 = "dd65a277-f618-411e-812c-900c9c7e82d9";
    catoiico = "01f10cdf-c146-437e-99b1-2278b5dbe420";
    Sp0ok7 = "016c3daa-3dd5-4631-ae79-3a6f48d7cbe6";
    PooxterMooxter = "c973f4b5-ab50-45e3-b3eb-36286a6f66aa";
  };

  # Common plugins
  paperSymlinks = {
    "plugins/Backuper.jar" = builtins.fetchurl {
      url = "https://cdn.modrinth.com/data/7cMAqMND/versions/nkcNIvUw/Backuper-3.0.1.jar";
      sha256 = "081hvs7khd9s8598i59ai8n0idp85rgc89m9hpfajwym9rmy7il4";
    };
    "plugins/BungeeGuard.jar" = builtins.fetchurl {
      url = "https://github.com/lucko/BungeeGuard/releases/download/v1.3.3/BungeeGuard.jar";
      sha256 = "0cackavwk7kl71hn1i78hcvkdp7q81srq35nranpvysbmm8v34vk";
    };
    "plugins/EssentialsX.jar" = builtins.fetchurl {
      url = "https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsX-2.21.0-dev+111-b54c8c1.jar";
      sha256 = "0kcsgz5kcfbjc3nbdlgp549y497m4v90dnjqkv30sd1bfyzs9i5z";
    };
    "plugins/EssentialsXChat.jar" = builtins.fetchurl {
      url = "https://ci.ender.zone/job/EssentialsX/lastSuccessfulBuild/artifact/jars/EssentialsXChat-2.21.0-dev+111-b54c8c1.jar";
      sha256 = "0nraiclvnpl69gigs7h6vq55iksfd47clbzp7n3rsjmgvrbl1wil";
    };
    "plugins/LuckPerms.jar" = builtins.fetchurl {
      url = "https://download.luckperms.net/1556/bukkit/loader/LuckPerms-Bukkit-5.4.141.jar";
      sha256 = "02ad0dl34vdk6b1wyflqa6wq440xrh5w7yf3z3w1x1g089myddw4";
    };
    "plugins/ProtocolLib.jar" = builtins.fetchurl {
      url = "https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/artifact/build/libs/ProtocolLib.jar";
      sha256 = "16krc7pyav4khnaxkyg27i5yxsgcdkildrn4nm5bhzh1f0ngqv2s";
    };
    "plugins/Vault.jar" = builtins.fetchurl {
      url = "https://github.com/MilkBowl/Vault/releases/download/1.7.3/Vault.jar";
      sha256 = "07fhfz7ycdlbmxsri11z02ywkby54g6wi9q0myxzap1syjbyvdd6";
    };
    "plugins/VoiceChat.jar" = builtins.fetchurl {
      url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/nS19YToN/voicechat-bukkit-2.5.20.jar";
      sha256 = "023wjx0zxf9rc2x9vsqg398wapz0nlwfs5g6c8pci3qx75i5s4jx";
    };
  };

  # Config files
  configSymlinks = {
    "plugins/Essentials/config.yml" = ./essentialsconfig.yml;
    "plugins/voicechat/voicechat-server.properties" = ./vcserver.properties;
  };
}