N

types

The shared types the SDK modules take and return. Type-only: nothing here exists at runtime.

namespace types

Types

Props of AccessibilityAnnouncerLiveRegion (memo). Exports: AccessibilityAnnouncerLiveRegion.

Props of AccessibilityView (function). Exports: AccessibilityView, AccessibilityViewAnimated.

Props of ActionSheetCloseButton (function). Exports: ActionSheetCloseButton.

Props of ActionSheetHeaderBar (function). Exports: ActionSheetHeaderBar.

Props of ActionSheetHeaderPressableText (function). Exports: ActionSheetHeaderPressableText.

Props of ActionSheetIconHeader (function). Exports: ActionSheetIconHeader.

Props of ActionSheetPresenter (function). Exports: ActionSheetPresenter.

Props of ActionSheet (function). Exports: ActionSheet.

Props of ActionSheetRowGroup (function). Exports: none.

Props of ActionSheetRowIcon (function). Exports: none.

Props of ActionSheetRow (function). Exports: ActionSheetRow.

Props of ActionSheetSwitchRow (function). Exports: ActionSheetSwitchRow.

One image a plugin ships beside its bundle, as ubd build lists it in the manifest.

The author of an addon: a display name and a numeric user id.

A loaded plugin, theme or icon pack its manager governs: its manifest and state, and what its manager does to it. Stringifies to its AddonManifest.

One addon kind, such as plugin or icon-pack; each has its own manager.

The logger global a plugin runs with: console levels prefixed with the plugin's name.

A loaded addon's manifest: the AuthoredAddonManifest plus what ubd build, the loader and installer record.

What an addon declares for one platform it runs on: the capabilities that platform provides which it needs.

The platforms an addon runs on, keyed by platform.

Whether an addon's bundle carries a valid Unbound signature.

Props of AIGlyphText (function). Exports: AIGlyphText.

Props of AILoader (memo). Exports: AILoader.

Props of AIShimmerInner (function). Exports: none.

Props of AIShimmer (memo). Exports: AIShimmer.

Props of AlertActionButton (function). Exports: AlertActionButton.

Props of AlertActions (function). Exports: AlertActions.

Props of AlertModalContainer (memo). Exports: AlertModalContainer.

Props of AlertModal (function). Exports: AlertModal.

An asset name of file type T: the names Discord's generated build registers as suggestions, and any other string, since a build may register names the generator never saw.

The native module used to register and resolve DiscordAssets by id.

A file type the asset lookups take: Discord's types as suggestions, and any other string.

The manifest an author ships in an addon's manifest.json: its metadata and entry point.

Props of AvatarDuoPile (function). Exports: AvatarDuoPile.

Props of AvatarPile (function). Exports: AvatarPile.

Props of Backdrop (function). Exports: Backdrop.

Props of BackgroundBlurFill (function). Exports: BackgroundBlurFill.

Props of BackgroundBlurFillWithPress (function). Exports: BackgroundBlurFillWithPress.

Props of BackgroundBlurViewComponent (function). Exports: BackgroundBlurView.

The props of Discord's Badge, read from Discord 352's design/components/Badge/native/Badge.native.tsx.

The colours of Discord's Badge; with none, it is grey. primary is the brand colour.

Props of BaseIconButton (function). Exports: BaseIconButton.

Props of BaseNavigationContainer (forwardRef). Exports: BaseNavigationContainer.

Props of BaseTextButtonIcon (function). Exports: none.

Props of BaseTextButton (function). Exports: BaseTextButton.

Props of BaseTextField (function). Exports: BaseTextField.

Props of BottomSheetBackdropComponent (memo). Exports: BottomSheetBackdrop.

Props of BottomSheetTextInput (function). Exports: BottomSheetTextInput.

Props of BottomSheetTitleHeader (function). Exports: BottomSheetTitleHeader.

Props of BaseButton (function). Exports: BaseButton.

Props of Ellipsis (function). Exports: Ellipsis.

Props of ButtonGroup (function). Exports: ButtonGroup.

Props of IconButton (function). Exports: IconButton.

Props of ButtonPill (function). Exports: ButtonPill.

