/
mc-node.net →
Minecraft

Hoe beheer ik een hardcore SMP-event: regels, start en finale?

Bijgewerkt op 07/10/202610 min. leestijd
In dit artikel
  1. Leg de regels vast vóór de start
  2. Laat iedereen op hetzelfde moment starten
  3. Handel doden eerlijk af
  4. Valsspelen voorkomen: de basis
  5. Prestaties met veel spelers en tijdens streams
  6. Bouw naar een finale met een krimpende grens
  7. Sluit het seizoen af en bewaar de wereld
  8. Hulp nodig?

De server staat klaar, de wereld is gegenereerd en je groep zit te wachten. Nu begint het echte werk: zorgen dat het seizoen eerlijk verloopt, soepel draait en netjes eindigt. In dit artikel vind je een regeltemplate om te kopiëren, de commando's om iedereen op exact hetzelfde moment te laten starten, een eerlijke aanpak voor doden en revives, de basis tegen valsspelen, tips voor veel spelers en streams, een finale met een krimpende wereldgrens en hoe je de wereld na afloop bewaart. Heb je de server nog niet ingericht, begin dan bij een hardcore SMP-server opzetten.

Leg de regels vast vóór de start

De techniek is het makkelijke deel. Discussies gaan bijna altijd over regels die niemand vooraf had bedacht. Zet de regels daarom in je Discord, laat iedereen akkoord geven en verander ze niet meer halverwege. Dit template kun je kopiëren; vul de stukken tussen haakjes zelf in:

  1. Eén leven. Wie sterft, is uitgeschakeld en blijft spectator tot het einde van het seizoen, tenzij de revive-regel geldt.
  2. Revives. [Geen revives / één revive per speler per seizoen tegen een afgesproken offer / automatisch terug na een vast aantal dagen.]
  3. Uitloggen bij gevaar telt als dood. Wie uitlogt midden in een gevecht, een val of in lava, wordt door de beheerder als dood behandeld.
  4. Geen cheats of exploits. Geen x-ray, geen hackclients, geen dupes. Twijfel je of iets mag, vraag het dan eerst.
  5. Toegestane client-mods. Performance-mods, shaders en Simple Voice Chat mogen. Minimaps die grotten of mobs door muren heen tonen, x-ray-texturepacks en autoclickers niet.
  6. PvP. [Toegestaan vanaf dag X / alleen in afgesproken gebieden / niet toegestaan.]
  7. Bases. [Slopen mag wel of niet; nooit met lava of TNT in andermans basis.]
  8. Spectators zwijgen. Uitgeschakelde spelers geven geen informatie door aan levende spelers, ook niet via Discord of een stream.
  9. Geen lagmachines. Grote farms en lange hopperlijnen alleen in overleg; de beheerder mag een farm uitzetten als de server eronder lijdt.
  10. Serverproblemen. Bij een aantoonbare crash of serverlag beslist de beheerder op basis van de logs over een revive. Dat besluit is definitief.
  11. Einde. Het seizoen eindigt op [datum en tijd]. Wie dan nog leeft, [wint samen / speelt de finale].

Laat iedereen op hetzelfde moment starten

Een eerlijke start betekent dat niemand al hout hakt terwijl de rest nog aan het inloggen is. De simpelste aanpak: iedereen verschijnt in een wachtruimte bij spawn in adventure mode, waarin je geen blokken kunt breken, en op het startmoment zet je iedereen tegelijk op survival.

Voorbereiden

  1. Bouw een afgesloten ruimte van glas rond de wereldspawn. Heb je in de opzetgids respawn_radius op 0 gezet, dan verschijnt iedereen precies daar.
  2. Typ in de console defaultgamemode adventure. Spelers die voor het eerst joinen, komen nu in adventure mode binnen.
  3. Controleer met whitelist list of iedereen op de lijst staat en maak nog één backup van de startwereld via het tabblad Backups.

Het startmoment

Is iedereen online, voer dan in de console achter elkaar uit:

defaultgamemode survival
clear @a
effect clear @a
time set day
weather clear
gamemode survival @a
title @a title "GO!"

Iedereen staat nu in survival en kan het glas kapotslaan. Een aftelmoment doe je met dezelfde title-regel en de tekst "3", "2" en "1". Beheerders die niet meespelen, zet je daarna terug met gamemode spectator Naam.

Wil je de groep juist over de kaart verspreiden, gebruik dan na gamemode survival @a dit commando:

spreadplayers 0 0 200 2500 false @a

Dat zet alle spelers op willekeurige plekken binnen 2500 blokken van het midden (0, 0), met minstens 200 blokken tussen elkaar. Houd de maximale afstand binnen je wereldgrens.

Komt iemand te laat? Spreek vooraf af tot wanneer instromen mag. Na defaultgamemode survival komt een laatkomer gewoon in survival binnen bij spawn.

