diff --git a/doc/lfun/AutoAttack b/doc/lfun/AutoAttack
new file mode 100644
index 0000000..2e94201
--- /dev/null
+++ b/doc/lfun/AutoAttack
@@ -0,0 +1,82 @@
+
+AutoAttack()
+************
+
+
+FUNKTION
+========
+
+   int AutoAttack(object ob)
+
+
+DEFINIERT IN
+============
+
+   /std/npc/combat
+
+
+ARGUMENTE
+=========
+
+   object ob
+      Das ggf. annzugreifende Object. (Achtung, nicht nur Livings)
+
+
+BESCHREIBUNG
+============
+
+   Diese Funktion wird aus heart_beat() heraus aufgerufen. Sie
+   bestimmt, ob ein Living automatisch angegriffen werden soll oder
+   nicht.
+
+
+RUeCKGABEWERT
+=============
+
+   1 fuer Angriff, sonst 0.
+
+
+BEMERKUNGEN
+===========
+
+   Da diese Funktion aus heart_beat() heraus aufgerufen wird, und zwar
+   einmal pro anwesendem Objekt (nicht nur fuer Livings), sollte man
+   hier moeglichst wenig Dinge tun. Verzichtet am besten ganz auf die
+   Nutzung, falls irgendwie moeglich.
+
+   Da auch NPCs uebergeben werden, kann man hier auch diese
+   automatisch angreifen lassen, was normalerweise nicht der Fall ist.
+   Dies funktioniert jedoch nur, wenn der heart_beat() eingeschaltet
+   ist, also normalerweise nicht in Abwesenheit von Spielern.
+
+
+BEISPIELE
+=========
+
+   inherit "/std/npc";
+
+   #include <npc.h>
+
+   protected void create()
+   {
+     ...
+     SetProp(P_AGGRESSIVE,1);
+     ...
+   }
+
+   // Keine Leute angreifen, die auf der Freundesliste stehen.
+   // Bei dieser Variante wir das P_AGGRESSIVE in ob nicht ausgewertet, falls
+   // ob als Freund erkannt wird.
+   int AutoAttack(object ob)
+   {
+     if(member(freunde,ob)!=-1) return 0;
+     else return ::AutoAttack(ob);
+   }
+
+
+SIEHE AUCH
+==========
+
+   heart_beat(), P_AGGRESSIVE
+
+Letzte Aenderung: 28.08.2019, Bugfix