A button row: it stores nothing, and calls the export action of the plugin's src/actions.ts.

Props of ButtonShine (function). Exports: ButtonShine.

A callback the generator typed: kept as is, since its parameters and arity are what a caller relies on.

Props of CameraLottie (function). Exports: CameraLottie.

A choice setting: one of its options' keys.

Props of Coachmark (function). Exports: Coachmark.

Props of CollapsingText (function). Exports: none.

Props of ContextMenuContainer (function). Exports: ContextMenuContainer.

Props of ContextMenu (function). Exports: ContextMenu.

The style factory: turns a spec (or a function returning one) into a theme-aware hook, so call it inside a component body: const styles = useStyles();.

Props of ActivityIndicator (function). Exports: ActivityIndicator.

Exported components of design/native.tsx in Discord discord-350.

Props of Card (function). Exports: Card, InternalCard.

Props of Checkbox (function). Exports: Checkbox.

The name of one component in DESIGN_COMPONENTS.

Every component the design/native.tsx barrel exports, typed by bun run generate-discord-types and made loose: known props optional and checked where concrete, unknown props allowed.

The design module's non-component exports (hooks, functions, constants), which the generator does not type.

Props of Modal (function). Exports: Modal.

The Discord mobile design system module (keyed by createStyles / dismissAlerts / ContextMenu). See DESIGN.md for the full catalogue.

Props of RowGroup (function). Exports: RowGroup.

Props of TextInput (function). Exports: TextInput.

Props of Text (function). Exports: Text.

Props of Dialog (function). Exports: Dialog.

Props of DisableCustomTheme (function). Exports: DisableCustomTheme.

An asset registered with Discord's packager (its metadata and dimensions).

The name of an asset Discord registers, of the given file types.

The names of the assets Discord discord-350 registers, by file type, as assets.getIdByName takes them.

A file type Discord registers assets of.

A function exported by a Discord module, whose signature Discord does not document.

The props Discord passes its *Icon components, such as WrenchIcon, and an imported SVG takes.

The sizes of Discord's icons, from 12 points (xxs) to 32 (lg); custom leaves the size to style.

A duration's units, smallest first.

Props of EllipsisCircle (function). Exports: none.

The displays of a string setting that pick a Discord entity by its id.

Discord ships numeric enums as bidirectional maps; this models both directions.

Props of ErrorText (function). Exports: ErrorText.

Props of ExpressiveGradient (function). Exports: ExpressiveGradient.

Props of FauxHeader (function). Exports: FauxHeader.

Props of FloatingActionButton (function). Exports: FloatingActionButton.

An installed font, as UnboundNative.fonts.list() returns it.

Props of FormLabel (function). Exports: default.

Props of FormRow (function). Exports: default.

Props of FormCheckbox (function). Exports: FormCheckbox.

Props of FormRadio (function). Exports: FormRadio.

Props of FormSwitch (function). Exports: FormSwitch.

Props of FormSubLabel (function). Exports: default.

Props of GhostInput (function). Exports: GhostInput.

Props of GlyphBand (memo). Exports: none.

Props of GuildIconPile (function). Exports: GuildIconPile.

Props of HeaderActionButton (function). Exports: HeaderActionButton.

Props of HeaderBackImage (function). Exports: HeaderBackImage.

Props of HeaderSubmittingIndicator (function). Exports: HeaderSubmittingIndicator.

An icon a row or toast draws: an asset id, an element such as <Star />, or an icon component such as Star.

A loaded icon pack: its bundle marker and IconPackManifest.

An icon pack's manifest: an AddonManifest tagged with its source kind.

Props of ImageButton (function). Exports: ImageButton.

Props of InlineNotice (function). Exports: InlineNotice.

Props of InputFieldContainer (function). Exports: InputFieldContainer.

Props of Input (function). Exports: Input.

Props of TextInput (function). Exports: NativeTextInput.

ToastOptions enriched with the fields the store tracks internally.

Props of LayerScope (function). Exports: LayerScope.

The raw bridge the loader publishes as globalThis.NativePlugin; objc exists only on iOS, java and hooks only on Android.

The objc namespace the loader publishes, before the client adds create and scopes it to a plugin.

