Play history links are now provided for users and games. Assuming you have not opted out
from persistent play history logging and still have your persistent ID cookie, you can view
every game you've played on the device you are connecting from since the beginning of March.
Regardless of opting out or not, you can view every game you've played in the current session,
or every round in a game, with the links provided when you log in or join a game.

5 April 2018:

Bugfixes from last week's release (most notably, no more "undefined" before your name if you
reload the page).

Minor updates to the chat filter settings to make it less strict, and an additional chat
filter (you cannot use the same word too many times in the same message).

Back-end support for other features which will be enabled soon.

27 March 2018:

You may now provide a password-like identification code when connecting to positively
identify yourself and make it difficult for someone to impersonate you. Details are on
the GitHub
wiki.

This is optional, and if you choose to not do so, everything will work the same as
it always has.

Do not use a password you use on any other site.

The value you enter in the identification code box will be combined with your username
and a server secret and converted into an 11 character code.

Users that have an identification code will have a + in front of their name in chat.
Hover your mouse over their message to see their 11 character code.

You may also use the /whois command in the chat
to view information about a user, including their 11 character code.

Images on CardCast cards is now supported in a safe manner. Cards will need updated to work
with this format. Information on how to use it is on the
GitHub
wiki.

Automatic chat moderation has been added. This is fairly crude, and limits
the following behavior:

(Global only, if enabled) Messages may not contain large amounts of non-Latin characters
(emoji spam, etc.).

(Global only, if enabled) CAPS LOCK IS NOT ALLOWED EITHER.

(Global only, if enabled) Once your message is a certain length, you have to actually use
multiple words.

Global and game chats now have different messages-per-unit-time settings and counters.

You may not repeat the same message multiple times in a row.

Certain characters and words will cause a message to be silently dropped (that is, instead
of returning an error message to the person who typed it like all of the previous things will,
the server will just ignore the message altogether so that user does not know their message
was ignored). There are currently two things on this list, and no, I'm not telling you what
they are, and no, they're not actually in Git either.

1 March 2018:

Added reconnection to the card database server after it restarts. This really should have
been done years ago... This is what caused all of the errors while trying to start a game with
locally-stored decks.

The "view cards" page has been re-enabled.

Full games sort to the bottom of the game list.

Added more metrics logging. Sounds boring, but it's important for the long-term viability
of these servers.

All official CAH cards through Q3 2017 have been added, and deck names and contents have
been shuffled accordingly. Any cards not currently in any official decks are now removed.
The PAX panel sets have also been removed.

13 August 2017:

Global chat is disabled. Far too spammy, far too shitty. Go shitpost
somewhere else, or at least take it to a game chat.

Added metrics logging. This will allow analysis over what cards are played often, and
regional trends. See the next bullet point for details. Your username and chat will
never be stored permanently.

The game list automatically updates once per minute now, instead of several times per
second. You can still click the Refresh Games button in the top left corner at any time.

Chat flood protection has been made more strict.

Other back-end changes to attempt to get the AWS bill in control.

All locally-stored custom card sets have been removed. You must use
Cardcast for custom card sets now.

The 5th and 6th Expansions, PAX Prime 2014 Panel, 10 Days or Whatever of Kwanzaa,
and Science packs have all been added.

21 February 2015:

Servers now run in Amazon Web Services. This is going to cost me more, but at least it
should be more stable and not take down my other stuff when it does go down...

I am still tweaking server settings in AWS. It likely is going to be unstable for another
week or two while I fine-tune cost and performance.

Card set filters are fixed.

/removecardcast is fixed.

Connect and disconnect notices are disabled server-wide. This was a major source of
bandwidth and processing time.

You can start a game without using any local card sets.You must have at
least 50 black cards and (20 times player limit) white cards to be able to start a game.

Several other back-end performance and code maintainability improvements.

Custom card sets will be removed from local storage in the near future.You
will have to use Cardcast to use custom card sets. If a card set you want is not already in
Cardcast, you can attempt to extract it from
the last
version of the database dump which contains them and add it to Cardcast yourself; I will be
unable to provide help in doing so.

