Attorney Online
Attorney Online (also known as AO or Ace Attorney Online) is an open-source chatroom program, designed for online roleplays in a visual novel-like format inspired by the Ace Attorney game franchise. In visual novel style, each participant takes on a specific character and can select predefined poses to accompany their dialogue, displayed over a static background.
Network packet format
AO operates on a client–server model, with a single server exchanging network packets with connected clients (players’ computers). Each packet corresponds to an in-game event, such as a music change, an in-character (IC) line of dialogue, or an out-of-character (OOC) system message.
The network packets are documented here:
Log and demo format
By default, during a play session Attorney Online records both bare-bones textual log files and complete demo files. These files are created in the /logs/ subfolder, with the extensions .log
and .demo
respectively.
A log is a plain-text dump of all the IC and OOC messages seen by the client, with timestamps.
Example excerpt from a .log file:
[Sat Aug 2 05:35:35 2025 GMT] Gumshoe: Howdy all [Sat Aug 2 05:35:45 2025 GMT] Gumshoe: Here are three dollar signs: $$$ [Sat Aug 2 05:36:22 2025 GMT] Gumshoe: I am angry now. [Sat Aug 2 05:36:36 2025 GMT] Gumshoe: This is my angry face. [Sat Aug 2 05:36:53 2025 GMT] Gumshoe has played a song: Ace Attorney/Trial/[AJ] Trial.opus
A .demo file is a plain-text dump of all the network packets received by the client, interspersed with "wait" commands to record the time (in miliseconds) between each packet. Therefore, a demo file records the session to its smallest detail. Demos can be played back in the client to obtain a near-perfect recreation of the RP session.
Example excerpt from a .demo file (same session as the .log file excerpted above):
MS#1#-#Gumshoe#normal#Howdy all#wit#1#0#8#1#0#0#0#0#0#Gumshoe#-1###0<and>0#0#0#0#0#0#-^(b)normal^(a)normal^#-^(b)normal^(a)normal^#-^(b)normal^(a)normal^#0#||#-1###0#0##% wait#10359#% MS#1#-#Gumshoe#normal#Here are three dollar signs: <dollar><dollar><dollar>#wit#1#0#8#1#0#0#0#0#0#Gumshoe#-1###0<and>0#0#0#0#0#0#-^(b)normal^(a)normal^#-^(b)normal^(a)normal^#-^(b)normal^(a)normal^#0#||#-1###0#0##% wait#37404#% MS#1#-#Gumshoe#mad#I am angry now.#wit#1#0#8#1#0#0#0#0#0#Gumshoe#-1###0<and>0#0#0#0#0#0#-^(b)mad^(a)mad^#-^(b)mad^(a)mad^#-^(b)mad^(a)mad^#0#||#-1###0#0##% wait#13625#% MS#1#-#Gumshoe#mad#This is my angry face.#wit#1#0#8#1#0#0#0#0#0#Gumshoe#-1###0<and>0#0#0#0#0#0#-^(b)mad^(a)mad^#-^(b)mad^(a)mad^#-^(b)mad^(a)mad^#0#||#-1###0#0##% wait#16923#% MC#Ace Attorney/Trial/[AJ] Trial.opus#8##1#0#2#%
In pre-2.9.1 versions of the official Attorney Online client, the demo files are generated incorrectly: the "wait" packet is incorrectly placed after the message it's meant to delay. This was fixed in v2.9.1. Newer Attorney Online versions detect these malformed demo files and offer to fix them before playback.