Props of LoadingButtonPill (function). Exports: LoadingButtonPill.

A generated component that also accepts LooseProps, keeping its statics such as TableRow.Icon.

Each export of a generated module with LooseComponent applied.

Generated component props made safe to pass: every known prop is optional and checked only where its type is concrete, and any other prop is allowed, since the generator can miss props or mark a defaulted one required.

The value type a loose prop accepts: a primitive, literal union or callback stays checked; anything else the generator inferred (any, objects, React nodes, wide unions) is UncertainValue.

Props of LottieIcon (function). Exports: LottieIcon.

Props of ManaContextProvider (function). Exports: ManaContextProvider.

Parses nested Markdown, as a rule's parse receives it.

One node of a parsed Markdown tree; type names the rule that parsed it.

Renders a node or a list of nodes, as a rule's react receives it.

Discord's Markdown module (MarkupUtils), found by parse, parseToAST and reactParserFor.

Renders Markdown source to React Native elements; inline defaults to true.

A simple-markdown rule: match finds it at the start of the source, parse builds its node, react renders it.

A rule set by rule name, the shape reactParserFor takes.

The parse state Discord's rules read; the allow* flags turn links, headings and lists on.

Props of MenuGroup (function). Exports: MenuGroup.

Props of MenuItem (function). Exports: MenuItem.

Props of MenuPopout (function). Exports: MenuPopout.

Props of Menu (function). Exports: Menu.

Props of MessageRequestLottie (function). Exports: MessageRequestLottie.

Props of MessagesTabLottie (function). Exports: MessagesTabLottie.

Props of MicrophoneLottie (function). Exports: MicrophoneLottie.

Props of ModalActionButton (function). Exports: ModalActionButton.

Props of ModalContent (function). Exports: ModalContent.

Props of ModalDisclaimer (function). Exports: ModalDisclaimer.

Props of ModalFloatingAction (function). Exports: ModalFloatingAction.

Props of ModalFloatingActionSpacer (function). Exports: ModalFloatingActionSpacer.

Props of ModalFooter (function). Exports: ModalFooter.

Props of ModalScreen (function). Exports: ModalScreen.

Props of ModalStepIndicator (function). Exports: ModalStepIndicator.

The outcome of checking an addon's signature against the keys compiled into the loader.

Whether Discord can install another patched build of itself: not patched with LSPatch, patched before in-app installs, waiting on the "Install unknown apps" permission, or ready.

The Discord install the installer would replace.

Where a running install is: confirming waits on the system prompt; failed carries error.

How far the running install is.

One gzipped split APK of a build to install.

A key from objc.createAssociationKey that names one associated object.

Refers to an earlier step's result inside objc.batch, as a target or an argument.

One Objective-C call in objc.batch; a batch takes up to 64 steps.

The native bridge a plugin reaches through context.native, gated by the capabilities it declares.

A named permission to use one part of the native bridge, declared in an addon's manifest.

The shape of an error the native bridge or its plugin scope throws.

The stable code on an error the native bridge or its plugin scope throws.

A native bridge method by the path a plugin calls it through, such as objc.invoke.

A NativeBridge namespace whose methods a plugin calls, such as objc or java.

A host platform the loader reports, ios or android.

A capability the native bridge on platform P provides.

Options for a synchronous Objective-C call.

A promise for native work; cancel drops it, and stopping the plugin cancels every pending one.

A handle to an Objective-C class, from objc.getClass.

A plugin bundle the loader evaluated from bytecode: it takes the scoped React and returns the plugin module.

An addon the loader disabled because Discord crashed or froze in it on consecutive launches.

What an addon was doing when the loader blamed it: starting or running for a crash, frozen for a freeze.

Debugger support for plugins.

Facts about the device a debugger session needs.

What reading the debug environment may do first.

One debugger evaluation, which the loader logs and keeps in its evaluation history.

One console line an evaluation printed.

One surface's changes in a batchAsync call, applied as properties, then size, then frame.

Mounts registered React Native components inside existing native views. Sync methods are iOS only.

A view's frame in its container, in points on iOS and dp on Android.

Options for mounting a Fabric surface.

