Beta 2024.6.24.1317

From Resonite Wiki

Beta 2024.6.24.1317 is a Resonite version released on 2024/06/24.

The following notes were sent by Frooxius:

Hello everyone! I'm back and I've got a big update for you! 😄
There's now a Worlds Data Feed! This data feed provides the currently opened worlds and sessions, with filtering & searching options. This allows to build custom world/session viewers/facets and other stuff. In the future, we'll also add support for enumerating saved/published worlds to this feed, so this will be used to rework the World UI.
In order to support this, the general data feed mechanisms got improved and expanded! They support updating items now (e.g. if you have interfaces, it will automatically update everything with new data - e.g. when a world name/thumbnail/user count/etc changes) and the add/update/remove events support search parameter now.
We now also have a new Translator badge for everyone who's been helping translate Resonite into other languages and make it more accessible!
There's lots of other updates too! Plenty of bugfixes by @ProbablePrime and merged shader update by @Geenz, which should fix a number of issues with materials/shaders!
Also please note that SSL 3, TLS 1.0 and TLS 1.1 protocols have been deprecated in this build! We haven't found any issues in pre-release testing. Generally it's recommended to not use those protocols anymore, because they have severe security issues. If you have an issue and you can't switch to a newer one easily, let us know and we'll have a look at what we can do.

