Chaque monstre, objet au sol, wagonnet et porte-armure est une entité, et le serveur pense à chacune à chaque tick. C'est la raison la plus courante pour laquelle un serveur survie qui tournait bien se met à saccader.
Ce que vous constatez
- Le TPS chute dans une zone de la carte et remonte quand tout le monde en part.
- La base d'un joueur précis est toujours le point de départ.
- La chute apparaît après que quelqu'un a construit une ferme.
Pourquoi cela arrive
Le coût des entités est par entité et par tick. Une ferme à monstres qui en retient un millier, ou une salle de coffres où des milliers d'objets ont été jetés au sol, multiplie ce coût jusqu'à ce que le tick manque de temps.
Que faire
- Comptez ce qui est chargé
Lancez
/spark tpspuis/spark profilerpour localiser la zone chaude, ou utilisez une extension qui compte les entités. Vous cherchez un endroit au nombre anormal. - Nettoyez les objets au sol
Les objets jetés sont aussi des entités, et les joueurs en laissent partout. Une extension qui nettoie le sol à intervalles réguliers supprime toute une catégorie de ce problème.
- Limitez les monstres par chunk
Paper et ses dérivés permettent de limiter combien de monstres apparaissent et persistent par chunk dans
spigot.ymletpaper-world-defaults.yml. Baisser le plafond empêche une seule ferme de dominer le tick. - Demandez que la ferme tue ce qu'elle récolte
Une ferme qui fonctionne tue ce qu'elle rassemble. Une ferme qui ne fait qu'accumuler est une machine à lag avec un entonnoir au bout.
Le TPS reste proche de 20 quand les joueurs se tiennent dans la zone qui le faisait chuter.
Les porte-armures et les cadres comptent aussi comme des entités, et les constructions décoratives en contiennent parfois des centaines dans une seule pièce sans que personne les considère comme des monstres.