Minutes 2025-11-13

Revision as of 15:45, 14 November 2025 by D2wn (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
  1. How to run a Minecraft Server that doesn't suck by Max!
    1. Why should you listen to me?
      1. Head of the Minecraft Club on campus
      2. Playing Minecraft most of my life
    2. 5 Main aspects of running a Minecraft server
      1. Hardware
        1. Two methods
          1. Pay someone else to host it
            1. A good server would cost ~100-300/month
          2. or host it yourself
            1. Initial cost a lot higher
            2. Operating cost much lower (basically just electricity)
            3. MC Club's desktop cost $830 and can run into the future
        2. CPU
          1. Go for big single-core performance CPUs
          2. Minecraft is singlethreaded
            1. Java moment?
            2. More like Minecraft moment, Java supports multithreading, but they just didn't support it because it's more difficult
          3. Memory
            1. MC Club went with 32GB/ram
          4. Storage/Networking
            1. Low-latency storage
            2. NVME is best, SATA SSD is fine
            3. just avoid HDDs
            4. Worlds aren't very big (MC club is currently at 50GB)
            5. Try to have low latency and a stable network so players don't hate you
      2. Software
        1. Considering either Windows 11 or Windows Server 2025
        2. Of course, went with Linux (Debian)
        3. Server options
          1. Vanilla
          2. Fabric
            1. Mods usually try to avoid impacting vanilla game mechanics
          3. Paper
            1. Server admins tend to like it
            2. Power players, not so much
            3. Unavoidably breaks some game mechanics players rely on
            4. However, grants access to a huge library of Spigot plugins and improves performance a ton even on crappy hardware
          4. Using a different JVM to increase performance
            1. MC Club is using Azul Zing because it benchmarked the best
          5. Improve garbage collection via launch arguments
        4. Can setup SRV records on domain for different servers on the same host so users don't need to specify a different port
      3. Configuration
        1. server.properties is the main config file
          1. All your standard settings, and....
          2. Can configure server to auto-freeze when server is inactive
          3. And can specify region chunk compression algorithm (more on this later)
        2. Mods
          1. NoChatReports
            1. Removes users being able to submit other user's messages back to Microsoft and potentially get them permanently banned from Multiplayer
          2. GeyserMC + Floodgate
            1. Allow bedrock players to join a Java server
          3. Simple Voice Chat
            1. In-game proximity voice chat
            2. Improves social experience
          4. Distant Horizons
            1. Allows the server to send less-detailed chunks to the client, so it allows the client to see super far without a massive performance penalty
              1. However, eats a lot of storage (~70GB)
        3. Other Stuff
          1. Chat bridge to mirror Minecraft chat to another chat (usually a Discord server)
          2. Auto whitelisting
            1. You don't want to have a public minecraft server, in case someone port scans the entire IPv4 space and finds+griefs your world
            2. Worked pretty good so far, one incident in 2 months
      4. Optimization
        1. Lag
          1. Every 1/20th of a second game 'ticks' entire world (IE updates everything)
          2. Ticks must be <50ms or eating is noticeable, you get teleported back, and a lot of other annoying things
          3. Spawning/Entities is very laggy
          4. Block updates usually not so much, barring massive Redstone contraptions
          5. World generation can be a major lag producer if you are generating chunks
          6. Easiest fix is decreasing simulation distance
          7. You can also pre-generate large parts of the world before people first join
          8. Change region file compression algorithm
            1. Switch from DEFLATE to LZ4 (faster), prevents lag spikes during autosave
            2. World files will be ~20-30% larger though
          9. Optimization mods
            1. All are only performance-based and do not change how the game operates
            2. Lithium: General optimizations
            3. ScalableLux: better lighting engine
            4. Krypton improves network performance
            5. Very Many Players: caching and other technology to improve performance with very high player counts
            6. OptimizedTNT: nice for players that allegedly build TNT-orbital-strike-cannons that otherwise would crash the server
              1. In fairness, this should probably be expected considering Tech is an engineering school
          10. In-game lag reduction
            1. Avoid high entity counts in small areas
              1. Animal pens are a frequent offender
              2. MC club server had one person with a chicken pen with 1000+ chickens in it that was responsible for ~80% of the in-game lag
              3. Apparently Chickens used to be immune to entity cramming damage.
              4. Spark is essentially a java profiler that shows what methods Minecraft spends most of its CPU time on
      5. Management
        1. As an admin, be transparent with the playerbase
        2. Allow people to talk about changes before changing things
        3. Don't abuse admin perms to benefit yourself, players typically don't like this
          1. Yaoi bribed have been alleged to work for some admins in return for Elytras when servers are out
        4. Keep rules short and sweet, otherwise no one will read them
          1. Outline what rules and environment you want for the server
          2. Swift bans for people openly breaking rules (e.g. x-ray)
        5. Minecraft Club actually disabled the Nether for the first day of the server to allow people to prepare
      6. And most importantly of all, have fun!
    3. Live demo!
      1. Can configure sudo to not prompt for a password when logged in via ssh private key
      2. World backup every hour, keeps for last 6 hours
        1. cat banned-players.json
          1. That one person who was obviously using x-ray
          2. For shame!
        2. Live chat preview
          1. [Server] i am watching you
          2. <Sting1> D: 1984
        3. Get to see the (in)famous pen of 1000+ chickens that's eating 80% of each server tick
      3. That was the server!
      4. Obligatory plug for Minecraft Club Discord Server
        1. Minecraft club is also hosting a world for East Hall
          1. Paid $300 for indefinite hosting
          2. Remains to be seen if East Hall Association will still exist as an entity after the building inevitably collapses
  2. After talk discussion
    1. MC Java technically does have multithreaded word generation, but it's very poorly multithreaded so not much better than single-threaded
    2. Bedrock has some advantages in this regard
      1. "not-java" brings a lot of performance advantages
    3. Good transparency on the part of 2B2T
      1. Page for all custom mods/software [1]
      2. 2B2T uses Folia (regioned-threading), from the PaperMC project
      3. Breaks even more vanilla mechanics than regular Paper
    4. For most servers, an admin would probably not want Paper or Folia