A Fabric surface size, in points on iOS and dp on Android, between 0 and 32,768.

A mounted Fabric surface; the plugin scope unmounts it on dispose.

Calls C functions in images Discord already loaded. An unsigned plugin needs the user's consent to use it.

A non-variadic C function signature for ffi.call.

An FFI type: a scalar or pointer name, or a registered struct by name, such as { struct: 'CGRect' }.

A C type in an FFI signature; object, class and selector exist only on iOS.

One font the loader can apply.

Where a font comes from: bundled with Discord, installed on the system, or a font addon.

Which runtimes a debug garbage collection reached.

An opaque reference to a native object. Only the bridge creates handles; plugins pass them back.

What an Objective-C hook handler receives for one call of the hooked method.

The handlers an Objective-C hook runs around each call; it needs at least one, unless cacheOnly is set.

Options for objc.hook.

Trims what a hook sends to JavaScript per call, to cut crossing cost on hot methods.

An installed Objective-C hook; the plugin scope removes it on dispose.

An argument to a Java call: a tagged value or a handle.

A key from java.createAssociationKey that names one associated value.

One independent operation in a Java batch or batchAsync.

The Android bridge to Java through reflection. Sync calls run on the JavaScript thread, so touch views only asynchronously.

A method resolved once by java.prepare, for calling many times without the lookup.

A Java class's shape, read by reflection with java.describe.

One field a Java class declares, from java.describe.

A handle to a Java object or class; the plugin scope releases it on dispose.

A Java object reference the bridge returns inside a result.

What a Java hook listener receives for one call of the hooked method.

Options for hooks.hook.

What a rewriteArguments listener returns to run the hooked method with other arguments, one per parameter.

The Android bridge for hooking Java methods. Needs native.java.hooks.

An installed Java hook; the plugin scope removes it on dispose.

One method a Java class declares, from java.describe.

A Java object implementing interfaces through a handler; remove its token to stop it answering.

What a proxy handler receives for one call of an interface method.

A Java object, as a handle or as a tagged handle value from a result.

A Java value tagged with its type, as the Java bridge returns and accepts it.

How long main-thread crossings for one addon, kind and call label waited and ran.

Main-thread drains since launch or the last counter reset.

The iOS bridge to the Objective-C runtime, scoped to the plugin's capabilities.

A selector and method signature resolved once by objc.prepare, for calling many times without the lookup.

What an Objective-C call returns: a plain value, a handle to an object, a 64-bit integer, or nothing for void.

A retained handle to an Objective-C object.

Loader helpers for verifying and loading installed addons.

Android-only helpers; missing on iOS.

Installs another patched Discord build over this one, upgrade or downgrade, downloading only the splits that differ.

Facts about the Discord install the loader runs in.

Platform-wide helpers the loader publishes as globalThis.NativePlatform, not scoped to a plugin.

The loader's record of which addon was starting or running when Discord crashed, kept across launches.

Facts about the device Discord runs on.

File operations inside the Unbound folder in Discord's documents directory.

The fonts the loader can apply.

iOS-only facts about Discord's code signature.

Hermes' sampling profiler, shared with the loader's freeze watchdog.

The loader's native settings file, which holds every Bucket.

A handle to a native symbol's address, from ffi.symbol; ffi.call accepts only these.

How many native resources the loader holds across every plugin.

Delivers Discord activity to plugins. Needs native.runtime.events.

A Discord activity a plugin can subscribe to; the client derives each from Flux actions, such as MESSAGE_CREATE.

A runtime event subscription; the plugin scope removes it on dispose.

A value the bridge serializes by structure, such as Fabric surface props or a plist.

A plain object of serializable values, such as a runtime event payload.

One change to a Bucket: set a key, remove a key, or clear the whole Bucket. Keys are dot paths.

A registered C struct, such as CGRect, built by objc.struct or returned from a native call.

A C struct field: a scalar, a pointer or object, or a nested struct.

A struct's field values by field name.

Where a native call runs: current is the calling thread; main blocks until the main thread runs it; main-post queues a void method on main and logs its failure, and blocks like main otherwise.

A value a worklet can take from the JS runtime: a serializable value, a UI scope, which is shared as is, or a callback into the JS thread.

