Skip to content
bea9fc1
Compare
Choose a tag to compare

Some minor features and bugfixes since 2.9.0.

What's New

  • Narrator chat - when the IC emote is completely blank, only text is played back on the chatbox without altering any animations or overlays.
  • AUTH packet. Servers can now control programmatically whether the mod controls are shown, instead of having to send the magic string "Logged in as a moderator." See #489.
  • Logs now include OOC chat
  • Demos now support timers properly
  • /reload command for demos
  • Dropdowns elide left, allowing long names to be more readable:
    Illustration of dropdowns eliding left
  • Deprecated /min_wait for demos
  • All UI elements are now named. While this is not fully documented yet, you can obtain the full list of object names from #534. More info on CSS here: https://doc.qt.io/qt-5/stylesheet-syntax.html
  • Two new ways of controlling judge buttons: judge buttons can be forced on or off depending on certain conditions. One of them is through the network, but there is also a clientside option in the design.ini of any background that can define a list of positions where the judge button should be automatically enabled (e.g. judges=jud,jud2,jud3,judX).
  • You can now specify in the options menu the default scaling method for assets that do not otherwise specify a scaling method - so you can have "fast" (pixely) or "smooth" chosen as default. You should select "smooth" if you are using HD-resolution assets.
  • Added default showname preference in the options menu

Fixes

  • Fix evidence icons not appearing after evidence has been presented once
  • Fix demos containing messages with special characters not playing back correctly
  • Fix demos being recorded with incorrect timing information. When loading a demo with such an issue, you can choose to automatically have it fixed.
  • Fix demos being recorded with incorrect packet data (e.g. wrong encoding for things such as evidence by recording <and> instead of &)
  • Fix demos not recording evidence or timers
  • Fix demo playback not appearing on favorites list if serverlist.txt is missing
  • Fix demo server not sending help text if "Spectator" is selected
  • Fix final message in demo not being played
  • Fix timings for OOC being really busted if the max_wait option is -1 during demo playback
  • Fix blankposting forcing the message queue to sleep up until another message is received
  • Fix chat messages being lost to the ether if instant objection is used, or area is switched while message queue is not empty
  • Fix desynchronized logs options checkbox not loading from config properly
  • Fix crash selecting random track when music list contains tracks without a category
  • Fix per-emote stretch settings not working
  • Fix chat arrow being displayed even when blankposting
  • Fix animated themes freezing the client on Linux when joining a server with (too) many characters
  • Fix character-specific color list not being properly regenerated on a theme reload
  • Fix ~~, ~> and <> causing tick issues
  • Fix objections forcing a missingno to appear when you object to someone mid-preanim, and their preanim ends before objection shout finishes
  • Fix characters being incorrectly masked to the aspect ratio of the viewport even when the aspect ratio of the pixmap differed
  • Fix Cyrillic/non-Latin characters breaking configuration files
  • Fix regression where direct file paths (base/misc/blank) were not recognized
  • Fix shownames disappearing forever if a message is sent while the shownames checkbox is unticked
  • Fix using preanims with static images just breaking everything
  • Fix text_stay_time timer firing even if immediate is enabled
  • Fix regression where effects in misc folders were not being detected
  • Euthanize Morton
  • Fix evidence

Note: The Windows zip had an old executable, due to a mishap in the manual release process. Sorry about that.

Compare
Choose a tag to compare
Pre-release

Some minor features and bugfixes since 2.9.0. This is Crystalwarrior's "early access" build, after he got fed up with me never fixing the CI pipeline for releases, so you can blame him for mistakes. (lol)

