# Hoe verminder ik lag op m'n server?

In minecraft zijn er twee soorten lag: lage fps en lage tps.

Fps is op je minecraft client (op je eigen computer). Bij een lage fps hapert het beeld. Om je fps te verhogen, zie het artikel *Hoe verbeter ik mijn Minecraft fps?*.

Tps is ticks per second. Dit is hoe vaak je server "update". Wanneer je lag hebt op je server, is je tps laag. Wanneer je tps laag is, duurt bijvoorbeeld het openen van een kist of het laden van een chunk heel lang. Dit artikel gaat over het verbeteren van de tps. Hieronder staat een inhoudsopgave met de tips

* [Gebruik PaperMC](#gebruik-papermc)
* [Optimaliseer configuratiebestanden](#optimaliseer-configuratiebestanden)
* [Timings](#timings)
* [Optimalisatieplugins](#optimalisatieplugins)
* [Kleinere tips](#kleinere-tips)
* [Upgraden](#upgraden)

## Gebruik PaperMC

Als je een vanilla / bukkit / spigot server hebt, raden wij aan om te switchen naar [PaperMC](https://papermc.io). Om je server te veranderen naar PaperMC, bekijk [Hoe verander ik m'n server versie](https://kennisbank.mynode.nl/vps/hoe-verander-ik-mijn-root-password).

## Optimaliseer configuratiebestanden

Er zijn verschillende configuratiebestanden in je server om de serverlag te verminderen.

### Spigot

De volgende opties zijn te vinden onder `spigot.yml`. Wanneer je alle opties wilt gebruiken, kan je ook de geoptimaliseerde spigot.yml downloaden.

{% file src="<https://496696284-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIJtpGj7L2Xu5IohciGPu%2Fuploads%2Fhl0od54xxSy7idmFx2JN%2Fspigot.yml?alt=media&token=973112dd-d3f6-47d9-a185-6e2092345468>" %}
De geoptimaliseerde spigot configuratie
{% endfile %}

1. Merge radius

De merge radius optie zorgt ervoor dat items en exp op de grond sneller bij elkaar komen. Een nedeel van de merge radius verhogen is dat sommige redstone machines niet meer optimaal werken. Zoek naar `merge-radius`. Zet hieronder `items` op 4 en `exp` op 6.&#x20;

2. Entity activation range

Deze optie zorgt ervoor dat entities pas van verder af "geactiveerd" worden. Hierdoor zal de server bij minder entities constant berekeningen moeten uitvoeren. Zoek naar `entity-activation-range` en zet dit naar het volgende.

```yaml
    entity-activation-range:
      animals: 8
      monsters: 16
      raiders: 48
      misc: 6
```

3. View distance

Als de view distance op je server lager is, hoeft je server minder vaak chunks te laden. Wanneer spelers de eigen view distance hoger hebben gezet, zullen de chunks langer geladen blijven bij de spelers. Zoek naar `view-distance` en zet dit op `6`.

4. Mob spawn range

Wanneer je de mob spawn range omlaag zet, zullen er minder chunks geladen zijn. Zoek naar `mob-spawn-range` en zet dit op `4`.

5. Max tick time

De max tick time geeft aan hoe veel miliseconden de server maximaal mag doen over berekeningen van (tile) entities. Er zit maximaal 50 miliseconden in een tick, dus door ervoor te zorgen dat de server maximaal 30 miliseocnden bezig is met entities, heeft de server tijd over voor andere dingen. Zoek naar `max-tick-time` en zet er het volgende neer.

```yaml
    max-tick-time:
      tile: 8
      entity: 22
```

6. Hoppers

Door de optie `ticks-per` en `hopper-amount` kan je ervoor zorgen dat hoppers minder lag geven, door hoppers minder vaak te checken en meer items per keer mee te geven. Zoek naar `ticks-per` en zet het volgende er neer.

```yaml
    ticks-per:
      hopper-transfer: 20
      hopper-check: 20
    hopper-amount: 3
```

7. Max tnt per tick

De max tnt per tick geeft aan hoeveel tnt er maximaal per tick mag exploderen. Deze optie heeft vooral effect als er vaak tnt wordt gebruikt in je server. Zoek naar `max-tnt-per-tick` en zet dit naar `10`.

### Bukkit

Ook in het bestand `bukkit.yml` kan je een aantal dingen verbeteren om minder lag te hebben. Ook is het mogelijk om het onderstande bestand te downloaden waarbij alles meteen is geoptimaliseerd.

{% file src="<https://496696284-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIJtpGj7L2Xu5IohciGPu%2Fuploads%2FZ7HoE3L0vDnR6oWkQyCl%2Fbukkit%20(1).yml?alt=media&token=552fabab-b047-4222-963b-1032134565de>" %}
De geoptimaliseerde bukkit configuratie
{% endfile %}

1. Spawn limits

Als je server minder mobs nodig heeft, kan je ervoor kiezen om de spawn limits te verminderen. De spawn limits geeft aan hoeveel monsters, dieren, etc er maximaal mogen zijn. Dit schaalt met hoeveel spelers er online zijn, dus als er veel spelers online zijn kan dit makkelijk lager.

Hier geven wij geen advies voor goede waarden, omdat dit heel erg afhangt van de soort server. Zoek naar `spawn-limits` en kijk wat het best bij jouw server past. Je kan ook contact met ons opnemen om advies op maat te krijgen!

2. Chunk unloaden

De optie `chunk-gc` geeft aan hoe lang het duurt voordat geladen chunks worden geunload. Zet `chunks-gc.period-in-ticks` naar 300, zodat chunks eerder unloaden en je server meer rekenkracht vrij heeft voor andere dingen.

3. Ticks per

Onder `ticks-per` kan je aangeven om de hoeveel ticks de server animals, monsters, etc spawnt. Hieronder staat een voorbeeld van goede waarden.

```yaml
ticks-per:
  animal-spawns: 400
  monster-spawns: 3
  water-spawns: 2
  water-ambient-spawns: 3
  water-underground-creature-spawns: 2
  axolotl-spawns: 2
  ambient-spawns: 2
```

### Server.properties

Daarnaast is er ook één optie in `server.properties` om lag te verbeteren wanneer er meer spelers online zijn: `network-compression-threshold`. Deze optie wanneer de server gegevens moet comprimeren. Door deze waarde te zetten op `512`, is je server minder rekenkracht kwijt hieraan.

## Timings

Om specifiek jouw server te verbeteren, kan je een *timings report* maken. Hierin zie je precies wat je server doet en waar je server de meeste tijd aan kwijt is. Hieronder staat een stappenplan om dit te doen.

1. Gebruik `/timings on` om timings te starten
2. Laat spelers je server voor 10-15 minuten gebruiken zoals ze normaal doen.
3. Gebruik `/timings paste` om het te stoppen. Na een paar seconden krijg je een linkje waar je je rapport kan zien.

Op de verkregen links staan vaak al een aantal tips. Heb je hulp nodig met het analyseren van je timings rapport? Neem contact met ons op!

## Optimalisatieplugins

Ook zijn er een aantal plugins die kunnen helpen met het verbeteren van de lag op je server. Hieronder staat een lijstje met plugins die wij hebben gechecked. Er zijn natuurlijk veel meer plugins die helpen.

* Gebruik [ClearLagg](https://www.spigotmc.org/resources/clearlagg.68271/) om onderandere tnt, mob spawners en item drops te controllen en te limitieren.
* Gebruik [StackMob](https://www.spigotmc.org/resources/chunky.81534/) om veel van dezelfde mobs te compressen tot één mob. Dit is vooral handig bij bijvoorbeeld grote mob farms.
* Gebruik [EntityTrackerFixer](https://www.spigotmc.org/resources/entitytrackerfixer-fix-1-14-4-1-16-2-entitytick-lag.70902/) om minder rekenkracht te verspillen aan entities die niet meer getracked worden.
* Gebruik [VillagerOptimiser](https://www.spigotmc.org/resources/villager-optimiser-1-14-2-1-16-5.68517/) om je villagers te optimaliseren (als je er heel veel hebt).
* Gebruik [FastAsyncVoxelSniper](https://www.curseforge.com/minecraft/bukkit-plugins/favs) in plaats van VoxelSniper.
* Gebruik [FastAsyncWorldEdit](https://www.spigotmc.org/resources/fastasyncworldedit.13932/) in plaats van WorldEdit.

## Kleinere tips

Ook zijn er een paar kleinere tips om je lag te verbeteren. Deze kleinere tips zullen geen wonderen verrichten, maar helpen wel.

1. Herstart je server, gebruik geen reload. Waarom? Kijk [hier](https://www.spigotmc.org/threads/why-is-using-reload-a-bad-thing.414375/).&#x20;
2. Zet een worldboarder en laad je chunks binnen die worldboarder. Dit kan met bijvoorbeeld [Chunky](https://www.spigotmc.org/resources/chunky.81534/).
3. Gebruik geen chunkloaders.
4. Wanneer je server modded is, probeer optimalisatiemods te gebruiken wanneer dit kan. Zoek natuurlijk wel eerst uit of de mod werkt in je server.
   1. Bij sponge, gebruik [CatClearLag](https://ore.spongepowered.org/TimeTheCat/CatClearLag) en [Mobpression](https://ore.spongepowered.org/TheFlash787/Mobpression).
   2. Bij forge, gebruik [AI Improvements](https://www.curseforge.com/minecraft/mc-mods/ai-improvements), [RandomPatches](https://www.curseforge.com/minecraft/mc-mods/randompatches-forge), [FoamFix](https://www.curseforge.com/minecraft/mc-mods/foamfix-optimization-mod), [Performant](https://www.curseforge.com/minecraft/mc-mods/performant), [Surge](https://www.curseforge.com/minecraft/mc-mods/surge) en [Spark](https://www.curseforge.com/minecraft/mc-mods/spark).
   3. Bij fabric, gebruik [Lithium](https://www.curseforge.com/minecraft/mc-mods/lithium), [Phosphor](https://www.curseforge.com/minecraft/mc-mods/phosphor) en [Spark](https://www.curseforge.com/minecraft/mc-mods/spark).
5. Maak een scheduler om de server elke nacht opnieuw op te starten.
6. Probeer niet te veel plugins te gebruiken.

## Upgraden

Wanneer niets werkt en je ziet dat je tegen je cpu, ram of disk limiet zit op het [Game Panel](https://game.mynode.nl/), is een laatste optie je server upgraden. Je selecteerd dan een hoger pakket, waardoor je server meer ruimte krijgt.

{% hint style="info" %}
Als je er niet uitkomt of hulp nodig hebt, neem dan contact op met onze ondersteuningsafdeling via onze [website](https://mynode.nl/submitticket.php) of stuur een e-mail naar <info@mynode.nl>. Als je op zoek bent naar een snel en simpel antwoord, kun je altijd onze [Discord-server](https://discord.gg/eWtpVqu3WQ) bekijken voor ondersteuning vanuit de community.
{% endhint %}