Runs plugin worklets on the UI runtime, where native views live, so hooks there act before the next frame.

A function a worklet calls on the UI runtime to hand serializable values to a listener on the JS thread, made with callback.

The bridge methods a plugin may call from the UI runtime, synchronously and on the main thread.

The loader's way to open UI-runtime scopes, offered on its raw objc namespace on iOS and java on Android.

Limits and direction for a breadth-first findViews search; larger limits are clamped.

One view in an objc.snapshot result, which lists views in breadth-first order.

Limits for objc.snapshot; larger values are clamped and non-integers rejected.

A screen's handle on Discord's React Navigation stack, as useNavigation returns it.

Props of NavigationContainerInner (forwardRef). Exports: NavigationContainer.

The screen options accepted by Navigation.setOptions.

Props of NavigationStack (function). Exports: none.

Props of NavigatorHeader (function). Exports: NavigatorHeader.

Props of Navigator (function). Exports: Navigator.

Props of NavigatorScreen (memo). Exports: NavigatorScreen.

Props of NavScrim (memo). Exports: NavScrim.

Design components newer than the Discord build the generated types describe, typed by hand from Discord 352's sources. Regenerating the types from 352 or later makes these generated; then drop them here.

Props of NewInlineNotice (function). Exports: NewInlineNotice.

Props of NitroGem12Lottie (function). Exports: NitroGem12Lottie.

Props of NitroGem15Lottie (function). Exports: NitroGem15Lottie.

Props of NitroGem18Lottie (function). Exports: NitroGem18Lottie.

Props of NitroGem1Lottie (function). Exports: NitroGem1Lottie.

Props of NitroGem24Lottie (function). Exports: NitroGem24Lottie.

Props of NitroGem2Lottie (function). Exports: NitroGem2Lottie.

Props of NitroGem3Lottie (function). Exports: NitroGem3Lottie.

Props of NitroGem6Lottie (function). Exports: NitroGem6Lottie.

Props of NitroGem9Lottie (function). Exports: NitroGem9Lottie.

A notice row: it stores nothing, and shows title and subtitle as a message of its tone.

Props of NotificationsTabLottie (function). Exports: NotificationsTabLottie.

Props of PileOverflow (function). Exports: PileOverflow.

Props of Pile (function). Exports: Pile.

Props of PillWrapper (function). Exports: none.

Props of PlainTextExperimentProvider (function). Exports: PlainTextExperimentProvider.

The named exports of a plugin's entry module the client reads: its lifecycle and its settings panel.

What the addon manager passes to a plugin's start.

What a plugin's self-test found: whether the plugin works on this device, and why.

Props of PostponeRender (function). Exports: PostponeRender.

Props of PressableBase (function). Exports: none.

Props of PressableHighlight (function). Exports: PressableHighlight.

Props of PressableOpacity (function). Exports: PressableOpacity.

A value that is not an object or a function.

Props of PromoSheet (function). Exports: PromoSheet.

A manifest pushed by ubd dev. The CLI only checks the fields it reads; the device validates the whole manifest the same way it validates one it loads, so a dev build is never held to the publish rules.

Props of RedesignBottomSheetTitleHeaderBase (function). Exports: none.

Props of RedesignCompat (function). Exports: RedesignCompat.

Resolves each key of a StyleSheetSpec to the concrete RN style type it produced.

Props of RowButton (function). Exports: RowButton.

Props of RowButtonWrapper (function). Exports: none.

Props of SceneLoadingIndicator (function). Exports: SceneLoadingIndicator.

Props of SearchField (function). Exports: SearchField.

A tab of a segmented control, with the page it shows.

Props of SegmentedControlItem (function). Exports: SegmentedControlItem.

Props of SegmentedControlPages (function). Exports: SegmentedControlPages.

Props of SegmentedControl (function). Exports: SegmentedControl.

The state controller useSegmentedControlState returns, which drives a SegmentedControl.

The options useSegmentedControlState builds a SegmentedControlState from.

A semantic colour token from Theme.colors, which useToken resolves to a colour string.

Props of ServerTabLottie (function). Exports: ServerTabLottie.

