~/this_dev

Nixos minecraft server

um dia normar

nesse final de semanal eu comecei a tentar escrever um servidor de minecraft declarativo para meu grupo de amigos meu como a declartivade do nixos e muito conveniente para configurar servicos eu optei criar todo ambiente infraestura nessa lingaugem.

Objetivo e Problematica

Lendo a documentacao do nixos da pra perceber que ele tem uma otima integracao built-in com o minecraft-server, o unico problema, meu problema na verdade e que ainda eu nao sei o usar flake e meu conhecimento com a lingaugem nix e bem limitado vou usar esse projeto pra aprender mais da linguagem e o objetivo dele e ter um servidor declarativo de minecraft com mods, que eu possa subir quando quiser em qualquer maquina sem problemas.

Servidor configurado em localhost

Logo de cara da pra configurar um servidor de minecrat vanilla bem facilmente so com a documentacao, pra comecar com ajuda de um video do vimjoyer(sim eu aprendo melhor assistindo tutorias) eu criar um modulo nix apenas para o servidor de minecraft e importar no meu configuration.nix.

{pkgs, lib, ...}:
{
  services.minecraft-server = {
    package = pkgs.papermc;
    enable = true;
    eula = true;
    declarative = true;
    openFirewall = true;
    jvmOpts = "-Xms2048M -Xmx2048M"; 
    
    serverProperties = {
      online-mode = false;
      server-port = 43000;
      difficulty = 3;
      gamemode = 0;
      max-players = 5;
      motd = "NixOS Minecraft server!";
      white-list = false;
      enable-rcon = true;
      "rcon.password" = "hunter2";
    };
    # whitelist = {
    #   username1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
    #   username2 = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy";
    # };
  };
}

muito interessante reconher alguns parametros que sao repassados desse arquivo declarativo para o servidor do minecrat na compilacao. como eu ainda nao sei flake esse arquivo esta importado na minha configuration.nix e esta inicializando com a minha maquina me custando 2G de memoria com 0 players no servidor T___T.

MOds no meu client

Meu amigo(matteuszinho) me mandou uma lista de mods essesiais para o client do minecraft e mais alguns outros para o servidor, mas vou entrar nesse assunto posteriormente. vou tentar instalar todos, separei aqui por categorias e descrevendo o que faz cada mod.

🛠️ APIs e Bibliotecas Base

Mods técnicos que rodam nos bastidores e são necessários para que outros mods funcionem corretamente.


⚡ Otimização e Desempenho

Mods focados em aumentar o FPS, renderização e eliminar lag.


🌍 Geração de Mundo e Estruturas

Mods que alteram as dimensões, adicionam novos biomas, ruínas e construções pelo mapa.


🎒 Inventário e Armazenamento

Facilidades para carregar itens e organizar seus pertences.


✨ Visual, Áudio e Câmera

Melhorias imersivas para gráficos, sons, física e perspectiva.


🖥️ Interface e HUD

Tudo que muda os menus do jogo ou o que você vê na tela (Mini-mapas, vida, menus).


⚙️ Qualidade de Vida (QoL) e Jogabilidade

Pequenos e grandes ajustes que tornam a jogabilidade menos monótona e mais fluída.


🪚 Construção e Decoração

Novos blocos e opções arquitetônicas.