What's New

  • Narrator chat - when the IC emote is completely blank, only text is played back on the chatbox without altering any animations or overlays.
  • AUTH packet. Servers can now control programmatically whether the mod controls are shown, instead of having to send the magic string "Logged in as a moderator." See #489.
  • Logs now include OOC chat
  • Demos now support timers properly
  • Dropdowns elide left, allowing long names to be more readable:
    Illustration of dropdowns eliding left
  • Deprecated /min_wait for demos
  • All UI elements are now named. While this is not fully documented yet, you can obtain the full list of object names from #534. More info on CSS here: https://doc.qt.io/qt-5/stylesheet-syntax.html
  • Two new ways of controlling judge buttons: judge buttons can be forced on or off depending on certain conditions. One of them is through the network, but there is also a clientside option in the design.ini of any background that can define a list of positions where the judge button should be automatically enabled (e.g. judges=jud,jud2,jud3,judX).
  • You can now specify in the options menu the default scaling method for assets that do not otherwise specify a scaling method - so you can have "fast" (pixely) or "smooth" chosen as default. You should select "smooth" if you are using HD-resolution assets.

Fixes

  • Fix evidence icons not appearing after evidence has been presented once
  • Fix demos containing messages with special characters not playing back correctly
  • Fix demos being recorded with incorrect timing information. When loading a demo with such an issue, you can choose to automatically have it fixed.
  • Fix demos being recorded with incorrect packet data (e.g. wrong encoding for things such as evidence by recording <and> instead of &)
  • Fix demos not recording evidence or timers
  • Fix demo playback not appearing on favorites list if serverlist.txt is missing
  • Fix demo server not sending help text if "Spectator" is selected
  • Fix final message in demo not being played
  • Fix timings for OOC being really busted if the max_wait option is -1 during demo playback
  • Fix blankposting forcing the message queue to sleep up until another message is received
  • Fix chat messages being lost to the ether if instant objection is used, or area is switched while message queue is not empty
  • Fix desynchronized logs options checkbox not loading from config properly
  • Fix crash selecting random track when music list contains tracks without a category
  • Fix per-emote stretch settings not working
  • Fix chat arrow being displayed even when blankposting
  • Fix animated themes freezing the client on Linux when joining a server with (too) many characters
  • Fix character-specific color list not being properly regenerated on a theme reload
  • Fix ~~, ~> and <> causing tick issues
  • Fix objections forcing a missingno to appear when you object to someone mid-preanim, and their preanim ends before objection shout finishes
  • Fix characters being incorrectly masked to the aspect ratio of the viewport even when the aspect ratio of the pixmap differed
  • Fix Cyrillic/non-Latin characters breaking configuration files
  • Fix regression where direct file paths (base/misc/blank) were not recognized
  • Fix shownames disappearing forever if a message is sent while the shownames checkbox is unticked
  • Fix using preanims with static images just breaking everything
  • Fix text_stay_time timer firing even if immediate is enabled
  • Euthanize Morton
  • Fix evidence
2cbb5c9
Compare
Choose a tag to compare

After six months of development, we are proud to announce the release of 2.9! This version includes various new features and internal improvements.

However, with an aging codebase and architecture that is ever increasing in complexity, this will officially be the final major release of Attorney Online 2. AO2 was designed as a backward-compatible remake of the AO1 client, and as such it has been difficult to make room for radically new features. Maintenance updates and minor features will be considered, but future development will be concentrated in Attorney Online 3.

This version also includes recompressed and fixed vanilla files, so it will appear as if it were a new vanilla. We'll consider adding to the character roster in the future independently of a client update, so you'll have to stay tuned for that.

We'll also be working on updating the docs with the new features on this list. You can also consult the linked pull requests next to some of the new features.

Most of the coding effort was undertaken by @Crystalwarrior and @in1tiate. Many thanks to both of them for pulling through, as well as some newcomers who did some real fine work (@caleb-mabry, @skyedeving). With this release, Crystal will be retiring from AO development.

What's New

Demo Recording and Playback

By default, AO preserves your game sessions as demos for playback, sorted by server.

To play back a demo, go to Favorites and click "Demo playback." A dialog will appear to open a demo. Once a demo has been opened, click "Connect." You may choose any character on the character selection screen. Type /play to start the playback. You can also type /help for more commands.

If you don't see anything in your server list, check that base/serverlist.txt exists.

Countdown Timer

10 seconds, MacGyver! BOOM! AO now comes with five real-time countdown timers that can add a sense of urgency to your roleplaying environment. If your version of tsuserver is new enough, you can use the /timer command to set a global timer as a mod and four area-specific timers as a CM.