Handel doden eerlijk af

Bij een dood gebeurt technisch alles vanzelf: de speler wordt spectator en de doodsmelding verschijnt in de chat en in de console. Wat jij als beheerder regelt, is wat er daarna gebeurt.

Controleer wat er gebeurde

  • Elke dood staat met tijdstip in de serverlog. Open via het tabblad Files het bestand logs/latest.log; oudere dagen staan als gecomprimeerde bestanden in dezelfde map.
  • Zegt iemand dat hij door lag doodging, kijk dan meteen met spark tps naar de TPS en de tick-tijden van de afgelopen minuten. Staat de TPS strak op 20, dan lag het niet aan de server. Hoe je Spark leest, staat in serverlag oplossen met de Spark-profiler.
  • Haperde of crashte de server echt, volg dan de regel die je vooraf hebt afgesproken. Zonder extra plugin kun je de spullen van een dode speler niet los terugzetten; een backup terugzetten zet de wereld voor iedereen terug.

Revives zonder discussie

  • Leg vooraf vast hoeveel revives er zijn, wat ze kosten en of een teruggehaalde speler met een lege inventaris begint.
  • Laat de beheerder een revive pas uitvoeren als de groep het offer heeft gezien, bijvoorbeeld in voice chat of op Discord.
  • Technisch is het één commando: gamemode survival Naam, eventueel gevolgd door tp naar een veilige plek. Alle varianten, ook met een revive- of deathban-plugin, staan in een dode speler terugzetten op een hardcore-server.

Als de beheerder meespeelt

Speelt de beheerder zelf mee, dan moet de groep erop kunnen vertrouwen dat hij zijn rechten niet misbruikt. Paper zet elk commando dat een speler uitvoert in logs/latest.log, en met de gamerule log_admin_commands (standaard aan; op 1.21.10 en ouder logAdminCommands) komen ook de resultaten van OP-commando's in de log. Spreek af dat elke admin-actie in een Discord-kanaal wordt gemeld, en laat het liefst iemand beheren die zelf niet meedoet.

Doodsmeldingen automatisch in Discord? Koppel DiscordSRV; dan wordt elke dood een moment voor de hele groep.

Valsspelen voorkomen: de basis

Op een server met vrienden is vertrouwen je belangrijkste anti-cheat. Met deze maatregelen maak je het valsspelers wel een stuk lastiger:

  • Whitelist en online-mode. Houd white-list, enforce-whitelist en online-mode op true. Dan komen alleen echte accounts uit je groep binnen.
  • Zo min mogelijk OP. Geef niemand OP "om even iets te fixen" zonder het daarna weer in te trekken met deop Naam.
  • Vliegen blokkeren. Laat allow-flight=false (de standaard) staan in server.properties: dan worden survival-spelers die blijven zweven automatisch gekickt.
  • Verdacht mijnwerk onderzoeken. Met CoreProtect toont /co lookup u:Naam t:2d a:-block welke blokken iemand de afgelopen twee dagen heeft gebroken. Opvallend veel diamanterts met weinig ander gegraven steen zegt meer dan een onderbuikgevoel. Zie CoreProtect installeren.
  • Anti-cheat-plugins. Overweeg je er een, test hem dan vóór het seizoen met een paar spelers. Een vals alarm dat een eerlijke speler midden in een gevecht kickt, kan in hardcore een leven kosten.

De ingebouwde anti-xray van Paper

Paper kan ertsen voor spelers verbergen totdat ze echt zichtbaar zijn, zodat x-ray-texturepacks en -mods weinig opleveren. Zet in config/paper-world-defaults.yml:

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 1

Herstart daarna de server. Engine-mode 1 vervangt verborgen ertsen door gewoon gesteente en is de lichtste instelling voor je server.

Prestaties met veel spelers en tijdens streams

Op de startavond en tijdens de finale is iedereen tegelijk online, vaak terwijl een paar spelers streamen of opnemen. Dan wil je dat de server strak op 20 TPS blijft.

  1. Pregenereer de wereld. De grootste winst, zie stap 5 van de opzetgids. Spelers die verkennen, laden dan alleen bestaande chunks.
  2. Kies je afstanden bewust. In server.properties bepaalt view-distance hoe ver spelers de wereld zien en simulation-distance hoe ver mobs, farms en redstone blijven doorlopen. Mooie opnames vragen om een flinke view-distance: begin op 10 met simulation-distance 6, en ga met view-distance naar 8 als de MSPT regelmatig boven de 40 komt.
  3. Meet in plaats van te gokken. spark tps toont TPS en MSPT; spark profiler start --timeout 300 maakt een profiel van vijf minuten terwijl de lag bezig is.
  4. Laat spectators geen chunks genereren. Zet spectators_generate_chunks op false, zoals in de opzetgids.
  5. Herstart dagelijks. Plan via schedules een herstart op een tijd dat niemand speelt, en waarschuw een paar minuten vooraf met een say-commando in hetzelfde schema.
  6. Houd farms in de hand. Veel mobs en lange hopperlijnen zijn de bekendste oorzaken van lag. Concrete instellingen staan in het Spark-artikel.

