Add a setting for the default state of the breakout "Propagate the current lock settings" checkbox

Author: antobinaryCreated Sep 14, 2026Updated Sep 14, 2026
Labelsmodule: clientcomponent: breakout rooms

Is your feature request related to a problem? Please describe.

Every other checkbox in the create-breakout panel has a settings.yml key that controls whether it starts checked. inheritLockSettings is the one exception — it is hardcoded to false and cannot be changed by an administrator.

bigbluebutton-html5/imports/ui/components/breakout-room/create-breakout-room/sidebar-create-breakout/component.tsx:338-348

typescript
const [freeJoin, setFreeJoin]           = useState(allowUserChooseRoomByDefault);
const [captureSlides, setCaptureSlides] = useState(captureWhiteboardByDefault);
const [captureNotes, setCaptureNotes]   = useState(captureSharedNotesByDefault);
const [record, setRecord]               = useState(recordRoomByDefault || false);
const [inviteMods, setInviteMods]       = useState(inviteModsByDefault);
const [inheritLockSettings, setInheritLockSettings] = useState(false);   // <- hardcoded

Deployments that always want breakouts to inherit the main room's lock settings have no way to make that the default, so the moderator must remember to tick the box on every breakout creation.

Describe the solution you'd like

A new key in public.app.breakouts, following the existing *ByDefault naming.

Suggested name: inheritLockSettingsByDefault

Suggested spot: bigbluebutton-html5/private/config/settings.yml, inserted after sendInvitationToAssignedModeratorsByDefault (currently line 181) so the five "pre-check" keys stay grouped above the numeric ones.

Suggested label (comment wording matches the sibling keys and the UI string app.createBreakoutRoom.inheritLockSettings = "Propagate the current lock settings"):

yaml
      # Pre-check the "send invitation to assigned moderators" option
      sendInvitationToAssignedModeratorsByDefault: false
      # Pre-check the "Propagate the current lock settings" option
      inheritLockSettingsByDefault: false
      # Minimum number of breakout rooms that can be created
      breakoutRoomMinimum: 2

Default stays false, so existing behaviour is unchanged.

Client side is two edits in the same component — destructure it alongside the others (around line 320) and use it as the initial state:

typescript
    sendInvitationToAssignedModeratorsByDefault: inviteModsByDefault,
    inheritLockSettingsByDefault,
  } = BREAKOUT_SETTINGS;
...
  const [inheritLockSettings, setInheritLockSettings] = useState(inheritLockSettingsByDefault);

Please also add a test

There is already a spec for this checkbox that can be extended rather than written from scratch:

  • bigbluebutton-tests/playwright/breakout/breakout.spec.tstest('Inherit lock settings checkbox is visible and unchecked by default', ...)
  • bigbluebutton-tests/playwright/breakout/create.tsinheritLockSettingsCheckboxIsVisible(), which already asserts expect(checkbox).not.toBeChecked()

Keep that test as-is (it now also proves the new default is false) and add a companion that exercises the setting via clientSettingsOverrides, which the harness already supports and which needs no server config change:

typescript
test('Inherit lock settings checkbox is pre-checked when inheritLockSettingsByDefault is true',
  async ({ browser, context, page }, testInfo) => {
    const create = new Create(browser, context);
    await create.initModPage(page, {
      testInfo,
      clientSettingsOverrides: {
        public: { app: { breakouts: { inheritLockSettingsByDefault: true } } },
      },
    });
    await create.inheritLockSettingsCheckboxIsChecked();
  });

with a helper mirroring the existing one but asserting toBeChecked(). The checkbox is reachable at e.inheritLockSettingsCheckbox behind e.breakoutRoomSidebarButton then e.moreOptionsToggle.

Source: bigbluebutton/bigbluebutton