(c) animations

The (c) animation was an old planned AO1 feature that allows transitioning from talking to idle. In effect, it acts like a "postanimation." You can use it now.

Character List Sidebar

Character selection screen with list sidebar

If you thought that browsing through icons was too much clutter, there is now a list version on the side to help you browse. Character creators can also add a category option in the char.ini to categorize this list by source game.

Queued Messaging

Vanilla chaos is over, long live vanilla chaos! In-character chat is now queued with a minimum delay between messages, so all chat can be viewed asynchronously without interruptions between messages (as the server can sometimes send new messages before old ones can be finished).

Reworked Blips

To make blips more faithful to the Ace Attorney games, @Crystalwarrior decided to rework them in such a way that they disregard whitespace in their timing. See #305 for more information and images about what exactly happened. You can also fine-tune the text crawl speed.

Stickers

Characters can now have an additional portrait displayed over the chatbox when they are talking.

To use this feature, place your sticker in a directory named sticker inside the appropriate misc or theme folder. The sticker image must be named after the folder name of the character, and the image must be the size of the viewport.

Subthemes

You can add a folder inside of a theme that can replace anything inside the existing theme. Subthemes are prioritized over your current theme and work like a third layer of inheritance, so the first layer is default theme, second layer is current theme and the last layer is the subtheme. You can manually force your subtheme using the settings screen, set it to "default" to stop subthemes from changing, or "server" to allow the server to suggest which subtheme to use (meaning you can have themes for day/night cycles, different interfaces between investigation/trial segments, etc.)

For example, the fallback order for courtroom_design.ini will be as follows:

  • theme/subtheme/courtroom_design.ini
  • theme/courtroom_design.ini
  • default_theme/courtroom_design.ini

Note that subthemes will never fall back to any subthemes belonging to the default theme.

There's also a new packet ST#{subtheme}#{force_reload}#% that allows the server to suggest a subtheme and reload the theme automatically (if player has the subtheme set to "server").

Theme reparenting

You can specify a new default theme for themes, so instead of falling back to the theme called default, you can fall back to any theme of your choice. To do this, add a default_theme= value in courtroom_design.ini. Note that it is not recursive, so if the default theme you selected has a default_theme= value as well, it won't fall back a second time, nor will it fall back to default.

Animated UI Buttons

Animated UI buttons! Gosh, y'all are awful. You can see a sample video of the feature here.

Other Features

