Files
weirsoe-party-protocol/docs/F0_ANTI_CHEAT_RULES.md

2.2 KiB

F0 anti-cheat regler — Fup og Fakta

Formål

Definere en simpel, håndterbar anti-cheat baseline til MVP, så runder forbliver fair uden avanceret NLP.

Principper (F0)

  • Regler håndhæves server-side.
  • Validering sker ved submit (ikke kun i UI).
  • Ved regelbrud gives tydelig fejlbesked, og spilleren kan indsende igen inden timeout.
  • Hvis tiden udløber uden gyldigt svar, håndteres spilleren som intet svar.

Regler for løgn-svar (submit-fasen)

  1. Én løgn pr. spiller pr. spørgsmål

    • Seneste gyldige submit inden timeout er gældende.
  2. Ingen tomme eller trivielle svar

    • Afvis tom streng og kun-whitespace.
    • Afvis meget korte svar (<2 tegn efter trim).
  3. Ingen identiske løgne mellem spillere

    • Sammenlign på normaliseret form:
      • trim whitespace
      • lowercase
      • kollaps flere mellemrum til ét
    • Hvis to spillere sender samme normaliserede tekst, accepteres den først modtagne; senere submit afvises med fejl.
  4. Løgnen må ikke være identisk med korrekt svar

    • Samme normalisering som ovenfor.
    • Identisk med facit afvises.
  5. Ingen direkte spoof af korrekt svar-markør

    • Systemet ejer præsentation af korrekt svar.
    • Klientinput må ikke kunne sætte metadata/flag, der markerer et svar som facit.

Regler for gæt (guess-fasen)

  1. Man kan ikke vælge sit eget løgn-svar

    • Egne svar vises ikke som valgbare for spilleren.
    • Server validerer også dette.
  2. Én gyldig stemme pr. spiller pr. spørgsmål

    • Seneste gyldige valg inden timeout er gældende.

Drift og fairness

  • Log afviste submits med årsag (f.eks. duplicate_lie, matches_truth, too_short) til audit/debug.
  • Brug server-tid til fasegrænser; klienttid er udelukkende visning.

Out-of-scope i F0 (senere fase)

  • Semantisk duplikatdetektion (f.eks. København vs kbh).
  • Toxicity/profanity-filter.
  • Avanceret collusion-detektion på tværs af runder.
  • IP/device-fingerprinting og anti-smurf.

Acceptance criteria (F0 anti-cheat)

  • Identiske normaliserede løgne kan ikke sameksistere i samme spørgsmål.
  • Korrekt svar kan ikke indsendes som løgn.
  • Eget løgn-svar kan ikke vælges i guess-fasen.
  • Regelbrud håndhæves server-side, uanset klientadfærd.