At roughly the same time, all officially released Cards Against Humanity sets which are not
already in the system will be added as local decks.

Remaining known issues and high priority features:

Leaving a game as a spectator doesn't work right.

Game owners still can't kick players from their game.

Actually saw a deadlock the other night, so that needs fixed.

11 August 2014:

Loading decks from Cardcast is now supported in a
preview release. See the
wiki for instructions. A better UI will hopefully happen before too long, but you can see
how long it took to get any sort of custom deck loading implemented...

Please go make your own card sets there! It's a really cool site.

If you submitted a card set which is currently hosted locally on PYX, please add it
to Cardcast and let me know when you have done so, so that I may remove it from the local list
to de-clutter the page. I will list Cardcast codes for previously-hosted decks for a
period of time so that users may continue to find them.

7 April 2014:

Exploits avoiding the maximum limits for game options have been fixed. No more games with
9001 blank white cards.

23 February 2014:

Some minor bugfixes, including one which should prevent the entire server from dying if a
single background task gets stuck.

The judge should no longer have to re-judge when a player leaves during judging.

The playing field should no longer visibly blank out when a player joins or leaves.

The game host has a "stop game" button. If this is abused, it may be changed to only work
in the first few rounds of a game.

You can filter which games to display based on what card sets they are using. Under the
Game List Filters tab, you can assign each card set to one of three statuses: Banned, Neutral,
and Required. If a game uses any of your banned sets, it will not be shown. If
a game does not use all of your required sets, it also will not be shown.

22 December 2013:

What I have received so far of the Holiday Bullshit has been added. I will continue to add
cards to this as I receive them.

Several custom card sets have been added.

No further custom card sets will be accepted. Minor updates to existing
ones may still be submitted, but I do not guarantee I will get to it in a timely manner. It is
taking too much of my time to administer the custom cards sets; I'd rather focus the time on
implementing a way for players to manage card sets in the game by themselves.

Fixed a memory leak introduced in the last update that causes the server to massively slow
down after a few days of running.

1 December 2013 Mega-Update:

There are a lot of new things this time around. You can view the
GitHub commit history
for full details, but here's a summary:

Spectator mode. The host can pick how many spectators the shall allow. Spectators do not
participate in the game at all, even as Card Czar.

Fill-in-the-blank White Cards. The host can pick how many of these to shuffle into the
deck, and when they are played, you are prompted for the text to put on the card.

/me chat command for emotes.

Option to disable bouncy cards. We've all had a problem selecting the last card on the
line; well now, you can uncheck a box up at the top right and they'll stop bouncing around.

/sync chat command to re-sync the current game state without reloading the page. It should
be harder to de-sync the client now, as well.

Users are removed from the server if they have not done anything for an hour.

Several more bug fixes and back-end improvements.

The Fourth Expansion is up.

As you have probably noticed in getting here, there is now a meta-lobby which allows you to
choose between multiple servers. They should be identical other than the people playing on them:
they are backed by the same card database.

5 September 2013:

The Box Expansion and PAX Prime 2013 cards have been added. If you have
any spares of these card numbers and are willing to part with them, it would be awesome if you'd
email me and send them to me,
as I was unable to acquire them at PAX: 29, 30, 33, 34, 35, 36, 37

7 August 2013:

The game list will not automatically update all the time now.
You will need to start using the Refresh Games button. The game list will automatically update
for new games, removed games, when games become passworded, or when you leave a game.

A bunch of accessibility things for screen readers. If you are not using a
screen reader, you don't care about any of this. If you are, tab to the next element for more
information.

I have spent a couple hours attempting to make this usable with screen readers. I have probably
missed a few things, but I believe the game is actually playable now. You should be able to get
to all of the interactive elements using only tab and shift tab, and all toggles should respond
to the space bar. To select a card, tab to it and press the space bar. You will have to get to
the Confirm Selection button to actually play it. I may eventually remove this requirement if
the card is selected with the space bar. The list of games leaves some information that is
visible out in an attempt to prevent each game from requiring a minute to read. You can still
access that information by navigating through the elements directly. I attempted to make the
notifications not be too chatty, but I may have failed. Please let me know if there are any
major issues.