One option of a choice setting.

What every setting and section carries. Labels are message keys of the plugin's i18n/en-US.json.

When a row shows or is enabled: a boolean setting's dot-separated key, or a predicate the build lifted out of settings.ts into the plugin bundle, where the panel finds it by the setting's key.

A value one schema-declared setting holds.

One schema-declared setting, by the primitive it stores.

A registered Unbound settings entry, mirroring Discord's SETTING_RENDERER_CONFIG route shape.

A nested object: its settings, drawn as their own section titled by title.

A Bucket, or a nested group of settings within one.

A plugin's settings schema, the JSON its settings.ts defineSettings(...) evaluates to at build time.

The screen descriptor a settings route entry renders.

A JSON value held in a Bucket.

A value any schema-declared setting holds.

Props of BottomSheet (function). Exports: BottomSheet.

Props of ShimmerLayers (function). Exports: none.

Props of ShimmerTextSlot (function). Exports: none.

Props of SimpleActionSheet (function). Exports: SimpleActionSheet, default.

The simple-markdown library Discord bundles, found by parserFor, outputFor and defaultRules.

Parses Markdown into nodes; inline: false parses blocks such as headings, lists, code and tables.

Props of Slider (function). Exports: Slider.

Props of Slot (function). Exports: none.

Props of SplitTextField (function). Exports: SplitTextField.

Props of SplitTextInput (function). Exports: SplitTextInput.

Props of Stack (function). Exports: Stack.

Props of StepModal (function). Exports: StepModal.

Props of StepPill (function). Exports: none.

Props of StickyWrapper (function). Exports: StickyWrapper.

A row that stores nothing: a button or a notice.

How a string setting displays; each validates the text its own way.

A string setting: the primitive array items can be too.

A stylesheet spec: each key maps to a view, text, or image style.

A stylesheet spec, or a function producing one (Discord accepts both forms).

Props of Subtitle (function). Exports: none.

Props of TabItemCount (function). Exports: none.

Props of TabItem (function). Exports: TabItem.

Props of TableCheckboxRow (function). Exports: TableCheckboxRow.

Props of TableRadioGroup (function). Exports: TableRadioGroup.

Props of TableRadioRow (function). Exports: TableRadioRow.

Props of TableRowArrow (function). Exports: TableRowArrow.

Props of TableRowDivider (function). Exports: TableRowDivider.

Props of TableRowGroup (function). Exports: TableRowGroup.

Props of TableRowGroupTitle (function). Exports: TableRowGroupTitle.

Props of TableRowIcon (function). Exports: TableRowIcon.

Props of TableRowInner (function). Exports: TableRowInner.

Props of TableRow (function). Exports: TableRow.

Props of TableRowTrailingText (function). Exports: TableRowTrailingText.

The props of Discord's TableSliderRow, read from Discord 354's design/components/TableRow/native/TableSliderRow.native.tsx. Any other prop, such as maxValue or step, goes to its Slider.

Props of TableSwitchRow (function). Exports: TableSwitchRow.

Props of Tabs (function). Exports: Tabs.

Props of TagGroup (function). Exports: TagGroup.

Props of TextAreaField (function). Exports: TextAreaField.

Props of TextArea (function). Exports: TextArea.

Props of TextButtonIcon (function). Exports: none.

Props of TextField (function). Exports: TextField.

Props of Heading (function). Exports: Heading.

Every typography variant Discord ships in TextStyleSheet, kept open for new ones.

The four common font weights used across typography variants.

A theme's semantic and raw colour definitions plus optional background.

Props of RootThemeContextProvider (function). Exports: RootThemeContextProvider.

Props of ThemeProvider (function). Exports: ThemeProvider.

A single semantic colour definition in a Theme.

Props of Title (function). Exports: none.

A button rendered inside a toast.

Props of ToastContainer (function). Exports: ToastContainer.

Props of ToastEntityContent (function). Exports: none.

Props of ToastEntity (function). Exports: ToastEntity.

A handle returned when showing a toast, used to update or close it.

Options accepted when showing a toast.

Props of Toast (function). Exports: Toast.

State and actions of the toast store.

