omegga 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,3 @@
1
- import { randomUUID as random } from 'node:crypto';
2
-
3
1
  export interface BRColor {
4
2
  r: number;
5
3
  b: number;
@@ -111,6 +109,8 @@ export type EnvironmentPreset = Preset<"Environment", {
111
109
  }>;
112
110
  declare class ConsoleCommand {
113
111
  private readonly versions;
112
+ /** CL version at which the game removed this command, if it was ever removed. */
113
+ removedAt?: number;
114
114
  /** @param versions [sinceVersion, name] pairs in ascending version order */
115
115
  constructor(versions: readonly [
116
116
  number,
@@ -118,6 +118,14 @@ declare class ConsoleCommand {
118
118
  ][]);
119
119
  /** Resolve the command name for a given game CL version. */
120
120
  resolve(version: number): string;
121
+ /** Mark this command as removed from the game at `version` (fluent). */
122
+ removedIn(version: number): this;
123
+ /**
124
+ * Whether this command no longer exists at the given game version. An unknown
125
+ * version (server not started / not detected yet, `<= 0`) is treated as still
126
+ * present so we never warn on commands sent before the version is known.
127
+ */
128
+ isRemovedAt(version: number): boolean;
121
129
  /** every name this command has gone by, across versions */
122
130
  get names(): readonly string[];
123
131
  }
@@ -308,6 +316,11 @@ declare const COMMAND_TABLE: {
308
316
  PlayerParts: {
309
317
  UseFastRender: ConsoleCommand;
310
318
  };
319
+ Prefab: {
320
+ GiveToPlayer: ConsoleCommand;
321
+ Load: ConsoleCommand;
322
+ SaveRegion: ConsoleCommand;
323
+ };
311
324
  Resizer: {
312
325
  LogTests: ConsoleCommand;
313
326
  };
@@ -395,6 +408,8 @@ declare const COMMAND_TABLE: {
395
408
  EnableWires: ConsoleCommand;
396
409
  };
397
410
  World: {
411
+ ClearAll: ConsoleCommand;
412
+ ClearRegion: ConsoleCommand;
398
413
  CreateEmpty: ConsoleCommand;
399
414
  ListRevisions: ConsoleCommand;
400
415
  Load: ConsoleCommand;
@@ -489,31 +504,31 @@ export type IGamemode = {
489
504
  export interface BRSBytes extends Uint8Array {
490
505
  brsOffset: number;
491
506
  }
492
- export declare type Modify<T, R> = Omit<T, keyof R> & R;
493
- export declare type Bytes = Uint8Array | BRSBytes;
494
- export declare type Uuid = string;
495
- export declare type UnrealClass = string;
496
- export declare type UnrealObject = string;
497
- export declare type UnrealBoolean = boolean;
498
- export declare type UnrealFloat = number;
499
- export declare type UnrealInteger = number;
500
- export declare type UnrealInteger64 = number;
501
- export declare type UnrealColor = [
507
+ export type Modify<T, R> = Omit<T, keyof R> & R;
508
+ export type Bytes = Uint8Array | BRSBytes;
509
+ export type Uuid = string;
510
+ export type UnrealClass = string;
511
+ export type UnrealObject = string;
512
+ export type UnrealBoolean = boolean;
513
+ export type UnrealFloat = number;
514
+ export type UnrealInteger = number;
515
+ export type UnrealInteger64 = number;
516
+ export type UnrealColor = [
502
517
  number,
503
518
  number,
504
519
  number,
505
520
  number
506
521
  ];
507
- export declare type UnrealByte = number;
508
- export declare type UnrealRotator = [
522
+ export type UnrealByte = number;
523
+ export type UnrealRotator = [
509
524
  number,
510
525
  number,
511
526
  number
512
527
  ];
513
- export declare type Vector3d = Vector;
514
- export declare type IntVector = Vector;
515
- export declare type UnrealString = string;
516
- export declare type WireGraphVariant = {
528
+ export type Vector3d = Vector;
529
+ export type IntVector = Vector;
530
+ export type UnrealString = string;
531
+ export type WireGraphVariant = {
517
532
  number: number;
518
533
  } | {
519
534
  integer: number;
@@ -524,9 +539,9 @@ export declare type WireGraphVariant = {
524
539
  } | {
525
540
  object: true;
526
541
  };
527
- export declare type BRInventoryEntryPlan = string;
528
- export declare type UnrealType = UnrealClass | UnrealObject | UnrealBoolean | UnrealFloat | UnrealColor | UnrealByte | UnrealRotator | UnrealString | WireGraphVariant | UnrealInteger64 | Vector3d | IntVector | BRInventoryEntryPlan;
529
- export declare type UnrealTypeFromString<T> = T extends "Class" ? UnrealClass : T extends "Object" ? UnrealObject : T extends "Boolean" ? UnrealBoolean : T extends "Float" ? UnrealFloat : T extends "Color" ? UnrealColor : T extends "Byte" ? UnrealByte : T extends "Rotator" ? UnrealRotator : T extends "Rotator3d" ? UnrealRotator : T extends "Vector3d" ? Vector3d : T extends "IntVector" ? IntVector : T extends "String" ? UnrealString : T extends "BRInventoryEntryPlan" ? BRInventoryEntryPlan : T extends "WireGraphVariant" ? WireGraphVariant : T extends "WireGraphPrimMathVariant" ? WireGraphVariant : T extends "Integer" ? UnrealInteger : T extends "Integer64" ? UnrealInteger64 : UnrealType;
542
+ export type BRInventoryEntryPlan = string;
543
+ export type UnrealType = UnrealClass | UnrealObject | UnrealBoolean | UnrealFloat | UnrealColor | UnrealByte | UnrealRotator | UnrealString | WireGraphVariant | UnrealInteger64 | Vector3d | IntVector | BRInventoryEntryPlan;
544
+ export type UnrealTypeFromString<T> = T extends "Class" ? UnrealClass : T extends "Object" ? UnrealObject : T extends "Boolean" ? UnrealBoolean : T extends "Float" ? UnrealFloat : T extends "Color" ? UnrealColor : T extends "Byte" ? UnrealByte : T extends "Rotator" ? UnrealRotator : T extends "Rotator3d" ? UnrealRotator : T extends "Vector3d" ? Vector3d : T extends "IntVector" ? IntVector : T extends "String" ? UnrealString : T extends "BRInventoryEntryPlan" ? BRInventoryEntryPlan : T extends "WireGraphVariant" ? WireGraphVariant : T extends "WireGraphPrimMathVariant" ? WireGraphVariant : T extends "Integer" ? UnrealInteger : T extends "Integer64" ? UnrealInteger64 : UnrealType;
530
545
  export interface User {
531
546
  id: Uuid;
532
547
  name: string;
@@ -551,7 +566,7 @@ declare enum Rotation {
551
566
  Deg180 = 2,
552
567
  Deg270 = 3
553
568
  }
554
- export declare type ColorRgb = [
569
+ export type ColorRgb = [
555
570
  number,
556
571
  number,
557
572
  number
@@ -575,7 +590,7 @@ export interface UnknownComponents {
575
590
  };
576
591
  };
577
592
  }
578
- export declare type KnownComponents = {
593
+ export type KnownComponents = {
579
594
  BCD_SpotLight: {
580
595
  version: 1;
581
596
  brick_indices?: number[];
@@ -1368,24 +1383,24 @@ export declare type KnownComponents = {
1368
1383
  };
1369
1384
  export interface DefinedComponents extends UnknownComponents, Partial<KnownComponents> {
1370
1385
  }
1371
- export declare type Components<C extends DefinedComponents> = {
1386
+ export type Components<C extends DefinedComponents> = {
1372
1387
  [T in keyof C]: {
1373
1388
  [V in keyof C[T]["properties"]]: UnrealTypeFromString<C[T]["properties"][V]>;
1374
1389
  };
1375
1390
  } & {
1376
1391
  [component_name: string]: AppliedComponent;
1377
1392
  };
1378
- export declare type Vector = [
1393
+ export type Vector = [
1379
1394
  number,
1380
1395
  number,
1381
1396
  number
1382
1397
  ];
1383
- export declare type WirePort = {
1398
+ export type WirePort = {
1384
1399
  brick_index: number;
1385
1400
  component: string;
1386
1401
  port: string;
1387
1402
  };
1388
- export declare type Wire = {
1403
+ export type Wire = {
1389
1404
  source: WirePort;
1390
1405
  target: WirePort;
1391
1406
  };
@@ -1408,12 +1423,12 @@ export interface BrickV3 extends BrickV2 {
1408
1423
  export interface BrickV8 extends BrickV3 {
1409
1424
  components: Components<DefinedComponents>;
1410
1425
  }
1411
- export declare type BrickV9 = Modify<BrickV8, {
1426
+ export type BrickV9 = Modify<BrickV8, {
1412
1427
  physical_index: number;
1413
1428
  material_intensity: number;
1414
1429
  color: ColorRgb | number;
1415
1430
  }>;
1416
- export declare type BrickV10 = Modify<BrickV9, {
1431
+ export type BrickV10 = Modify<BrickV9, {
1417
1432
  collision: Collision;
1418
1433
  }>;
1419
1434
  export interface BrsV1 {
@@ -1427,21 +1442,21 @@ export interface BrsV1 {
1427
1442
  colors: UnrealColor[];
1428
1443
  bricks: BrickV1[];
1429
1444
  }
1430
- export declare type BrsV2 = Modify<BrsV1, {
1445
+ export type BrsV2 = Modify<BrsV1, {
1431
1446
  version: 2;
1432
1447
  materials: string[];
1433
1448
  bricks: BrickV2[];
1434
1449
  }>;
1435
- export declare type BrsV3 = Modify<BrsV2, {
1450
+ export type BrsV3 = Modify<BrsV2, {
1436
1451
  version: 3;
1437
1452
  brick_owners: User[];
1438
1453
  bricks: BrickV3[];
1439
1454
  }>;
1440
- export declare type BrsV4 = Modify<BrsV3, {
1455
+ export type BrsV4 = Modify<BrsV3, {
1441
1456
  version: 4;
1442
1457
  save_time: Uint8Array;
1443
1458
  }>;
1444
- export declare type BrsV8 = Modify<BrsV4, {
1459
+ export type BrsV8 = Modify<BrsV4, {
1445
1460
  version: 8;
1446
1461
  host: User;
1447
1462
  brick_owners: LegacyOwner[];
@@ -1450,20 +1465,20 @@ export declare type BrsV8 = Modify<BrsV4, {
1450
1465
  bricks: BrickV8[];
1451
1466
  components: DefinedComponents;
1452
1467
  }>;
1453
- export declare type BrsV9 = Modify<BrsV8, {
1468
+ export type BrsV9 = Modify<BrsV8, {
1454
1469
  version: 9;
1455
1470
  physical_materials: string[];
1456
1471
  bricks: BrickV9[];
1457
1472
  }>;
1458
- export declare type BrsV10 = Modify<BrsV9, {
1473
+ export type BrsV10 = Modify<BrsV9, {
1459
1474
  version: 10;
1460
1475
  bricks: BrickV10[];
1461
1476
  }>;
1462
- export declare type BrsV14 = Modify<BrsV10, {
1477
+ export type BrsV14 = Modify<BrsV10, {
1463
1478
  version: 14;
1464
1479
  wires: Wire[];
1465
1480
  }>;
1466
- export declare type ReadSaveObject = BrsV1 | BrsV2 | BrsV3 | BrsV4 | BrsV8 | BrsV9 | BrsV10 | BrsV14;
1481
+ export type ReadSaveObject = BrsV1 | BrsV2 | BrsV3 | BrsV4 | BrsV8 | BrsV9 | BrsV10 | BrsV14;
1467
1482
  export interface Brick {
1468
1483
  asset_name_index?: number;
1469
1484
  size: Vector;
@@ -1497,6 +1512,2251 @@ export interface WriteSaveObject {
1497
1512
  components?: DefinedComponents;
1498
1513
  wires?: Wire[];
1499
1514
  }
1515
+ export interface FoundFile {
1516
+ contentId: number;
1517
+ createdAt: number;
1518
+ }
1519
+ export interface WorldFs {
1520
+ findFileByPath(path: string): FoundFile | null;
1521
+ /** The file revision whose [created_at, deleted_at) interval contains
1522
+ * date. For single-revision containers this is findFileByPath. */
1523
+ findFileByPathAtRevision(path: string, date: number): FoundFile | null;
1524
+ /** Decompressed blob content. */
1525
+ readBlob(contentId: number): Uint8Array;
1526
+ readFile(path: string): Uint8Array;
1527
+ /** Names of the subfolders of a folder path ('' = root). */
1528
+ childFolders(path: string): string[];
1529
+ }
1530
+ export type PendingEntry = [
1531
+ name: string,
1532
+ node: PendingNode
1533
+ ];
1534
+ export type PendingNode = {
1535
+ type: "folder";
1536
+ children: PendingEntry[];
1537
+ } | {
1538
+ type: "file";
1539
+ content: Uint8Array;
1540
+ };
1541
+ export type Compressor = (data: Uint8Array) => Uint8Array | null;
1542
+ export interface BrzContainerOptions {
1543
+ /** zstd compressor (e.g. node:zlib zstdCompressSync); return null to skip.
1544
+ * Omitted -> every blob stored raw (still a valid archive, and what the
1545
+ * byte-parity gates compare against). */
1546
+ compress?: Compressor;
1547
+ }
1548
+ declare function writeBrzContainer(root: PendingEntry[], options?: BrzContainerOptions): Uint8Array;
1549
+ declare class BrzReader implements WorldFs {
1550
+ readonly folderParentIds: number[];
1551
+ readonly folderNames: string[];
1552
+ readonly fileParentIds: number[];
1553
+ readonly fileContentIds: number[];
1554
+ readonly fileNames: string[];
1555
+ private blobs;
1556
+ private blobData;
1557
+ private folderLut;
1558
+ private fileLut;
1559
+ private pathCache;
1560
+ private constructor();
1561
+ static from(data: Uint8Array): BrzReader;
1562
+ /** parentId -1 = root */
1563
+ findFolder(parentId: number, name: string): number | null;
1564
+ findFile(parentId: number, name: string): {
1565
+ contentId: number;
1566
+ } | null;
1567
+ private folderIdOf;
1568
+ /** Names of the subfolders of a folder path ('' = root), in id order.
1569
+ * A missing path yields []. */
1570
+ childFolders(path: string): string[];
1571
+ /** Names of the files directly inside a folder path ('' = root), in id
1572
+ * order. A missing path yields []. */
1573
+ childFiles(path: string): string[];
1574
+ blobMethod(contentId: number): number;
1575
+ private blob;
1576
+ /** Decompress (if needed) and verify size + BLAKE3. */
1577
+ readBlob(contentId: number): Uint8Array;
1578
+ /** '/'-separated path from the root. An empty file (contentId -1) returns
1579
+ * an empty buffer (the reference reader treats empty files as unfindable
1580
+ * — deliberate, documented deviation for usability). */
1581
+ readFile(path: string): Uint8Array;
1582
+ /** Path lookup returning the WorldFs FoundFile shape. createdAt is always
1583
+ * 0: a .brz archive holds exactly one revision. */
1584
+ findFileByPath(path: string): FoundFile | null;
1585
+ findFileByPathAtRevision(path: string, _date: number): FoundFile | null;
1586
+ /** All file paths in file-id (BFS) order. */
1587
+ listPaths(): string[];
1588
+ }
1589
+ declare class ByteWriter {
1590
+ private buf;
1591
+ private view;
1592
+ private len;
1593
+ private ensure;
1594
+ get length(): number;
1595
+ u8(v: number): void;
1596
+ i8(v: number): void;
1597
+ bytes(v: Uint8Array | number[]): void;
1598
+ u16be(v: number): void;
1599
+ u32be(v: number): void;
1600
+ u64be(v: bigint): void;
1601
+ i16be(v: number): void;
1602
+ i32be(v: number): void;
1603
+ i64be(v: bigint): void;
1604
+ f32be(v: number): void;
1605
+ f64be(v: number): void;
1606
+ u16le(v: number): void;
1607
+ u32le(v: number): void;
1608
+ u64le(v: bigint): void;
1609
+ i16le(v: number): void;
1610
+ i32le(v: number): void;
1611
+ i64le(v: bigint): void;
1612
+ f32le(v: number): void;
1613
+ f64le(v: number): void;
1614
+ toBytes(): Uint8Array;
1615
+ }
1616
+ declare class ByteReader {
1617
+ data: Uint8Array;
1618
+ private view;
1619
+ offset: number;
1620
+ constructor(data: Uint8Array, offset?: number);
1621
+ get remaining(): number;
1622
+ private need;
1623
+ peek(): number;
1624
+ u8(): number;
1625
+ i8(): number;
1626
+ bytes(n: number): Uint8Array;
1627
+ u16be(): number;
1628
+ u32be(): number;
1629
+ u64be(): bigint;
1630
+ i16be(): number;
1631
+ i32be(): number;
1632
+ i64be(): bigint;
1633
+ f32be(): number;
1634
+ f64be(): number;
1635
+ u16le(): number;
1636
+ u32le(): number;
1637
+ u64le(): bigint;
1638
+ i16le(): number;
1639
+ i32le(): number;
1640
+ i64le(): bigint;
1641
+ f32le(): number;
1642
+ f64le(): number;
1643
+ }
1644
+ export interface SchemaData {
1645
+ enums: Map<string, Map<string, number>>;
1646
+ variants: Map<string, string[]>;
1647
+ structs: Map<string, Map<string, PropDesc>>;
1648
+ }
1649
+ export type EmbeddedSchemaName = "BRSavedGlobalDataSoA" | "BRSavedOwnerTableSoA" | "BRSavedBrickChunkIndexSoA" | "BRSavedBrickChunkSoA" | "BRSavedWireChunkSoA" | "BRSavedComponentChunkSoA" | "BRSavedComponentChunkSoA_max" | "BRSavedEntityChunkIndexSoA" | "BRSavedEntityChunkSoA";
1650
+ export type PropDesc = {
1651
+ kind: "type" | "array" | "flatarray";
1652
+ type: string;
1653
+ } | {
1654
+ kind: "map";
1655
+ key: string;
1656
+ value: string;
1657
+ };
1658
+ /** Compact data form emitted by scripts/syncBrdbData.mjs:
1659
+ * 'T' = plain type, ['T'] = array, ['T', null] = flat array,
1660
+ * { K: 'V' } = map (single entry). */
1661
+ export type SchemaSourceProp = string | readonly [
1662
+ string
1663
+ ] | readonly [
1664
+ string,
1665
+ null
1666
+ ] | Readonly<Record<string, string>>;
1667
+ export interface SchemaSource {
1668
+ enums: Readonly<Record<string, Readonly<Record<string, number>>>>;
1669
+ variants: Readonly<Record<string, readonly string[]>>;
1670
+ structs: Readonly<Record<string, Readonly<Record<string, SchemaSourceProp>>>>;
1671
+ }
1672
+ export type BrdbValue = number | boolean | string | null | BrdbValue[] | {
1673
+ [field: string]: BrdbValue;
1674
+ };
1675
+ /** A decoded variant value: which member the tag selected, plus its payload.
1676
+ * Kept tagged (rather than flattened like the reference reader) so that
1677
+ * decode -> encode round-trips byte-identically. */
1678
+ export interface BrdbVariant {
1679
+ $variant: string;
1680
+ value: BrdbValue;
1681
+ }
1682
+ declare class BrdbSchema {
1683
+ readonly enums: Map<string, Map<string, number>>;
1684
+ readonly variants: Map<string, string[]>;
1685
+ readonly structs: Map<string, Map<string, PropDesc>>;
1686
+ constructor(enums: Map<string, Map<string, number>>, variants: Map<string, string[]>, structs: Map<string, Map<string, PropDesc>>);
1687
+ static fromText(text: string): BrdbSchema;
1688
+ /** Hydrate a schema from the generated data form (see SchemaSource). */
1689
+ static fromData(data: SchemaSource): BrdbSchema;
1690
+ static fromBinary(bytes: Uint8Array): BrdbSchema;
1691
+ /** Extract the named structs plus every type they transitively reference
1692
+ * (sub-structs, enums, variants, and variant member types) into a
1693
+ * self-contained subset. Primitive/unknown names are skipped. Uses a LIFO
1694
+ * worklist; the result ORDER matches the reference implementation, and
1695
+ * that order determines the serialized schema's bytes. */
1696
+ extractStructsTransitive(seeds: Iterable<string>): SchemaData;
1697
+ /** Merge definitions into this schema. Existing names keep their position
1698
+ * (and are replaced); new names append, matching the reference merge. */
1699
+ merge(data: SchemaData): void;
1700
+ /** The zero value of a type: numbers 0, bool false, str '', asset refs
1701
+ * null, arrays empty, structs recursive, enums ordinal 0, variants tag 0
1702
+ * with the first member's zero value. */
1703
+ zeroValue(ty: string): BrdbValue;
1704
+ /** Complete a partial struct value: present fields pass through, missing
1705
+ * fields fall back to `defaults`, then to their zero value. Unknown keys
1706
+ * in `partial` are an error; unknown keys in `defaults` are ignored (the
1707
+ * defaults table may carry fields a given schema revision lacks). */
1708
+ fillStruct(structName: string, partial: Readonly<Record<string, BrdbValue>>, defaults?: Readonly<Record<string, BrdbValue>>): Record<string, BrdbValue>;
1709
+ topoStructOrder(): string[];
1710
+ toBinary(): Uint8Array;
1711
+ flatTypeSize(ty: string): number;
1712
+ writeValue(w: ByteWriter, ty: string, value: BrdbValue): void;
1713
+ private writeVariantPayload;
1714
+ private writeLegacyWireVariant;
1715
+ private writeProperty;
1716
+ private writeFlat;
1717
+ private static readonly MAX_DECODE_DEPTH;
1718
+ readValue(r: ByteReader, ty: string, depth?: number): BrdbValue;
1719
+ private readLegacyWireVariant;
1720
+ private readProperty;
1721
+ private readFlat;
1722
+ encode(ty: string, value: BrdbValue): Uint8Array;
1723
+ decode(bytes: Uint8Array, ty: string): BrdbValue;
1724
+ }
1725
+ declare function embeddedSchema(name: EmbeddedSchemaName): BrdbSchema;
1726
+ export type BrickComponentData_AudioEmitter = {
1727
+ bEnabled: boolean;
1728
+ AudioDescriptor: number | null;
1729
+ VolumeMultiplier: number;
1730
+ PitchMultiplier: number;
1731
+ InnerRadius: number;
1732
+ MaxDistance: number;
1733
+ bSpatialization: boolean;
1734
+ FocusAzimuth: number;
1735
+ NonFocusAzimuth: number;
1736
+ NonFocusVolumeAttenuation: number;
1737
+ };
1738
+ export type BrickComponentData_Bearing = {
1739
+ bLimitAngle: boolean;
1740
+ LimitAngle: number;
1741
+ bAnglesArePercentages: boolean;
1742
+ bReversed: boolean;
1743
+ Damping: number;
1744
+ };
1745
+ export type BrickComponentData_Button = {
1746
+ PressSound: number | null;
1747
+ ReleaseSound: number | null;
1748
+ bAllowNearbyInteraction: boolean;
1749
+ bHiddenInteraction: boolean;
1750
+ PromptCustomLabel: string;
1751
+ };
1752
+ export type BrickComponentData_CheckPoint = {
1753
+ bRotatePlayerGravityOnSpawn: boolean;
1754
+ };
1755
+ export type BrickComponentData_Damage = {
1756
+ Damage: number;
1757
+ RepeatDelay: number;
1758
+ Message: string;
1759
+ ConsoleTag: string;
1760
+ };
1761
+ export type BrickComponentData_Interact = {
1762
+ InteractSound: number | null;
1763
+ Message: string;
1764
+ ConsoleTag: string;
1765
+ bAllowNearbyInteraction: boolean;
1766
+ bHiddenInteraction: boolean;
1767
+ PromptCustomLabel: string;
1768
+ };
1769
+ export type BrickComponentData_Internal_AttachedZone = {
1770
+ ZoneStartDistance: number;
1771
+ ZoneEndDistance: number;
1772
+ bIsBuildingZone: boolean;
1773
+ bIsLooseZone: boolean;
1774
+ bIsShareZone: boolean;
1775
+ bDetectPlayers: boolean;
1776
+ bDetectPlayers1: boolean;
1777
+ bDetectPlayers2: boolean;
1778
+ bDetectPlayers3: boolean;
1779
+ bDetectEntities: boolean;
1780
+ bDetectProjectiles: boolean;
1781
+ TagFilter: string;
1782
+ };
1783
+ export type BrickComponentData_Internal_CharacterZoneEvent = {
1784
+ bCollisionEnabled_Player: boolean;
1785
+ bCollisionEnabled_Player1: boolean;
1786
+ bCollisionEnabled_Player2: boolean;
1787
+ bCollisionEnabled_Player3: boolean;
1788
+ };
1789
+ export type BrickComponentData_Internal_EntityZoneEvent = {};
1790
+ export type BrickComponentData_Internal_InputSplitter_V2 = {};
1791
+ export type BrickComponentData_Internal_Microchip = {};
1792
+ export type BrickComponentData_Internal_MicrochipInput = {
1793
+ PortLabel: string;
1794
+ };
1795
+ export type BrickComponentData_Internal_MicrochipOutput = {
1796
+ PortLabel: string;
1797
+ };
1798
+ export type BrickComponentData_Internal_ProjectileZoneEvent = {};
1799
+ export type BrickComponentData_Internal_ReadBrickGrid = {};
1800
+ export type BrickComponentData_Internal_ZoneEvent = {};
1801
+ export type BrickComponentData_Motor = {
1802
+ bEnabled: boolean;
1803
+ Speed: number;
1804
+ Power: number;
1805
+ bLimitAngle: boolean;
1806
+ LimitAngle: number;
1807
+ bAnglesArePercentages: boolean;
1808
+ bReversed: boolean;
1809
+ Damping: number;
1810
+ };
1811
+ export type BrickComponentData_MotorSlider = {
1812
+ bEnabled: boolean;
1813
+ Speed: number;
1814
+ Power: number;
1815
+ bPositionsArePercentages: boolean;
1816
+ bReversed: boolean;
1817
+ Damping: number;
1818
+ };
1819
+ export type BrickComponentData_OneShotAudioEmitter = {
1820
+ AudioDescriptor: number | null;
1821
+ VolumeMultiplier: number;
1822
+ PitchMultiplier: number;
1823
+ InnerRadius: number;
1824
+ MaxDistance: number;
1825
+ bSpatialization: boolean;
1826
+ bEnableRepeat: boolean;
1827
+ RepeatTime: number;
1828
+ RepeatVariance: number;
1829
+ RepeatCount: number;
1830
+ };
1831
+ export type BrickComponentData_ProjectileSpawner = {
1832
+ ProjectileClass: number | null;
1833
+ FireSound: number | null;
1834
+ Direction: number;
1835
+ SpawnLocation: number;
1836
+ SpawnMargin: number;
1837
+ bEnabled: boolean;
1838
+ NumberOfShots: number;
1839
+ SpreadConeAngle: number;
1840
+ bSpreadBiasedTowardsCenter: boolean;
1841
+ FireRate: number;
1842
+ DamageMultiplier: number;
1843
+ SpeedMultiplier: number;
1844
+ ScaleMultiplier: number;
1845
+ };
1846
+ export type BrickComponentData_Rerouter = {};
1847
+ export type BrickComponentData_RigidBearing = {
1848
+ TargetAngle: number;
1849
+ bAnglesArePercentages: boolean;
1850
+ bReversed: boolean;
1851
+ InterpMode: number;
1852
+ SmoothTime: number;
1853
+ TopSpeed: number;
1854
+ };
1855
+ export type BrickComponentData_RigidSlider = {
1856
+ TargetPosition: number;
1857
+ bPositionsArePercentages: boolean;
1858
+ bReversed: boolean;
1859
+ InterpMode: number;
1860
+ SmoothTime: number;
1861
+ TopSpeed: number;
1862
+ };
1863
+ export type BrickComponentData_Servo = {
1864
+ bEnabled: boolean;
1865
+ TargetAngle: number;
1866
+ Power: number;
1867
+ ActiveDamping: number;
1868
+ ForceLimit: number;
1869
+ bLimitAngle: boolean;
1870
+ LimitAngle: number;
1871
+ bAnglesArePercentages: boolean;
1872
+ bReversed: boolean;
1873
+ Damping: number;
1874
+ };
1875
+ export type BrickComponentData_ServoSlider = {
1876
+ bEnabled: boolean;
1877
+ TargetPosition: number;
1878
+ Power: number;
1879
+ TopSpeed: number;
1880
+ Exponent: number;
1881
+ bPositionsArePercentages: boolean;
1882
+ bReversed: boolean;
1883
+ Damping: number;
1884
+ };
1885
+ export type BrickComponentData_Slider = {
1886
+ bPositionsArePercentages: boolean;
1887
+ bReversed: boolean;
1888
+ Damping: number;
1889
+ };
1890
+ export type BrickComponentData_SpawnPoint = {
1891
+ bRotatePlayerGravityOnSpawn: boolean;
1892
+ bEnable: boolean;
1893
+ };
1894
+ export type BrickComponentData_Switch = {
1895
+ bEnabled: boolean;
1896
+ InteractSound: number | null;
1897
+ bAllowNearbyInteraction: boolean;
1898
+ bHiddenInteraction: boolean;
1899
+ PromptCustomLabel: string;
1900
+ };
1901
+ export type BrickComponentData_Target = {
1902
+ OnTime: number;
1903
+ };
1904
+ export type BrickComponentData_TeleportDestination = {};
1905
+ export type BrickComponentData_Thruster = {
1906
+ bEnabled: boolean;
1907
+ Force: number;
1908
+ Throttle: number;
1909
+ Pitch: number;
1910
+ Yaw: number;
1911
+ bSpawnLight: boolean;
1912
+ };
1913
+ export type BrickComponentData_Touch = {
1914
+ BeginTouchSound: number | null;
1915
+ EndTouchSound: number | null;
1916
+ bCollisionEnabled_Player: boolean;
1917
+ bCollisionEnabled_Player1: boolean;
1918
+ bCollisionEnabled_Player2: boolean;
1919
+ bCollisionEnabled_Player3: boolean;
1920
+ };
1921
+ export type BrickComponentData_WireGraph_AudioReference = {
1922
+ Asset: number | null;
1923
+ };
1924
+ export type BrickComponentData_WireGraph_BrickAssetReference = {
1925
+ Asset: number | null;
1926
+ };
1927
+ export type BrickComponentData_WireGraph_DeltaTime = {};
1928
+ export type BrickComponentData_WireGraph_EntityTypeReference = {
1929
+ Asset: number | null;
1930
+ };
1931
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Average = {
1932
+ Value: BrdbVariant;
1933
+ };
1934
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Base = {};
1935
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_DualRef = {};
1936
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_ElementOp = {
1937
+ Index: number;
1938
+ Value: BrdbVariant;
1939
+ };
1940
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Find = {
1941
+ Value: BrdbVariant;
1942
+ };
1943
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Get = {
1944
+ Index: number;
1945
+ Value: BrdbVariant;
1946
+ };
1947
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_GetLength = {};
1948
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Insert = {
1949
+ Index: number;
1950
+ Value: BrdbVariant;
1951
+ };
1952
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_MinMax = {
1953
+ Value: BrdbVariant;
1954
+ };
1955
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Pop = {
1956
+ Value: BrdbVariant;
1957
+ };
1958
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Push = {
1959
+ Value: BrdbVariant;
1960
+ };
1961
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_RemoveAtIndex = {
1962
+ Index: number;
1963
+ };
1964
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Resize = {
1965
+ Size: number;
1966
+ Value: BrdbVariant;
1967
+ };
1968
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Slice = {
1969
+ Start: number;
1970
+ Count: number;
1971
+ };
1972
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Sort = {
1973
+ bDescending: boolean;
1974
+ };
1975
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Sum = {
1976
+ Value: BrdbVariant;
1977
+ };
1978
+ export type BrickComponentData_WireGraph_Exec_ArrayVar_Swap = {
1979
+ IndexA: number;
1980
+ IndexB: number;
1981
+ };
1982
+ export type BrickComponentData_WireGraph_Exec_Character_AddInventoryEntity = {};
1983
+ export type BrickComponentData_WireGraph_Exec_Character_AddInventoryItem = {};
1984
+ export type BrickComponentData_WireGraph_Exec_Character_GetAim = {};
1985
+ export type BrickComponentData_WireGraph_Exec_Character_GetDamage = {};
1986
+ export type BrickComponentData_WireGraph_Exec_Character_GetFromController = {};
1987
+ export type BrickComponentData_WireGraph_Exec_Character_IncDamage = {
1988
+ Amount: number;
1989
+ };
1990
+ export type BrickComponentData_WireGraph_Exec_Character_SetDamage = {
1991
+ Damage: number;
1992
+ };
1993
+ export type BrickComponentData_WireGraph_Exec_Character_SetInventoryEntity = {
1994
+ Slot: number;
1995
+ };
1996
+ export type BrickComponentData_WireGraph_Exec_Character_SetInventoryItem = {
1997
+ Slot: number;
1998
+ };
1999
+ export type BrickComponentData_WireGraph_Exec_Character_SetTempPermission = {
2000
+ PermissionTagStr: string;
2001
+ bPermissionEnable: boolean;
2002
+ };
2003
+ export type BrickComponentData_WireGraph_Exec_Character_ShowHint = {
2004
+ HintTitle: string;
2005
+ HintText: string;
2006
+ };
2007
+ export type BrickComponentData_WireGraph_Exec_ChatCommand = {
2008
+ CommandName: string;
2009
+ HelpText: string;
2010
+ };
2011
+ export type BrickComponentData_WireGraph_Exec_Controller_GetDisplayName = {};
2012
+ export type BrickComponentData_WireGraph_Exec_Controller_GetFromEntity = {};
2013
+ export type BrickComponentData_WireGraph_Exec_Controller_GetUserId = {};
2014
+ export type BrickComponentData_WireGraph_Exec_Controller_GetUserName = {};
2015
+ export type BrickComponentData_WireGraph_Exec_Controller_HasPermission = {
2016
+ PermissionName: string;
2017
+ };
2018
+ export type BrickComponentData_WireGraph_Exec_Controller_HasRole = {
2019
+ RoleName: string;
2020
+ };
2021
+ export type BrickComponentData_WireGraph_Exec_Controller_IsTrustedByBrickOwner = {};
2022
+ export type BrickComponentData_WireGraph_Exec_Controller_SetCanRespawn = {
2023
+ bCanRespawn: boolean;
2024
+ };
2025
+ export type BrickComponentData_WireGraph_Exec_Controller_ShowChatMessage = {
2026
+ Message: string;
2027
+ };
2028
+ export type BrickComponentData_WireGraph_Exec_Controller_ShowStatusMessage = {};
2029
+ export type BrickComponentData_WireGraph_Exec_Cycle = {
2030
+ Count: number;
2031
+ Value: number;
2032
+ };
2033
+ export type BrickComponentData_WireGraph_Exec_Entity_GetAngularVelocity = {};
2034
+ export type BrickComponentData_WireGraph_Exec_Entity_GetLinearVelocity = {};
2035
+ export type BrickComponentData_WireGraph_Exec_Entity_GetLocation = {};
2036
+ export type BrickComponentData_WireGraph_Exec_Entity_GetLocationRotation = {};
2037
+ export type BrickComponentData_WireGraph_Exec_Entity_GetRotation = {};
2038
+ export type BrickComponentData_WireGraph_Exec_Entity_GetTag = {};
2039
+ export type BrickComponentData_WireGraph_Exec_Entity_GetVelocity = {};
2040
+ export type BrickComponentData_WireGraph_Exec_Entity_PlayAudioAt = {
2041
+ AudioDescriptor: number | null;
2042
+ VolumeMultiplier: number;
2043
+ PitchMultiplier: number;
2044
+ InnerRadius: number;
2045
+ MaxDistance: number;
2046
+ bSpatialization: boolean;
2047
+ };
2048
+ export type BrickComponentData_WireGraph_Exec_Entity_SetFrozen = {
2049
+ bFrozen: boolean;
2050
+ };
2051
+ export type BrickComponentData_WireGraph_Exec_Entity_SetTag = {
2052
+ Tag: string;
2053
+ };
2054
+ export type BrickComponentData_WireGraph_Exec_Gamemode_BroadcastChatMessage = {
2055
+ Message: string;
2056
+ };
2057
+ export type BrickComponentData_WireGraph_Exec_Gamemode_BroadcastStatusMessage = {
2058
+ Message: string;
2059
+ bFlashIfUnchanged: boolean;
2060
+ };
2061
+ export type BrickComponentData_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers = {};
2062
+ export type BrickComponentData_WireGraph_Exec_Gamemode_GetCurrentRound = {};
2063
+ export type BrickComponentData_WireGraph_Exec_Gamemode_GetLeaderboardValue = {
2064
+ Key: string;
2065
+ };
2066
+ export type BrickComponentData_WireGraph_Exec_Gamemode_GetTeam = {};
2067
+ export type BrickComponentData_WireGraph_Exec_Gamemode_GetTeamByName = {
2068
+ TeamName: string;
2069
+ };
2070
+ export type BrickComponentData_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue = {
2071
+ Key: string;
2072
+ };
2073
+ export type BrickComponentData_WireGraph_Exec_Gamemode_GetTeamName = {};
2074
+ export type BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue = {
2075
+ Key: string;
2076
+ Value: number;
2077
+ };
2078
+ export type BrickComponentData_WireGraph_Exec_Gamemode_PlayerWins = {
2079
+ bTeamWinsInstead: boolean;
2080
+ };
2081
+ export type BrickComponentData_WireGraph_Exec_Gamemode_SetTeam = {
2082
+ bPinPlayerToTeam: boolean;
2083
+ };
2084
+ export type BrickComponentData_WireGraph_Exec_Gamemode_SetTeamPinned = {
2085
+ bPinned: boolean;
2086
+ };
2087
+ export type BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue = {
2088
+ Key: string;
2089
+ Value: number;
2090
+ };
2091
+ export type BrickComponentData_WireGraph_Exec_Gamemode_TeamWins = {};
2092
+ export type BrickComponentData_WireGraph_Exec_PlayGlobalAudio = {
2093
+ AudioDescriptor: number | null;
2094
+ VolumeMultiplier: number;
2095
+ PitchMultiplier: number;
2096
+ };
2097
+ export type BrickComponentData_WireGraph_Exec_PrintToConsole = {
2098
+ Text: string;
2099
+ };
2100
+ export type BrickComponentData_WireGraph_Exec_Random = {
2101
+ Min: BrdbVariant;
2102
+ Max: BrdbVariant;
2103
+ };
2104
+ export type BrickComponentData_WireGraph_Exec_Toggle = {
2105
+ Value: boolean;
2106
+ };
2107
+ export type BrickComponentData_WireGraph_Exec_Var_EditOrGet = {
2108
+ Value: BrdbVariant;
2109
+ };
2110
+ export type BrickComponentData_WireGraph_Exec_Var_Get = {
2111
+ Value: BrdbVariant;
2112
+ };
2113
+ export type BrickComponentData_WireGraph_ExecBranch = {
2114
+ bCond: boolean;
2115
+ };
2116
+ export type BrickComponentData_WireGraph_ExecUnion = {};
2117
+ export type BrickComponentData_WireGraph_Expr_Bool_Bool = {
2118
+ bInput: boolean;
2119
+ };
2120
+ export type BrickComponentData_WireGraph_Expr_BoolBool_Bool = {
2121
+ bInputA: boolean;
2122
+ bInputB: boolean;
2123
+ };
2124
+ export type BrickComponentData_WireGraph_Expr_Compare = {
2125
+ InputA: BrdbVariant;
2126
+ InputB: BrdbVariant;
2127
+ };
2128
+ export type BrickComponentData_WireGraph_Expr_Convert = {
2129
+ TargetType: BrdbVariant;
2130
+ };
2131
+ export type BrickComponentData_WireGraph_Expr_EdgeDetector = {
2132
+ Input: number;
2133
+ bPulseOnRisingEdge: boolean;
2134
+ bPulseOnFallingEdge: boolean;
2135
+ };
2136
+ export type BrickComponentData_WireGraph_Expr_Float_Float = {
2137
+ Input: number;
2138
+ };
2139
+ export type BrickComponentData_WireGraph_Expr_Int_Int = {
2140
+ Input: number;
2141
+ };
2142
+ export type BrickComponentData_WireGraph_Expr_IntInt_Int = {
2143
+ InputA: number;
2144
+ InputB: number;
2145
+ };
2146
+ export type BrickComponentData_WireGraph_Expr_MakeColor = {
2147
+ R: number;
2148
+ G: number;
2149
+ B: number;
2150
+ A: number;
2151
+ };
2152
+ export type BrickComponentData_WireGraph_Expr_MakeColorHex = {
2153
+ Hex: string;
2154
+ };
2155
+ export type BrickComponentData_WireGraph_Expr_MakeColorSRGB = {
2156
+ R: number;
2157
+ G: number;
2158
+ B: number;
2159
+ A: number;
2160
+ };
2161
+ export type BrickComponentData_WireGraph_Expr_MakeQuaternion = {
2162
+ X: number;
2163
+ Y: number;
2164
+ Z: number;
2165
+ W: number;
2166
+ };
2167
+ export type BrickComponentData_WireGraph_Expr_MakeRotation = {
2168
+ Pitch: number;
2169
+ Yaw: number;
2170
+ Roll: number;
2171
+ };
2172
+ export type BrickComponentData_WireGraph_Expr_MakeVector = {
2173
+ X: number;
2174
+ Y: number;
2175
+ Z: number;
2176
+ };
2177
+ export type BrickComponentData_WireGraph_Expr_MathAtan2 = {
2178
+ Y: number;
2179
+ X: number;
2180
+ };
2181
+ export type BrickComponentData_WireGraph_Expr_MathBlend = {
2182
+ Blend: number;
2183
+ bClampAlpha: boolean;
2184
+ InputA: BrdbVariant;
2185
+ InputB: BrdbVariant;
2186
+ };
2187
+ export type BrickComponentData_WireGraph_Expr_MathClamp = {
2188
+ Min: BrdbVariant;
2189
+ Max: BrdbVariant;
2190
+ Input: BrdbVariant;
2191
+ };
2192
+ export type BrickComponentData_WireGraph_Expr_MathCompare = {
2193
+ InputA: BrdbVariant;
2194
+ InputB: BrdbVariant;
2195
+ };
2196
+ export type BrickComponentData_WireGraph_Expr_MathEasing = {
2197
+ Blend: number;
2198
+ Function: number;
2199
+ Direction: number;
2200
+ InputA: BrdbVariant;
2201
+ InputB: BrdbVariant;
2202
+ };
2203
+ export type BrickComponentData_WireGraph_Expr_MathLogBase = {
2204
+ Input: number;
2205
+ Base: number;
2206
+ };
2207
+ export type BrickComponentData_WireGraph_Expr_MathPow = {
2208
+ Input: number;
2209
+ Exponent: number;
2210
+ };
2211
+ export type BrickComponentData_WireGraph_Expr_NearlyEqual = {
2212
+ InputA: BrdbVariant;
2213
+ InputB: BrdbVariant;
2214
+ Tolerance: number;
2215
+ };
2216
+ export type BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant = {
2217
+ Input: BrdbVariant;
2218
+ };
2219
+ export type BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant = {
2220
+ InputA: BrdbVariant;
2221
+ InputB: BrdbVariant;
2222
+ };
2223
+ export type BrickComponentData_WireGraph_Expr_Select = {
2224
+ bSelectB: boolean;
2225
+ InputA: BrdbVariant;
2226
+ InputB: BrdbVariant;
2227
+ };
2228
+ export type BrickComponentData_WireGraph_Expr_String_Concatenate = {
2229
+ InputA: string;
2230
+ InputB: string;
2231
+ Separator: string;
2232
+ };
2233
+ export type BrickComponentData_WireGraph_Expr_String_Contains = {
2234
+ Input: string;
2235
+ Search: string;
2236
+ bCaseSensitive: boolean;
2237
+ };
2238
+ export type BrickComponentData_WireGraph_Expr_String_EndsWith = {
2239
+ Input: string;
2240
+ Suffix: string;
2241
+ bCaseSensitive: boolean;
2242
+ };
2243
+ export type BrickComponentData_WireGraph_Expr_String_Find = {
2244
+ Input: string;
2245
+ Search: string;
2246
+ bCaseSensitive: boolean;
2247
+ };
2248
+ export type BrickComponentData_WireGraph_Expr_String_FormatText = {
2249
+ FormatString: string;
2250
+ InputA: BrdbVariant;
2251
+ InputB: BrdbVariant;
2252
+ InputC: BrdbVariant;
2253
+ InputD: BrdbVariant;
2254
+ InputE: BrdbVariant;
2255
+ InputF: BrdbVariant;
2256
+ InputG: BrdbVariant;
2257
+ };
2258
+ export type BrickComponentData_WireGraph_Expr_String_Length = {
2259
+ Input: string;
2260
+ };
2261
+ export type BrickComponentData_WireGraph_Expr_String_ParseInt = {
2262
+ Input: string;
2263
+ };
2264
+ export type BrickComponentData_WireGraph_Expr_String_ParseNumber = {
2265
+ Input: string;
2266
+ };
2267
+ export type BrickComponentData_WireGraph_Expr_String_Replace = {
2268
+ Input: string;
2269
+ Search: string;
2270
+ Replacement: string;
2271
+ bCaseSensitive: boolean;
2272
+ };
2273
+ export type BrickComponentData_WireGraph_Expr_String_Split = {
2274
+ Input: string;
2275
+ Delimiter: string;
2276
+ bCaseSensitive: boolean;
2277
+ };
2278
+ export type BrickComponentData_WireGraph_Expr_String_StartsWith = {
2279
+ Input: string;
2280
+ Prefix: string;
2281
+ bCaseSensitive: boolean;
2282
+ };
2283
+ export type BrickComponentData_WireGraph_Expr_String_Substring = {
2284
+ Input: string;
2285
+ Start: number;
2286
+ Length: number;
2287
+ };
2288
+ export type BrickComponentData_WireGraph_Expr_String_ToLower = {
2289
+ Input: string;
2290
+ };
2291
+ export type BrickComponentData_WireGraph_Expr_String_ToUpper = {
2292
+ Input: string;
2293
+ };
2294
+ export type BrickComponentData_WireGraph_Expr_String_Trim = {
2295
+ Input: string;
2296
+ };
2297
+ export type BrickComponentData_WireGraph_Expr_Swap = {
2298
+ bSwap: boolean;
2299
+ InputA: BrdbVariant;
2300
+ InputB: BrdbVariant;
2301
+ };
2302
+ export type BrickComponentData_WireGraph_Expr_Variant_Variant = {
2303
+ Input: BrdbVariant;
2304
+ };
2305
+ export type BrickComponentData_WireGraph_Fake_CharacterDamageEvent = {};
2306
+ export type BrickComponentData_WireGraph_Fake_CharacterDeathEvent = {};
2307
+ export type BrickComponentData_WireGraph_Fake_CharacterEvent = {};
2308
+ export type BrickComponentData_WireGraph_Fake_ControllerEvent = {};
2309
+ export type BrickComponentData_WireGraph_Fake_RoundEvent = {
2310
+ RoundNumber: number;
2311
+ };
2312
+ export type BrickComponentData_WireGraph_FindPlayer = {
2313
+ Query: string;
2314
+ };
2315
+ export type BrickComponentData_WireGraph_FontReference = {
2316
+ Asset: number | null;
2317
+ };
2318
+ export type BrickComponentData_WireGraph_ItemReference = {
2319
+ Asset: number | null;
2320
+ };
2321
+ export type BrickComponentData_WireGraph_OneShotAudioReference = {
2322
+ Asset: number | null;
2323
+ };
2324
+ export type BrickComponentData_WireGraph_ParticleReference = {
2325
+ Asset: number | null;
2326
+ };
2327
+ export type BrickComponentData_WireGraph_PickupReference = {
2328
+ Asset: number | null;
2329
+ };
2330
+ export type BrickComponentData_WireGraph_ProjectileReference = {
2331
+ Asset: number | null;
2332
+ };
2333
+ export type BrickComponentData_WireGraph_ServerUptime = {};
2334
+ export type BrickComponentData_WireGraph_WheelEngineAudioReference = {
2335
+ Asset: number | null;
2336
+ };
2337
+ export type BrickComponentData_WireGraphPseudo_ArrayVar = {
2338
+ Value: BrdbVariant;
2339
+ };
2340
+ export type BrickComponentData_WireGraphPseudo_BufferSeconds = {
2341
+ SecondsToWait: number;
2342
+ ZeroSecondsToWait: number;
2343
+ CurrentTime: number;
2344
+ Input: BrdbVariant;
2345
+ Output: BrdbVariant;
2346
+ Buffered: BrdbVariant;
2347
+ bHasQueued: boolean;
2348
+ bIsOffTimer: boolean;
2349
+ };
2350
+ export type BrickComponentData_WireGraphPseudo_BufferTicks = {
2351
+ TicksToWait: number;
2352
+ ZeroTicksToWait: number;
2353
+ CurrentTicks: number;
2354
+ Input: BrdbVariant;
2355
+ Output: BrdbVariant;
2356
+ Buffered: BrdbVariant;
2357
+ bHasQueued: boolean;
2358
+ bIsOffTimer: boolean;
2359
+ };
2360
+ export type BrickComponentData_WireGraphPseudo_Timer = {
2361
+ Limit: number;
2362
+ Time: number;
2363
+ bRunning: boolean;
2364
+ };
2365
+ export type BrickComponentData_WireGraphPseudo_Tween = {
2366
+ Target: BrdbVariant;
2367
+ Value: BrdbVariant;
2368
+ StartValue: BrdbVariant;
2369
+ Duration: number;
2370
+ Elapsed: number;
2371
+ Function: number;
2372
+ Direction: number;
2373
+ };
2374
+ export type BrickComponentData_WireGraphPseudo_Var = {
2375
+ Value: BrdbVariant;
2376
+ };
2377
+ export type BrickComponentWireControl_DriveAndSteer = {};
2378
+ export type BrickComponentWirePortControl_TeleportDestination = {};
2379
+ export type BRInventoryEntryVariant = {};
2380
+ export type BRQueueSecondsEntry = {
2381
+ Data: BrdbVariant[];
2382
+ RemainingTime: number;
2383
+ };
2384
+ export type BRQueueTicksEntry = {
2385
+ Data: BrdbVariant[];
2386
+ RemainingTicks: number;
2387
+ };
2388
+ export type Color = {
2389
+ B: number;
2390
+ G: number;
2391
+ R: number;
2392
+ A: number;
2393
+ };
2394
+ type IntVector$1 = {
2395
+ X: number;
2396
+ Y: number;
2397
+ Z: number;
2398
+ };
2399
+ export type LinearColor = {
2400
+ R: number;
2401
+ G: number;
2402
+ B: number;
2403
+ A: number;
2404
+ };
2405
+ export type Quat = {
2406
+ X: number;
2407
+ Y: number;
2408
+ Z: number;
2409
+ W: number;
2410
+ };
2411
+ export type Rotator = {
2412
+ Pitch: number;
2413
+ Yaw: number;
2414
+ Roll: number;
2415
+ };
2416
+ export type Rotator3f = {
2417
+ Pitch: number;
2418
+ Yaw: number;
2419
+ Roll: number;
2420
+ };
2421
+ type Vector$1 = {
2422
+ X: number;
2423
+ Y: number;
2424
+ Z: number;
2425
+ };
2426
+ export type Vector2f = {
2427
+ X: number;
2428
+ Y: number;
2429
+ };
2430
+ export type Vector3f = {
2431
+ X: number;
2432
+ Y: number;
2433
+ Z: number;
2434
+ };
2435
+ export type Vector4 = {
2436
+ X: number;
2437
+ Y: number;
2438
+ Z: number;
2439
+ W: number;
2440
+ };
2441
+ export type BrickComponentData_BrickPropertyChanger = {
2442
+ bVisibility: boolean;
2443
+ bCollisionEnabled: boolean;
2444
+ bCollisionEnabled_Player: boolean;
2445
+ bCollisionEnabled_Player1: boolean;
2446
+ bCollisionEnabled_Player2: boolean;
2447
+ bCollisionEnabled_Player3: boolean;
2448
+ bCollisionEnabled_Weapon: boolean;
2449
+ bCollisionEnabled_Interaction: boolean;
2450
+ bCollisionEnabled_Physics: boolean;
2451
+ Color: Color;
2452
+ MaterialAlpha: number;
2453
+ Material: number;
2454
+ };
2455
+ export type BrickComponentData_Gyroscope = {
2456
+ bEnabled: boolean;
2457
+ Strength: number;
2458
+ Damping: number;
2459
+ MaxForce: number;
2460
+ TargetAxis: Vector$1;
2461
+ };
2462
+ export type BrickComponentData_ItemSpawn = {
2463
+ PickupClass: number | null;
2464
+ bPickupEnabled: boolean;
2465
+ bPickupRespawnOnMinigameReset: boolean;
2466
+ PickupMinigameResetRespawnDelay: number;
2467
+ bPickupAutoDisableOnPickup: boolean;
2468
+ PickupRespawnTime: number;
2469
+ bRenderTranslucentWhenDisabled: boolean;
2470
+ DamageMultiplier: number;
2471
+ WeaponSpeedMultiplier: number;
2472
+ ItemNameOverride: string;
2473
+ ProjectileOverride: number | null;
2474
+ PickupOffsetDirection: number;
2475
+ PickupOffsetDistance: number;
2476
+ PickupRotation: Rotator3f;
2477
+ PickupScale: number;
2478
+ bOverridePickupColors: boolean;
2479
+ PickupMeshColors: Color[];
2480
+ bPickupAnimationEnabled: boolean;
2481
+ PickupAnimationAxis: number;
2482
+ bPickupAnimationAxisLocal: boolean;
2483
+ PickupSpinSpeed: number;
2484
+ PickupBobSpeed: number;
2485
+ PickupBobHeight: number;
2486
+ PickupAnimationPhase: number;
2487
+ };
2488
+ export type BrickComponentData_Joint_Wheel = {
2489
+ Control_DriveAndSteer: BrickComponentWireControl_DriveAndSteer;
2490
+ bEnabled: boolean;
2491
+ DriveSpeed: number;
2492
+ DrivePower: number;
2493
+ bSteerEnabled: boolean;
2494
+ Steer: number;
2495
+ SteerLimitDegree: number;
2496
+ SteerPower: number;
2497
+ bSuspensionEnabled: boolean;
2498
+ SuspensionStiffness: number;
2499
+ SuspensionDamping: number;
2500
+ JointDistance: number;
2501
+ bDriveWhenNotAttachedToEngine: boolean;
2502
+ bCanBrake: boolean;
2503
+ bAllowEngineSteerCorrect: boolean;
2504
+ bReversed: boolean;
2505
+ Damping: number;
2506
+ };
2507
+ export type BrickComponentData_Joint_Wheel_Suspension = {
2508
+ Control_DriveAndSteer: BrickComponentWireControl_DriveAndSteer;
2509
+ bEnabled: boolean;
2510
+ DriveSpeed: number;
2511
+ DrivePower: number;
2512
+ bSteerEnabled: boolean;
2513
+ Steer: number;
2514
+ SteerLimitDegree: number;
2515
+ SteerPower: number;
2516
+ bSuspensionEnabled: boolean;
2517
+ SuspensionStiffness: number;
2518
+ SuspensionDamping: number;
2519
+ SuspensionOffset: number;
2520
+ SuspensionLength: number;
2521
+ JointDistance: number;
2522
+ bDriveWhenNotAttachedToEngine: boolean;
2523
+ bCanBrake: boolean;
2524
+ bAllowEngineSteerCorrect: boolean;
2525
+ bReversed: boolean;
2526
+ Damping: number;
2527
+ };
2528
+ export type BrickComponentData_PointLight = {
2529
+ bMatchBrickShape: boolean;
2530
+ bEnabled: boolean;
2531
+ Brightness: number;
2532
+ Radius: number;
2533
+ Color: Color;
2534
+ bUseBrickColor: boolean;
2535
+ bCastShadows: boolean;
2536
+ };
2537
+ export type BrickComponentData_PrefabSpawn = {
2538
+ Prefab: string;
2539
+ SpawnOffset: Vector$1;
2540
+ SpawnOffsetRotation: Rotator;
2541
+ SpawnVelocity: Vector$1;
2542
+ bSpawnEnable: boolean;
2543
+ RespawnTime: number;
2544
+ SpawnedEntityIds: number[];
2545
+ };
2546
+ export type BrickComponentData_Seat_V2 = {
2547
+ bIsOccupied: boolean;
2548
+ ExitOffset: IntVector$1;
2549
+ bRollCameraInThirdPerson: boolean;
2550
+ bAllowNearbyInteraction: boolean;
2551
+ bHiddenInteraction: boolean;
2552
+ PromptCustomLabel: string;
2553
+ };
2554
+ export type BrickComponentData_SpotLight = {
2555
+ Rotation: Rotator3f;
2556
+ InnerConeAngle: number;
2557
+ OuterConeAngle: number;
2558
+ bEnabled: boolean;
2559
+ Brightness: number;
2560
+ Radius: number;
2561
+ Color: Color;
2562
+ bUseBrickColor: boolean;
2563
+ bCastShadows: boolean;
2564
+ };
2565
+ export type BrickComponentData_TextDisplay = {
2566
+ Text: string;
2567
+ Font: number | null;
2568
+ Rotation: number;
2569
+ Skew: number;
2570
+ Kerning: number;
2571
+ LineHeight: number;
2572
+ LineOffset: number;
2573
+ Anchor: Vector2f;
2574
+ Offset: Vector3f;
2575
+ Color: Color;
2576
+ MaterialSlider: number;
2577
+ ShadingWidth: number;
2578
+ OutlineColor: Color;
2579
+ OutlineWidth: number;
2580
+ ScuffWidth: number;
2581
+ GraffitiDepthLimit: number;
2582
+ GraffitiAngleLimit: number;
2583
+ GraffitiLayer: number;
2584
+ bEnabled: boolean;
2585
+ Face: number;
2586
+ bAlignToWedge: boolean;
2587
+ bOverrideColor: boolean;
2588
+ Typeface: number;
2589
+ Billboard: number;
2590
+ Material: number;
2591
+ Shading: number;
2592
+ bFlipShading: boolean;
2593
+ Outline: number;
2594
+ bSharpCorners: boolean;
2595
+ bSharpOutlines: boolean;
2596
+ bOverrideOutlineColor: boolean;
2597
+ bForeground: boolean;
2598
+ };
2599
+ export type BrickComponentData_WeightBrick = {
2600
+ Mass: number;
2601
+ MassSize: IntVector$1;
2602
+ MassOffset: IntVector$1;
2603
+ };
2604
+ export type BrickComponentData_WheelEngine_V2 = {
2605
+ bEnabled: boolean;
2606
+ bEnableManualControl: boolean;
2607
+ ManualInput_Drive: number;
2608
+ ManualInput_Steer: number;
2609
+ bManualInput_Brake: boolean;
2610
+ Control_DriveAndSteer: BrickComponentWireControl_DriveAndSteer;
2611
+ CustomMass: number;
2612
+ CustomMassVerticalOffset: number;
2613
+ DriveInterpSpeed: number;
2614
+ DriveSpeed: number;
2615
+ DriveAcceleratingPowerMultiplier: number;
2616
+ DriveBrakingPowerMultiplier: number;
2617
+ DriveDampingMultiplier: number;
2618
+ SteerPowerMultiplier: number;
2619
+ WheelFrictionMultiplier: number;
2620
+ SteerInterpSpeed: number;
2621
+ SteerLimitSpeedFalloff: number;
2622
+ SteerLimitDegree: number;
2623
+ CenterOfSteering: number;
2624
+ bTankSteering: boolean;
2625
+ TankSteerSpeedMultiplier: number;
2626
+ bAutoRight: boolean;
2627
+ WaterDriveForce: number;
2628
+ WaterSteeringForce: number;
2629
+ AudioDescriptor: number | null;
2630
+ };
2631
+ export type BrickComponentData_WireGraph_Exec_Character_AddInventoryBrick = {
2632
+ ProceduralSize: Vector$1;
2633
+ };
2634
+ export type BrickComponentData_WireGraph_Exec_Character_SetInventoryBrick = {
2635
+ Slot: number;
2636
+ ProceduralSize: Vector$1;
2637
+ };
2638
+ export type BrickComponentData_WireGraph_Exec_Controller_DisplayText = {
2639
+ Text: string;
2640
+ AnchorX: number;
2641
+ AnchorY: number;
2642
+ PositionX: number;
2643
+ PositionY: number;
2644
+ Angle: number;
2645
+ ScaleX: number;
2646
+ ScaleY: number;
2647
+ FontSize: number;
2648
+ FontColor: Color;
2649
+ OutlineSize: number;
2650
+ OutlineColor: Color;
2651
+ Justification: number;
2652
+ Transition: number;
2653
+ Easing: number;
2654
+ Lifetime: number;
2655
+ TextId: number;
2656
+ };
2657
+ export type BrickComponentData_WireGraph_Exec_Entity_AddLocationRotation = {
2658
+ Vector: Vector$1;
2659
+ Rotation: Rotator;
2660
+ };
2661
+ export type BrickComponentData_WireGraph_Exec_Entity_AddVelocity = {
2662
+ Vector: Vector$1;
2663
+ Rotation: Vector$1;
2664
+ };
2665
+ export type BrickComponentData_WireGraph_Exec_Entity_RelativeTeleport = {
2666
+ Source: BrickComponentWirePortControl_TeleportDestination;
2667
+ Destination: BrickComponentWirePortControl_TeleportDestination;
2668
+ };
2669
+ export type BrickComponentData_WireGraph_Exec_Entity_SetAngularVelocity = {
2670
+ AngularVelocity: Vector$1;
2671
+ };
2672
+ export type BrickComponentData_WireGraph_Exec_Entity_SetGravityDirection = {
2673
+ Rotation: Rotator;
2674
+ };
2675
+ export type BrickComponentData_WireGraph_Exec_Entity_SetLinearVelocity = {
2676
+ LinearVelocity: Vector$1;
2677
+ };
2678
+ export type BrickComponentData_WireGraph_Exec_Entity_SetLocation = {
2679
+ Vector: Vector$1;
2680
+ };
2681
+ export type BrickComponentData_WireGraph_Exec_Entity_SetLocationRotation = {
2682
+ Vector: Vector$1;
2683
+ Rotation: Rotator;
2684
+ };
2685
+ export type BrickComponentData_WireGraph_Exec_Entity_SetRotation = {
2686
+ Rotation: Rotator;
2687
+ };
2688
+ export type BrickComponentData_WireGraph_Exec_Entity_SetVelocity = {
2689
+ Vector: Vector$1;
2690
+ Rotation: Vector$1;
2691
+ };
2692
+ export type BrickComponentData_WireGraph_Exec_Entity_Teleport = {
2693
+ Destination: BrickComponentWirePortControl_TeleportDestination;
2694
+ };
2695
+ export type BrickComponentData_WireGraph_Exec_PrefabSpawner = {
2696
+ Prefab: string;
2697
+ SpawnOffset: Vector$1;
2698
+ SpawnOffsetRotation: Rotator;
2699
+ SpawnVelocity: Vector$1;
2700
+ Lifetime: number;
2701
+ Limit: number;
2702
+ SpawnedEntityIds: number[];
2703
+ };
2704
+ export type BrickComponentData_WireGraph_Exec_Sweep = {
2705
+ Origin: Vector$1;
2706
+ Direction: Vector$1;
2707
+ Distance: number;
2708
+ Radius: number;
2709
+ bDetectBricks: boolean;
2710
+ bDetectPlayers1: boolean;
2711
+ bDetectPlayers2: boolean;
2712
+ bDetectPlayers3: boolean;
2713
+ bDetectPlayers4: boolean;
2714
+ bDetectPhysics: boolean;
2715
+ bDetectMap: boolean;
2716
+ bRelative: boolean;
2717
+ bIgnoreOwningGrid: boolean;
2718
+ };
2719
+ export type BrickComponentData_WireGraph_Expr_ColorBlend = {
2720
+ ColorA: LinearColor;
2721
+ ColorB: LinearColor;
2722
+ Alpha: number;
2723
+ BlendSpace: number;
2724
+ bClampAlpha: boolean;
2725
+ };
2726
+ export type BrickComponentData_WireGraph_Expr_ColorConvert = {
2727
+ Input: LinearColor;
2728
+ FromSpace: number;
2729
+ ToSpace: number;
2730
+ };
2731
+ export type BrickComponentData_WireGraph_Expr_ColorToHex = {
2732
+ Input: LinearColor;
2733
+ };
2734
+ export type BrickComponentData_WireGraph_Expr_DirectionToRotation = {
2735
+ Direction: Vector$1;
2736
+ };
2737
+ export type BrickComponentData_WireGraph_Expr_InvertRotation = {
2738
+ Input: Quat;
2739
+ };
2740
+ export type BrickComponentData_WireGraph_Expr_QuatAngleBetween = {
2741
+ InputA: Quat;
2742
+ InputB: Quat;
2743
+ };
2744
+ export type BrickComponentData_WireGraph_Expr_QuatBetween = {
2745
+ From: Vector$1;
2746
+ To: Vector$1;
2747
+ };
2748
+ export type BrickComponentData_WireGraph_Expr_QuatDotProduct = {
2749
+ InputA: Quat;
2750
+ InputB: Quat;
2751
+ };
2752
+ export type BrickComponentData_WireGraph_Expr_QuatFromAxisAngle = {
2753
+ Axis: Vector$1;
2754
+ Angle: number;
2755
+ };
2756
+ export type BrickComponentData_WireGraph_Expr_QuatSlerp = {
2757
+ InputA: Quat;
2758
+ InputB: Quat;
2759
+ Alpha: number;
2760
+ bShortestPath: boolean;
2761
+ bClampAlpha: boolean;
2762
+ };
2763
+ export type BrickComponentData_WireGraph_Expr_QuatToAxisAngle = {
2764
+ Input: Quat;
2765
+ };
2766
+ export type BrickComponentData_WireGraph_Expr_RotateVector = {
2767
+ Rotation: Quat;
2768
+ Vector: Vector$1;
2769
+ };
2770
+ export type BrickComponentData_WireGraph_Expr_RotationToDirection = {
2771
+ Rotation: Quat;
2772
+ };
2773
+ export type BrickComponentData_WireGraph_Expr_SplitColor = {
2774
+ Input: LinearColor;
2775
+ };
2776
+ export type BrickComponentData_WireGraph_Expr_SplitColorSRGB = {
2777
+ Input: LinearColor;
2778
+ };
2779
+ export type BrickComponentData_WireGraph_Expr_SplitQuaternion = {
2780
+ Input: Quat;
2781
+ };
2782
+ export type BrickComponentData_WireGraph_Expr_SplitRotation = {
2783
+ Input: Rotator;
2784
+ };
2785
+ export type BrickComponentData_WireGraph_Expr_SplitVector = {
2786
+ Input: Vector$1;
2787
+ };
2788
+ export type BrickComponentData_WireGraph_Expr_Vec_Float = {
2789
+ Input: Vector$1;
2790
+ };
2791
+ export type BrickComponentData_WireGraph_Expr_Vec_Vec = {
2792
+ Input: Vector$1;
2793
+ };
2794
+ export type BrickComponentData_WireGraph_Expr_VecFloat_Vec = {
2795
+ Input: Vector$1;
2796
+ Scalar: number;
2797
+ };
2798
+ export type BrickComponentData_WireGraph_Expr_VecVec_Float = {
2799
+ InputA: Vector$1;
2800
+ InputB: Vector$1;
2801
+ };
2802
+ export type BrickComponentData_WireGraph_Expr_VecVec_Vec = {
2803
+ InputA: Vector$1;
2804
+ InputB: Vector$1;
2805
+ };
2806
+ export type BrickComponentData_WireGraphPseudo_Dampen = {
2807
+ Target: BrdbVariant;
2808
+ Value: BrdbVariant;
2809
+ SmoothTime: number;
2810
+ Velocity: Vector4;
2811
+ };
2812
+ export type BrickComponentData_WireGraphPseudo_QueueSeconds = {
2813
+ SecondsToWait: number;
2814
+ Entries: BRQueueSecondsEntry[];
2815
+ DataIn1: BrdbVariant;
2816
+ DataIn2: BrdbVariant;
2817
+ DataIn3: BrdbVariant;
2818
+ DataIn4: BrdbVariant;
2819
+ DataIn5: BrdbVariant;
2820
+ DataIn6: BrdbVariant;
2821
+ DataIn7: BrdbVariant;
2822
+ DataIn8: BrdbVariant;
2823
+ DataOut1: BrdbVariant;
2824
+ DataOut2: BrdbVariant;
2825
+ DataOut3: BrdbVariant;
2826
+ DataOut4: BrdbVariant;
2827
+ DataOut5: BrdbVariant;
2828
+ DataOut6: BrdbVariant;
2829
+ DataOut7: BrdbVariant;
2830
+ DataOut8: BrdbVariant;
2831
+ };
2832
+ export type BrickComponentData_WireGraphPseudo_QueueTicks = {
2833
+ TicksToWait: number;
2834
+ Entries: BRQueueTicksEntry[];
2835
+ DataIn1: BrdbVariant;
2836
+ DataIn2: BrdbVariant;
2837
+ DataIn3: BrdbVariant;
2838
+ DataIn4: BrdbVariant;
2839
+ DataIn5: BrdbVariant;
2840
+ DataIn6: BrdbVariant;
2841
+ DataIn7: BrdbVariant;
2842
+ DataIn8: BrdbVariant;
2843
+ DataOut1: BrdbVariant;
2844
+ DataOut2: BrdbVariant;
2845
+ DataOut3: BrdbVariant;
2846
+ DataOut4: BrdbVariant;
2847
+ DataOut5: BrdbVariant;
2848
+ DataOut6: BrdbVariant;
2849
+ DataOut7: BrdbVariant;
2850
+ DataOut8: BrdbVariant;
2851
+ };
2852
+ export type BrickTypeNetWrapper = {
2853
+ BrickAsset: number | null;
2854
+ ProceduralSize: IntVector$1;
2855
+ };
2856
+ export type BRInventoryEntryConfig = {
2857
+ Item: BRInventoryEntryVariant;
2858
+ };
2859
+ export type BRPlayerPartCustomizationV3 = {
2860
+ PartDescriptor: number | null;
2861
+ DecalDescriptor: number | null;
2862
+ SocketName: string;
2863
+ Colors: Color[];
2864
+ };
2865
+ export type BrickComponentData_WireGraph_Exec_Character_AddInventoryEntry = {
2866
+ Entry: BRInventoryEntryConfig;
2867
+ };
2868
+ type BRInventoryEntryPlan$1 = {
2869
+ Type: number;
2870
+ BrickTypeIfBrick: BrickTypeNetWrapper;
2871
+ EntityTypeIfEntity: number | null;
2872
+ ItemTypeIfItem: number | null;
2873
+ };
2874
+ export type BRPlayerAvatarCustomizationV3 = {
2875
+ Parts: BRPlayerPartCustomizationV3[];
2876
+ };
2877
+ export type BrickComponentData_BotSpawn = {
2878
+ RespawnTime: number;
2879
+ CorpseTimeout: number;
2880
+ GunSkill: number;
2881
+ Agression: number;
2882
+ ReactionTime: number;
2883
+ MovementRandomness: number;
2884
+ RunSpeed: number;
2885
+ HealthMultiplier: number;
2886
+ Jumpyness: number;
2887
+ MovementAmount: number;
2888
+ AttackMovementAmount: number;
2889
+ AggroRange: number;
2890
+ AttackDamageMultiplier: number;
2891
+ bCanJump: boolean;
2892
+ bBackVision: boolean;
2893
+ bVisionRaycasting: boolean;
2894
+ bCanTargetPlayers: boolean;
2895
+ bCanTargetBots: boolean;
2896
+ bActiveBot: boolean;
2897
+ bSpawnEnable: boolean;
2898
+ bDeleteBot: boolean;
2899
+ MoveTarget: Vector$1;
2900
+ MovementGoalDummy: BrickComponentWirePortControl_TeleportDestination;
2901
+ BotName: string;
2902
+ Skin: BRPlayerAvatarCustomizationV3;
2903
+ bColorsAreLinear: boolean;
2904
+ TeamCollisionChannel: number;
2905
+ bTeamCollision: boolean;
2906
+ bTeamCollision1: boolean;
2907
+ bTeamCollision2: boolean;
2908
+ bTeamCollision3: boolean;
2909
+ BotWeapon: number | null;
2910
+ };
2911
+ export type BrickComponentData_WireGraph_Exec_Character_SetInventoryEntry = {
2912
+ Slot: number;
2913
+ Entry: BRInventoryEntryConfig;
2914
+ EntryPlan: BRInventoryEntryPlan$1;
2915
+ };
2916
+ /** Component type name -> data struct shape, for editor completion. */
2917
+ export type ComponentTypeDataMap = {
2918
+ BrickComponentType_Internal_CharacterZoneEvent_Entered: BrickComponentData_Internal_CharacterZoneEvent;
2919
+ BrickComponentType_Internal_CharacterZoneEvent_Left: BrickComponentData_Internal_CharacterZoneEvent;
2920
+ BrickComponentType_Internal_EntityZoneEvent_Entered: BrickComponentData_Internal_EntityZoneEvent;
2921
+ BrickComponentType_Internal_EntityZoneEvent_Left: BrickComponentData_Internal_EntityZoneEvent;
2922
+ BrickComponentType_Internal_MicrochipInput: BrickComponentData_Internal_MicrochipInput;
2923
+ BrickComponentType_Internal_MicrochipOutput: BrickComponentData_Internal_MicrochipOutput;
2924
+ BrickComponentType_Internal_ProjectileZoneEvent_Entered: BrickComponentData_Internal_ProjectileZoneEvent;
2925
+ BrickComponentType_Internal_ProjectileZoneEvent_Left: BrickComponentData_Internal_ProjectileZoneEvent;
2926
+ BrickComponentType_Internal_ReadBrickGrid: BrickComponentData_Internal_ReadBrickGrid;
2927
+ BrickComponentType_Internal_TeleportDestination: BrickComponentData_TeleportDestination;
2928
+ BrickComponentType_Internal_ZoneEvent_BrickChanged: BrickComponentData_Internal_ZoneEvent;
2929
+ BrickComponentType_Internal_ZoneEvent_BrickRemoved: BrickComponentData_Internal_ZoneEvent;
2930
+ BrickComponentType_PrefabSpawn: BrickComponentData_PrefabSpawn;
2931
+ BrickComponentType_WireGraphPseudo_ArrayVar: BrickComponentData_WireGraphPseudo_ArrayVar;
2932
+ BrickComponentType_WireGraphPseudo_BufferSeconds: BrickComponentData_WireGraphPseudo_BufferSeconds;
2933
+ BrickComponentType_WireGraphPseudo_BufferTicks: BrickComponentData_WireGraphPseudo_BufferTicks;
2934
+ BrickComponentType_WireGraphPseudo_Dampen: BrickComponentData_WireGraphPseudo_Dampen;
2935
+ BrickComponentType_WireGraphPseudo_QueueSeconds: BrickComponentData_WireGraphPseudo_QueueSeconds;
2936
+ BrickComponentType_WireGraphPseudo_QueueTicks: BrickComponentData_WireGraphPseudo_QueueTicks;
2937
+ BrickComponentType_WireGraphPseudo_Timer: BrickComponentData_WireGraphPseudo_Timer;
2938
+ BrickComponentType_WireGraphPseudo_Tween: BrickComponentData_WireGraphPseudo_Tween;
2939
+ BrickComponentType_WireGraphPseudo_Var: BrickComponentData_WireGraphPseudo_Var;
2940
+ BrickComponentType_WireGraph_AudioReference: BrickComponentData_WireGraph_AudioReference;
2941
+ BrickComponentType_WireGraph_BrickAssetReference: BrickComponentData_WireGraph_BrickAssetReference;
2942
+ BrickComponentType_WireGraph_DeltaTime: BrickComponentData_WireGraph_DeltaTime;
2943
+ BrickComponentType_WireGraph_EntityTypeReference: BrickComponentData_WireGraph_EntityTypeReference;
2944
+ BrickComponentType_WireGraph_Exec_ArrayVar_Append: BrickComponentData_WireGraph_Exec_ArrayVar_DualRef;
2945
+ BrickComponentType_WireGraph_Exec_ArrayVar_Average: BrickComponentData_WireGraph_Exec_ArrayVar_Average;
2946
+ BrickComponentType_WireGraph_Exec_ArrayVar_Clear: BrickComponentData_WireGraph_Exec_ArrayVar_Base;
2947
+ BrickComponentType_WireGraph_Exec_ArrayVar_CopyFrom: BrickComponentData_WireGraph_Exec_ArrayVar_DualRef;
2948
+ BrickComponentType_WireGraph_Exec_ArrayVar_Fill: BrickComponentData_WireGraph_Exec_ArrayVar_Push;
2949
+ BrickComponentType_WireGraph_Exec_ArrayVar_Find: BrickComponentData_WireGraph_Exec_ArrayVar_Find;
2950
+ BrickComponentType_WireGraph_Exec_ArrayVar_Get: BrickComponentData_WireGraph_Exec_ArrayVar_Get;
2951
+ BrickComponentType_WireGraph_Exec_ArrayVar_GetLength: BrickComponentData_WireGraph_Exec_ArrayVar_GetLength;
2952
+ BrickComponentType_WireGraph_Exec_ArrayVar_Insert: BrickComponentData_WireGraph_Exec_ArrayVar_Insert;
2953
+ BrickComponentType_WireGraph_Exec_ArrayVar_Max: BrickComponentData_WireGraph_Exec_ArrayVar_MinMax;
2954
+ BrickComponentType_WireGraph_Exec_ArrayVar_Min: BrickComponentData_WireGraph_Exec_ArrayVar_MinMax;
2955
+ BrickComponentType_WireGraph_Exec_ArrayVar_Pop: BrickComponentData_WireGraph_Exec_ArrayVar_Pop;
2956
+ BrickComponentType_WireGraph_Exec_ArrayVar_Push: BrickComponentData_WireGraph_Exec_ArrayVar_Push;
2957
+ BrickComponentType_WireGraph_Exec_ArrayVar_RemoveAtIndex: BrickComponentData_WireGraph_Exec_ArrayVar_RemoveAtIndex;
2958
+ BrickComponentType_WireGraph_Exec_ArrayVar_Resize: BrickComponentData_WireGraph_Exec_ArrayVar_Resize;
2959
+ BrickComponentType_WireGraph_Exec_ArrayVar_Reverse: BrickComponentData_WireGraph_Exec_ArrayVar_Base;
2960
+ BrickComponentType_WireGraph_Exec_ArrayVar_SetAtIndex: BrickComponentData_WireGraph_Exec_ArrayVar_ElementOp;
2961
+ BrickComponentType_WireGraph_Exec_ArrayVar_Shuffle: BrickComponentData_WireGraph_Exec_ArrayVar_Base;
2962
+ BrickComponentType_WireGraph_Exec_ArrayVar_Slice: BrickComponentData_WireGraph_Exec_ArrayVar_Slice;
2963
+ BrickComponentType_WireGraph_Exec_ArrayVar_Sort: BrickComponentData_WireGraph_Exec_ArrayVar_Sort;
2964
+ BrickComponentType_WireGraph_Exec_ArrayVar_Sum: BrickComponentData_WireGraph_Exec_ArrayVar_Sum;
2965
+ BrickComponentType_WireGraph_Exec_ArrayVar_Swap: BrickComponentData_WireGraph_Exec_ArrayVar_Swap;
2966
+ BrickComponentType_WireGraph_Exec_Branch: BrickComponentData_WireGraph_ExecBranch;
2967
+ BrickComponentType_WireGraph_Exec_Character_AddInventoryBrick: BrickComponentData_WireGraph_Exec_Character_AddInventoryBrick;
2968
+ BrickComponentType_WireGraph_Exec_Character_AddInventoryEntity: BrickComponentData_WireGraph_Exec_Character_AddInventoryEntity;
2969
+ BrickComponentType_WireGraph_Exec_Character_AddInventoryEntry: BrickComponentData_WireGraph_Exec_Character_AddInventoryEntry;
2970
+ BrickComponentType_WireGraph_Exec_Character_AddInventoryItem: BrickComponentData_WireGraph_Exec_Character_AddInventoryItem;
2971
+ BrickComponentType_WireGraph_Exec_Character_GetAim: BrickComponentData_WireGraph_Exec_Character_GetAim;
2972
+ BrickComponentType_WireGraph_Exec_Character_GetDamage: BrickComponentData_WireGraph_Exec_Character_GetDamage;
2973
+ BrickComponentType_WireGraph_Exec_Character_GetFromController: BrickComponentData_WireGraph_Exec_Character_GetFromController;
2974
+ BrickComponentType_WireGraph_Exec_Character_IncDamage: BrickComponentData_WireGraph_Exec_Character_IncDamage;
2975
+ BrickComponentType_WireGraph_Exec_Character_SetDamage: BrickComponentData_WireGraph_Exec_Character_SetDamage;
2976
+ BrickComponentType_WireGraph_Exec_Character_SetInventoryBrick: BrickComponentData_WireGraph_Exec_Character_SetInventoryBrick;
2977
+ BrickComponentType_WireGraph_Exec_Character_SetInventoryEntity: BrickComponentData_WireGraph_Exec_Character_SetInventoryEntity;
2978
+ BrickComponentType_WireGraph_Exec_Character_SetInventoryEntry: BrickComponentData_WireGraph_Exec_Character_SetInventoryEntry;
2979
+ BrickComponentType_WireGraph_Exec_Character_SetInventoryItem: BrickComponentData_WireGraph_Exec_Character_SetInventoryItem;
2980
+ BrickComponentType_WireGraph_Exec_Character_SetTempPermission: BrickComponentData_WireGraph_Exec_Character_SetTempPermission;
2981
+ BrickComponentType_WireGraph_Exec_Character_ShowHint: BrickComponentData_WireGraph_Exec_Character_ShowHint;
2982
+ BrickComponentType_WireGraph_Exec_ChatCommand: BrickComponentData_WireGraph_Exec_ChatCommand;
2983
+ BrickComponentType_WireGraph_Exec_Controller_DisplayText: BrickComponentData_WireGraph_Exec_Controller_DisplayText;
2984
+ BrickComponentType_WireGraph_Exec_Controller_GetDisplayName: BrickComponentData_WireGraph_Exec_Controller_GetDisplayName;
2985
+ BrickComponentType_WireGraph_Exec_Controller_GetFromEntity: BrickComponentData_WireGraph_Exec_Controller_GetFromEntity;
2986
+ BrickComponentType_WireGraph_Exec_Controller_GetUserId: BrickComponentData_WireGraph_Exec_Controller_GetUserId;
2987
+ BrickComponentType_WireGraph_Exec_Controller_GetUserName: BrickComponentData_WireGraph_Exec_Controller_GetUserName;
2988
+ BrickComponentType_WireGraph_Exec_Controller_HasPermission: BrickComponentData_WireGraph_Exec_Controller_HasPermission;
2989
+ BrickComponentType_WireGraph_Exec_Controller_HasRole: BrickComponentData_WireGraph_Exec_Controller_HasRole;
2990
+ BrickComponentType_WireGraph_Exec_Controller_IsTrustedByBrickOwner: BrickComponentData_WireGraph_Exec_Controller_IsTrustedByBrickOwner;
2991
+ BrickComponentType_WireGraph_Exec_Controller_SetCanRespawn: BrickComponentData_WireGraph_Exec_Controller_SetCanRespawn;
2992
+ BrickComponentType_WireGraph_Exec_Controller_ShowChatMessage: BrickComponentData_WireGraph_Exec_Controller_ShowChatMessage;
2993
+ BrickComponentType_WireGraph_Exec_Controller_ShowStatusMessage: BrickComponentData_WireGraph_Exec_Controller_ShowStatusMessage;
2994
+ BrickComponentType_WireGraph_Exec_Cycle: BrickComponentData_WireGraph_Exec_Cycle;
2995
+ BrickComponentType_WireGraph_Exec_Entity_AddLocationRotation: BrickComponentData_WireGraph_Exec_Entity_AddLocationRotation;
2996
+ BrickComponentType_WireGraph_Exec_Entity_AddVelocity: BrickComponentData_WireGraph_Exec_Entity_AddVelocity;
2997
+ BrickComponentType_WireGraph_Exec_Entity_GetAngularVelocity: BrickComponentData_WireGraph_Exec_Entity_GetAngularVelocity;
2998
+ BrickComponentType_WireGraph_Exec_Entity_GetLinearVelocity: BrickComponentData_WireGraph_Exec_Entity_GetLinearVelocity;
2999
+ BrickComponentType_WireGraph_Exec_Entity_GetLocation: BrickComponentData_WireGraph_Exec_Entity_GetLocation;
3000
+ BrickComponentType_WireGraph_Exec_Entity_GetLocationRotation: BrickComponentData_WireGraph_Exec_Entity_GetLocationRotation;
3001
+ BrickComponentType_WireGraph_Exec_Entity_GetRotation: BrickComponentData_WireGraph_Exec_Entity_GetRotation;
3002
+ BrickComponentType_WireGraph_Exec_Entity_GetTag: BrickComponentData_WireGraph_Exec_Entity_GetTag;
3003
+ BrickComponentType_WireGraph_Exec_Entity_GetVelocity: BrickComponentData_WireGraph_Exec_Entity_GetVelocity;
3004
+ BrickComponentType_WireGraph_Exec_Entity_RelativeTeleport: BrickComponentData_WireGraph_Exec_Entity_RelativeTeleport;
3005
+ BrickComponentType_WireGraph_Exec_Entity_SetAngularVelocity: BrickComponentData_WireGraph_Exec_Entity_SetAngularVelocity;
3006
+ BrickComponentType_WireGraph_Exec_Entity_SetFrozen: BrickComponentData_WireGraph_Exec_Entity_SetFrozen;
3007
+ BrickComponentType_WireGraph_Exec_Entity_SetGravityDirection: BrickComponentData_WireGraph_Exec_Entity_SetGravityDirection;
3008
+ BrickComponentType_WireGraph_Exec_Entity_SetLinearVelocity: BrickComponentData_WireGraph_Exec_Entity_SetLinearVelocity;
3009
+ BrickComponentType_WireGraph_Exec_Entity_SetLocation: BrickComponentData_WireGraph_Exec_Entity_SetLocation;
3010
+ BrickComponentType_WireGraph_Exec_Entity_SetLocationRotation: BrickComponentData_WireGraph_Exec_Entity_SetLocationRotation;
3011
+ BrickComponentType_WireGraph_Exec_Entity_SetRotation: BrickComponentData_WireGraph_Exec_Entity_SetRotation;
3012
+ BrickComponentType_WireGraph_Exec_Entity_SetTag: BrickComponentData_WireGraph_Exec_Entity_SetTag;
3013
+ BrickComponentType_WireGraph_Exec_Entity_SetVelocity: BrickComponentData_WireGraph_Exec_Entity_SetVelocity;
3014
+ BrickComponentType_WireGraph_Exec_Entity_Teleport: BrickComponentData_WireGraph_Exec_Entity_Teleport;
3015
+ BrickComponentType_WireGraph_Exec_Gamemode_BroadcastChatMessage: BrickComponentData_WireGraph_Exec_Gamemode_BroadcastChatMessage;
3016
+ BrickComponentType_WireGraph_Exec_Gamemode_BroadcastStatusMessage: BrickComponentData_WireGraph_Exec_Gamemode_BroadcastStatusMessage;
3017
+ BrickComponentType_WireGraph_Exec_Gamemode_FillArrayFromPlayers: BrickComponentData_WireGraph_Exec_ArrayVar_Base;
3018
+ BrickComponentType_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers: BrickComponentData_WireGraph_Exec_Gamemode_FillArrayFromTeamMembers;
3019
+ BrickComponentType_WireGraph_Exec_Gamemode_GetCurrentRound: BrickComponentData_WireGraph_Exec_Gamemode_GetCurrentRound;
3020
+ BrickComponentType_WireGraph_Exec_Gamemode_GetLeaderboardValue: BrickComponentData_WireGraph_Exec_Gamemode_GetLeaderboardValue;
3021
+ BrickComponentType_WireGraph_Exec_Gamemode_GetTeam: BrickComponentData_WireGraph_Exec_Gamemode_GetTeam;
3022
+ BrickComponentType_WireGraph_Exec_Gamemode_GetTeamByName: BrickComponentData_WireGraph_Exec_Gamemode_GetTeamByName;
3023
+ BrickComponentType_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue: BrickComponentData_WireGraph_Exec_Gamemode_GetTeamLeaderboardValue;
3024
+ BrickComponentType_WireGraph_Exec_Gamemode_GetTeamName: BrickComponentData_WireGraph_Exec_Gamemode_GetTeamName;
3025
+ BrickComponentType_WireGraph_Exec_Gamemode_IncrementLeaderboardValue: BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue;
3026
+ BrickComponentType_WireGraph_Exec_Gamemode_IncrementTeamLeaderboardValue: BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue;
3027
+ BrickComponentType_WireGraph_Exec_Gamemode_PlayerWins: BrickComponentData_WireGraph_Exec_Gamemode_PlayerWins;
3028
+ BrickComponentType_WireGraph_Exec_Gamemode_SetLeaderboardValue: BrickComponentData_WireGraph_Exec_Gamemode_LeaderboardValue;
3029
+ BrickComponentType_WireGraph_Exec_Gamemode_SetTeam: BrickComponentData_WireGraph_Exec_Gamemode_SetTeam;
3030
+ BrickComponentType_WireGraph_Exec_Gamemode_SetTeamLeaderboardValue: BrickComponentData_WireGraph_Exec_Gamemode_TeamLeaderboardValue;
3031
+ BrickComponentType_WireGraph_Exec_Gamemode_SetTeamPinned: BrickComponentData_WireGraph_Exec_Gamemode_SetTeamPinned;
3032
+ BrickComponentType_WireGraph_Exec_Gamemode_TeamWins: BrickComponentData_WireGraph_Exec_Gamemode_TeamWins;
3033
+ BrickComponentType_WireGraph_Exec_PlayGlobalAudio: BrickComponentData_WireGraph_Exec_PlayGlobalAudio;
3034
+ BrickComponentType_WireGraph_Exec_PrefabSpawner: BrickComponentData_WireGraph_Exec_PrefabSpawner;
3035
+ BrickComponentType_WireGraph_Exec_PrintToConsole: BrickComponentData_WireGraph_Exec_PrintToConsole;
3036
+ BrickComponentType_WireGraph_Exec_Random: BrickComponentData_WireGraph_Exec_Random;
3037
+ BrickComponentType_WireGraph_Exec_Sweep: BrickComponentData_WireGraph_Exec_Sweep;
3038
+ BrickComponentType_WireGraph_Exec_Toggle: BrickComponentData_WireGraph_Exec_Toggle;
3039
+ BrickComponentType_WireGraph_Exec_Union: BrickComponentData_WireGraph_ExecUnion;
3040
+ BrickComponentType_WireGraph_Exec_Var_Get: BrickComponentData_WireGraph_Exec_Var_Get;
3041
+ BrickComponentType_WireGraph_Exec_Var_Increment: BrickComponentData_WireGraph_Exec_Var_EditOrGet;
3042
+ BrickComponentType_WireGraph_Exec_Var_Set: BrickComponentData_WireGraph_Exec_Var_EditOrGet;
3043
+ BrickComponentType_WireGraph_Expr_BitwiseAND: BrickComponentData_WireGraph_Expr_IntInt_Int;
3044
+ BrickComponentType_WireGraph_Expr_BitwiseBitCount: BrickComponentData_WireGraph_Expr_Int_Int;
3045
+ BrickComponentType_WireGraph_Expr_BitwiseNAND: BrickComponentData_WireGraph_Expr_IntInt_Int;
3046
+ BrickComponentType_WireGraph_Expr_BitwiseNOR: BrickComponentData_WireGraph_Expr_IntInt_Int;
3047
+ BrickComponentType_WireGraph_Expr_BitwiseNOT: BrickComponentData_WireGraph_Expr_Int_Int;
3048
+ BrickComponentType_WireGraph_Expr_BitwiseOR: BrickComponentData_WireGraph_Expr_IntInt_Int;
3049
+ BrickComponentType_WireGraph_Expr_BitwiseShiftLeft: BrickComponentData_WireGraph_Expr_IntInt_Int;
3050
+ BrickComponentType_WireGraph_Expr_BitwiseShiftRight: BrickComponentData_WireGraph_Expr_IntInt_Int;
3051
+ BrickComponentType_WireGraph_Expr_BitwiseXOR: BrickComponentData_WireGraph_Expr_IntInt_Int;
3052
+ BrickComponentType_WireGraph_Expr_Ceil: BrickComponentData_WireGraph_Expr_Float_Float;
3053
+ BrickComponentType_WireGraph_Expr_ColorBlend: BrickComponentData_WireGraph_Expr_ColorBlend;
3054
+ BrickComponentType_WireGraph_Expr_ColorConvert: BrickComponentData_WireGraph_Expr_ColorConvert;
3055
+ BrickComponentType_WireGraph_Expr_ColorToHex: BrickComponentData_WireGraph_Expr_ColorToHex;
3056
+ BrickComponentType_WireGraph_Expr_CompareEqual: BrickComponentData_WireGraph_Expr_Compare;
3057
+ BrickComponentType_WireGraph_Expr_CompareGreater: BrickComponentData_WireGraph_Expr_MathCompare;
3058
+ BrickComponentType_WireGraph_Expr_CompareGreaterOrEqual: BrickComponentData_WireGraph_Expr_MathCompare;
3059
+ BrickComponentType_WireGraph_Expr_CompareLess: BrickComponentData_WireGraph_Expr_MathCompare;
3060
+ BrickComponentType_WireGraph_Expr_CompareLessOrEqual: BrickComponentData_WireGraph_Expr_MathCompare;
3061
+ BrickComponentType_WireGraph_Expr_CompareNotEqual: BrickComponentData_WireGraph_Expr_Compare;
3062
+ BrickComponentType_WireGraph_Expr_Convert: BrickComponentData_WireGraph_Expr_Convert;
3063
+ BrickComponentType_WireGraph_Expr_DirectionToRotation: BrickComponentData_WireGraph_Expr_DirectionToRotation;
3064
+ BrickComponentType_WireGraph_Expr_EdgeDetector: BrickComponentData_WireGraph_Expr_EdgeDetector;
3065
+ BrickComponentType_WireGraph_Expr_Floor: BrickComponentData_WireGraph_Expr_Float_Float;
3066
+ BrickComponentType_WireGraph_Expr_InvertRotation: BrickComponentData_WireGraph_Expr_InvertRotation;
3067
+ BrickComponentType_WireGraph_Expr_LogicalAND: BrickComponentData_WireGraph_Expr_BoolBool_Bool;
3068
+ BrickComponentType_WireGraph_Expr_LogicalNAND: BrickComponentData_WireGraph_Expr_BoolBool_Bool;
3069
+ BrickComponentType_WireGraph_Expr_LogicalNOR: BrickComponentData_WireGraph_Expr_BoolBool_Bool;
3070
+ BrickComponentType_WireGraph_Expr_LogicalNOT: BrickComponentData_WireGraph_Expr_Bool_Bool;
3071
+ BrickComponentType_WireGraph_Expr_LogicalOR: BrickComponentData_WireGraph_Expr_BoolBool_Bool;
3072
+ BrickComponentType_WireGraph_Expr_LogicalXOR: BrickComponentData_WireGraph_Expr_BoolBool_Bool;
3073
+ BrickComponentType_WireGraph_Expr_MakeColor: BrickComponentData_WireGraph_Expr_MakeColor;
3074
+ BrickComponentType_WireGraph_Expr_MakeColorHex: BrickComponentData_WireGraph_Expr_MakeColorHex;
3075
+ BrickComponentType_WireGraph_Expr_MakeColorSRGB: BrickComponentData_WireGraph_Expr_MakeColorSRGB;
3076
+ BrickComponentType_WireGraph_Expr_MakeQuaternion: BrickComponentData_WireGraph_Expr_MakeQuaternion;
3077
+ BrickComponentType_WireGraph_Expr_MakeRotation: BrickComponentData_WireGraph_Expr_MakeRotation;
3078
+ BrickComponentType_WireGraph_Expr_MakeVector: BrickComponentData_WireGraph_Expr_MakeVector;
3079
+ BrickComponentType_WireGraph_Expr_MathAbs: BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant;
3080
+ BrickComponentType_WireGraph_Expr_MathAcos: BrickComponentData_WireGraph_Expr_Float_Float;
3081
+ BrickComponentType_WireGraph_Expr_MathAcosh: BrickComponentData_WireGraph_Expr_Float_Float;
3082
+ BrickComponentType_WireGraph_Expr_MathAdd: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3083
+ BrickComponentType_WireGraph_Expr_MathAsin: BrickComponentData_WireGraph_Expr_Float_Float;
3084
+ BrickComponentType_WireGraph_Expr_MathAsinh: BrickComponentData_WireGraph_Expr_Float_Float;
3085
+ BrickComponentType_WireGraph_Expr_MathAtan: BrickComponentData_WireGraph_Expr_Float_Float;
3086
+ BrickComponentType_WireGraph_Expr_MathAtan2: BrickComponentData_WireGraph_Expr_MathAtan2;
3087
+ BrickComponentType_WireGraph_Expr_MathAtanh: BrickComponentData_WireGraph_Expr_Float_Float;
3088
+ BrickComponentType_WireGraph_Expr_MathBlend: BrickComponentData_WireGraph_Expr_MathBlend;
3089
+ BrickComponentType_WireGraph_Expr_MathClamp: BrickComponentData_WireGraph_Expr_MathClamp;
3090
+ BrickComponentType_WireGraph_Expr_MathCos: BrickComponentData_WireGraph_Expr_Float_Float;
3091
+ BrickComponentType_WireGraph_Expr_MathCosh: BrickComponentData_WireGraph_Expr_Float_Float;
3092
+ BrickComponentType_WireGraph_Expr_MathDegreesToRadians: BrickComponentData_WireGraph_Expr_Float_Float;
3093
+ BrickComponentType_WireGraph_Expr_MathDivide: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3094
+ BrickComponentType_WireGraph_Expr_MathEasing: BrickComponentData_WireGraph_Expr_MathEasing;
3095
+ BrickComponentType_WireGraph_Expr_MathExp: BrickComponentData_WireGraph_Expr_Float_Float;
3096
+ BrickComponentType_WireGraph_Expr_MathLn: BrickComponentData_WireGraph_Expr_Float_Float;
3097
+ BrickComponentType_WireGraph_Expr_MathLogBase: BrickComponentData_WireGraph_Expr_MathLogBase;
3098
+ BrickComponentType_WireGraph_Expr_MathMax: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3099
+ BrickComponentType_WireGraph_Expr_MathMin: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3100
+ BrickComponentType_WireGraph_Expr_MathModulo: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3101
+ BrickComponentType_WireGraph_Expr_MathModuloFloored: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3102
+ BrickComponentType_WireGraph_Expr_MathMultiply: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3103
+ BrickComponentType_WireGraph_Expr_MathNegate: BrickComponentData_WireGraph_Expr_Variant_Variant;
3104
+ BrickComponentType_WireGraph_Expr_MathPow: BrickComponentData_WireGraph_Expr_MathPow;
3105
+ BrickComponentType_WireGraph_Expr_MathRadiansToDegrees: BrickComponentData_WireGraph_Expr_Float_Float;
3106
+ BrickComponentType_WireGraph_Expr_MathSign: BrickComponentData_WireGraph_Expr_PrimMathVariant_PrimMathVariant;
3107
+ BrickComponentType_WireGraph_Expr_MathSin: BrickComponentData_WireGraph_Expr_Float_Float;
3108
+ BrickComponentType_WireGraph_Expr_MathSinh: BrickComponentData_WireGraph_Expr_Float_Float;
3109
+ BrickComponentType_WireGraph_Expr_MathSqrt: BrickComponentData_WireGraph_Expr_Float_Float;
3110
+ BrickComponentType_WireGraph_Expr_MathSubtract: BrickComponentData_WireGraph_Expr_PrimMathVariantPrimMathVariant_PrimMathVariant;
3111
+ BrickComponentType_WireGraph_Expr_MathTan: BrickComponentData_WireGraph_Expr_Float_Float;
3112
+ BrickComponentType_WireGraph_Expr_MathTanh: BrickComponentData_WireGraph_Expr_Float_Float;
3113
+ BrickComponentType_WireGraph_Expr_NearlyEqual: BrickComponentData_WireGraph_Expr_NearlyEqual;
3114
+ BrickComponentType_WireGraph_Expr_QuatAngleBetween: BrickComponentData_WireGraph_Expr_QuatAngleBetween;
3115
+ BrickComponentType_WireGraph_Expr_QuatBetween: BrickComponentData_WireGraph_Expr_QuatBetween;
3116
+ BrickComponentType_WireGraph_Expr_QuatDotProduct: BrickComponentData_WireGraph_Expr_QuatDotProduct;
3117
+ BrickComponentType_WireGraph_Expr_QuatFromAxisAngle: BrickComponentData_WireGraph_Expr_QuatFromAxisAngle;
3118
+ BrickComponentType_WireGraph_Expr_QuatSlerp: BrickComponentData_WireGraph_Expr_QuatSlerp;
3119
+ BrickComponentType_WireGraph_Expr_QuatToAxisAngle: BrickComponentData_WireGraph_Expr_QuatToAxisAngle;
3120
+ BrickComponentType_WireGraph_Expr_RotateVector: BrickComponentData_WireGraph_Expr_RotateVector;
3121
+ BrickComponentType_WireGraph_Expr_RotationToDirection: BrickComponentData_WireGraph_Expr_RotationToDirection;
3122
+ BrickComponentType_WireGraph_Expr_Round: BrickComponentData_WireGraph_Expr_Float_Float;
3123
+ BrickComponentType_WireGraph_Expr_Select: BrickComponentData_WireGraph_Expr_Select;
3124
+ BrickComponentType_WireGraph_Expr_SplitColor: BrickComponentData_WireGraph_Expr_SplitColor;
3125
+ BrickComponentType_WireGraph_Expr_SplitColorSRGB: BrickComponentData_WireGraph_Expr_SplitColorSRGB;
3126
+ BrickComponentType_WireGraph_Expr_SplitQuaternion: BrickComponentData_WireGraph_Expr_SplitQuaternion;
3127
+ BrickComponentType_WireGraph_Expr_SplitRotation: BrickComponentData_WireGraph_Expr_SplitRotation;
3128
+ BrickComponentType_WireGraph_Expr_SplitVector: BrickComponentData_WireGraph_Expr_SplitVector;
3129
+ BrickComponentType_WireGraph_Expr_String_Concatenate: BrickComponentData_WireGraph_Expr_String_Concatenate;
3130
+ BrickComponentType_WireGraph_Expr_String_Contains: BrickComponentData_WireGraph_Expr_String_Contains;
3131
+ BrickComponentType_WireGraph_Expr_String_EndsWith: BrickComponentData_WireGraph_Expr_String_EndsWith;
3132
+ BrickComponentType_WireGraph_Expr_String_Find: BrickComponentData_WireGraph_Expr_String_Find;
3133
+ BrickComponentType_WireGraph_Expr_String_FormatText: BrickComponentData_WireGraph_Expr_String_FormatText;
3134
+ BrickComponentType_WireGraph_Expr_String_Length: BrickComponentData_WireGraph_Expr_String_Length;
3135
+ BrickComponentType_WireGraph_Expr_String_ParseInt: BrickComponentData_WireGraph_Expr_String_ParseInt;
3136
+ BrickComponentType_WireGraph_Expr_String_ParseNumber: BrickComponentData_WireGraph_Expr_String_ParseNumber;
3137
+ BrickComponentType_WireGraph_Expr_String_Replace: BrickComponentData_WireGraph_Expr_String_Replace;
3138
+ BrickComponentType_WireGraph_Expr_String_Split: BrickComponentData_WireGraph_Expr_String_Split;
3139
+ BrickComponentType_WireGraph_Expr_String_StartsWith: BrickComponentData_WireGraph_Expr_String_StartsWith;
3140
+ BrickComponentType_WireGraph_Expr_String_Substring: BrickComponentData_WireGraph_Expr_String_Substring;
3141
+ BrickComponentType_WireGraph_Expr_String_ToLower: BrickComponentData_WireGraph_Expr_String_ToLower;
3142
+ BrickComponentType_WireGraph_Expr_String_ToUpper: BrickComponentData_WireGraph_Expr_String_ToUpper;
3143
+ BrickComponentType_WireGraph_Expr_String_Trim: BrickComponentData_WireGraph_Expr_String_Trim;
3144
+ BrickComponentType_WireGraph_Expr_Swap: BrickComponentData_WireGraph_Expr_Swap;
3145
+ BrickComponentType_WireGraph_Expr_VecCrossProduct: BrickComponentData_WireGraph_Expr_VecVec_Vec;
3146
+ BrickComponentType_WireGraph_Expr_VecDistance: BrickComponentData_WireGraph_Expr_VecVec_Float;
3147
+ BrickComponentType_WireGraph_Expr_VecDistanceSquared: BrickComponentData_WireGraph_Expr_VecVec_Float;
3148
+ BrickComponentType_WireGraph_Expr_VecDotProduct: BrickComponentData_WireGraph_Expr_VecVec_Float;
3149
+ BrickComponentType_WireGraph_Expr_VecMagnitude: BrickComponentData_WireGraph_Expr_Vec_Float;
3150
+ BrickComponentType_WireGraph_Expr_VecMagnitudeSquared: BrickComponentData_WireGraph_Expr_Vec_Float;
3151
+ BrickComponentType_WireGraph_Expr_VecNormalize: BrickComponentData_WireGraph_Expr_Vec_Vec;
3152
+ BrickComponentType_WireGraph_Expr_VecScale: BrickComponentData_WireGraph_Expr_VecFloat_Vec;
3153
+ BrickComponentType_WireGraph_Fake_Gamemode_CharacterDamagedEvent: BrickComponentData_WireGraph_Fake_CharacterDamageEvent;
3154
+ BrickComponentType_WireGraph_Fake_Gamemode_CharacterDiedEvent: BrickComponentData_WireGraph_Fake_CharacterDeathEvent;
3155
+ BrickComponentType_WireGraph_Fake_Gamemode_CharacterSpawnedEvent: BrickComponentData_WireGraph_Fake_CharacterEvent;
3156
+ BrickComponentType_WireGraph_Fake_Gamemode_ControllerJoinedEvent: BrickComponentData_WireGraph_Fake_ControllerEvent;
3157
+ BrickComponentType_WireGraph_Fake_Gamemode_ControllerLeftEvent: BrickComponentData_WireGraph_Fake_ControllerEvent;
3158
+ BrickComponentType_WireGraph_Fake_Gamemode_RoundEndEvent: BrickComponentData_WireGraph_Fake_RoundEvent;
3159
+ BrickComponentType_WireGraph_Fake_Gamemode_RoundStartEvent: BrickComponentData_WireGraph_Fake_RoundEvent;
3160
+ BrickComponentType_WireGraph_FindPlayer: BrickComponentData_WireGraph_FindPlayer;
3161
+ BrickComponentType_WireGraph_FontReference: BrickComponentData_WireGraph_FontReference;
3162
+ BrickComponentType_WireGraph_ItemReference: BrickComponentData_WireGraph_ItemReference;
3163
+ BrickComponentType_WireGraph_OneShotAudioReference: BrickComponentData_WireGraph_OneShotAudioReference;
3164
+ BrickComponentType_WireGraph_ParticleReference: BrickComponentData_WireGraph_ParticleReference;
3165
+ BrickComponentType_WireGraph_PickupReference: BrickComponentData_WireGraph_PickupReference;
3166
+ BrickComponentType_WireGraph_ProjectileReference: BrickComponentData_WireGraph_ProjectileReference;
3167
+ BrickComponentType_WireGraph_ServerUptime: BrickComponentData_WireGraph_ServerUptime;
3168
+ BrickComponentType_WireGraph_WheelEngineAudioReference: BrickComponentData_WireGraph_WheelEngineAudioReference;
3169
+ Component_AudioEmitter: BrickComponentData_AudioEmitter;
3170
+ Component_BotSpawn: BrickComponentData_BotSpawn;
3171
+ Component_BrickPropertyChanger: BrickComponentData_BrickPropertyChanger;
3172
+ Component_Button: BrickComponentData_Button;
3173
+ Component_CheckPoint: BrickComponentData_CheckPoint;
3174
+ Component_Damage: BrickComponentData_Damage;
3175
+ Component_Interact: BrickComponentData_Interact;
3176
+ Component_Internal_AnimatedButton: BrickComponentData_Button;
3177
+ Component_Internal_AnimatedPressurePlate: BrickComponentData_Touch;
3178
+ Component_Internal_AnimatedSwitch: BrickComponentData_Switch;
3179
+ Component_Internal_AttachedZone: BrickComponentData_Internal_AttachedZone;
3180
+ Component_Internal_Bearing: BrickComponentData_Bearing;
3181
+ Component_Internal_Gyroscope: BrickComponentData_Gyroscope;
3182
+ Component_Internal_InputSplitter: BrickComponentData_Internal_InputSplitter_V2;
3183
+ Component_Internal_Joint_Wheel: BrickComponentData_Joint_Wheel;
3184
+ Component_Internal_Joint_Wheel_Suspension: BrickComponentData_Joint_Wheel_Suspension;
3185
+ Component_Internal_Microchip: BrickComponentData_Internal_Microchip;
3186
+ Component_Internal_Motor: BrickComponentData_Motor;
3187
+ Component_Internal_MotorSlider: BrickComponentData_MotorSlider;
3188
+ Component_Internal_ProjectileSpawner_Cannon: BrickComponentData_ProjectileSpawner;
3189
+ Component_Internal_Rerouter: BrickComponentData_Rerouter;
3190
+ Component_Internal_RigidBearing: BrickComponentData_RigidBearing;
3191
+ Component_Internal_RigidSlider: BrickComponentData_RigidSlider;
3192
+ Component_Internal_Seat: BrickComponentData_Seat_V2;
3193
+ Component_Internal_Servo: BrickComponentData_Servo;
3194
+ Component_Internal_ServoSlider: BrickComponentData_ServoSlider;
3195
+ Component_Internal_Slider: BrickComponentData_Slider;
3196
+ Component_Internal_Thruster: BrickComponentData_Thruster;
3197
+ Component_Internal_WeightBrick: BrickComponentData_WeightBrick;
3198
+ Component_Internal_WheelEngine: BrickComponentData_WheelEngine_V2;
3199
+ Component_ItemSpawn: BrickComponentData_ItemSpawn;
3200
+ Component_OneShotAudioEmitter: BrickComponentData_OneShotAudioEmitter;
3201
+ Component_PointLight: BrickComponentData_PointLight;
3202
+ Component_ProjectileSpawner: BrickComponentData_ProjectileSpawner;
3203
+ Component_SpawnPoint: BrickComponentData_SpawnPoint;
3204
+ Component_SpotLight: BrickComponentData_SpotLight;
3205
+ Component_Switch: BrickComponentData_Switch;
3206
+ Component_Target: BrickComponentData_Target;
3207
+ Component_TextDisplay: BrickComponentData_TextDisplay;
3208
+ Component_Touch: BrickComponentData_Touch;
3209
+ Component_WireGraph_PlayAudioAt: BrickComponentData_WireGraph_Exec_Entity_PlayAudioAt;
3210
+ };
3211
+ export interface BundleJson {
3212
+ type: string;
3213
+ iD: string;
3214
+ name: string;
3215
+ version: string;
3216
+ tags: string[];
3217
+ authors: string[];
3218
+ createdAt: string;
3219
+ updatedAt: string;
3220
+ description: string;
3221
+ dependencies: unknown[];
3222
+ gameVersion: string;
3223
+ }
3224
+ export interface WriteBrzOptions {
3225
+ /** zstd compressor for blobs; omitted -> all blobs stored raw (valid, and
3226
+ * what the byte-parity gates compare against). */
3227
+ compress?: Compressor;
3228
+ /** Meta/World.json environment. save.map is NOT used. Default "Plate". */
3229
+ environment?: string;
3230
+ /** Meta/Bundle.json field overrides. */
3231
+ bundle?: Partial<BundleJson>;
3232
+ }
3233
+ /** A brdb-native component on a brick. Legacy brs components
3234
+ * (save.components / brick.components) are NOT converted. */
3235
+ /** Typed component input: known component types complete their `data`
3236
+ * fields in the editor; unknown type strings stay accepted (they throw at
3237
+ * write time unless the component db knows them). Omitted data fields take
3238
+ * the game's default values (zero values where no default is known). */
3239
+ export type BrdbComponentInput = {
3240
+ [T in keyof ComponentTypeDataMap]: {
3241
+ /** brdb component type name, e.g. 'Component_Internal_Seat' */
3242
+ type: T;
3243
+ /** fields of the component's data struct */
3244
+ data?: Partial<ComponentTypeDataMap[T]>;
3245
+ };
3246
+ }[keyof ComponentTypeDataMap] | {
3247
+ type: string & {};
3248
+ data?: Record<string, BrdbValue>;
3249
+ };
3250
+ export interface BrdbWireEndpointInput {
3251
+ /** index into save.bricks */
3252
+ brick_index: number;
3253
+ /** brdb component type name (must be used by a brick in this save) */
3254
+ component_type: string;
3255
+ /** wire port name, e.g. 'Output' */
3256
+ port: string;
3257
+ }
3258
+ /** A wire between two component ports, using brdb-native names. Legacy
3259
+ * save.wires (brs component names) are NOT converted. */
3260
+ export interface BrdbWireInput {
3261
+ source: BrdbWireEndpointInput;
3262
+ target: BrdbWireEndpointInput;
3263
+ }
3264
+ /** brdb-native extras alongside the legacy save shape: bricks carry a
3265
+ * modern `components` ARRAY of typed inputs (replacing the legacy .brs
3266
+ * component map on that field, which is not converted) and the save
3267
+ * carries `wires`. */
3268
+ export interface BrdbBrickExtras {
3269
+ components?: BrdbComponentInput[];
3270
+ /** Required for procedural assets; optional for basic (non-procedural)
3271
+ * assets, whose size is fixed by the asset and never stored. */
3272
+ size?: WriteSaveObject["bricks"][number]["size"];
3273
+ }
3274
+ export interface BrdbSaveExtras {
3275
+ wires?: BrdbWireInput[];
3276
+ }
3277
+ /** The legacy save shape plus the brdb-native extras. The brick-level
3278
+ * legacy `components` map and the save-level legacy `wires` list are
3279
+ * replaced by the modern forms. */
3280
+ export type WriteBrzSave = Omit<WriteSaveObject, "bricks" | "wires"> & {
3281
+ bricks: (Omit<WriteSaveObject["bricks"][number], "components" | "size"> & BrdbBrickExtras)[];
3282
+ } & BrdbSaveExtras;
3283
+ /** What the world writers accept: the modern shape, or an unmodified
3284
+ * legacy save (whose map-shaped `components` and legacy-named `wires`
3285
+ * are ignored rather than converted). */
3286
+ export type WriteBrzInput = WriteBrzSave | WriteSaveObject;
3287
+ declare function toRelative(position: readonly number[]): {
3288
+ chunk: [
3289
+ number,
3290
+ number,
3291
+ number
3292
+ ];
3293
+ rel: [
3294
+ number,
3295
+ number,
3296
+ number
3297
+ ];
3298
+ };
3299
+ declare function saveToPendingFs(save: WriteBrzInput, options?: WriteBrzOptions): PendingEntry[];
3300
+ /** An entity to place in the world. Grid entities (dynamic/microchip brick
3301
+ * grids) come from `World.addBrickGrid`/`World.addMicrochip`. */
3302
+ export interface BrdbEntityInput {
3303
+ /** entity type name; default 'Entity_DynamicBrickGrid' */
3304
+ type?: string;
3305
+ location?: {
3306
+ X: number;
3307
+ Y: number;
3308
+ Z: number;
3309
+ };
3310
+ rotation?: {
3311
+ X: number;
3312
+ Y: number;
3313
+ Z: number;
3314
+ W: number;
3315
+ };
3316
+ owner_index?: number;
3317
+ frozen?: boolean;
3318
+ sleeping?: boolean;
3319
+ linear_velocity?: {
3320
+ X: number;
3321
+ Y: number;
3322
+ Z: number;
3323
+ };
3324
+ angular_velocity?: {
3325
+ X: number;
3326
+ Y: number;
3327
+ Z: number;
3328
+ };
3329
+ /** up to 8 entity palette colors; missing slots default to white */
3330
+ colors?: {
3331
+ R: number;
3332
+ G: number;
3333
+ B: number;
3334
+ A: number;
3335
+ }[];
3336
+ /** fields of the entity's data class struct; omitted fields zero-fill */
3337
+ data?: Record<string, BrdbValue>;
3338
+ }
3339
+ /** A brick for the World builder: the legacy brick shape with the asset
3340
+ * and material referenced by NAME instead of by table index. */
3341
+ export type WorldBrickInput = Omit<WriteBrzSave["bricks"][number], "asset_name_index" | "material_index" | "color" | "owner_index"> & {
3342
+ /** brick asset name; default 'PB_DefaultBrick' */
3343
+ asset?: string;
3344
+ /** material asset name; default 'BMC_Plastic' */
3345
+ material?: string;
3346
+ color?: [
3347
+ number,
3348
+ number,
3349
+ number
3350
+ ];
3351
+ /** index returned by `World.addOwner` (0 = the built-in PUBLIC) */
3352
+ owner_index?: number;
3353
+ };
3354
+ export interface WorldBrickHandle {
3355
+ /** grid slot (0 = main grid) */
3356
+ readonly grid: number;
3357
+ /** index within that grid's brick list */
3358
+ readonly index: number;
3359
+ }
3360
+ export interface WorldGridHandle {
3361
+ readonly grid: number;
3362
+ readonly entityOrder: number;
3363
+ }
3364
+ export interface WorldEntityHandle {
3365
+ readonly entityOrder: number;
3366
+ }
3367
+ export interface WorldWireEndpoint {
3368
+ brick: WorldBrickHandle;
3369
+ component_type: string;
3370
+ port: string;
3371
+ }
3372
+ export interface WorldPrefabOptions {
3373
+ isMicrochipPrefab?: boolean;
3374
+ isPhysicsGrid?: boolean;
3375
+ freezePhysicsGrid?: boolean;
3376
+ freezeGlobalGrid?: boolean;
3377
+ addedGlobalGridOffset?: {
3378
+ x: number;
3379
+ y: number;
3380
+ z: number;
3381
+ };
3382
+ }
3383
+ export interface WorldMicrochipOptions {
3384
+ /** world position of the outer microchip shell brick */
3385
+ position: [
3386
+ number,
3387
+ number,
3388
+ number
3389
+ ];
3390
+ color?: [
3391
+ number,
3392
+ number,
3393
+ number
3394
+ ];
3395
+ owner_index?: number;
3396
+ /** inner grid entity location; default {X:0, Y:0, Z:40} */
3397
+ entityLocation?: {
3398
+ X: number;
3399
+ Y: number;
3400
+ Z: number;
3401
+ };
3402
+ /** inner grid plane half-extent in grid units; default {X:14, Y:14, Z:2}
3403
+ * (matches in-game placement) */
3404
+ planeExtent?: {
3405
+ X: number;
3406
+ Y: number;
3407
+ Z: number;
3408
+ };
3409
+ /** whether the chip starts collapsed; default true */
3410
+ collapsed?: boolean;
3411
+ }
3412
+ declare class World {
3413
+ private gridBrickInputs;
3414
+ /** per sub-grid slot (1..): the grid entity's insertion order */
3415
+ private gridEntityOrders;
3416
+ private entityInputs;
3417
+ private wireList;
3418
+ private chipLinks;
3419
+ private ownerList;
3420
+ private prefabOptions;
3421
+ /** Register an owner; returns its owner_index (0 is the built-in PUBLIC
3422
+ * owner, so the first added owner is index 1). */
3423
+ addOwner(owner: {
3424
+ id?: string;
3425
+ name?: string;
3426
+ display_name?: string;
3427
+ }): number;
3428
+ /** Add a brick to the main grid, or to a sub-grid via its handle. */
3429
+ addBrick(brick: WorldBrickInput, grid?: WorldGridHandle): WorldBrickHandle;
3430
+ addBricks(bricks: Iterable<WorldBrickInput>, grid?: WorldGridHandle): WorldBrickHandle[];
3431
+ /** Add a standalone (non-grid) entity. */
3432
+ addEntity(entity?: BrdbEntityInput): WorldEntityHandle;
3433
+ /** Create a sub-grid backed by a grid entity (a dynamic brick grid by
3434
+ * default). Brick positions in sub-grids are grid-local; the writer
3435
+ * shifts them by -CHUNK_HALF per axis to the chunk-center convention,
3436
+ * matching the reference writer. */
3437
+ addBrickGrid(entity?: BrdbEntityInput): WorldGridHandle;
3438
+ /** Wire two component ports together; endpoints may be in different
3439
+ * grids (the writer emits remote wire rows for cross-grid sources). */
3440
+ addWire(source: WorldWireEndpoint, target: WorldWireEndpoint): void;
3441
+ /** Pair an outer microchip shell brick with its inner grid. Most callers
3442
+ * get this for free via `addMicrochip`. */
3443
+ registerMicrochipLink(brick: WorldBrickHandle, grid: WorldGridHandle): void;
3444
+ /** Build a microchip: places the outer B_1x1_Microchip shell brick on
3445
+ * the main grid (with its Component_Internal_Microchip), creates the
3446
+ * linked inner grid entity, and returns both handles. Add the chip's
3447
+ * contents with `addBrick(..., grid)`. */
3448
+ addMicrochip(opts: WorldMicrochipOptions): {
3449
+ brick: WorldBrickHandle;
3450
+ grid: WorldGridHandle;
3451
+ };
3452
+ /** Mark this world as a prefab bundle: Bundle.json type "Prefab" plus
3453
+ * Meta/Prefab.json with pivots/bounds computed from the main-grid brick
3454
+ * bounding box (World.json is omitted). */
3455
+ makePrefab(options?: WorldPrefabOptions): void;
3456
+ toPendingFs(options?: WriteBrzOptions): PendingEntry[];
3457
+ /** Serialize to an in-memory .brz archive. */
3458
+ toBrz(options?: WriteBrzOptions): Uint8Array;
3459
+ }
3460
+ declare function writeBrzLegacy(save: WriteBrzInput, options?: WriteBrzOptions): Uint8Array;
3461
+ export interface ChunkCoord {
3462
+ x: number;
3463
+ y: number;
3464
+ z: number;
3465
+ }
3466
+ export interface BrickChunkRef {
3467
+ index: ChunkCoord;
3468
+ offset: ChunkCoord;
3469
+ size: number;
3470
+ numBricks: number;
3471
+ numComponents: number;
3472
+ numWires: number;
3473
+ }
3474
+ export interface EntityChunkRef {
3475
+ index: ChunkCoord;
3476
+ numEntities: number;
3477
+ }
3478
+ export interface EntityChunkIndex {
3479
+ nextPersistentIndex: number;
3480
+ chunks: EntityChunkRef[];
3481
+ }
3482
+ export interface ComponentInstance {
3483
+ typeName: string;
3484
+ structName: string | null;
3485
+ /** the owning brick's local index within its chunk */
3486
+ brickIndex: number;
3487
+ data: Record<string, BrdbValue> | null;
3488
+ }
3489
+ export interface WireEndpoint {
3490
+ /** the endpoint brick's local index within its chunk */
3491
+ brickIndex: number;
3492
+ componentType: string;
3493
+ port: string;
3494
+ }
3495
+ export interface RemoteWireEndpoint extends WireEndpoint {
3496
+ gridId: number;
3497
+ chunk: ChunkCoord;
3498
+ }
3499
+ export interface WireChunk {
3500
+ /** wires whose source is in the same grid+chunk as the target */
3501
+ local: Array<{
3502
+ source: WireEndpoint;
3503
+ target: WireEndpoint;
3504
+ }>;
3505
+ /** wires whose source lives in another grid or chunk */
3506
+ remote: Array<{
3507
+ source: RemoteWireEndpoint;
3508
+ target: WireEndpoint;
3509
+ }>;
3510
+ }
3511
+ export interface EntityRecord {
3512
+ typeName: string;
3513
+ className: string | null;
3514
+ persistentIndex: number;
3515
+ ownerIndex: number;
3516
+ originalOwnerIndex: number;
3517
+ location: {
3518
+ X: number;
3519
+ Y: number;
3520
+ Z: number;
3521
+ };
3522
+ rotation: {
3523
+ X: number;
3524
+ Y: number;
3525
+ Z: number;
3526
+ W: number;
3527
+ };
3528
+ frozen: boolean;
3529
+ sleeping: boolean;
3530
+ linearVelocity: {
3531
+ X: number;
3532
+ Y: number;
3533
+ Z: number;
3534
+ };
3535
+ angularVelocity: {
3536
+ X: number;
3537
+ Y: number;
3538
+ Z: number;
3539
+ };
3540
+ colors: Record<string, BrdbValue>;
3541
+ remainingLifeSpan: number;
3542
+ data: Record<string, BrdbValue> | null;
3543
+ }
3544
+ export interface BrzWorldBrick {
3545
+ asset_name_index: number;
3546
+ size: Vector;
3547
+ position: Vector;
3548
+ direction: number;
3549
+ rotation: number;
3550
+ collision: Collision;
3551
+ visibility: boolean;
3552
+ material_index: number;
3553
+ material_intensity: number;
3554
+ color: [
3555
+ number,
3556
+ number,
3557
+ number
3558
+ ];
3559
+ owner_index: number;
3560
+ }
3561
+ declare class WorldReader {
3562
+ readonly fs: WorldFs;
3563
+ readonly worldId: number;
3564
+ private schemas;
3565
+ private values;
3566
+ constructor(fs: WorldFs, worldId?: number);
3567
+ static from(data: Uint8Array): WorldReader;
3568
+ private path;
3569
+ /** Parse a .schema blob once per revision; later calls return the cached
3570
+ * schema. The public form resolves the schema file's own (latest)
3571
+ * revision. */
3572
+ schema(path: string): BrdbSchema;
3573
+ /** Schema as it existed at `revision` (a created_at timestamp). Schemas
3574
+ * evolve over a world's history; data files must decode with the schema
3575
+ * revision that was live when they were written. */
3576
+ private schemaAt;
3577
+ private decode;
3578
+ private cached;
3579
+ bundle(): BundleJson;
3580
+ environment(): {
3581
+ environment: string;
3582
+ };
3583
+ globalData(): any;
3584
+ owners(): any;
3585
+ /** Basic asset names followed by procedural — decoded brick
3586
+ * asset_name_index values point into this combined list. */
3587
+ brickAssets(): string[];
3588
+ materials(): string[];
3589
+ /** Owner rows 1.. (the PUBLIC row 0 is excluded). */
3590
+ brickOwners(): Owner[];
3591
+ /** Grid ids under Bricks/Grids: 1 = the main grid, ≥2 = entity sub-grids. */
3592
+ gridIds(): number[];
3593
+ brickChunkIndex(gridId?: number): BrickChunkRef[];
3594
+ /** Decode one brick chunk's SoA. Not cached: chunk payloads are the bulk
3595
+ * of an archive and are meant to be streamed, not retained. */
3596
+ brickChunkSoa(gridId: number, chunk: ChunkCoord): any;
3597
+ /** Lazily decode a grid's bricks, one chunk at a time. Positions are
3598
+ * relative to the grid's origin: world origin for the main grid (1),
3599
+ * entity-relative for sub-grids (≥2). */
3600
+ bricks(gridId?: number): Generator<BrzWorldBrick, void, void>;
3601
+ /** Entity chunk registry. */
3602
+ entityChunkIndex(): EntityChunkIndex;
3603
+ /** Decode a component chunk: the SoA plus each instance's trailing data
3604
+ * struct. Instances stream in counter order; a type whose data-struct
3605
+ * slot is missing or "None" contributes no trailing bytes. */
3606
+ componentChunk(gridId: number, chunk: ChunkCoord): {
3607
+ soa: any;
3608
+ components: ComponentInstance[];
3609
+ };
3610
+ /** Decode a wire chunk. Wires live in the TARGET's grid+chunk; local
3611
+ * rows are same-grid-same-chunk sources, remote rows carry the source
3612
+ * grid + chunk. Component/port names resolve through GlobalData. */
3613
+ wireChunk(gridId: number, chunk: ChunkCoord): WireChunk;
3614
+ /** Decode one entity chunk: the SoA plus each entity's trailing data
3615
+ * struct (gated on EntityDataClassNames: absent or "None" = no struct). */
3616
+ entityChunk(chunk: ChunkCoord): EntityRecord[];
3617
+ /** Lazily decode every entity, one chunk at a time. */
3618
+ entities(): Generator<EntityRecord, void, void>;
3619
+ }
3620
+ export interface BrGuid {
3621
+ A: number;
3622
+ B: number;
3623
+ C: number;
3624
+ D: number;
3625
+ }
3626
+ declare function uuidToGuid(uuid: string): BrGuid;
3627
+ declare function guidToUuid(guid: BrGuid): string;
3628
+ declare function isProceduralAsset(name: string): boolean;
3629
+ export interface BrdbStatement {
3630
+ run(...params: unknown[]): {
3631
+ lastInsertRowid: number | bigint;
3632
+ };
3633
+ get(...params: unknown[]): unknown;
3634
+ all(...params: unknown[]): unknown[];
3635
+ }
3636
+ export interface BrdbSqlite {
3637
+ exec(sql: string): unknown;
3638
+ prepare(sql: string): BrdbStatement;
3639
+ close(): void;
3640
+ }
3641
+ export interface BrdbBlob {
3642
+ blobId: number;
3643
+ compression: number;
3644
+ sizeUncompressed: number;
3645
+ sizeCompressed: number;
3646
+ deltaBaseId: number | null;
3647
+ hash: Uint8Array;
3648
+ content: Uint8Array;
3649
+ }
3650
+ export interface BrdbRevision {
3651
+ revisionId: number;
3652
+ description: string;
3653
+ createdAt: number;
3654
+ }
3655
+ export interface WritePendingOptions {
3656
+ /** Revision timestamp in unix seconds. Defaults to the wall clock. */
3657
+ createdAt?: number;
3658
+ /** Blob compressor. undefined uses the instance default (zstd level 14
3659
+ * when opened through the lazy openers); null stores raw. */
3660
+ compress?: Compressor | null;
3661
+ }
3662
+ declare class Brdb implements WorldFs {
3663
+ readonly db: BrdbSqlite;
3664
+ /** Override how the better-sqlite3 module is resolved. Useful when a
3665
+ * bundler or test runner cannot execute a native dynamic import. */
3666
+ static engineLoader: (() => Promise<unknown>) | null;
3667
+ /** zstd compressor applied to new blobs when no per-write compressor is
3668
+ * given. The lazy openers set this; a directly-wrapped handle has none. */
3669
+ defaultCompress: Compressor | null;
3670
+ constructor(db: BrdbSqlite);
3671
+ /** Create-container semantics on any handle: run the DDL and stamp the
3672
+ * initial revision. */
3673
+ static init(db: BrdbSqlite, createdAt?: number): Brdb;
3674
+ /** Construct create/open semantics on a handle, closing it if construction
3675
+ * (the DDL or the required-table guard) throws so a failed opener never
3676
+ * leaks the underlying handle (and, on Windows, never leaves it locked). */
3677
+ private static wrap;
3678
+ /** Open an existing database file. Rejects (without creating a file) when
3679
+ * the path does not already exist. */
3680
+ static open(path: string): Promise<Brdb>;
3681
+ /** Open an existing database file read-only. Rejects (without creating a
3682
+ * file) when the path does not already exist. */
3683
+ static openReadonly(path: string): Promise<Brdb>;
3684
+ /** Create a new database file (container schema + initial revision). */
3685
+ static create(path: string): Promise<Brdb>;
3686
+ /** Open the file if it exists, otherwise create it. */
3687
+ static openOrCreate(path: string): Promise<Brdb>;
3688
+ /** New in-memory database. */
3689
+ static memory(): Promise<Brdb>;
3690
+ /** Open a database from serialized bytes. */
3691
+ static fromBytes(bytes: Uint8Array): Promise<Brdb>;
3692
+ /** Serialize the database to bytes (requires a better-sqlite3 handle). */
3693
+ toBytes(): Uint8Array;
3694
+ /** Write a world save as one revision: a World builder instance or a
3695
+ * legacy .brs-shaped save object. */
3696
+ save(description: string, save: WriteBrzInput | World, options?: Omit<WriteBrzOptions, "compress"> & WritePendingOptions): void;
3697
+ /** Lazy world reader over this database (same surface as .brz reading).
3698
+ * The reader caches decoded metadata (GlobalData, Owners, Bundle/World
3699
+ * JSON) for its lifetime; if this Brdb is written to (save/writePending)
3700
+ * after the reader is created, construct a fresh worldReader() rather
3701
+ * than reusing the old one, or later reads may mix stale cached metadata
3702
+ * with newly written chunk data. */
3703
+ worldReader(): WorldReader;
3704
+ sqliteSchema(): string;
3705
+ createRevision(description: string, createdAt?: number): number;
3706
+ revisions(): BrdbRevision[];
3707
+ insertFolder(name: string, parentId: number | null, createdAt: number): number;
3708
+ insertFile(name: string, parentId: number | null, contentId: number, createdAt: number): number;
3709
+ /** Insert a blob (dedup by hash + uncompressed size), compressing when the
3710
+ * compressor yields something strictly smaller. */
3711
+ insertBlob(content: Uint8Array, hash: Uint8Array, compress: Compressor | null): number;
3712
+ findBlobByHash(size: number, hash: Uint8Array): BrdbBlob | null;
3713
+ findBlob(contentId: number): BrdbBlob;
3714
+ deleteFile(fileId: number, deletedAt: number): void;
3715
+ deleteFolder(folderId: number, deletedAt: number): void;
3716
+ findFolder(parentId: number | null, name: string): number | null;
3717
+ /** Like findFolder, but resolves against the tree as of a revision date
3718
+ * instead of the current tree. Used by findFileByPathAtRevision so an
3719
+ * ancestor folder that was soft-deleted after `date` does not hide a file
3720
+ * that was still live at `date`. */
3721
+ findFolderAtRevision(parentId: number | null, name: string, date: number): number | null;
3722
+ findFile(parentId: number | null, name: string): FoundFile | null;
3723
+ findFileAtRevision(parentId: number | null, name: string, date: number): FoundFile | null;
3724
+ close(): void;
3725
+ /** Merge a COMPLETE pending tree against the current tree in one
3726
+ * transaction: identical files are noops, changed files are soft-deleted
3727
+ * and reinserted, and existing entries absent from the pending tree are
3728
+ * soft-deleted recursively. */
3729
+ writePending(description: string, pending: PendingEntry[], options?: WritePendingOptions): void;
3730
+ private currentFolders;
3731
+ private currentFiles;
3732
+ private mergeFolder;
3733
+ private insertPending;
3734
+ private deleteFolderRecursive;
3735
+ /** Resolve a folder path. '' is the root. With no date, resolves against
3736
+ * the current tree; with a date, resolves each segment against the tree
3737
+ * as of that revision (see findFolderAtRevision). */
3738
+ private folderIdOf;
3739
+ findFileByPath(path: string): FoundFile | null;
3740
+ /** Both folders and the leaf file resolve against the tree as of `date`,
3741
+ * so a file is still reachable at a date before an ancestor folder was
3742
+ * later soft-deleted. */
3743
+ findFileByPathAtRevision(path: string, date: number): FoundFile | null;
3744
+ childFolders(path: string): string[];
3745
+ childFiles(path: string): string[];
3746
+ /** Decompressed blob content. Empty files (contentId -1) yield empty
3747
+ * bytes, matching the .brz reader's documented deviation. */
3748
+ readBlob(contentId: number): Uint8Array;
3749
+ readFile(path: string): Uint8Array;
3750
+ /** The full current tree as a pending tree (folders first, then files,
3751
+ * each in name order). */
3752
+ toPending(): PendingEntry[];
3753
+ }
3754
+ declare class BitFlags {
3755
+ bytes: number[];
3756
+ private bits;
3757
+ push(v: boolean): void;
3758
+ toValue(): BrdbValue;
3759
+ }
1500
3760
  declare function hsv(h: number | {
1501
3761
  h: number;
1502
3762
  s: number;
@@ -1566,6 +3826,133 @@ declare function rotate(brick: Brick, rotation: [
1566
3826
  declare function rotate_x(times: number): (obj: Brick) => Brick;
1567
3827
  declare function rotate_y(times: number): (obj: Brick) => Brick;
1568
3828
  declare function rotate_z(times: number): (obj: Brick) => Brick;
3829
+ // FIXME: Is this `any` really necessary?
3830
+ export type VariableArgFunction = (...params: any[]) => unknown;
3831
+ export type ArgumentTypes<F extends VariableArgFunction> = F extends (...args: infer A) => unknown ? A : never;
3832
+ export type ElementOf<T> = T extends Array<infer E> ? E : T;
3833
+ declare namespace BetterSqlite3 {
3834
+ interface Statement<BindParameters extends unknown[], Result = unknown> {
3835
+ database: Database;
3836
+ source: string;
3837
+ reader: boolean;
3838
+ readonly: boolean;
3839
+ busy: boolean;
3840
+ run(...params: BindParameters): Database.RunResult;
3841
+ get(...params: BindParameters): Result | undefined;
3842
+ all(...params: BindParameters): Result[];
3843
+ iterate(...params: BindParameters): IterableIterator<Result>;
3844
+ pluck(toggleState?: boolean): this;
3845
+ expand(toggleState?: boolean): this;
3846
+ raw(toggleState?: boolean): this;
3847
+ bind(...params: BindParameters): this;
3848
+ columns(): ColumnDefinition[];
3849
+ safeIntegers(toggleState?: boolean): this;
3850
+ }
3851
+ interface ColumnDefinition {
3852
+ name: string;
3853
+ column: string | null;
3854
+ table: string | null;
3855
+ database: string | null;
3856
+ type: string | null;
3857
+ }
3858
+ interface Transaction<F extends VariableArgFunction> {
3859
+ (...params: ArgumentTypes<F>): ReturnType<F>;
3860
+ default(...params: ArgumentTypes<F>): ReturnType<F>;
3861
+ deferred(...params: ArgumentTypes<F>): ReturnType<F>;
3862
+ immediate(...params: ArgumentTypes<F>): ReturnType<F>;
3863
+ exclusive(...params: ArgumentTypes<F>): ReturnType<F>;
3864
+ }
3865
+ interface VirtualTableOptions {
3866
+ rows: (...params: unknown[]) => Generator;
3867
+ columns: string[];
3868
+ parameters?: string[] | undefined;
3869
+ safeIntegers?: boolean | undefined;
3870
+ directOnly?: boolean | undefined;
3871
+ }
3872
+ interface Database {
3873
+ memory: boolean;
3874
+ readonly: boolean;
3875
+ name: string;
3876
+ open: boolean;
3877
+ inTransaction: boolean;
3878
+ prepare<BindParameters extends unknown[] | {} = unknown[], Result = unknown>(source: string): BindParameters extends unknown[] ? Statement<BindParameters, Result> : Statement<[
3879
+ BindParameters
3880
+ ], Result>;
3881
+ transaction<F extends VariableArgFunction>(fn: F): Transaction<F>;
3882
+ exec(source: string): this;
3883
+ pragma(source: string, options?: Database.PragmaOptions): unknown;
3884
+ function(name: string, cb: (...params: any[]) => any): this;
3885
+ function(name: string, options: Database.RegistrationOptions, cb: (...params: any[]) => any): this;
3886
+ aggregate<T>(name: string, options: Database.RegistrationOptions & {
3887
+ start?: T | (() => T);
3888
+ // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
3889
+ step: (total: T, next: ElementOf<T>) => T | void;
3890
+ inverse?: ((total: T, dropped: T) => T) | undefined;
3891
+ result?: ((total: T) => unknown) | undefined;
3892
+ }): this;
3893
+ loadExtension(path: string): this;
3894
+ close(): this;
3895
+ defaultSafeIntegers(toggleState?: boolean): this;
3896
+ backup(destinationFile: string, options?: Database.BackupOptions): Promise<Database.BackupMetadata>;
3897
+ table(name: string, options: VirtualTableOptions): this;
3898
+ unsafeMode(unsafe?: boolean): this;
3899
+ serialize(options?: Database.SerializeOptions): Buffer;
3900
+ }
3901
+ interface DatabaseConstructor {
3902
+ new (filename?: string | Buffer, options?: Database.Options): Database;
3903
+ (filename?: string, options?: Database.Options): Database;
3904
+ prototype: Database;
3905
+ SqliteError: SqliteErrorType;
3906
+ }
3907
+ }
3908
+ declare class SqliteErrorClass extends Error {
3909
+ name: string;
3910
+ message: string;
3911
+ code: string;
3912
+ constructor(message: string, code: string);
3913
+ }
3914
+ export type SqliteErrorType = typeof SqliteErrorClass;
3915
+ declare namespace Database {
3916
+ interface RunResult {
3917
+ changes: number;
3918
+ lastInsertRowid: number | bigint;
3919
+ }
3920
+ interface Options {
3921
+ readonly?: boolean | undefined;
3922
+ fileMustExist?: boolean | undefined;
3923
+ timeout?: number | undefined;
3924
+ verbose?: ((message?: unknown, ...additionalArgs: unknown[]) => void) | undefined;
3925
+ nativeBinding?: string | undefined;
3926
+ }
3927
+ interface SerializeOptions {
3928
+ attached?: string;
3929
+ }
3930
+ interface PragmaOptions {
3931
+ simple?: boolean | undefined;
3932
+ }
3933
+ interface RegistrationOptions {
3934
+ varargs?: boolean | undefined;
3935
+ deterministic?: boolean | undefined;
3936
+ safeIntegers?: boolean | undefined;
3937
+ directOnly?: boolean | undefined;
3938
+ }
3939
+ type AggregateOptions = Parameters<BetterSqlite3.Database["aggregate"]>[1];
3940
+ interface BackupMetadata {
3941
+ totalPages: number;
3942
+ remainingPages: number;
3943
+ }
3944
+ interface BackupOptions {
3945
+ progress: (info: BackupMetadata) => number;
3946
+ }
3947
+ type SqliteError = SqliteErrorType;
3948
+ type Statement<BindParameters extends unknown[] | {} = unknown[], Result = unknown> = BindParameters extends unknown[] ? BetterSqlite3.Statement<BindParameters, Result> : BetterSqlite3.Statement<[
3949
+ BindParameters
3950
+ ], Result>;
3951
+ type ColumnDefinition = BetterSqlite3.ColumnDefinition;
3952
+ type Transaction<T extends VariableArgFunction = VariableArgFunction> = BetterSqlite3.Transaction<T>;
3953
+ type Database = BetterSqlite3.Database;
3954
+ }
3955
+ declare const Database: BetterSqlite3.DatabaseConstructor;
1569
3956
  export declare const _OMEGGA_UTILS_IMPORT: {
1570
3957
  chat: {
1571
3958
  EMOTES: string[];
@@ -1612,7 +3999,7 @@ export declare const _OMEGGA_UTILS_IMPORT: {
1612
3999
  uuid: {
1613
4000
  UUID_PATTERN: RegExp;
1614
4001
  match: (str: string) => boolean;
1615
- random: typeof import("crypto").randomUUID;
4002
+ random: () => string;
1616
4003
  };
1617
4004
  pattern: {
1618
4005
  explode: (str: string) => RegExp;
@@ -1682,6 +4069,34 @@ export declare const _OMEGGA_UTILS_IMPORT: {
1682
4069
  DEFAULT_UUID: Uuid;
1683
4070
  };
1684
4071
  };
4072
+ brdb: {
4073
+ Brdb: typeof Brdb;
4074
+ WorldReader: typeof WorldReader;
4075
+ BrzReader: typeof BrzReader;
4076
+ writeBrzContainer: typeof writeBrzContainer;
4077
+ writeBrzLegacy: typeof writeBrzLegacy;
4078
+ saveToPendingFs: typeof saveToPendingFs;
4079
+ toRelative: typeof toRelative;
4080
+ MAIN_GRID: number;
4081
+ CHUNK_SIZE: number;
4082
+ CHUNK_HALF: number;
4083
+ BrdbSchema: typeof BrdbSchema;
4084
+ embeddedSchema: typeof embeddedSchema;
4085
+ guidToUuid: typeof guidToUuid;
4086
+ uuidToGuid: typeof uuidToGuid;
4087
+ PUBLIC_GUID: BrGuid;
4088
+ file: (content: Uint8Array) => PendingNode;
4089
+ folder: (children: PendingEntry[]) => PendingNode;
4090
+ isProceduralAsset: typeof isProceduralAsset;
4091
+ bit: (flags: {
4092
+ Flags: number[];
4093
+ }, i: number) => boolean;
4094
+ BitFlags: typeof BitFlags;
4095
+ ByteReader: typeof ByteReader;
4096
+ ByteWriter: typeof ByteWriter;
4097
+ msgpack: any;
4098
+ };
4099
+ Sqlite: new (filename?: string | Buffer, options?: Database.Options) => Database.Database;
1685
4100
  };
1686
4101
  declare global {
1687
4102
  export var Omegga: OmeggaLike;
@@ -2089,6 +4504,9 @@ export interface MockEventEmitter {
2089
4504
  };
2090
4505
  minigameName: string;
2091
4506
  }) => void): this;
4507
+ on(event: "wirelog", listener: (raw: string) => void): this;
4508
+ on(event: `wirecmd:${string}`, listener: (...args: string[]) => void): this;
4509
+ on(event: "wirecmd", listener: (cmd: string, ...args: string[]) => void): this;
2092
4510
  }
2093
4511
  export interface OmeggaLike extends OmeggaCore, LogWrangling, InjectedCommands, MockEventEmitter {
2094
4512
  writeln(line: string): void;
@@ -2123,6 +4541,8 @@ export interface OmeggaLike extends OmeggaCore, LogWrangling, InjectedCommands,
2123
4541
  savePath: string;
2124
4542
  /** path to worlds */
2125
4543
  worldPath: string;
4544
+ /** path to prefabs */
4545
+ prefabPath: string;
2126
4546
  /** path to presets */
2127
4547
  presetPath: string;
2128
4548
  /** path to containing dir */
@@ -2254,7 +4674,8 @@ export interface OmeggaCore {
2254
4674
  id: string;
2255
4675
  }, quiet?: boolean): void;
2256
4676
  /**
2257
- * Clear a region of bricks
4677
+ * Clear a region of bricks. On EA3 this routes to `br.World.ClearRegion`
4678
+ * and can optionally clear entities too.
2258
4679
  * @param region region to clear
2259
4680
  * @param options optional settings
2260
4681
  */
@@ -2271,16 +4692,28 @@ export interface OmeggaCore {
2271
4692
  ];
2272
4693
  }, options?: {
2273
4694
  target?: string | OmeggaPlayer;
4695
+ /** clear bricks in the region (default true) */
4696
+ bricks?: boolean;
4697
+ /** also clear entities in the region (default false, EA3 only) */
4698
+ entities?: boolean;
2274
4699
  }): void;
2275
4700
  /**
2276
- * Clear all bricks on the server
2277
- * @param quiet quietly clear bricks
4701
+ * Clear all bricks on the server. On EA3 this routes to
4702
+ * `br.World.ClearAll` and can optionally clear entities too. A bare boolean
4703
+ * is accepted as the legacy `quiet` argument.
4704
+ * @param options quiet (or `{ quiet, bricks, entities }`)
2278
4705
  */
2279
- clearAllBricks(quiet?: boolean): void;
4706
+ clearAllBricks(options?: boolean | {
4707
+ quiet?: boolean;
4708
+ bricks?: boolean;
4709
+ entities?: boolean;
4710
+ }): void;
2280
4711
  /**
2281
4712
  * Save bricks under a filename
2282
4713
  * @param saveName save file name
2283
4714
  * @param region region of bricks to save
4715
+ * @deprecated removed in Brickadia EA3 (no-op on newer servers) - save a
4716
+ * prefab with {@link savePrefabRegion} instead
2284
4717
  */
2285
4718
  saveBricks(saveName: string, region?: {
2286
4719
  center: [
@@ -2298,6 +4731,8 @@ export interface OmeggaCore {
2298
4731
  * Save bricks under a filename, with a promise
2299
4732
  * @param saveName save file name
2300
4733
  * @param region region of bricks to save
4734
+ * @deprecated removed in Brickadia EA3 (no-op on newer servers) - save a
4735
+ * prefab with {@link savePrefabRegion} instead
2301
4736
  */
2302
4737
  saveBricksAsync(saveName: string, region?: {
2303
4738
  center: [
@@ -2313,6 +4748,8 @@ export interface OmeggaCore {
2313
4748
  }): Promise<void>;
2314
4749
  /**
2315
4750
  * Load bricks on the server
4751
+ * @deprecated removed in Brickadia EA3 (no-op on newer servers) - load a
4752
+ * prefab with {@link loadPrefab} instead
2316
4753
  */
2317
4754
  loadBricks(saveName: string, options?: {
2318
4755
  offX?: number;
@@ -2324,6 +4761,8 @@ export interface OmeggaCore {
2324
4761
  }): void;
2325
4762
  /**
2326
4763
  * Load bricks on the server into a player's clipbaord
4764
+ * @deprecated removed in Brickadia ~EA2 (no-op on newer servers) - use
4765
+ * {@link loadPrefabOnPlayer} instead
2327
4766
  */
2328
4767
  loadBricksOnPlayer(saveName: string, player: string | OmeggaPlayer, options?: {
2329
4768
  offX?: number;
@@ -2400,6 +4839,8 @@ export interface OmeggaCore {
2400
4839
  /**
2401
4840
  * load bricks from save data and resolve when game finishes loading
2402
4841
  * @param saveData BRS JS Save data
4842
+ * @deprecated removed in Brickadia EA3 (no-op on newer servers) - use the
4843
+ * prefab API ({@link loadPrefab}) instead
2403
4844
  */
2404
4845
  loadSaveData(saveData: WriteSaveObject, options?: {
2405
4846
  offX?: number;
@@ -2413,6 +4854,8 @@ export interface OmeggaCore {
2413
4854
  * load bricks from save data and resolve when game finishes loading
2414
4855
  * @param saveData BRS JS Save data
2415
4856
  * @param player Player name/id or player object
4857
+ * @deprecated removed in Brickadia ~EA2 (no-op on newer servers) - use the
4858
+ * prefab API ({@link loadPrefabOnPlayer}) instead
2416
4859
  */
2417
4860
  loadSaveDataOnPlayer(saveData: WriteSaveObject, player: string | OmeggaPlayer, options?: {
2418
4861
  offX?: number;
@@ -2423,6 +4866,8 @@ export interface OmeggaCore {
2423
4866
  }): Promise<void>;
2424
4867
  /**
2425
4868
  * get current bricks as save data
4869
+ * @deprecated removed in Brickadia EA3 (returns undefined on newer
4870
+ * servers) - use the prefab API instead
2426
4871
  */
2427
4872
  getSaveData(region?: {
2428
4873
  center: [
@@ -2436,6 +4881,91 @@ export interface OmeggaCore {
2436
4881
  number
2437
4882
  ];
2438
4883
  }): Promise<ReadSaveObject>;
4884
+ /**
4885
+ * Get all prefabs in the prefabs folder and child folders (EA3)
4886
+ */
4887
+ getPrefabs(): string[];
4888
+ /**
4889
+ * Load a prefab into the world (EA3). `path` is a bundle path ref such
4890
+ * as `Prefabs/Uploads/<hash>.brz`.
4891
+ * @param path prefab bundle path ref
4892
+ * @param options placement options (offset, orientation, mirror axes, etc)
4893
+ */
4894
+ loadPrefab(path: string, options?: {
4895
+ offX?: number;
4896
+ offY?: number;
4897
+ offZ?: number;
4898
+ atOriginalPosition?: boolean;
4899
+ orientation?: number;
4900
+ rootEntityPersistentIndex?: number;
4901
+ /** bitmask: X=1 Y=2 Z=4 (e.g. 3 mirrors X and Y) */
4902
+ mirrorAxes?: number;
4903
+ overrideUserId?: string;
4904
+ }): void;
4905
+ /**
4906
+ * Save the world (or a region of it) as a prefab (EA3).
4907
+ * @param path destination prefab bundle path ref (e.g. `Prefabs/MyPrefab.brz`)
4908
+ * @param options save options; omit `region` to capture the whole world
4909
+ */
4910
+ savePrefab(path: string, options?: {
4911
+ region?: {
4912
+ center: [
4913
+ number,
4914
+ number,
4915
+ number
4916
+ ];
4917
+ extent: [
4918
+ number,
4919
+ number,
4920
+ number
4921
+ ];
4922
+ };
4923
+ entities?: boolean;
4924
+ rootEntityPersistentIndex?: number;
4925
+ userId?: string;
4926
+ }): void;
4927
+ /**
4928
+ * Save a prefab and resolve once the prefab file has been written to disk
4929
+ * (EA3).
4930
+ * @param path destination prefab bundle path ref
4931
+ * @param options same options as {@link savePrefab}
4932
+ * @returns absolute path to the written prefab, or null on timeout
4933
+ */
4934
+ savePrefabAsync(path: string, options?: {
4935
+ region?: {
4936
+ center: [
4937
+ number,
4938
+ number,
4939
+ number
4940
+ ];
4941
+ extent: [
4942
+ number,
4943
+ number,
4944
+ number
4945
+ ];
4946
+ };
4947
+ entities?: boolean;
4948
+ rootEntityPersistentIndex?: number;
4949
+ userId?: string;
4950
+ }): Promise<string | null>;
4951
+ /**
4952
+ * Give a prefab to a player's inventory (EA3).
4953
+ * @param path prefab bundle path ref
4954
+ * @param player player name/id or player object
4955
+ * @param options give options (preserve ownership)
4956
+ */
4957
+ givePrefabToPlayer(path: string, player: string | OmeggaPlayer, options?: {
4958
+ preserveOwnership?: boolean;
4959
+ }): void;
4960
+ /**
4961
+ * Load a prefab onto a player (EA3, replaces {@link loadBricksOnPlayer}).
4962
+ * @param path prefab bundle path ref
4963
+ * @param player player name/id or player object
4964
+ * @param options give options (preserve ownership)
4965
+ */
4966
+ loadPrefabOnPlayer(path: string, player: string | OmeggaPlayer, options?: {
4967
+ preserveOwnership?: boolean;
4968
+ }): void;
2439
4969
  /**
2440
4970
  * Change server map
2441
4971
  * @param map Map name