We never quite figured out exactly what a "Demon" was supposed to be. After some debate, we decided that it was intended as a way to combine multiple functions inside the same program and halve the total Difficulty.

But we always interpreted the rules a bit differently, and in our games, a Demon works like this:

A Demon is a sort of program repository, a mobile MU storage area, if you will. You can plug any other program into a Demon, and the Demon will compress and carry it. Stun, Codecracker, Killers of all varieties, you name it. The Demon can carry a number of programs equal to its STR, and every carried program drops the Demon's STR by 1 point. Thus, an Afreet can effectively carry 2 programs. While there's space for another program, that third program "fills" it and drops its STR to 0, so it's best to stop with 2 programs.

If the carried program's STR is lower than that of the Demon, the Demon will boost the carried program's STR to match the Demon's own. If the carried program's STR is higher than that of the Demon, it's capped off at the Demon's own STR level. A Balrog (STR 5) carrying a Stun (STR 3) would execute the Stun as if it were STR 5. Of course, the Demon takes up 2 more MU than the Stun alone would, and it's a bit slower (see below).

This changes the published Demons slightly, as follows:

Name

STR

Programs Carried Effectively

MU

Imp

2

1

3

Afreet

3

3

4

Succubus

4

3

4

Balrog

5

4

5

The Demon's MU does not change, regardless of the MU of the programs inside it. Since a Demon is effectively compressing the programs (like Packer does), the Demon can only carry up to twice its own MU. That is, a Balrog (MU 5) can only carry up to 10 MU of programs.

Lastly, there is a speed penalty associated with all Demons, equal to -1 for each program the Demon has inside of it. The Balrog listed above would be at -1 when attempting to execute its Stun program.

It may seem as though we've severely limited new Demons with this rule: after all, once you have one Demon for each STR point (Imp at 2, Aftreet at 3, Succubus at 4, Balrog at 5, and 5 unnamed programs at each point up to 10), what's the point of writing more Demons?

Well, Demons can have various subroutines written into them. This makes them just like any other multi-function program, like Omnivore (CB3 78). A Demon with an Intrusion function could be used both as a run-of-the-mill Compiler, and it could also be used as an Intrusion program in its own right.