Props of ToggleIconButton (function). Exports: ToggleIconButton.

TransitionStates: MOUNTED = 0, ENTERED = 1, YEETED = 2.

A home screen icon the loader ships, listed in Discord's app icon picker.

A DiscordAsset extended with Unbound's icon-pack overrides and the files of an asset a plugin registered.

One design axis of a variable font, such as wght from 100 to 900.

A value the generator could not type with confidence, so a loose prop accepts anything for it.

Props of VisualEffectView (function). Exports: default.

Props of Icon (memo). Exports: default.

Props of VoidTextInput (function). Exports: default.

Props of WrappedNavigationStack (function). Exports: none.

Props of YouTabLottie (function). Exports: YouTabLottie.

Variables

V

ADDON_KINDS: readonly ["plugin", "theme", "icon-pack", "font"]

The kinds of addon, as a manifest's type declares them. One manager governs each, in this start order.

V

ADDON_SCOPE_GLOBALS: readonly ["React", "unbound", "addon", "patcher", "logger", "setTimeout", "setInterval", "clearTimeout", "clearInterval", "commands"]

The globals a plugin bundle is evaluated with, in parameter order. Bytecode compiled against an earlier list receives them by position, so new globals are only ever appended.

V

CORE_BUCKET: "unbound"

The core Bucket; each addon's Bucket is named after the addon id.

V

DESIGN_COMPONENTS: readonly ["SearchBar", "Badge", "Text", "Heading", "TableRow", "TableSwitchRow", "FormSwitch", "TableCheckboxRow", "TableRadioRow", "TableRadioGroup", "TableRowGroup", "TableRowGroupTitle", "TableRowIcon", "RowButton", "RowGroup", "Button", "IconButton", "ImageButton", "FloatingActionButton", "TextInput", "TextField", "TextArea", "TextAreaField", "SearchField", "GhostInput", "SplitTextInput", "Slider", "Checkbox", "SegmentedControl", "SegmentedControlPages", "Stack", "Card", "AlertModal", "AlertActionButton", "ActionSheet", "ActionSheetRow", "ContextMenu"]

The components of Discord's design module, each of which Unbound can stand in for when Discord drops it.

V

NATIVE_BRIDGE_CAPABILITIES: readonly ["native.objc.classes", "native.objc.invoke", "native.objc.invokeAsync", "native.objc.batch", "native.objc.snapshot", "native.objc.ivars", "native.objc.associations", "native.objc.hooks", "native.ffi.symbols", "native.ffi.call", "native.fabric.mount", "native.fabric.async", "native.runtime.events", "native.java.classes", "native.java.construct", "native.java.fields", "native.java.invoke", "native.java.invokeAsync", "native.java.hooks", "native.java.batch", "native.java.associations", "native.debug.evaluations", "native.debug.environment"]

Every capability name a manifest may declare; an unknown name fails manifest validation.

V

