What's New in BigBlueButton 3.0.25

BigBlueButton 3.0.25 brings a range of client improvements, fixes, and new features. Key highlights include enhanced whiteboard cursor handling, deeper LiveKit integration, breakout room refinements, and the introduction of BlockNote-based shared notes. A new create parameter, clientSettingsOverrideJsonUrl, makes it easier to override client configuration via URL. Administrators should note that some obsolete settings have been removed from bbb-html5; check the pull request description for details.

HTML5 Client Improvements

Whiteboard and Cursor Fixes

Multiple whiteboard issues have been resolved. The presenter and viewer regions no longer desynchronize after entering fullscreen. The cursor point now respects the pointerDiameter setting, and cursor zoom misalignment has been corrected. Viewers will no longer see the cursor appearing in the wrong position.

Breakout Room Refinements

Moderator actions in breakout rooms have been reviewed and fixed, and viewers are no longer incorrectly sent to the waiting lobby when joining a breakout room.

Additional Client Fixes

  • Notifications are no longer clipped on mobile devices.
  • Question detection and indented option matching have been improved.
  • Webcam camera position no longer changes on slide change when zoom is applied.
  • Zoom with mouse wheel is now centered correctly.
  • Client no longer crashes when an invalid layout is set in local storage.
  • Only allowed shapes are displayed in edit mode.
  • Chat message timestamps now use a locale-aware time format.
  • State events no longer leak between user sessions or tabs.

BlockNote Shared Notes Integration

Shared notes have been upgraded to use BlockNote, a modern block-based editor. This replaces the previous implementation and provides a richer editing experience. The integration is seamless and maintains compatibility with existing shared notes workflows.

LiveKit Enhancements

Audio groups have been extended to support cameras and screen sharing. Camera and screen sharing quality presets and simulcast layers have been reviewed and refactored. A new option allows using LiveKit as the client's audio state source, and a last N-like system for selective audio subscription has been added. Screenshare volume control now only appears if audio is present, and WebRTC statistics gathering now uses LiveKit APIs.

Plugin SDK and Core Updates

Plugin SDK fixes include preventing screenshare from blocking snapshot of the current slide, improving subscription loading data change detection, and fixing generic data updates in the plugin table. SVG icons are now available for all extensible areas. In the core, XML external entity parsing has been disabled for security. The new clientSettingsOverrideJsonUrl create parameter allows overriding client configuration via a JSON URL. Grails and Spring Boot have been upgraded, and SVG generation no longer produces zero-value dimensions. Plugins now support a disable feature via Akka.

Learning Dashboard and Recording

The learning dashboard has received a fix for legacy data files compatibility with newer BigBlueButton versions, and a new Help modal has been added. Recording improvements address audio/video sync issues, glitches on cuts, and FFmpeg memory usage.

Packaging and Build Updates

LibreOffice has been bumped to version 25.8.4, LiveKit server to 1.9.12, and Hasura to 2.48.14. The shared notes server packaging has been finalized. The bbb-presentation-video build has been updated to version 5.1.0-rc.3. WebRTC SFU is now at version 2.22.2. Etherpad cursor trace plugin is pinned to tag v3.1.20-2, and bbb-pads to 1.5.10. Asset compression is now automated with Webpack, and .gz files are excluded from the language selector list.

This release includes contributions from several community members, and we thank everyone who reported bugs, requested enhancements, or submitted pull requests. For a complete list of changes, refer to the GitHub release page.