New Features:

  • Added Worlds Data Feed (requested by myself (@Frooxius) and content team, issue #2300)
    • This provides a feed of all found sessions and opened worlds
    • This fully supports events - any data feed items will be added/updated/removed appropriatelly as the world/session info changes
    • This also supports searching, with simple syntax of + for required terms (all must appear) and - for excluded terms (none can appear) and plain for optional terms (any of them will make item appear)
    • A number of filtering options are available: Headless/User hosts, Minimum Total Users/Contacts (for sessions), Min/Max session access level, Min/Max uptime (in seconds)
    • Found entries can be merged by world ID or session ID - any worlds & sessions with same world or session ID (in this order) will be merged into a single feed item when those merging options are enabled
    • This can be used to build custom session viewers or facet to show active worlds and so on
    • Note that any non-public sessions (and any world data) will only be accessible in Userspace or Unsafe worlds for security/privacy reasons
    • In the future, this will fully replace the WorldListManager, once we have more data feed views and support for published/uploaded world listing is added
  • Added MergedWorldDataItemInterface
    • This provides interface for data feed items from the WorldsDataFeed
    • This provides data on the aggregate information about the given worlds/sessions
    • This also provides a data on the individual sessions & locally opened worlds through "subfeeds"
    • Subfeeds allow you to specify template (same as main data feed) and root - it will automatically manage the items for you (add/update/remove) as the information is updated
    • Each subfeed allow you to configure limit of items you want to show (including 0, which will not generate the items). This limit can be adjusted dynamically - e.g. from 0 to max value, when you want to actually generate the templates - the last data is cached and the items will be generated immediately from the template
  • Added SessionInfoItemInterface
    • This provides interface for the SessionInfo data feed items (currently only available through the subfeed on MergedWorldDataItemInterface)

Added WorldItemInterface

    • This provides interface for World data feed items (meaning currently opened worlds, similarly this is only available through the subfeed on MergedWorldDataItemInterface at the moment)
    • If you're missing some information about the world that you'd like exposed through this, let us know (through a GitHub issue) and we can look if it's possible to add!
  • Data Feed events are now "search phrase" aware
    • This means that when search phrase is active, any added/updated/removed items are properly filtered based on the current search phrase
    • This fixes WorldUsersFeed adding newly joined users that do not match the current search phrase
  • Added mechanism which allows data feeds to have persistent data for each view
    • This allows implementation of new complex features and efficient caching (e.g. for the merging support for the Worlds Data Feed)

Added support for updating data feed items with updated data - any generated items will automatically be updated with new data through the same interface (there's no need to make any changes, unless you have mechanism that removes the feed item interface)

  • Added a number of activation modes to BooleanSwitcher to provide more flexibility (based on request by @mpmxyz, issue #2269)
    • AtIndexOnly (this is the original mode, activates item only at the index)
    • AllButIndex (the item at index is deactivated)
    • IndexAndBefore (all items all the way to the index are activated)
    • IndexAndAfter (all items at index and after it are activated)
  • Added Translator badge (requested by modimobeikete, issue #1814, badge created by @Chroma)
    • If you've been contributing translations and gotten reward space for it, you should get the badge automatically within next few hours
    • If you don't have one, please make an Issue at the Locale repo and we'll try to get to it as soon as possible!
  • Added debugWorldState command to headless, which prints out debugging info for state of all worlds (this is to help diagnose issue reported by @Jae “awa” J4, @Readun, @Hikari Akimori, @Ink_25, issue #2079)
    • If the session freezes your headless, type this command and save the output. Then type it again a few seconds later and save the output again.

Tweaks:

  • .cc extension is now recognized as a text file on import (requested by RobertBaruch, issue #1030, implemented by @ProbablePrime)

Security:

  • Fixed user invisible status leaking when signing out (reported by @989onan via security ticket #788915)
  • Added moderation tool for sending warnings to users (requested by @Veer internally, implemented by @ProbablePrime)
    • This can be used by any moderators to issue official warnings
    • There is built-in audit, which informs moderation leads when warnings are issued to prevent any potential abuse of this command
  • SSL 3, TLS 1.0 and TLS 1.1 protocols have been now deprecated (implemented by @Geenz)
    • If you run into issues with this, please let us know ASAP and we can revert this. However please note that this will eventually go away completely anyway, because in modern versions of .NET these protocols are not supported at all. You should upgrade to latest TLS, since these older versions have severe security issues

Locale:

  • Merged migrated Metric/Imperial locale strings for all languages from the legacy strings by @Stiefel
  • Merged missign English keys for inspector texture (fixed by @Stiefel)
  • Merged Korean locale update by @MirPASEC
  • Merged Japanese locale update by @Aesc and @Zozokasu
  • Merged French locale update by @Jae “awa” J4
  • Merged British English locale update by @paradox

Fixes:

  • Light Tool "Change Color" context menu item now uses the locale key (reported by @Nammi, issue #483, fixed by @ProbablePrime)
  • Fixed spelling in Impulse Receiver Nodes (reported by @Banane9, issue #1096, fixed by @ProbablePrime)
  • Fixed multiply string node having + symbol instead of x (reported by @Lux, issue #194, fixed by @ProbablePrime)
  • Fixed import dialog appearing to the side of the user while in desktop mode and the window is not focused (reported by @Lux, issue #1929, fixed by @ProbablePrime)
  • Fixed ButtonValueShift ignoring MaxIsExclusive (reported by @mpmxyz, issue #1435, fixed by @ProbablePrime)
  • Fixed OpenGL base texture format not being set correctly on Linux (reported by iamgreaser, @yosh, @rcelyte🐧, issue #69 (nice) fixed by @Geenz)
  • Fix RootCategoryView not unregistering event listeners when destroyed
    • This fixes memory/resource leak
  • Fixed "Sad" face tracking shape now being detected as "Angry" (reported by @Shifty, @Nordic, @Cataena, @FelixC, @Flame Soulis, Lxw404, @Modern, issue #2343)
  • Fixed migrated content using Fresnel Unlit not appearing as expected (reported by @Kulza, issue #40, fixed by @Geenz)
  • Fixed PBS_ColorMask not applying EmissiveMap to EmissiveColor channels (reported by @Towneh, issue #158, fixed by @Geenz)
  • Fixed Reflection material being broken with normal maps (reported by @CapybaraEstTravy, issue #174, fixed by @Geenz)
  • Fixed Matcap materials breaking with normals maps (reported by @Lux, issue #200, fixed by @Geenz)
  • Fixed NormalScale not affecting fresnel material (reported by @Lux, issue #1117, fixed by @Geenz)
  • Fixed FresnelLerp material not working when PolarUV's are enabled (reported by @art0007i, issue #1581, fixed by @Geenz)

Obsolete:

  • Obsoleted SessionsOrbsController
    • This will eventually be removed completely, with more generic replacements made using the new WorldsDataFeed
    • If there are generic things needed to build replacements or missing, let us know (make feature requests)
  • Obsoleted WorldListManager
    • Note that this will still exist at least until some time after WorldsDataFeed gets ability to also list Records (search published worlds), which would bring it to full feature parity
    • We are marking this as obsolete now to indicate that we have plans to remove it eventually
    • If you are building content that needs only opened worlds / sessions, you should use the new WorldsDataFeed and port any existing solutions to this to prepare

Removals: