{
  "format": 1,
  "mod": "propwash",
  "version": "0.5.2",
  "command": "/gamerule <id> <value>",
  "category": {
    "de": "Propwash FPV",
    "en": "Propwash FPV"
  },
  "groups": [
    {
      "id": "physics",
      "title": {
        "de": "Physik",
        "en": "Physics"
      }
    },
    {
      "id": "weather",
      "title": {
        "de": "Wind und Wetter",
        "en": "Wind and weather"
      }
    },
    {
      "id": "battery",
      "title": {
        "de": "Akku",
        "en": "Battery"
      }
    },
    {
      "id": "crash",
      "title": {
        "de": "Absturz und Schaden",
        "en": "Crashes and damage"
      }
    },
    {
      "id": "video",
      "title": {
        "de": "Video und Funk",
        "en": "Video and radio"
      }
    },
    {
      "id": "gameplay",
      "title": {
        "de": "Spiel",
        "en": "Gameplay"
      }
    }
  ],
  "rules": [
    {
      "id": "propwash:gravity_scale",
      "name": "gravity_scale",
      "group": "physics",
      "type": "integer",
      "display": "percent",
      "default": 100,
      "min": 0,
      "max": 1000,
      "step": 1,
      "unit": "%",
      "changes_physics": true,
      "title": {
        "de": "Schwerkraft",
        "en": "Gravity"
      },
      "description": {
        "de": "Schwerkraft für Drohnen in Prozent der Erdschwerkraft (100 = 9,81 m/s², 0 = schwerelos). Mehr: Drohnen fallen schneller und brauchen mehr Gas zum Schweben; sie heben nur ab, solange ihr Schub/Gewicht aus der Werkbank über dem Faktor liegt. Werkbank und Übersicht rechnen immer mit der echten Erdschwerkraft.",
        "en": "Gravity for drones in percent of Earth's gravity (100 = 9.81 m/s², 0 = weightless). Higher: drones fall faster and need more throttle to hover; they only take off while their thrust-to-weight ratio from the workbench is above the factor. The workbench and overview always calculate with real Earth gravity."
      },
      "example": "/gamerule propwash:gravity_scale 101"
    },
    {
      "id": "propwash:prop_wash",
      "name": "prop_wash",
      "group": "physics",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Prop-Wash",
        "en": "Prop wash"
      },
      "description": {
        "de": "Turbulenzen, wenn eine Drohne durch ihren eigenen Abwind sinkt.",
        "en": "Turbulence when a drone descends through its own downwash."
      },
      "example": "/gamerule propwash:prop_wash false"
    },
    {
      "id": "propwash:ground_effect",
      "name": "ground_effect",
      "group": "physics",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Bodeneffekt",
        "en": "Ground effect"
      },
      "description": {
        "de": "Mehr Auftrieb dicht über dem Boden.",
        "en": "Extra lift close to the ground."
      },
      "example": "/gamerule propwash:ground_effect false"
    },
    {
      "id": "propwash:hardware_limits",
      "name": "hardware_limits",
      "group": "physics",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Hardware-Grenzen",
        "en": "Hardware limits"
      },
      "description": {
        "de": "An: Heiße Motoren drosseln die Leistung und nutzen sich ab, ein ESC brennt beim Scharfschalten durch, wenn der Akku mehr Zellen hat als erlaubt. Aus: keine Hitzedrosselung, kein Hitzeverschleiß, kein durchgebrannter ESC.",
        "en": "On: hot motors throttle back and wear out, and an ESC burns out on arming when the battery has more cells than it allows. Off: no thermal throttling, no heat wear, no burnt ESC."
      },
      "example": "/gamerule propwash:hardware_limits false"
    },
    {
      "id": "propwash:wind",
      "name": "wind",
      "group": "weather",
      "type": "integer",
      "display": "levels",
      "default": 1,
      "min": 0,
      "max": 3,
      "step": 1,
      "changes_physics": true,
      "title": {
        "de": "Wind",
        "en": "Wind"
      },
      "description": {
        "de": "Stärke von Wind und Böen. Aus: windstill. Mild: Wind je nach Wetter und Höhe, unter Dächern fast still (Standard). Windig: doppelt so stark. Sturm: dreimal so stark – bei Gewitter kommen kleine Drohnen kaum noch dagegen an.",
        "en": "Strength of wind and gusts. Off: calm. Mild: wind depends on weather and height, almost calm under a roof (default). Windy: twice as strong. Storm: three times as strong – in a thunderstorm small drones can barely fly against it."
      },
      "values": {
        "0": {
          "de": "Aus",
          "en": "Off"
        },
        "1": {
          "de": "Mild",
          "en": "Mild"
        },
        "2": {
          "de": "Windig",
          "en": "Windy"
        },
        "3": {
          "de": "Sturm",
          "en": "Storm"
        }
      },
      "example": "/gamerule propwash:wind 2"
    },
    {
      "id": "propwash:turbulence",
      "name": "turbulence",
      "group": "weather",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Turbulenz",
        "en": "Turbulence"
      },
      "description": {
        "de": "Unruhige Luft: Böen und das Rütteln im eigenen Abwind. Aus: Der Wind weht gleichmäßig.",
        "en": "Rough air: gusts and the shaking in the drone's own downwash. Off: the wind blows steadily."
      },
      "example": "/gamerule propwash:turbulence false"
    },
    {
      "id": "propwash:battery_scale",
      "name": "battery_scale",
      "group": "battery",
      "type": "integer",
      "display": "percent",
      "default": 100,
      "min": 0,
      "max": 1000,
      "step": 10,
      "unit": "%",
      "changes_physics": true,
      "title": {
        "de": "Akkulaufzeit",
        "en": "Battery life"
      },
      "description": {
        "de": "Wie lange ein Akku hält, in Prozent: 200 doppelt so lange, 50 halb so lange, 0 unendlich (der Akku entlädt sich beim Fliegen nicht). Die verbrauchten mAh im OSD zählen mit.",
        "en": "How long a battery lasts, in percent: 200 twice as long, 50 half as long, 0 infinite (the battery does not drain while flying). The mAh drawn in the OSD count along."
      },
      "values": {
        "0": {
          "de": "Unendlich",
          "en": "Infinite"
        }
      },
      "example": "/gamerule propwash:battery_scale 110"
    },
    {
      "id": "propwash:battery_sag",
      "name": "battery_sag",
      "group": "battery",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Spannungseinbruch",
        "en": "Voltage sag"
      },
      "description": {
        "de": "An: Die Akkuspannung sinkt mit der Ladung, ein fast leerer Akku bricht bei Vollgas viel stärker ein und die Drohne wird gegen Ende träger. Aus: Der Akku verhält sich bis zuletzt wie ein voller. Der Einbruch unter Last durch den Innenwiderstand bleibt in beiden Fällen.",
        "en": "On: battery voltage falls as the pack drains, a nearly empty pack sags much harder on a punch, and the drone gets weaker towards the end. Off: the pack behaves like a full one until it is empty. Load sag from the internal resistance stays either way."
      },
      "example": "/gamerule propwash:battery_sag false"
    },
    {
      "id": "propwash:crash_damage",
      "name": "crash_damage",
      "group": "crash",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "Crash-Schaden",
        "en": "Crash damage"
      },
      "description": {
        "de": "Abstürze nutzen die Bauteile ab: Props zuerst, Motoren, Kamera und Rahmen viel später. Gilt auch für Hitzeverschleiß und durchgebrannte ESCs. Aus: Teile nutzen sich nie ab.",
        "en": "Crashes wear the parts down: props first, motors, camera and frame much later. Also covers heat wear and burnt ESCs. Off: parts never wear."
      },
      "example": "/gamerule propwash:crash_damage false"
    },
    {
      "id": "propwash:crash_damage_scale",
      "name": "crash_damage_scale",
      "group": "crash",
      "type": "integer",
      "display": "percent",
      "default": 100,
      "min": 25,
      "max": 300,
      "step": 5,
      "unit": "%",
      "changes_physics": false,
      "title": {
        "de": "Schadensstärke",
        "en": "Damage strength"
      },
      "description": {
        "de": "Wie stark Abstürze die Teile abnutzen, in Prozent; 100 ist normal. Wirkt nur mit eingeschaltetem Crash-Schaden.",
        "en": "How much crashes wear the parts, in percent; 100 is normal. Only with crash damage on."
      },
      "example": "/gamerule propwash:crash_damage_scale 105"
    },
    {
      "id": "propwash:crash_tolerance",
      "name": "crash_tolerance",
      "group": "crash",
      "type": "integer",
      "display": "percent",
      "default": 100,
      "min": 50,
      "max": 400,
      "step": 5,
      "unit": "%",
      "changes_physics": true,
      "title": {
        "de": "Crash-Toleranz",
        "en": "Crash tolerance"
      },
      "description": {
        "de": "Ab welcher Aufprallgeschwindigkeit ein Aufprall als Absturz zählt, in Prozent; 100 ist normal, höher ist nachsichtiger.",
        "en": "The impact speed from which a hit counts as a crash, in percent; 100 is normal, higher is more forgiving."
      },
      "example": "/gamerule propwash:crash_tolerance 105"
    },
    {
      "id": "propwash:crash_disarm",
      "name": "crash_disarm",
      "group": "crash",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Nach Absturz abschalten",
        "en": "Disarm on crash"
      },
      "description": {
        "de": "An: Nach einem harten Aufprall schaltet der Flugcontroller die Motoren ab, wie die Absturzerkennung einer echten Drohne. Aus: Die Drohne bleibt nach Abstürzen scharf – weiterfliegen oder sie mit dem Turtle-Modus wieder umdrehen, wenn sie kopfüber liegt.",
        "en": "On: after a hard impact the flight controller shuts the motors off, like crash detection on a real quad. Off: the drone stays armed after crashes – fly on, or flip it back over with turtle mode while it lies upside down."
      },
      "example": "/gamerule propwash:crash_disarm false"
    },
    {
      "id": "propwash:prop_strikes",
      "name": "prop_strikes",
      "group": "crash",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": true,
      "title": {
        "de": "Propellertreffer",
        "en": "Prop strikes"
      },
      "description": {
        "de": "Streift ein Propeller ein Hindernis, bremst der Motor ab und die Drohne gerät ins Taumeln.",
        "en": "A prop clipping an obstacle slows its motor and sends the drone tumbling."
      },
      "example": "/gamerule propwash:prop_strikes false"
    },
    {
      "id": "propwash:infinite_range_analog",
      "name": "infinite_range_analog",
      "group": "video",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Unendliche Reichweite analog",
        "en": "Infinite range (analog)"
      },
      "description": {
        "de": "Drohnen mit analogem Video: Bild und Funk reißen nie ab – weder durch Entfernung noch durch Hindernisse. Die Entfernungsgrenze des Servers gilt weiter.",
        "en": "Drones with analog video: picture and radio link never drop – neither with distance nor behind obstacles. The server's distance limit still applies."
      },
      "example": "/gamerule propwash:infinite_range_analog true"
    },
    {
      "id": "propwash:infinite_range_digital",
      "name": "infinite_range_digital",
      "group": "video",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Unendliche Reichweite digital",
        "en": "Infinite range (digital)"
      },
      "description": {
        "de": "Drohnen mit digitalem Video: Bild und Funk reißen nie ab – weder durch Entfernung noch durch Hindernisse. Die Entfernungsgrenze des Servers gilt weiter.",
        "en": "Drones with digital video: picture and radio link never drop – neither with distance nor behind obstacles. The server's distance limit still applies."
      },
      "example": "/gamerule propwash:infinite_range_digital true"
    },
    {
      "id": "propwash:max_video_channels",
      "name": "max_video_channels",
      "group": "video",
      "type": "integer",
      "display": "number",
      "default": 0,
      "min": 0,
      "max": 64,
      "step": 1,
      "changes_physics": false,
      "title": {
        "de": "Videokanäle",
        "en": "Video channels"
      },
      "description": {
        "de": "Wie viele Videosender gleichzeitig funken dürfen – wie die Kanaltafel am Rennplatz. Sind alle Kanäle belegt, startet keine weitere Drohne, bis ein Pilot landet. Wer schon fliegt, fliegt weiter. 0 = unbegrenzt.",
        "en": "How many video transmitters may be on air at the same time – like the frequency board at a race. When every channel is taken, no further drone can take off until a pilot lands. Pilots already in the air keep flying. 0 = unlimited."
      },
      "values": {
        "0": {
          "de": "Unbegrenzt",
          "en": "Unlimited"
        }
      },
      "example": "/gamerule propwash:max_video_channels 1"
    },
    {
      "id": "propwash:signal_repeaters",
      "name": "signal_repeaters",
      "group": "video",
      "type": "integer",
      "display": "number",
      "default": 4,
      "min": 0,
      "max": 4,
      "step": 1,
      "changes_physics": false,
      "title": {
        "de": "Signal-Repeater je Verbindung",
        "en": "Signal repeaters per link"
      },
      "description": {
        "de": "Wie viele Signal-Repeater Bild und Funk zwischen Pilot und Drohne hintereinander weiterreichen dürfen (höchstens 4). Jeder Repeater reicht 128 Blöcke weit, das Signal läuft durch Wände und Decken wie sonst auch; Runden über Repeater zählen für Bestenlisten. 0 = Repeater aus.",
        "en": "How many signal repeaters may pass video and control on between pilot and drone in a row (at most 4). Each repeater reaches 128 blocks, and the signal goes through walls and ceilings just as it otherwise would; laps flown over repeaters count for leaderboards. 0 = repeaters off."
      },
      "values": {
        "0": {
          "de": "Aus",
          "en": "Off"
        }
      },
      "example": "/gamerule propwash:signal_repeaters 0"
    },
    {
      "id": "propwash:drone_hits_entities",
      "name": "drone_hits_entities",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "Drohnen treffen Lebewesen",
        "en": "Drones hit mobs and players"
      },
      "description": {
        "de": "Fliegende Drohnen prallen an Tieren, Monstern und Spielern ab und verletzen sie je nach Wucht (Masse × Tempo, höchstens 5 Herzen). Spieler nur mit PvP. Aus: Drohnen fliegen durch Lebewesen hindurch.",
        "en": "Flying drones bounce off animals, monsters and players and hurt them by the force of the impact (mass × speed, at most 5 hearts). Players only with PvP. Off: drones fly through living things."
      },
      "example": "/gamerule propwash:drone_hits_entities false"
    },
    {
      "id": "propwash:drones_break_blocks",
      "name": "drones_break_blocks",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Drohnen zerbrechen Blöcke",
        "en": "Drones break blocks"
      },
      "description": {
        "de": "Schnelle Drohnen zerbrechen Glas, Glasscheiben und verzierte Töpfe (Block-Tag propwash:drone_breakable), wenn die Wucht des Aufpralls (Masse × Tempo²) reicht, und fliegen langsamer weiter. Ein Whoop prallt ab, ein 5-Zoll durchschlägt eine Scheibe ab etwa 42 km/h. Zählt wie Abbauen durch den Piloten: Spawn-Schutz, Abenteuermodus und Schutz-Mods gelten, Glas lässt nichts fallen. Aus: Blöcke bleiben immer ganz.",
        "en": "Fast drones smash glass, glass panes and decorated pots (block tag propwash:drone_breakable) when the impact is strong enough (mass × speed²) and fly on slower. A whoop bounces off, a 5″ goes through a pane from about 42 km/h. Counts as the pilot breaking the block: spawn protection, adventure mode and protection mods apply, glass drops nothing. Off: blocks always stay intact."
      },
      "example": "/gamerule propwash:drones_break_blocks true"
    },
    {
      "id": "propwash:break_impact_scale",
      "name": "break_impact_scale",
      "group": "gameplay",
      "type": "integer",
      "display": "percent",
      "default": 100,
      "min": 0,
      "max": 300,
      "step": 10,
      "unit": "%",
      "changes_physics": false,
      "title": {
        "de": "Wucht beim Durchbruch",
        "en": "Break-through impact"
      },
      "description": {
        "de": "Wie deutlich eine Drohne spürt, dass sie Glas durchschlägt, in Prozent: Tempoverlust durch mitgerissene Scherben, ein Stoß, der sie aus der Lage kippt (stärker, wenn sie schief oder nur mit einer Seite trifft), und Scherben in den vorderen Props. 100 ist realistisch, 0 lässt nur die Bruchenergie übrig. Wirkt nur mit „Drohnen zerbrechen Blöcke“; ob ein Block bricht und wann die Drohne abstürzt, bleibt gleich.",
        "en": "How clearly a drone feels smashing through glass, in percent: speed lost to the shards it drags along, a kick that knocks it off its attitude (stronger when it hits tilted or with one side only) and shards in the front props. 100 is realistic, 0 leaves only the fracture energy. Only applies with \"Drones break blocks\"; whether a block breaks and when the drone crashes stays the same."
      },
      "values": {
        "0": {
          "de": "Kein Stoß",
          "en": "No kick"
        }
      },
      "example": "/gamerule propwash:break_impact_scale 110"
    },
    {
      "id": "propwash:allow_3d_mode",
      "name": "allow_3d_mode",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "3D-Modus erlaubt",
        "en": "3D mode allowed"
      },
      "description": {
        "de": "Piloten dürfen den 3D-Modus benutzen (umkehrbare Motoren, Gasmitte = Nullschub), wenn sie ihn für sich freigeschaltet haben. Aus: Propwash lässt ihn niemanden einschalten, etwa auf Rennservern, auf denen niemand mit Umkehrschub bremsen soll. Wie das Flugmodell setzt das Spiel jedes Piloten die Regel um.",
        "en": "Pilots may use 3D mode (reversible motors, throttle center = zero thrust) once they have unlocked it for themselves. Off: Propwash doesn't let anyone switch it on, for example on race servers where nobody should brake with reverse thrust. Like the flight model, the rule is applied by each pilot's game."
      },
      "example": "/gamerule propwash:allow_3d_mode false"
    },
    {
      "id": "propwash:part_compatibility",
      "name": "part_compatibility",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "Teile müssen zusammenpassen",
        "en": "Parts must fit"
      },
      "description": {
        "de": "An: Werkbank, Import und Wartung bauen nur Drohnen aus Teilen, die auch in echt zusammenpassen (Halterungen, Propellergröße, Akku zum Rahmen, Zubehör-Halterung). Aus: Jedes Teil passt zu jedem. Die Hinweise bleiben sichtbar, die Drohne fliegt mit den echten Daten ihrer Teile und zählt nicht für Bestenlisten. Überspannung regelt weiter „Hardware-Grenzen“.",
        "en": "On: the workbench, imports and field service only build drones from parts that would fit together in reality (mounts, prop size, battery for the frame, accessory mounts). Off: every part fits every other. The notes stay visible, the drone flies with the real data of its parts and doesn't count for leaderboards. Overvoltage is still governed by “Hardware limits”."
      },
      "example": "/gamerule propwash:part_compatibility false"
    },
    {
      "id": "propwash:autonomous_rescue",
      "name": "autonomous_rescue",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "GPS Rescue ohne Pilot",
        "en": "GPS rescue without pilot"
      },
      "description": {
        "de": "Läuft der Heimflug (GPS Rescue) und der Pilot steigt aus – Funke weggesteckt, Flug beendet oder Spiel verlassen –, fliegt die Drohne allein weiter und landet am Homepoint. Der Server hält dafür nur die Chunks um die Drohne geladen und fliegt nie in unerforschtes Gebiet. Aus: Ohne Pilot gehen die Motoren aus, wie bisher.",
        "en": "If the return to home (GPS rescue) is running when the pilot leaves – remote put away, flight stopped or game left – the drone keeps flying on its own and lands at the home point. The server only keeps the chunks around the drone loaded and never flies into unexplored terrain. Off: without a pilot the motors stop, as before."
      },
      "example": "/gamerule propwash:autonomous_rescue false"
    },
    {
      "id": "propwash:freeform_gate_max_size",
      "name": "freeform_gate_max_size",
      "group": "gameplay",
      "type": "integer",
      "display": "number",
      "default": 20,
      "min": 1,
      "max": 64,
      "step": 1,
      "changes_physics": false,
      "title": {
        "de": "Freiform-Gate: größte Öffnung",
        "en": "Freeform gate: largest opening"
      },
      "description": {
        "de": "Wie groß die Öffnung eines Freiform-Gates höchstens sein darf, in Blöcken je Richtung: 20 = höchstens 20 × 20 Blöcke. Gilt beim Setzen und beim Neu-Abtasten; gesetzte Gates bleiben, wie sie sind. Größere Werte erlauben weite Hallen und Höhlen, kleinere halten Kurse eng.",
        "en": "How large the opening of a freeform gate may be, in blocks per direction: 20 = at most 20 × 20 blocks. Applies when placing and rescanning; placed gates stay as they are. Larger values allow wide halls and caves, smaller ones keep courses tight."
      },
      "example": "/gamerule propwash:freeform_gate_max_size 21"
    },
    {
      "id": "propwash:drones_generate_chunks",
      "name": "drones_generate_chunks",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "Drohnen erzeugen neues Gelände",
        "en": "Drones generate new terrain"
      },
      "description": {
        "de": "An: Fliegt eine Drohne über den Rand der bisher erzeugten Welt hinaus, entsteht dort neues Gelände – wie wenn ein Spieler hinläuft (wie bisher). Aus: Drohnen laden nur Gelände, das es schon gibt. Am Rand bremst die Drohne sanft ab und bleibt kurz davor stehen, das OSD zeigt „WELTRAND“, das FPV-Bild bleibt ohne Löcher. Spart Rechenzeit auf dem Server; GPS Rescue ohne Pilot fliegt ohnehin nie in unerforschtes Gebiet. Die Server-Config (server.json) kann das Erzeugen zusätzlich auf Rechtestufen beschränken.",
        "en": "On: when a drone flies past the edge of the world generated so far, new terrain is created there – as if a player walked there (as before). Off: drones only load terrain that already exists. At the edge the drone brakes gently and stops just short of it, the OSD shows “WORLD EDGE” and the FPV view has no holes. Saves server time; GPS rescue without pilot never flies into unexplored terrain anyway. The server config (server.json) can additionally limit generation to permission levels."
      },
      "example": "/gamerule propwash:drones_generate_chunks false"
    },
    {
      "id": "propwash:save_assisted_laps",
      "name": "save_assisted_laps",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Runden mit Flughilfe speichern",
        "en": "Save assisted laps"
      },
      "description": {
        "de": "An: Runden und Rennen mit Flughilfe – Höhe oder Position halten, GPS Rescue, veränderte Welt-Regeln, Kreativ-Drohne, Teile, die nur ohne „Teile müssen zusammenpassen“ gehen, oder eine Brillen-Latenz unter der des Videosenders – werden trotzdem gespeichert: Bestenliste, persönliche Bestzeit, Geist und Rennanzeige zeigen sie mit dem Abzeichen „Flughilfe“ und dem Grund. In der Bestenliste stehen sie in einem eigenen Abschnitt unter den Zeiten ohne Flughilfe und werden nie Rekord. Aus: Runden mit Flughilfe zählen nicht (wie bisher).",
        "en": "On: laps and races flown with a flight aid – altitude or position hold, GPS rescue, changed world rules, creative drone, parts that only fit with “Parts must fit” off, or a goggles latency below the video transmitter's – are saved anyway: the leaderboard, personal best, ghost and race display show them with the badge “Assisted” and the reason. In the leaderboard they get their own section below the unassisted times and never become a record. Off: assisted laps don't count (as before)."
      },
      "example": "/gamerule propwash:save_assisted_laps true"
    },
    {
      "id": "propwash:drone_trails",
      "name": "drone_trails",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Drohnen-Trails",
        "en": "Drone trails"
      },
      "description": {
        "de": "An: Hinter jeder fliegenden Drohne zieht eine dünne, verblassende Spur in der Farbe der Drohne (LED-Streifen oder Lackierung) – so sieht man andere Piloten auch im FPV-Bild. Gelandete und entschärfte Drohnen ziehen keine Spur. Jeder Spieler kann die Trails für sich im Tab „Darstellung“ ausschalten. Ändert keine Physik.",
        "en": "On: every flying drone draws a thin, fading trail in its own color (LED strip or paint) – so you can see other pilots even in the FPV view. Landed and disarmed drones draw no trail. Every player can turn the trails off for themselves in the Display tab. Does not change the physics."
      },
      "example": "/gamerule propwash:drone_trails true"
    },
    {
      "id": "propwash:invulnerable_pilots",
      "name": "invulnerable_pilots",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Unverwundbare Piloten",
        "en": "Invulnerable pilots"
      },
      "description": {
        "de": "An: Wer gerade eine Drohne steuert, nimmt keinen Schaden – für Events, bei denen Piloten geschützt am Rand stehen sollen. Aus (Standard): Der Körper des Piloten bleibt ein normaler Spieler; Schwerkraft, Mobs, andere Spieler, Stürze, Lava, Ertrinken und Hunger wirken wie sonst. Die Leere und /kill wirken immer.",
        "en": "On: whoever is flying a drone takes no damage – for events where pilots should stand protected at the side. Off (default): the pilot's body stays a normal player; gravity, mobs, other players, falls, lava, drowning and hunger work as usual. The void and /kill always apply."
      },
      "example": "/gamerule propwash:invulnerable_pilots true"
    },
    {
      "id": "propwash:waterproof_drones",
      "name": "waterproof_drones",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": false,
      "changes_physics": false,
      "title": {
        "de": "Drohnen sind wasserdicht",
        "en": "Drones are waterproof"
      },
      "description": {
        "de": "An: Jede Drohne verhält sich, als hätte sie eine wasserdichte Beschichtung – sie lässt sich im Wasser scharf schalten, fliegen und entschärfen, statt einen Kurzschluss zu bekommen. Aus (Standard): Nur mit Wasserschutz-Spray beschichtete Drohnen überstehen Wasser. Lava beendet jeden Flug.",
        "en": "On: every drone behaves as if it had a waterproof coating – it can arm, fly and disarm in water instead of shorting out. Off (default): only drones sprayed with waterproof coating survive water. Lava always ends a flight."
      },
      "example": "/gamerule propwash:waterproof_drones true"
    },
    {
      "id": "propwash:allow_reset",
      "name": "allow_reset",
      "group": "gameplay",
      "type": "boolean",
      "display": "toggle",
      "default": true,
      "changes_physics": false,
      "title": {
        "de": "Reset erlauben",
        "en": "Allow reset"
      },
      "description": {
        "de": "An (Standard): Piloten setzen ihre Drohne mit dem Reset-Schalter oder der Taste (Rücktaste) auf ihren Homepoint zurück – gerade, entschärft und im Stillstand. Ein laufendes Rennen wird abgebrochen, Fracht fällt dort ab, wo die Drohne war. Aus: Reset wird mit einer Meldung abgelehnt, Piloten fliegen oder laufen zurück.",
        "en": "On (default): pilots put their drone back on its home point with the Reset switch or key (Backspace) – level, disarmed and standing still. A running race is canceled and cargo drops where the drone was. Off: Reset is refused with a message, pilots fly or walk back."
      },
      "example": "/gamerule propwash:allow_reset false"
    }
  ],
  "presets": [
    {
      "id": "realistic",
      "title": {
        "de": "Realistisch",
        "en": "Realistic"
      },
      "description": {
        "de": "Alle Regeln auf Standard – so fliegt Propwash ab Werk. Flüge zählen für Bestenlisten.",
        "en": "Every rule at its default – Propwash as it comes. Flights count for leaderboards."
      },
      "changes_physics": false,
      "values": {
        "gravity_scale": 100,
        "prop_wash": true,
        "ground_effect": true,
        "hardware_limits": true,
        "wind": 1,
        "turbulence": true,
        "battery_scale": 100,
        "battery_sag": true,
        "crash_damage": true,
        "crash_damage_scale": 100,
        "crash_tolerance": 100,
        "crash_disarm": true,
        "prop_strikes": true,
        "infinite_range_analog": false,
        "infinite_range_digital": false,
        "max_video_channels": 0,
        "signal_repeaters": 4,
        "drone_hits_entities": true,
        "drones_break_blocks": false,
        "break_impact_scale": 100,
        "allow_3d_mode": true,
        "part_compatibility": true,
        "autonomous_rescue": true,
        "freeform_gate_max_size": 20,
        "drones_generate_chunks": true,
        "save_assisted_laps": false,
        "drone_trails": false,
        "invulnerable_pilots": false,
        "waterproof_drones": false,
        "allow_reset": true
      },
      "differs_from_default": [],
      "command": "/propwash rules preset realistic"
    },
    {
      "id": "training",
      "title": {
        "de": "Training",
        "en": "Training"
      },
      "description": {
        "de": "Üben ohne Folgen: kein Verschleiß und keine Propellertreffer, der Akku wird nie leer und bricht nicht ein, Motoren überhitzen nicht – die Drohne behält die volle Leistung. Wind und Luft bleiben wie bei Realistisch. Rundenzeiten werden mit dem Abzeichen „Flughilfe“ gespeichert.",
        "en": "Practice without consequences: no wear and no prop strikes, the battery never runs empty or sags and motors never overheat – the drone keeps its full power. Wind and air stay as in Realistic. Lap times are saved with the badge “Assisted”."
      },
      "changes_physics": true,
      "values": {
        "gravity_scale": 100,
        "prop_wash": true,
        "ground_effect": true,
        "hardware_limits": false,
        "wind": 1,
        "turbulence": true,
        "battery_scale": 0,
        "battery_sag": false,
        "crash_damage": false,
        "crash_damage_scale": 100,
        "crash_tolerance": 100,
        "crash_disarm": true,
        "prop_strikes": false,
        "infinite_range_analog": false,
        "infinite_range_digital": false,
        "max_video_channels": 0,
        "signal_repeaters": 4,
        "drone_hits_entities": true,
        "drones_break_blocks": false,
        "break_impact_scale": 100,
        "allow_3d_mode": true,
        "part_compatibility": true,
        "autonomous_rescue": true,
        "freeform_gate_max_size": 20,
        "drones_generate_chunks": true,
        "save_assisted_laps": true,
        "drone_trails": true,
        "invulnerable_pilots": false,
        "waterproof_drones": false,
        "allow_reset": true
      },
      "differs_from_default": [
        "hardware_limits",
        "battery_scale",
        "battery_sag",
        "crash_damage",
        "prop_strikes",
        "save_assisted_laps",
        "drone_trails"
      ],
      "command": "/propwash rules preset training"
    },
    {
      "id": "arcade",
      "title": {
        "de": "Arcade",
        "en": "Arcade"
      },
      "description": {
        "de": "Wie Training, dazu volle Freiheit: Jedes Teil passt zu jedem, die Luft ist ruhig, harte Aufschläge steckt die Drohne weg und fliegt weiter, und Wasser schadet ihr nicht.",
        "en": "Like Training, plus full freedom: any part fits any other, the air is calm, the drone shrugs off hard hits and keeps flying, and water does not hurt it."
      },
      "changes_physics": true,
      "values": {
        "gravity_scale": 100,
        "prop_wash": false,
        "ground_effect": true,
        "hardware_limits": false,
        "wind": 0,
        "turbulence": false,
        "battery_scale": 0,
        "battery_sag": false,
        "crash_damage": false,
        "crash_damage_scale": 100,
        "crash_tolerance": 300,
        "crash_disarm": false,
        "prop_strikes": false,
        "infinite_range_analog": true,
        "infinite_range_digital": true,
        "max_video_channels": 0,
        "signal_repeaters": 4,
        "drone_hits_entities": false,
        "drones_break_blocks": false,
        "break_impact_scale": 100,
        "allow_3d_mode": true,
        "part_compatibility": false,
        "autonomous_rescue": true,
        "freeform_gate_max_size": 20,
        "drones_generate_chunks": true,
        "save_assisted_laps": true,
        "drone_trails": true,
        "invulnerable_pilots": false,
        "waterproof_drones": true,
        "allow_reset": true
      },
      "differs_from_default": [
        "prop_wash",
        "hardware_limits",
        "wind",
        "turbulence",
        "battery_scale",
        "battery_sag",
        "crash_damage",
        "crash_tolerance",
        "crash_disarm",
        "prop_strikes",
        "infinite_range_analog",
        "infinite_range_digital",
        "drone_hits_entities",
        "part_compatibility",
        "save_assisted_laps",
        "drone_trails",
        "waterproof_drones"
      ],
      "command": "/propwash rules preset arcade"
    }
  ]
}
