Direktiven sind zusätzliche Angaben zum Quellcode, die nicht Bestandteil der Sprache Redcode sind. Manche Direktiven sind nur für die KoTH-Server interessant, andere für Debugger. Da diese Befehle nicht zum Redcode-Sprachumfang gehören, haben die Programmierer der Hills einfach beschlossen, dass diese Befehle als besondere Kommentare in die Quellcodes eingefügt werden sollen.
Dies sind zunächst einmal Angaben zum verwendeten Redcode-Standard, sowie Namen und Author des Kampfprogramms. Des weiteren ist eine Direktive vorgesehen, die sicherstellt, daß ein Warrior nur unter bestimmten Bedingungen (z. B. eine vorgegebene CORESIZE) ausgeführt wird. Damit ein Kampfprogramm mit allen Core-Settings läuft, muß man einfach TRUE (1) angeben:
;redcode ;name WARRIOR-Name ;author Der Programmierer ;assert 1
Um anzugeben, daß ein Kampfprogramm nur für eine bestimmte Speichergröße oder andere Umstände geschrieben wurde, kann man Ausdrücke der folgenden Art notieren:
;redcode-nop Nur auf Hills ohne P-Space
;assert CORESIZE == 8000 Das Programm läuft nur in einem Core mit 8000 Zellen ;assert CORESIZE % 10 == 0 Core muß ein Vielfaches von 10 Zellen haben ;assert (CORESIZE == 8000) && (MAXLENGTH >= 200)
Leider sind die KoTH-Server empfindlich, was die Formatierung dieser Befehle angeht. Es ist ratsam, solche Direktiven ganz am Anfang der Quelldatei zu notieren und das Tabulator-Zeichen nicht zu gebrauchen. Die ;redcode-Angabe muß die allererste Zeile sein, Text davor wird ignoriert. Die Codes zu dieser Angabe unterscheiden sich auch auf den verschiednen Servern. Für ARES spielen diese Direktiven in seiner aktuellen Version keine Rolle, er gibt aber noch zwei weitere KoTH-Direktiven vor, die jedoch von den Hills derzeit gänzlich ignoriert werden:
;version 1 ;date 23-12-2006
Es gibt noch weitere Direktiven, wie z. B. ;passwd, die von Hill zu Hill unterschiedlich oder nicht implementiert sind. Informationen dazu findet man für gewöhnlich auf der Webseite des jeweiligen Servers.
ARES kennt zwei weitere Direktiven, die für die Fehlersuche von Nutzen sind:
loop JMP target ;break Breakpoint für diesen Befehl aktivieren ptr DAT #n ;watch Diese Zelle der "Watches"-Liste hinzufügen
;hill <adresse> An einen bestimmten Hill senden
;reply <adresse> Bestimmte Absenderadresse verwenden