14 April 2013:

Fixed the game list sometimes showing the same game over and over, and not loading the list
of card sets to display in game options.

Made game list cards bigger, and fixed HTML entities displayed in them.

Fixed even-numbered rows in the scoreboard not using the correct background color when
displaying that the person won.

13 April 2013:

Added client-side option to hide game password in the game options area. This is useful for
streaming the game and not letting people see the password. ;)

Added option to "not use" the idle timer. In reality, it just sets it to about 25 days.

Internal cleanups.

30 March 2013:

Increased the game limit to 200.

Tweaking other settings to attempt to increase stability with more than 550 users.

Fixed bug where inactive card sets were showing. That was just something stupid on my end.

27 March 2013:

The Third Expansion and the PAX East packs, as well as a few more custom cards.

Card sets have a description when you hover over them in the options panel.

Administrators can send messages that show up in every game chat, so I can do announcements
that everybody will see.

Increased the game limit to 125.

25 February 2013:

Per-game chats. Finally. Global chat is still there. I hope to make it highlight the tab
when there is activity at some point.

9 January 2013:

New stylesheet from timsookram.

New card sets. The Holiday Pack was added about a month ago, the MLP pack got lost in the
server migration and has been restored, and another custom card set has been added from the fine
folks over at Very Serious. This card set has a decent amount of in-jokes, though, so you may
want to skip it for now. I'll pull out the universally funny cards later into another set.

I haven't forgotten about the other card sets that have been sent in. I'll get to
those later this week. I did this card set first since it was sent to me in a format that I
could import directly into the database.

Plugged a hole that would let any especially crafty user pretend to be an administrator.
This was done entirely at the firewall and web server level and required no code change to the
game itself.

Increased maximum game limit from 60 to 75.

12 October, 5:00 AM UTC:

User Preferences. Click the button in the top-right corner and you can hide the connect
and quit events, and ignore chat from specific users. These settings are remembered for the
next time you play the game. The game also remembers what name you used last time you
played.

Games without a password will sort before games that do, so you can find them easier.

Under-the-hood improvements.

Early September, 2012:

The Second Expansion has been entered.

29 August, 6:00 AM UTC:

Chat flood protection. You may only chat 5 times in any given 15 second period.

Splitting game chat out will happen next, this was just an easy bandage.

21 August, 6:00 AM UTC:

Ban list. Only admins can ban.

Chat from admins shows up in blue.

Currently, the admin list contains just me and a close friend. I am not taking applications.

Performance and stability tweaks.

7 July, 10:00 PM UTC:

Proper Card Set support. Currently, only I can define the cards and card sets, but I hope to
eventually let users define their own. This leads into the next item...

The First Expansion! Sorry it took so long, I've been quite busy with real
work lately. Whenever The Second Expansion rolls around, it will be much easier for me to add
since I've put in the proper structure to deal with card sets.

I still haven't had time to separate out chat per-game, but that is the next thing on the
to-do list.

15 June, 2:00 AM UTC:

I haven't forgotten about this! The First Expansion cards are typed up (you probably have
seen them accidentally showing up), I just need to make a proper way to choose what card decks
to use in games. I will try to do that this weekend! In the mean time, I've removed the dummy
marker cards you've also probably noticed from showing up (and also the First Expansion cards).

Initial AFK timer support added. This will skip (or kick, if there are not enough players) a
player that takes longer than 15 + 15 * PICK seconds to play, or skip a judge that takes longer
than 20 + 5 * PICK * PLAYERS seconds to select a winner. If a player is idle for two consecutive
rounds, they will be kicked from the game. All of these numbers are adjustable; if the timeouts
are too long or too short, please let me know!

The game host can specify the Awesome Point goal from 4 to 10.

The game host can specify the maximum number of players in a game from 3 to 10.