Game

  • Added scaling overrides for character and effect INIs (can now force sharp or smooth scaling)
  • Added stretching overrides for character and effect INIs (can now force stretching/squashing to fill viewport)
  • Added ability to override anything in misc/ with a theme-level misc/ folder
  • Added ability to add additional background positions based on a design.ini in the background's folder (see #352)
  • Added support for HTTP audio sources
  • Added Y-offset for pairing
  • Added support for non-PNG static emotes (see #276)
  • Added shouts to the IC log, as well as an ability to describe custom shouts (see #356)
  • Fonts will automatically load from base/fonts and its subdirectories at start time
  • Server can specify custom WT/CE name in packet (SFX name and animation filename are exactly the name provided), and hide the testimony indicator by using RT#testimony1#1
  • Desk mods 2-5 (see #353)

UI

  • Changed position dropdown behavior to work as an override that persists across characters; use "X" button to clear the override
  • Added "Nothing" option to SFX dropdown
  • Added theme option to customize the indentation and animation of the music list
  • UI elements are now elided when they are too long
  • Added BB packet that displays a dialog with a user-defined message
  • Added three-second reading delay for all dialogs
  • Added "Stop Music" button (may not work if server does not have ~stop.mp3)
  • Added "[MISSING]" to missing songs in "Now Playing" bar
  • Added support for alpha masking to image widgets (useful for UI)
  • Restore Defaults and Reload Theme button added to settings screen

Important Changes

  • ~stop.mp3 and the "stop" category are now hidden. To stop music, right click the music list and hit "Stop Music," or use the "Stop Music w/ Category" setting to bring back the ability to double-click categories to "play" them.
  • Judge button (WT/CE) animations are now suffixed with _bubble
  • Hardcoded stylesheets have been moved into the theme stylesheets. If your theme has no need to override these stylesheets, you should remove the stylesheet files from your theme.
  • The shouts option in char.ini is deprecated; use chat instead.
  • The gender option in char.ini is deprecated; use blips instead.
  • Moved user-defined SFX and iniswap lists from character folders to the root base folder (base/soundlist.ini, base/iniswaps.ini)
  • The button autogenerator now generates both on and off variants of buttons when either one is missing
  • Changed log filenames to a more standard/sortable format
  • Changed name of "No Interrupt" checkbox to "Immediate"
  • Changed "Play Random Song" behavior to only play expanded categories
  • Separated IC log colors from chatbox colors (see #323)
  • Removed "What's This" button from title bar
  • Disabled maximizing and resizing of windows. You'll want to use a tiny theme instead.
  • FantaCrypt is no more

Fixes

About 55 fixes (including regressions from previous RCs) included! See previous RCs for more details.

Known Issues

  • Animated themes might be causing freezing issues on Linux for large character lists, so disable this first if you are experiencing problems.
  • Some custom theme fonts may appear larger than usual. If you run into this issue, grab the fonts inside the theme and put them in base/fonts.

Download

Download the full release here. Again, note that vanilla files have changed substantially, so a full download is highly recommended.

An archive containing only the program (without assets) is included below as well.

9691fb7
Compare
Choose a tag to compare
Pre-release

This should be the final testing round for 2.9.0. Once this round is done, 2.9.0 will be released, and any subsequent fixes will be released as patches.

Some other miscellaneous things to keep in mind:

  • The automated release pipeline is mostly broken right now, so the staging manifests of the launcher are not being updated right now, and packaging is being performed manually. ETA for a fix is unknown.
  • There is a new and improved™ vanilla in the works, so please stay tuned for that.

What's New

  • Fonts will automatically load from base/fonts and its subdirectories at start time
  • Add option for disabling stickers
  • Reworked custom position dropdown

Breaking Changes

  • Stickers will no longer load DRO-style. In DRO, the sticker image is an image located in the character folder named as the character's showname. This is no longer supported. Instead, you must place your sticker in a directory named sticker inside the appropriate misc or theme folder, and the sticker image must be named after the folder name of the character instead of the showname.
  • Judge button (WT/CE) animations are now prefixed with _bubble
  • Hardcoded stylesheets have been moved into the theme stylesheets. If your theme has no need to override these stylesheets, you should remove the stylesheet files from your theme.

Fixes from RC3

  • Fix background not resizing on "Reload Theme"
  • Fix objections prematurely adjusting chatbox
  • Fix testimony indicator only appearing once
  • Fix "Disable Custom Chat" setting not being honored when setting chatbox size and position
  • Fix stickers not respecting the custom chatbox setting
  • Fix speedlines never being unhidden
  • Prevent static preanimations from "playing"
  • Fix chat arrow being frozen
  • Fix screenshake edge cases
  • Fix crash when playing in a pre-2.6 server
  • Fix "stop music on objection" not stopping the music for everyone
5fd3ed0
Compare
Choose a tag to compare
Pre-release

Yet another round of testing. There will probably be a few more rounds of testing based on the number of changes we've done to the core engine.

What's New

  • Restore Defaults and Reload Theme button added to settings screen
  • Animated UI buttons (can be disabled in settings)
  • New packet ST#{subtheme}#{force_reload}#% that allows server to suggest a subtheme and reload theme automatically (if player has the subtheme set to "server")
  • ~stop.mp3 and the "stop" category are now hidden. To stop music, right click the music list and hit "Stop Music," or use the "Stop Music w/ Category" setting to bring back the ability to double-click categories to "play" them.
  • Allow server to specify custom WT/CE name in packet (SFX name and animation filename are exactly the name provided)
  • Allow server to hide the testimony indicator by using RT#testimony1#1

Subthemes

You can add a folder inside of a theme that can replace anything inside the existing theme. Subthemes are prioritized over your current theme and work like a third layer of inheritance, so the first layer is default theme, second layer is current theme and the last layer is the subtheme. You can manually force your subtheme using the settings screen, set it to "default" to stop subthemes from changing, or "server" to allow the server to suggest which subtheme to use (meaning you can have themes for day/night cycles, different interfaces between investigation/trial segments, etc.)

For example, the fallback order for courtroom_design.ini will be as follows:

  • theme/subtheme/courtroom_design.ini
  • theme/courtroom_design.ini
  • default_theme/courtroom_design.ini

Note that subthemes will never fall back to any subthemes belonging to the default theme.

Theme reparenting

You can specify a new default theme for themes, so instead of falling back to the theme called default, you can fall back to any theme of your choice. To do this, add a default_theme= value in courtroom_design.ini. Note that it is not recursive, so if the default theme you selected has a default_theme= value as well, it won't fall back a second time, nor will it fall back to default.

Breaking Changes

  • The shouts option in char.ini is deprecated; use chat instead.

Fixes from RC2

  • Fix additive text being duplicated (again)
  • Fix instant text (}}}) not being instant
  • Fix new desk mods (2-5) not working properly
  • Fix crash if emote list size is set to 0, 0
  • Fix focus not being set back to IC box if "remove position" button is clicked
  • Fix judge buttons not interrupting itself when clicked twice during playback
  • Fix themed buttons displaying with both image and text instead of image only
  • Fix some character selection screen elements not being affected by theme reload
  • Refactor internal asset resolver
  • Fix showname width by calculating font metrics only after showname font is set
  • Fix slight hitch in continuous playback when transitioning from talking to idle and the sprite did not change
  • Fix animated backgrounds with continuous animation enabled
  • Fix broken chatbox themes
  • Fix viewport freezes
    • Fix viewport freezing if neither character asset nor placeholder are found
    • Fix PNG objections freezing the viewport

Download

Download from "Assets" below. If you didn't download RC2 previously, make sure to download and extract the new vanilla (2021.02).

097220f
Compare
Choose a tag to compare
Pre-release

Final round of testing before 2.9.

Note that things will start slowing down after the 2.9 release (and alas, things have already begun to slow down).

We also decided to drop official Mac support due to the cost of signing and liability. Feel free to submit an unofficial build if you'd like.

Fixes from RC1

  • Fix some tooltip issues
  • Add option to display overlay effects over/under chatbox (see #424)
  • Fix continuous playback not working; make continuous playback configurable to prevent lag and disabled by default
  • Proper fix for music fading (had caused a regression causing music fading not to work at all)
  • Fix looping effects not looping
  • Fix "now playing" widget not stretching properly
  • Update Russian translation
  • Use friendly title for "now playing" widget when playing from a URL

What's New

  • Make text crawl speed configurable
  • Add GitHub Actions CI (thanks @skyedeving)
  • Changed position dropdown behavior to work as an override that persists across characters; use "X" button to clear the override

Install

  1. Download the binaries for your version
  2. Download and extract new vanilla (2021.02) via CDN
  3. Add your content as usual
0bb8574
Compare
Choose a tag to compare
Pre-release

This is a preliminary changelog for 2.9.

What's New

Major

  • Countdown timer
  • Stickers: character portraits overlaid on the chat box
  • List view of characters with categories
  • (c) animations: postanimation that allows transitioning from talking back to idle. An old planned AO1 feature.
  • Queued messaging: in-character chat is queued with a minimum delay between messages, so all chat can be viewed asynchronously without chaos or interruptions
  • Basic demo recording and playback
  • Desk mods 2-5 (see #353)
  • Revamped blips: blips are now more faithful to the AA games

Minor

  • Added scaling overrides for character and effect INIs (can now force sharp or smooth scaling)
  • Added stretching overrides for character and effect INIs (can now force stretching/squashing to fill viewport)
  • Added ability to override anything in misc/ with a theme-level misc/ folder
  • Added "Nothing" option to SFX dropdown
  • Added theme option to customize the indentation and animation of the music list
  • UI elements are now elided when they are too long
  • List additional background positions based on a design.ini in the background's folder (see #352)
  • Added shouts to the IC log, as well as an ability to describe custom shouts (see #356)
  • Added BB packet that displays a dialog with a user-defined message
  • Added three-second reading delay for all dialogs
  • Added support for HTTP audio sources
  • Added Y-offset for pairing
  • Added "Stop Music" button (may not work if server does not have ~stop.mp3)
  • Added "[MISSING]" to missing songs in "Now Playing" bar
  • Added support for alpha masking to image widgets (useful for UI)
  • Added support for non-PNG static emotes (see #276)

Changes

  • Moved user-defined SFX and iniswap lists from character folders to the root base folder
  • Allow button autogenerator to generate both on and off variants of buttons when either one is missing
  • Changed log filenames to a more standard/sortable format
  • Changed name of "No Interrupt" checkbox to "Immediate"
  • Deprecated INI option gender and renamed to blips
  • Changed "Play Random Song" behavior to only play expanded categories
  • Separated IC log colors from chatbox colors (see #323)
  • Removed "What's This" button from title bar
  • Disabled maximizing and resizing of windows
  • Removed FantaCrypt

Fixes

  • Optimized animation playback by keeping looped frames in memory
  • Fixed music fading being audible when volume is 0
  • Fixed Enter accidentally blankposting if pushed too quickly by adding a configurable chat rate limit
  • Fixed music and objection being stuck on muted after spectating
  • Fixed crash when area list and ARUP areas don't match up in length
  • Fixed crash when no server is selected in the lobby
  • Fixed some minor memory leaks
  • Fixed APNG emotes not animating if they have a .png extension
  • Fixed case docs not importing correctly when they have a hash sign
  • Fixed "APNG loaded" in About screen
  • Fixed incorrect timestamps when toggling showname/refreshing IC log
  • Fixed case docs importing in the wrong order
  • Fixed SFX being cut off by other sounds by adding more channels
  • Fixed SFX tooltip typo
  • Fixed shouts forcing preanimation when "Pre" is unchecked
  • Fixed buggy double-click in lobby
  • Fixed evidence displaying twice with non-interrupting preanims
  • Fixed shout sounds not falling back to the default theme when the current theme lacks them
  • Fixed iniswap "X" button disappearing after reloading theme
  • Fixed button autogenerator failing if the source image is indexed
090e824
Compare
Choose a tag to compare

Fixes

  • Fix upward log scrolling down instead of up
  • Only reinitialize audio on device change

What's New

  • Allow .webp for static emotes

(Note: the downloads below contain only the executable and must be applied over 2.8.5)

2c6a690
Compare
Choose a tag to compare

This is the awaited patch release for 2.8, fixing various exploits and introducing some quality-of-life fixes. Linux support was also fixed in this release.

Expect a major slowdown after 2.8.6.

What's New

  • Improvements to blankposting (#256)
    • Doubleposting is no longer prevented by the client; this is done serverside instead.
  • Added more options for the IC chat log (#259)
  • Added ability to change audio device without restarting game (#257)

Changes

  • Translation updates (Portuguese, Russian, Spanish)

Fixes

  • Fixed IC freezing from too many } modifiers (#243)
  • Fixed Music Display button disappearing under specific conditions (#191)
  • Fixed custom chatbox colors not working (#194)
  • Fixed crash on DRO servers
  • Fixed client using the current character colors on other people's messages
  • Fixed slowdown related to area updates (#241)
  • Fixed custom realization sounds not working (#234)
  • Fixed bold text not working in themes (#227)
  • Fixed IC freezing due to preanims used with zoom effect (#169)
  • Fixed names in IC chat log being inconsistently shown in specific cases involving iniswaps and shownames (#247)
  • Fixed Linux release being incompatible with some LTS distros (#242)
  • Fixed screenshake not working with blankposting
  • Fixed text disappearing from IC log under certain circumstances (#221)
  • Fixed audio on Linux (#263)

(thanks to @scatterflower for changelog)

ec1c95b
Compare
Choose a tag to compare

2.8 includes some of the most comprehensive set of changes ever made to AO, thanks to a merge with the Killing Fever Online (@Crystalwarrior) and Attorney Online Vidya forks (@Iamgoofball).

What's New

Platform

  • Added experimental Mac support

Lobby UI

  • Settings menu now available in lobby
  • Servers are now searchable and sortable by name
  • Double-click to join a server

Courtroom UI

  • Changed music list to a hierarchical tree view
  • You can now play as multiple characters with the same client. Simply type in your character in the drop-down adjacent to the emote selected, and the emote list will adjust to the selected character. Press X to remove the character from the list.
  • Added color to IC log
  • Added "now playing" widget with marquee scrolling text
  • Added explanatory tooltips for all buttons
  • Added ability to select custom sound to play for emote
  • Color drop-down now modifies only color of selected text in the IC input bar
  • Added support for emote and evidence buttons of nonstandard sizes
  • Added context menus to SFX, character swap, and effect dropdowns to open INIs and respective folders for editing
  • Log goes downward by default (for real this time)
  • Added tooltips for character names in character selection
  • Character select screen no longer mutes music

Core

  • Added full support for animated PNG (.apng) and WebP (.webp) images
  • Added ability to append more text to your last IC message
  • Text no longer tries to wrap itself while talking
  • Added proper spectate support

Effects

  • Added emote modifier 4 for zoom with preanimation
  • Added overlay/effect animation system
  • Added support for custom objections of any name
    • Right click the "Custom" interjection button to see all custom interjections
  • Reimplemented flashing and screen shake as effects
  • Added support for frame-specific effects
  • Added additional inline markup for IC effects (all of which can be escaped with a backslash):
    • \s - screen shake
    • \f - flash
    • \n - newline
    • ~~ - center text
    • ~> - align right
    • <> - justify text
  • Added ability to customize speed lines
  • [Time] section is no longer required for character INIs; all preanimations are played once from start to finish by default

Backgrounds

  • Added support for background overlays
  • Animated backgrounds no longer restart themselves if the background doesn't have to change on next character message
  • Added support for other background positions beyond the predefined list
  • On supported servers, the correct background will be displayed immediately upon join

Chatbox

  • Added support for special chatboxes and interjections
  • Chatbox now shows an arrow when chat is idle
  • chatblank, chat, chatmed and chatbig images in the theme folder are finally used now based on the length of the showname

Audio

  • Added full support for Ogg Opus (.opus) audio
  • Added support for crossfades (right-click a track to see options)
  • Added support for seamless A-B loops in tracks
  • Added support for looping SFX
  • Added "Play Random Song" feature
  • Added base/sounds/blips/ folder as a search path for blips
  • Interjections can now stop music (configured by client)

Evidence

  • Evidence list is now split between local and global lists
  • Added ability to save and load evidence items from file
  • Evidence updates are now instant

Theming

  • Qt CSS is now fully exposed and customizable
  • Custom fonts and font sizes are now configurable by INI
    • Font antialiasing can be disabled for sharp bitmap fonts (such as Igiari)

System

Breaking Changes

  • All of your themes are probably very, very broken
    • If you try to load an old theme, your game will likely freeze due to undefined behavior laying out the evidence display.
  • Changed chat blip rate to 60 ms
    • (Supposedly, it is more faithful to the games, though I am sure that some of you will have trouble adjusting to it...)
  • }}} now displays text instantly
  • Assets that are smaller than the viewport are centered to screen and letterboxed
    • Nearest-neighbor filtering is only applied if the scaling factor is >= 2
  • Dropped support for AO1 desk filenames (bancodefensa, bancoacusacion, estrado)
  • Backgrounds no longer fall back on the default background
    • However, if a position background is missing, it falls back to wit position
  • Removed /rainbow among other cursed clientside commands
  • Messages with a char ID of -1 are now considered system messages
  • Changed HDID generator to improve cross-platform reliability

Vanilla

  • Fixed various character emotes/emote names
  • Fixed typos on music names
  • Some meme music may be gone. :( It'll be back soon.

Server

  • Because inline color syntax is fully customizable by the client, it's no longer possible to protect red text as an admin-only color. Please use the /lm command to speak in an official manner.

Fixes

  • Evidence should be less broken now
  • Fixed URLs in server descriptions not being clickable
  • Fixed macOS clients not getting a proper HDID
  • Fixed area and music list not clearing on server music updates
  • Fixed classic PNG sprites (e.g. VNO-style characters; those lacking (a)/(b) prefixes) not being loaded correctly
  • Fixed hardcoded duration in WT/CE/G/NG animations
  • Fixed hardcoded position of Witness Testimony indicator so it's not hardcoded to be always present on /pos wit
  • Fixed position not updating as forced by server
  • Fixed multibyte Unicode characters creating unknown characters as they print out
  • Fixed theme reloading breaking background sizing

Separate changelogs were made during the KFO development process. Though an effort was made to only include fixes of bugs from previous releases, some changelog items may be internal and not relevant.

KFO Client 2.8.0

  • Improve performance for switching characters and reloading theme
  • Fix reload_theme not reloading the evidence and emote button lists
  • Fix objections hiding the current character instead of overlaying the objection animation on top of the character (Franziska whip anim now actually hits characters, woooo!)
  • Fix mod "guard" button being a confusing mess - here's an explanation: when you do a successful /login, pressing the "guard" button will prevent the client window from flashing and making a sound when receiving modcalls.
  • Fix time=0 argument being required for character preanimations to work
  • Fix evidence appear animation being inconsistent with all other animations in AO2 and not scaling to theme properly
  • Fix an obscure issue where if the chat box is inside the viewport you would be unable to interact with it in any way (as in scroll up/down if the message is too long)
  • Fix an issue with pairing characters that could potentially overlay them on top of the chat box in some obscure cases
  • Fix lobby descriptions not parsing links for servers
  • Fix a message of ()()()() spamming idle/talking animations (instead it just does the idle animation until you feed it an actual non-blue symbol)

KFO Client 2.8.0.1

  • Prevent characters from being incorrectly resized if a different-scaled character speaks
  • Fix re-selecting your character breaking you
  • Fix selecting inaccessible characters breaking you
  • Fix background displaying itself even though the server didn't send us our supposed correct pos for it
  • Improve music/area fetching from server
  • Fix a possible segfault with emote lists if emote list size is bad
  • Hide casing button if server doesn't support casing
  • Fix the pos dropdown not actually caring if you selected jur and sea pos.
  • Fix the pos dropdown sending like a million packets when scrolled through and lagging the client
  • Fix character select screen letting you choose characters that the server doesn't want us to be

KFO Client 2.8.0.2

  • Fix music volume being weird due to m_volume being shared by ambience and music at the same time
  • Fix current charmovie breaking offsets
  • Fix the chat message hardcoding max colors to 8 (when it should be max_colors)
  • Fix /save_case iterating from last to first instead of first to last

KFO Client 2.8.0.3

  • Fix ~~{{ thing
  • Chat messages are now properly hidden when reload theme is pressed
  • Incorrectly sized sprites will no longer bug out
  • Fix missing unicode support for messages
  • Fix an issue with music looping
  • Fix some edge cases where the AOChar qlabel is moved around in weird ways (reload theme still puts qlabel at 0,0 without centering)
  • Fix a full message of speed 0 not properly displaying itself

KFO Client 2.8.0.4

No bug fixes relevant to 2.6.

KFO Client 2.8.0.5

  • Fix a crash with emote lists if emote list size is inadequate
  • Fix chat/ooc/name inputs having background (preventing themes from setting up their own)

KFO Client 2.8.1

  • Fix a bug where user would be unable to speak if the BG changed when someone else was speaking

KFO Client 2.8.2

  • Fixed the annoying crash that would end your life if there was a '.' anywhere in your filepath.
  • Fix a bug with area lists not working properly on other servers

KFO Client 2.8.3

  • Optimize the search for areas and music (previously, area search also searched for music in the background, causing lag with huge music lists)