Opnemen en streamen

  • Laat het serveradres nooit in beeld zien. De whitelist houdt kijkers buiten, maar een bekend adres trekt alsnog ongewenste aandacht.
  • Zet hide-online-players=true in server.properties als je niet wilt dat buitenstaanders in de serverlijst zien wie er online is.
  • Spreek af dat levende spelers tijdens het seizoen niet naar elkaars live streams kijken, of dat streamers met vertraging uitzenden.
  • Teams die privé willen overleggen, gebruiken een groep in Simple Voice Chat.
  • Een live kaart zoals BlueMap geeft kijkers en spectators overzicht. Die toont standaard waar spelers zijn, dus deel de link met beleid.

Bouw naar een finale met een krimpende grens

Zonder finale loopt een hardcore-seizoen vaak stilletjes dood: de laatste spelers ontwijken elkaar en niemand komt nog online. Een krimpende wereldgrens dwingt ze naar elkaar toe, met alleen vanilla-commando's. Op Java 1.21.11 en nieuwer (dus ook 26.x):

worldborder set 1000 259200s

Dit laat de grens in 259200 seconden, oftewel drie echte dagen, krimpen naar 1000 blokken diameter. Let op de s achter het getal: sinds 1.21.11 rekent het commando zonder achtervoegsel in ticks, en het achtervoegsel d betekent in-gamedagen van twintig minuten, geen echte dagen. Op 1.21.10 en ouder geef je de tijd in seconden zonder achtervoegsel: worldborder set 1000 259200.

Kondig de krimp ruim van tevoren aan, zodat spelers hun spullen uit de buitenrand kunnen halen; buiten de grens krijgen ze schade. Voor de laatste avond werken een aangekondigd tijdstip en een arena rond spawn het best. Meer opties staan in een world border instellen.

Sluit het seizoen af en bewaar de wereld

  1. Kondig het einde aan. Zet datum en tijd van de finale ruim vooraf in Discord.
  2. Leg de eindstand vast. Noteer wie er nog leeft en maak screenshots van de bases, of laat BlueMap de kaart nog één keer volledig bijwerken.
  3. Zet de server uit en maak een backup via het tabblad Backups, met een naam als einde seizoen 1. Met de server uit weet je zeker dat alles is weggeschreven. Zie een backup maken.
  4. Download de backup naar je eigen computer of cloudopslag, zie je backup downloaden. Liever alleen de wereld? Download dan via SFTP de map world (op Paper 1.21.x en ouder ook world_nether en world_the_end).
  5. Vrij spel (optioneel). Veel groepen laten de wereld daarna nog een paar dagen open zonder seizoensregels, zodat ook de vroeg uitgeschakelde spelers nog kunnen bouwen. Haal iedereen uit spectator met gamemode survival @a.

De wereld later nog openen

Wil je de wereld later opnieuw laten draaien, zet de backup dan terug op een server met een backup terugzetten of upload hem met een wereld uploaden. Wil je de wereld in singleplayer openen? Op Paper 1.21.x en ouder staan de Nether en de End in de aparte mappen world_nether en world_the_end; die zitten dan niet automatisch in je singleplayerwereld.

Een nieuw seizoen beginnen

  • Begin met een verse wereld: stop de server en verwijder de wereldmappen, zie je wereld resetten. Daarmee zijn ook de inventarissen, spawnpunten en voortgang van alle spelers weg.
  • Kies een nieuwe seed via wereldseed veranderen en laat hardcore=true staan, zodat ook de nieuwe wereld als hardcore wordt aangemaakt.
  • Gebruik je CoreProtect, verwijder dan met de server uit ook plugins/CoreProtect/database.db. Anders verwijzen de oude logregels naar coördinaten in een wereld die niet meer bestaat.
  • Zet daarna opnieuw de wereldgrens, pregenereer de wereld en maak een startbackup, zoals in de opzetgids.

Op zoek naar een server voor je volgende seizoen of een groter pakket voor een grotere groep? Kijk op hardcore SMP starten, of op onze pagina voor een gewone SMP-server als je een seizoen zonder permadeath wilt.

Hulp nodig?

Vraag het eerst aan Noddy, de AI-assistent in het gamepaneel. Die helpt je bijvoorbeeld met een foutmelding in de console, een plugin die niet laadt of een commando dat niet doet wat je verwacht. Kom je er samen niet uit, open dan een ticket via onze supportpagina en zet er een link naar je Spark-rapport bij als het om lag gaat.