NATIVE_BRIDGE_METHOD_CAPABILITIES: { readonly debug.environment: "native.debug.environment"; readonly debug.recordEvaluation: "native.debug.evaluations"; readonly fabric.batchAsync: "native.fabric.async"; readonly fabric.measure: "native.fabric.mount"; readonly fabric.measureAsync: "native.fabric.async"; readonly fabric.mount: "native.fabric.mount"; readonly fabric.mountAsync: "native.fabric.async"; readonly fabric.releaseIdle: "native.fabric.mount"; readonly fabric.releaseIdleAsync: "native.fabric.async"; readonly fabric.setFrame: "native.fabric.mount"; readonly fabric.setFrameAsync: "native.fabric.async"; readonly fabric.setSize: "native.fabric.mount"; readonly fabric.setSizeAsync: "native.fabric.async"; readonly fabric.unmount: "native.fabric.mount"; readonly fabric.unmountAsync: "native.fabric.async"; readonly fabric.update: "native.fabric.mount"; readonly fabric.updateAsync: "native.fabric.async"; readonly ffi.call: "native.ffi.call"; readonly ffi.symbol: "native.ffi.symbols"; readonly hooks.clearReturnValues: "native.java.hooks"; readonly hooks.hook: "native.java.hooks"; readonly hooks.proxy: "native.java.hooks"; readonly hooks.remove: "native.java.hooks"; readonly hooks.removeReturnValue: "native.java.hooks"; readonly hooks.setReturnValue: "native.java.hooks"; readonly java.batch: "native.java.batch"; readonly java.batchAsync: "native.java.batch"; readonly java.className: "native.java.classes"; readonly java.construct: "native.java.construct"; readonly java.createAssociationKey: "native.java.associations"; readonly java.describe: "native.java.classes"; readonly java.disposePlan: "native.java.invoke"; readonly java.findViews: "native.java.invoke"; readonly java.getAssociatedObject: "native.java.associations"; readonly java.getClass: "native.java.classes"; readonly java.getField: "native.java.fields"; readonly java.invoke: "native.java.invoke"; readonly java.invokeAsync: "native.java.invokeAsync"; readonly java.invokePrepared: "native.java.invoke"; readonly java.invokePreparedAsync: "native.java.invokeAsync"; readonly java.prepare: "native.java.invoke"; readonly java.release: "native.java.classes"; readonly java.respondsTo: "native.java.classes"; readonly java.setAssociatedObject: "native.java.associations"; readonly java.setField: "native.java.fields"; readonly objc.alloc: "native.objc.classes"; readonly objc.array: "native.objc.classes"; readonly objc.batch: "native.objc.batch"; readonly objc.call: "native.objc.invoke"; readonly objc.callSuper: "native.objc.invoke"; readonly objc.className: "native.objc.classes"; readonly objc.create: "native.objc.invoke"; readonly objc.createAssociationKey: "native.objc.associations"; readonly objc.data: "native.objc.classes"; readonly objc.disposePlan: "native.objc.invoke"; readonly objc.findViews: "native.objc.snapshot"; readonly objc.getAssociatedObject: "native.objc.associations"; readonly objc.getClass: "native.objc.classes"; readonly objc.getIvar: "native.objc.ivars"; readonly objc.hook: "native.objc.hooks"; readonly objc.invoke: "native.objc.invoke"; readonly objc.invokeAsync: "native.objc.invokeAsync"; readonly objc.invokePrepared: "native.objc.invoke"; readonly objc.invokePreparedAsync: "native.objc.invokeAsync"; readonly objc.invokeSuper: "native.objc.invoke"; readonly objc.invokeSuperAsync: "native.objc.invokeAsync"; readonly objc.prepare: "native.objc.invoke"; readonly objc.respondsTo: "native.objc.classes"; readonly objc.setAssociatedObject: "native.objc.associations"; readonly objc.setIvar: "native.objc.ivars"; readonly objc.snapshot: "native.objc.snapshot"; readonly objc.struct: "native.objc.classes"; readonly runtime.subscribe: "native.runtime.events" }

The Capability each native bridge method needs; the source of every Capability name. Edit it, then run bun run generate-native-capabilities to regenerate the client's and the loader's Capability lists.

V

NATIVE_BRIDGE_PLATFORM_CAPABILITIES: { readonly android: readonly ["native.ffi.symbols", "native.ffi.call", "native.fabric.async", "native.runtime.events", "native.java.classes", "native.java.construct", "native.java.fields", "native.java.invoke", "native.java.invokeAsync", "native.java.hooks", "native.java.batch", "native.java.associations", "native.debug.evaluations", "native.debug.environment"]; readonly ios: readonly ["native.objc.classes", "native.objc.invoke", "native.objc.invokeAsync", "native.objc.batch", "native.objc.snapshot", "native.objc.ivars", "native.objc.associations", "native.objc.hooks", "native.ffi.symbols", "native.ffi.call", "native.fabric.mount", "native.fabric.async", "native.runtime.events", "native.debug.evaluations", "native.debug.environment"] }

The capabilities each platform's loader offers; Objective-C ones are iOS only and Java ones Android only.

V

NATIVE_BRIDGE_PLATFORMS: readonly ["ios", "android"]

The host platforms a native bridge runs on.

V

NEWER_DESIGN_COMPONENTS: readonly ["SearchBar", "Badge"]

The design components Discord added after the build the generated types describe; see NewerDesignComponents.