Started work on a bit of a server framework, and let's just say its more difficult than I anticipated, so i'll need to plan it more but in the meantime did a bit more work on the SP version.
Figure I'll share the rules this particular version uses, given that there are different variations out there:
1) All general rules apply: color on color, or value on value.
2) You can stack Draw 2's and Draw 4's to compound the effect and pass the draw off to the next player.
3) However, for the Wild Draw 4, it is only a "Legal" play if you have no other card to play, even when being used to stack with an existing Draw 4 on the stack.
3b) If you suspect an illegally-played Draw 4, you can challenge it. If you succeed, the one who played it draws. If you fail, you draw the existing stack + 2.
3c) If a stack of Draw 4's arrives at you and you challenge successfully, you don't draw for the last Draw 4 played, but you still draw for the others. (example: Player 1 plays Draw 4, Player 2 stacks a Draw 4, you challenge and succeed. Player 2 draws 4, You draw 4.
3d) If you challenge a Draw 4, you cannot stack yourself.
Here's the beta for testing. Report back any bugs. Once I verify that this is bug-free (mostly) then I'll upload it to the Cemetech archives.