isaacscript-common 71.2.1 → 72.0.1

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.
Files changed (83) hide show
  1. package/dist/index.rollup.d.ts +229 -96
  2. package/dist/isaacscript-common.lua +13 -128
  3. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -1
  4. package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +3 -1
  5. package/dist/src/classes/features/other/CustomItemPools.d.ts +7 -3
  6. package/dist/src/classes/features/other/CustomItemPools.d.ts.map +1 -1
  7. package/dist/src/classes/features/other/CustomItemPools.lua +1 -6
  8. package/dist/src/classes/features/other/DeployJSONRoom.d.ts +7 -3
  9. package/dist/src/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
  10. package/dist/src/classes/features/other/DeployJSONRoom.lua +1 -5
  11. package/dist/src/classes/features/other/ModdedElementSets.d.ts +35 -15
  12. package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
  13. package/dist/src/classes/features/other/ModdedElementSets.lua +0 -17
  14. package/dist/src/classes/features/other/SpawnCollectible.d.ts +14 -6
  15. package/dist/src/classes/features/other/SpawnCollectible.d.ts.map +1 -1
  16. package/dist/src/classes/features/other/SpawnCollectible.lua +0 -8
  17. package/dist/src/classes/features/other/SpawnRockAltRewards.d.ts +8 -4
  18. package/dist/src/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
  19. package/dist/src/classes/features/other/SpawnRockAltRewards.lua +0 -4
  20. package/dist/src/classes/features/other/customStages/utils.d.ts +2 -2
  21. package/dist/src/classes/features/other/customStages/utils.d.ts.map +1 -1
  22. package/dist/src/classes/features/other/customStages/utils.lua +0 -8
  23. package/dist/src/classes/features/other/extraConsoleCommands/commands.lua +2 -2
  24. package/dist/src/functions/array.d.ts +35 -15
  25. package/dist/src/functions/array.d.ts.map +1 -1
  26. package/dist/src/functions/array.lua +30 -26
  27. package/dist/src/functions/color.d.ts +8 -4
  28. package/dist/src/functions/color.d.ts.map +1 -1
  29. package/dist/src/functions/color.lua +7 -7
  30. package/dist/src/functions/enums.d.ts +6 -3
  31. package/dist/src/functions/enums.d.ts.map +1 -1
  32. package/dist/src/functions/enums.lua +5 -7
  33. package/dist/src/functions/itemPool.d.ts +8 -1
  34. package/dist/src/functions/itemPool.d.ts.map +1 -1
  35. package/dist/src/functions/itemPool.lua +9 -2
  36. package/dist/src/functions/jsonRoom.d.ts +13 -6
  37. package/dist/src/functions/jsonRoom.d.ts.map +1 -1
  38. package/dist/src/functions/jsonRoom.lua +11 -12
  39. package/dist/src/functions/kColor.d.ts +8 -4
  40. package/dist/src/functions/kColor.d.ts.map +1 -1
  41. package/dist/src/functions/kColor.lua +7 -7
  42. package/dist/src/functions/levelGrid.d.ts +12 -5
  43. package/dist/src/functions/levelGrid.d.ts.map +1 -1
  44. package/dist/src/functions/levelGrid.lua +10 -7
  45. package/dist/src/functions/random.d.ts +22 -13
  46. package/dist/src/functions/random.d.ts.map +1 -1
  47. package/dist/src/functions/random.lua +19 -20
  48. package/dist/src/functions/rng.d.ts +1 -1
  49. package/dist/src/functions/rng.lua +1 -1
  50. package/dist/src/functions/set.d.ts +7 -3
  51. package/dist/src/functions/set.d.ts.map +1 -1
  52. package/dist/src/functions/set.lua +6 -7
  53. package/dist/src/functions/spawnCollectible.d.ts +13 -5
  54. package/dist/src/functions/spawnCollectible.d.ts.map +1 -1
  55. package/dist/src/functions/spawnCollectible.lua +14 -9
  56. package/dist/src/functions/vector.d.ts +7 -3
  57. package/dist/src/functions/vector.d.ts.map +1 -1
  58. package/dist/src/functions/vector.lua +6 -6
  59. package/dist/src/functions/weighted.d.ts +18 -2
  60. package/dist/src/functions/weighted.d.ts.map +1 -1
  61. package/dist/src/functions/weighted.lua +16 -8
  62. package/package.json +1 -1
  63. package/src/classes/callbacks/PostHolyMantleRemoved.ts +6 -1
  64. package/src/classes/features/other/CustomItemPools.ts +7 -4
  65. package/src/classes/features/other/DeployJSONRoom.ts +9 -5
  66. package/src/classes/features/other/ModdedElementSets.ts +37 -16
  67. package/src/classes/features/other/SpawnCollectible.ts +14 -7
  68. package/src/classes/features/other/SpawnRockAltRewards.ts +9 -5
  69. package/src/classes/features/other/customStages/utils.ts +2 -3
  70. package/src/classes/features/other/extraConsoleCommands/commands.ts +2 -2
  71. package/src/functions/array.ts +36 -16
  72. package/src/functions/color.ts +9 -5
  73. package/src/functions/enums.ts +6 -4
  74. package/src/functions/itemPool.ts +11 -2
  75. package/src/functions/jsonRoom.ts +13 -7
  76. package/src/functions/kColor.ts +9 -5
  77. package/src/functions/levelGrid.ts +13 -6
  78. package/src/functions/random.ts +23 -14
  79. package/src/functions/rng.ts +1 -1
  80. package/src/functions/set.ts +7 -4
  81. package/src/functions/spawnCollectible.ts +17 -5
  82. package/src/functions/vector.ts +8 -4
  83. package/src/functions/weighted.ts +18 -3
@@ -2131,17 +2131,21 @@ declare class CustomItemPools extends Feature {
2131
2131
  * By default, a collectible will not be removed from the pool once it is selected, unless the
2132
2132
  * `decrease` argument is set to true (similar to how a vanilla item pool works).
2133
2133
  *
2134
+ * If you want to get an unseeded collectible type, you must explicitly pass `undefined` to the
2135
+ * `seedOrRNG` parameter.
2136
+ *
2134
2137
  * In order to use this function, you must upgrade your mod with `ISCFeature.CUSTOM_ITEM_POOLS`.
2135
2138
  *
2136
2139
  * @param itemPoolTypeCustom An integer representing the custom item pool to use.
2140
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
2141
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
2142
+ * to a random seed.
2137
2143
  * @param decrease Optional. Whether to remove the selected collectible from the item pool.
2138
2144
  * Default is true.
2139
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
2140
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
2141
2145
  * @param defaultItem Optional. The collectible to return if the item pool is depleted. Default is
2142
2146
  * `CollectibleType.NULL`.
2143
2147
  */
2144
- getCustomItemPoolCollectible(itemPoolTypeCustom: ItemPoolType, decrease?: boolean, seedOrRNG?: Seed | RNG, defaultItem?: CollectibleType): CollectibleType;
2148
+ getCustomItemPoolCollectible(itemPoolTypeCustom: ItemPoolType, seedOrRNG: Seed | RNG | undefined, decrease?: boolean, defaultItem?: CollectibleType): CollectibleType;
2145
2149
  }
2146
2150
 
2147
2151
  declare class CustomPickups extends Feature {
@@ -3597,15 +3601,19 @@ declare class DeployJSONRoom extends Feature {
3597
3601
  * }
3598
3602
  * ```
3599
3603
  *
3604
+ * If you want to deploy an unseeded room, you must explicitly pass `undefined` to the `seedOrRNG`
3605
+ * parameter.
3606
+ *
3600
3607
  * In order to use this function, you must upgrade your mod with `ISCFeature.DEPLOY_JSON_ROOM`.
3601
3608
  *
3602
3609
  * @param jsonRoom The JSON room to deploy.
3603
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
3604
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
3610
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
3611
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
3612
+ * to a random seed.
3605
3613
  * @param verbose Optional. If specified, will write entries to the "log.txt" file that describe
3606
3614
  * what the function is doing. Default is false.
3607
3615
  */
3608
- deployJSONRoom(jsonRoom: JSONRoom | Readonly<JSONRoom>, seedOrRNG?: Seed | RNG, verbose?: boolean): void;
3616
+ deployJSONRoom(jsonRoom: JSONRoom | Readonly<JSONRoom>, seedOrRNG: Seed | RNG | undefined, verbose?: boolean): void;
3609
3617
  }
3610
3618
 
3611
3619
  /**
@@ -6198,15 +6206,19 @@ export declare function getNewGlobals(): ReadonlyArray<[AnyNotNil, unknown]>;
6198
6206
  * some floors will not have any valid spots. If this is the case, this function will return
6199
6207
  * undefined.
6200
6208
  *
6201
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6202
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6209
+ * If you want to get an unseeded room, you must explicitly pass `undefined` to the `seedOrRNG`
6210
+ * parameter.
6211
+ *
6212
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6213
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6214
+ * a random seed.
6203
6215
  * @param ensureDeadEnd Optional. Whether to pick a valid dead end attached to a normal room. If
6204
6216
  * false, the function will randomly pick from any valid location that would
6205
6217
  * have a red door.
6206
6218
  * @returns Either a tuple of adjacent room grid index, `DoorSlot`, and new room grid index, or
6207
6219
  * undefined.
6208
6220
  */
6209
- export declare function getNewRoomCandidate(seedOrRNG?: Seed | RNG, ensureDeadEnd?: boolean): {
6221
+ export declare function getNewRoomCandidate(seedOrRNG: Seed | RNG | undefined, ensureDeadEnd?: boolean): {
6210
6222
  readonly adjacentRoomGridIndex: int;
6211
6223
  readonly doorSlot: DoorSlot;
6212
6224
  readonly newRoomGridIndex: int;
@@ -6770,61 +6782,84 @@ export declare function getProjectiles(projectileVariant?: ProjectileVariant | -
6770
6782
  * Returns a random float between 0 and 1. It is inclusive on the low end, but exclusive on the high
6771
6783
  * end. (This is because the `RNG.RandomFloat` method will never return a value of exactly 1.)
6772
6784
  *
6773
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6774
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6785
+ * If you want to generate an unseeded number, you must explicitly pass `undefined` to the
6786
+ * `seedOrRNG` parameter.
6787
+ *
6788
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6789
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6790
+ * a random seed.
6775
6791
  */
6776
- export declare function getRandom(seedOrRNG?: Seed | RNG): float;
6792
+ export declare function getRandom(seedOrRNG: Seed | RNG | undefined): float;
6777
6793
 
6778
6794
  /**
6779
6795
  * Helper function to get a random element from the provided array.
6780
6796
  *
6797
+ * If you want to get an unseeded element, you must explicitly pass `undefined` to the `seedOrRNG`
6798
+ * parameter.
6799
+ *
6781
6800
  * @param array The array to get an element from.
6782
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6783
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6801
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6802
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6803
+ * a random seed.
6784
6804
  * @param exceptions Optional. An array of elements to skip over if selected.
6785
6805
  */
6786
- export declare function getRandomArrayElement<T>(array: T[] | readonly T[], seedOrRNG?: Seed | RNG, exceptions?: T[] | readonly T[]): T;
6806
+ export declare function getRandomArrayElement<T>(array: T[] | readonly T[], seedOrRNG: Seed | RNG | undefined, exceptions?: T[] | readonly T[]): T;
6787
6807
 
6788
6808
  /**
6789
6809
  * Helper function to get a random element from the provided array. Once the random element is
6790
6810
  * decided, it is then removed from the array (in-place).
6791
6811
  *
6812
+ * If you want to get an unseeded element, you must explicitly pass `undefined` to the `seedOrRNG`
6813
+ * parameter.
6814
+ *
6792
6815
  * @param array The array to get an element from.
6793
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6794
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6816
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6817
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6818
+ * a random seed.
6795
6819
  * @param exceptions Optional. An array of elements to skip over if selected.
6796
6820
  */
6797
- export declare function getRandomArrayElementAndRemove<T>(array: T[], seedOrRNG?: Seed | RNG, exceptions?: T[] | readonly T[]): T;
6821
+ export declare function getRandomArrayElementAndRemove<T>(array: T[], seedOrRNG: Seed | RNG | undefined, exceptions?: T[] | readonly T[]): T;
6798
6822
 
6799
6823
  /**
6800
6824
  * Helper function to get a random index from the provided array.
6801
6825
  *
6826
+ * If you want to get an unseeded index, you must explicitly pass `undefined` to the `seedOrRNG`
6827
+ * parameter.
6828
+ *
6802
6829
  * @param array The array to get the index from.
6803
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6804
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6830
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6831
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6832
+ * a random seed.
6805
6833
  * @param exceptions Optional. An array of indexes that will be skipped over when getting the random
6806
6834
  * index. Default is an empty array.
6807
6835
  */
6808
- export declare function getRandomArrayIndex<T>(array: T[] | readonly T[], seedOrRNG?: Seed | RNG, exceptions?: int[] | readonly int[]): int;
6836
+ export declare function getRandomArrayIndex<T>(array: T[] | readonly T[], seedOrRNG: Seed | RNG | undefined, exceptions?: int[] | readonly int[]): int;
6809
6837
 
6810
6838
  /**
6811
- * Helper function to get a random color.
6839
+ * Helper function to get a random `Color` object.
6812
6840
  *
6813
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6814
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6841
+ * If you want to generate an unseeded object, you must explicitly pass `undefined` to the
6842
+ * `seedOrRNG` parameter.
6843
+ *
6844
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6845
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6846
+ * a random seed.
6815
6847
  * @param alpha Optional. The alpha value to use. Default is 1.
6816
6848
  */
6817
- export declare function getRandomColor(seedOrRNG?: Seed | RNG, alpha?: number): Readonly<Color>;
6849
+ export declare function getRandomColor(seedOrRNG: Seed | RNG | undefined, alpha?: number): Readonly<Color>;
6818
6850
 
6819
6851
  /**
6820
6852
  * Helper function to get a random value from the provided enum.
6821
6853
  *
6854
+ * If you want an unseeded value, you must explicitly pass `undefined` to the `seedOrRNG` parameter.
6855
+ *
6822
6856
  * @param transpiledEnum The enum to get the value from.
6823
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6824
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6857
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6858
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6859
+ * a random seed.
6825
6860
  * @param exceptions Optional. An array of elements to skip over if selected.
6826
6861
  */
6827
- export declare function getRandomEnumValue<T>(transpiledEnum: T, seedOrRNG?: Seed | RNG, exceptions?: Array<T[keyof T]> | ReadonlyArray<T[keyof T]>): T[keyof T];
6862
+ export declare function getRandomEnumValue<T>(transpiledEnum: T, seedOrRNG: Seed | RNG | undefined, exceptions?: Array<T[keyof T]> | ReadonlyArray<T[keyof T]>): T[keyof T];
6828
6863
 
6829
6864
  /**
6830
6865
  * Returns a random float between min and max.
@@ -6832,59 +6867,87 @@ export declare function getRandomEnumValue<T>(transpiledEnum: T, seedOrRNG?: See
6832
6867
  * For example:
6833
6868
  *
6834
6869
  * ```ts
6835
- * const realNumberBetweenOneAndThree = getRandomFloat(1, 3);
6870
+ * const realNumberBetweenOneAndThree = getRandomFloat(1, 3, undefined);
6836
6871
  * ```
6837
6872
  *
6873
+ * If you want to generate an unseeded number, you must explicitly pass `undefined` to the
6874
+ * `seedOrRNG` parameter.
6875
+ *
6838
6876
  * @param min The lower bound for the random number (inclusive).
6839
6877
  * @param max The upper bound for the random number (exclusive).
6840
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6841
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6878
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6879
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6880
+ * a random seed.
6842
6881
  */
6843
- export declare function getRandomFloat(min: int, max: int, seedOrRNG?: Seed | RNG): float;
6882
+ export declare function getRandomFloat(min: int, max: int, seedOrRNG: Seed | RNG | undefined): float;
6844
6883
 
6845
6884
  /**
6846
6885
  * Get a random value from a `WeightedArray`. (A `WeightedArray` is an array of tuples, where the
6847
6886
  * first element in the tuple is a value, and the second element in the tuple is a float
6848
6887
  * corresponding to the value's weight.)
6888
+ *
6889
+ * If you want to get an unseeded element, you must explicitly pass `undefined` to the `seedOrRNG`
6890
+ * parameter.
6891
+ *
6892
+ * @param weightedArray The array to pick from.
6893
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6894
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6895
+ * a random seed.
6849
6896
  */
6850
- export declare function getRandomFromWeightedArray<T>(weightedArray: WeightedArray<T>, seedOrRNG?: Seed | RNG): T;
6897
+ export declare function getRandomFromWeightedArray<T>(weightedArray: WeightedArray<T>, seedOrRNG: Seed | RNG | undefined): T;
6851
6898
 
6852
6899
  /**
6853
6900
  * Get a random index from a `WeightedArray`. (A `WeightedArray` is an array of tuples, where the
6854
6901
  * first element in the tuple is a value, and the second element in the tuple is a float
6855
6902
  * corresponding to the value's weight.)
6903
+ *
6904
+ * If you want to get an unseeded index, you must explicitly pass `undefined` to the `seedOrRNG`
6905
+ * parameter.
6906
+ *
6907
+ * @param weightedArray The array to pick from.
6908
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6909
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6910
+ * a random seed.
6856
6911
  */
6857
- export declare function getRandomIndexFromWeightedArray<T>(weightedArray: WeightedArray<T>, seedOrRNG?: Seed | RNG): int;
6912
+ export declare function getRandomIndexFromWeightedArray<T>(weightedArray: WeightedArray<T>, seedOrRNG: Seed | RNG | undefined): int;
6858
6913
 
6859
6914
  /**
6860
6915
  * Returns a random integer between min and max. It is inclusive on both ends.
6861
6916
  *
6862
- * Note that this function will run the `Next` method on the `RNG` object before returning the
6863
- * random number.
6864
- *
6865
6917
  * For example:
6866
6918
  *
6867
6919
  * ```ts
6868
6920
  * const oneTwoOrThree = getRandomInt(1, 3);
6869
6921
  * ```
6870
6922
  *
6923
+ * If you want to generate an unseeded number, you must explicitly pass `undefined` to the
6924
+ * `seedOrRNG` parameter.
6925
+ *
6871
6926
  * @param min The lower bound for the random number (inclusive).
6872
6927
  * @param max The upper bound for the random number (inclusive).
6873
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6874
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6928
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6929
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6930
+ * a random seed.
6875
6931
  * @param exceptions Optional. An array of elements that will be skipped over when getting the
6876
6932
  * random integer. For example, a min of 1, a max of 4, and an exceptions array of
6877
6933
  * `[2]` would cause the function to return either 1, 3, or 4. Default is an empty
6878
6934
  * array.
6879
6935
  */
6880
- export declare function getRandomInt(min: int, max: int, seedOrRNG?: Seed | RNG, exceptions?: int[] | readonly int[]): int;
6936
+ export declare function getRandomInt(min: int, max: int, seedOrRNG: Seed | RNG | undefined, exceptions?: int[] | readonly int[]): int;
6881
6937
 
6882
6938
  /**
6883
6939
  * Helper function to get a random item pool. This is not as simple as getting a random value from
6884
6940
  * the `ItemPoolType` enum, since `ItemPoolType.SHELL_GAME` (7) is not a real item pool and the
6885
6941
  * Greed Mode item pools should be excluded if not playing in Greed Mode.
6942
+ *
6943
+ * If you want to get an unseeded item pool, you must explicitly pass `undefined` to the `seedOrRNG`
6944
+ * parameter.
6945
+ *
6946
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6947
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6948
+ * a random seed.
6886
6949
  */
6887
- export declare function getRandomItemPool(): ItemPoolType;
6950
+ export declare function getRandomItemPool(seedOrRNG: Seed | RNG | undefined): ItemPoolType;
6888
6951
 
6889
6952
  /**
6890
6953
  * Helper function to get a random JSON entity from an array of JSON entities.
@@ -6896,13 +6959,17 @@ export declare function getRandomItemPool(): ItemPoolType;
6896
6959
  * properly account for each room weight using the algorithm from:
6897
6960
  * https://stackoverflow.com/questions/1761626/weighted-random-numbers
6898
6961
  *
6962
+ * If you want an unseeded entity, you must explicitly pass `undefined` to the `seedOrRNG`
6963
+ * parameter.
6964
+ *
6899
6965
  * @param jsonEntities The array of entities to randomly choose between.
6900
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6901
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6966
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6967
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6968
+ * a random seed.
6902
6969
  * @param verbose Optional. If specified, will write entries to the "log.txt" file that describe
6903
6970
  * what the function is doing. Default is false.
6904
6971
  */
6905
- export declare function getRandomJSONEntity(jsonEntities: JSONEntity[], seedOrRNG?: Seed | RNG, verbose?: boolean): JSONEntity;
6972
+ export declare function getRandomJSONEntity(jsonEntities: JSONEntity[], seedOrRNG: Seed | RNG | undefined, verbose?: boolean): JSONEntity;
6906
6973
 
6907
6974
  /**
6908
6975
  * Helper function to get a random JSON room from an array of JSON rooms.
@@ -6913,22 +6980,29 @@ export declare function getRandomJSONEntity(jsonEntities: JSONEntity[], seedOrRN
6913
6980
  * properly account for each room weight using the algorithm from:
6914
6981
  * https://stackoverflow.com/questions/1761626/weighted-random-numbers
6915
6982
  *
6983
+ * If you want an unseeded room, you must explicitly pass `undefined` to the `seedOrRNG` parameter.
6984
+ *
6916
6985
  * @param jsonRooms The array of rooms to randomly choose between.
6917
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6918
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
6986
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6987
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
6988
+ * a random seed.
6919
6989
  * @param verbose Optional. If specified, will write entries to the "log.txt" file that describe
6920
6990
  * what the function is doing. Default is false.
6921
6991
  */
6922
- export declare function getRandomJSONRoom(jsonRooms: JSONRoom[], seedOrRNG?: Seed | RNG, verbose?: boolean): JSONRoom;
6992
+ export declare function getRandomJSONRoom(jsonRooms: JSONRoom[], seedOrRNG: Seed | RNG | undefined, verbose?: boolean): JSONRoom;
6923
6993
 
6924
6994
  /**
6925
- * Helper function to get a random color.
6995
+ * Helper function to get a random `KColor` object (for use in fonts).
6996
+ *
6997
+ * If you want to generate an unseeded object, you must explicitly pass `undefined` to the
6998
+ * `seedOrRNG` parameter.
6926
6999
  *
6927
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6928
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
7000
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
7001
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
7002
+ * a random seed.
6929
7003
  * @param alpha Optional. The alpha value to use. Default is 1.
6930
7004
  */
6931
- export declare function getRandomKColor(seedOrRNG?: Seed | RNG, alpha?: number): Readonly<KColor>;
7005
+ export declare function getRandomKColor(seedOrRNG: Seed | RNG | undefined, alpha?: number): Readonly<KColor>;
6932
7006
 
6933
7007
  /**
6934
7008
  * Helper function to get a random `Seed` value to be used in spawning entities and so on. Use this
@@ -6940,12 +7014,16 @@ export declare function getRandomSeed(): Seed;
6940
7014
  /**
6941
7015
  * Helper function to get a random element from the provided set.
6942
7016
  *
7017
+ * If you want to get an unseeded element, you must explicitly pass `undefined` to the `seedOrRNG`
7018
+ * parameter.
7019
+ *
6943
7020
  * @param set The set to get an element from.
6944
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6945
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
7021
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
7022
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
7023
+ * a random seed.
6946
7024
  * @param exceptions Optional. An array of elements to skip over if selected.
6947
7025
  */
6948
- export declare function getRandomSetElement<T>(set: Set<T> | ReadonlySet<T>, seedOrRNG?: Seed | RNG, exceptions?: T[] | readonly T[]): T;
7026
+ export declare function getRandomSetElement<T>(set: Set<T> | ReadonlySet<T>, seedOrRNG: Seed | RNG | undefined, exceptions?: T[] | readonly T[]): T;
6949
7027
 
6950
7028
  /**
6951
7029
  * Helper function to get a random vector between (-1, -1) and (1, 1).
@@ -6954,10 +7032,14 @@ export declare function getRandomSetElement<T>(set: Set<T> | ReadonlySet<T>, see
6954
7032
  *
6955
7033
  * Use this over the `RandomVector` function when you need the vector to be seeded.
6956
7034
  *
6957
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
6958
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
7035
+ * If you want to generate an unseeded vector, you must explicitly pass `undefined` to the
7036
+ * `seedOrRNG` parameter.
7037
+ *
7038
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
7039
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
7040
+ * a random seed.
6959
7041
  */
6960
- export declare function getRandomVector(seedOrRNG?: Seed | RNG): Readonly<Vector>;
7042
+ export declare function getRandomVector(seedOrRNG: Seed | RNG | undefined): Readonly<Vector>;
6961
7043
 
6962
7044
  /**
6963
7045
  * Helper function to get a read-only copy of the room descriptor for every room on the level. This
@@ -13935,13 +14017,17 @@ declare class ModdedElementSets extends Feature {
13935
14017
  * not all collectible types will necessarily be present when a mod first loads (due to mod load
13936
14018
  * order).
13937
14019
  *
14020
+ * If you want to get an unseeded collectible type, you must explicitly pass `undefined` to the
14021
+ * `seedOrRNG` parameter.
14022
+ *
13938
14023
  * In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
13939
14024
  *
13940
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
13941
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
14025
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14026
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
14027
+ * to a random seed.
13942
14028
  * @param exceptions Optional. An array of runes to not select.
13943
14029
  */
13944
- getRandomEdenActiveCollectibleType(seedOrRNG?: Seed | RNG, exceptions?: CollectibleType[] | readonly CollectibleType[]): CollectibleType;
14030
+ getRandomEdenActiveCollectibleType(seedOrRNG: Seed | RNG | undefined, exceptions?: CollectibleType[] | readonly CollectibleType[]): CollectibleType;
13945
14031
  /**
13946
14032
  * Returns a random passive collectible type that that is a valid starting item for Eden
13947
14033
  * (including familiars).
@@ -13950,13 +14036,17 @@ declare class ModdedElementSets extends Feature {
13950
14036
  * not all collectible types will necessarily be present when a mod first loads (due to mod load
13951
14037
  * order).
13952
14038
  *
14039
+ * If you want to get an unseeded collectible type, you must explicitly pass `undefined` to the
14040
+ * `seedOrRNG` parameter.
14041
+ *
13953
14042
  * In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
13954
14043
  *
13955
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
13956
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
14044
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14045
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
14046
+ * to a random seed.
13957
14047
  * @param exceptions Optional. An array of runes to not select.
13958
14048
  */
13959
- getRandomEdenPassiveCollectibleType(seedOrRNG?: Seed | RNG, exceptions?: CollectibleType[] | readonly CollectibleType[]): CollectibleType;
14049
+ getRandomEdenPassiveCollectibleType(seedOrRNG: Seed | RNG | undefined, exceptions?: CollectibleType[] | readonly CollectibleType[]): CollectibleType;
13960
14050
  /**
13961
14051
  * Returns a set containing every collectible type with the given quality.
13962
14052
  *
@@ -13995,15 +14085,19 @@ declare class ModdedElementSets extends Feature {
13995
14085
  * This function can only be called if at least one callback has been executed. This is because
13996
14086
  * not all card types will necessarily be present when a mod first loads (due to mod load order).
13997
14087
  *
14088
+ * If you want to get an unseeded card type, you must explicitly pass `undefined` to the
14089
+ * `seedOrRNG` parameter.
14090
+ *
13998
14091
  * In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
13999
14092
  *
14000
14093
  * @param itemConfigCardType The item config card type that represents the pool of cards to select
14001
14094
  * from.
14002
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
14003
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
14095
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14096
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
14097
+ * to a random seed.
14004
14098
  * @param exceptions Optional. An array of cards to not select.
14005
14099
  */
14006
- getRandomCardTypeOfType(itemConfigCardType: ItemConfigCardType, seedOrRNG?: Seed | RNG, exceptions?: CardType[]): CardType;
14100
+ getRandomCardTypeOfType(itemConfigCardType: ItemConfigCardType, seedOrRNG: Seed | RNG | undefined, exceptions?: CardType[]): CardType;
14007
14101
  /**
14008
14102
  * Has an equal chance of returning any card (e.g. Fool, Reverse Fool, Wild Card, etc.).
14009
14103
  *
@@ -14014,13 +14108,17 @@ declare class ModdedElementSets extends Feature {
14014
14108
  * This function can only be called if at least one callback has been executed. This is because
14015
14109
  * not all card types will necessarily be present when a mod first loads (due to mod load order).
14016
14110
  *
14111
+ * If you want to get an unseeded card type, you must explicitly pass `undefined` to the
14112
+ * `seedOrRNG` parameter.
14113
+ *
14017
14114
  * In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
14018
14115
  *
14019
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
14020
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
14116
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14117
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
14118
+ * to a random seed.
14021
14119
  * @param exceptions Optional. An array of cards to not select.
14022
14120
  */
14023
- getRandomCard(seedOrRNG?: Seed | RNG, exceptions?: CardType[]): CardType;
14121
+ getRandomCard(seedOrRNG: Seed | RNG | undefined, exceptions?: CardType[]): CardType;
14024
14122
  /**
14025
14123
  * Has an equal chance of returning any rune (e.g. Rune of Hagalaz, Blank Rune, Black Rune, Soul
14026
14124
  * of Isaac, etc.). This will never return a Rune Shard.
@@ -14028,13 +14126,17 @@ declare class ModdedElementSets extends Feature {
14028
14126
  * This function can only be called if at least one callback has been executed. This is because
14029
14127
  * not all card types will necessarily be present when a mod first loads (due to mod load order).
14030
14128
  *
14129
+ * If you want to get an unseeded card type, you must explicitly pass `undefined` to the
14130
+ * `seedOrRNG` parameter.
14131
+ *
14031
14132
  * In order to use this function, you must upgrade your mod with `ISCFeature.MODDED_ELEMENT_SETS`.
14032
14133
  *
14033
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
14034
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
14134
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14135
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
14136
+ * to a random seed.
14035
14137
  * @param exceptions Optional. An array of runes to not select.
14036
14138
  */
14037
- getRandomRune(seedOrRNG?: Seed | RNG, exceptions?: CardType[]): CardType;
14139
+ getRandomRune(seedOrRNG: Seed | RNG | undefined, exceptions?: CardType[]): CardType;
14038
14140
  }
14039
14141
 
14040
14142
  /**
@@ -14340,16 +14442,19 @@ export declare function newReadonlyVector(x: float, y: float): Readonly<Vector>;
14340
14442
  /**
14341
14443
  * Helper function to initialize a new RNG object using Blade's recommended shift index.
14342
14444
  *
14343
- * @param seed The seed to initialize it with. Default is `getRandomSeed()`.
14445
+ * @param seed Optional. The seed to initialize it with. Default is a random seed.
14344
14446
  */
14345
14447
  export declare function newRNG(seed?: Seed): RNG;
14346
14448
 
14347
14449
  /**
14348
14450
  * Helper function to generate a new room on the floor.
14349
14451
  *
14452
+ * If you want to generate an unseeded room, you must explicitly pass `undefined` to the `seedOrRNG`
14453
+ * parameter.
14454
+ *
14350
14455
  * Under the hood, this function uses the `Level.MakeRedRoomDoor` method to create the room.
14351
14456
  *
14352
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14457
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
14353
14458
  * `RNG.Next` method will be called. Default is `Level.GetDungeonPlacementSeed`.
14354
14459
  * Note that the RNG is only used to select the random location to put the room on
14355
14460
  * the floor; it does not influence the randomly chosen room contents. (That is
@@ -14363,7 +14468,7 @@ export declare function newRNG(seed?: Seed): RNG;
14363
14468
  * @returns The room grid index of the new room or undefined if the floor had no valid dead ends to
14364
14469
  * place a room.
14365
14470
  */
14366
- export declare function newRoom(seedOrRNG?: Seed | RNG, ensureDeadEnd?: boolean, customRoomData?: RoomConfig): int | undefined;
14471
+ export declare function newRoom(seedOrRNG: Seed | RNG | undefined, ensureDeadEnd?: boolean, customRoomData?: RoomConfig): int | undefined;
14367
14472
 
14368
14473
  /**
14369
14474
  * Helper function to load a new sprite and play its default animation.
@@ -17321,24 +17426,32 @@ declare function shouldFireSlot(fireArgs: [slot: EntitySlot] | [slot: EntitySlot
17321
17426
  /**
17322
17427
  * Shallow copies and shuffles the array using the Fisher-Yates algorithm. Returns the copied array.
17323
17428
  *
17429
+ * If you want an unseeded shuffle, you must explicitly pass `undefined` to the `seedOrRNG`
17430
+ * parameter.
17431
+ *
17324
17432
  * From: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
17325
17433
  *
17326
17434
  * @param originalArray The array to shuffle.
17327
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17328
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
17435
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17436
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
17437
+ * a random seed.
17329
17438
  */
17330
- export declare function shuffleArray<T>(originalArray: T[] | readonly T[], seedOrRNG?: Seed | RNG): T[];
17439
+ export declare function shuffleArray<T>(originalArray: T[] | readonly T[], seedOrRNG: Seed | RNG | undefined): T[];
17331
17440
 
17332
17441
  /**
17333
17442
  * Shuffles the provided array in-place using the Fisher-Yates algorithm.
17334
17443
  *
17444
+ * If you want an unseeded shuffle, you must explicitly pass `undefined` to the `seedOrRNG`
17445
+ * parameter.
17446
+ *
17335
17447
  * From: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
17336
17448
  *
17337
17449
  * @param array The array to shuffle.
17338
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17339
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
17450
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17451
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
17452
+ * a random seed.
17340
17453
  */
17341
- export declare function shuffleArrayInPlace<T>(array: T[], seedOrRNG?: Seed | RNG): void;
17454
+ export declare function shuffleArrayInPlace<T>(array: T[], seedOrRNG: Seed | RNG | undefined): void;
17342
17455
 
17343
17456
  /** @returns 1 if n is positive, -1 if n is negative, or 0 if n is 0. */
17344
17457
  export declare function sign(n: number): int;
@@ -17581,19 +17694,23 @@ declare class SpawnCollectible extends Feature {
17581
17694
  * to be a quest item), then you can use the `spawnCollectibleUnsafe` helper function instead
17582
17695
  * (which does not require an upgraded mod).
17583
17696
  *
17697
+ * If you want to spawn an unseeded collectible, you must explicitly pass `undefined` to the
17698
+ * `seedOrRNG` parameter.
17699
+ *
17584
17700
  * In order to use this function, you must upgrade your mod with `ISCFeature.SPAWN_COLLECTIBLE`.
17585
17701
  *
17586
17702
  * @param collectibleType The collectible type to spawn.
17587
17703
  * @param positionOrGridIndex The position or grid index to spawn the collectible at.
17588
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
17589
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
17704
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17705
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
17706
+ * to a random seed.
17590
17707
  * @param options Optional. Set to true to make the collectible a "There's Options" style
17591
17708
  * collectible. Default is false.
17592
17709
  * @param forceFreeItem Optional. Set to true to disable the logic that gives the item a price for
17593
17710
  * Tainted Keeper. Default is false.
17594
17711
  * @param spawner Optional.
17595
17712
  */
17596
- spawnCollectible(collectibleType: CollectibleType, positionOrGridIndex: Vector | int, seedOrRNG?: Seed | RNG, options?: boolean, forceFreeItem?: boolean, spawner?: Entity): EntityPickupCollectible;
17713
+ spawnCollectible(collectibleType: CollectibleType, positionOrGridIndex: Vector | int, seedOrRNG: Seed | RNG | undefined, options?: boolean, forceFreeItem?: boolean, spawner?: Entity): EntityPickupCollectible;
17597
17714
  /**
17598
17715
  * Helper function to spawn a collectible from a specific item pool.
17599
17716
  *
@@ -17601,19 +17718,23 @@ declare class SpawnCollectible extends Feature {
17601
17718
  * collectibles costing coins and preventing quest items from being rotated by Tainted Isaac's
17602
17719
  * rotation mechanic.
17603
17720
  *
17721
+ * If you want to spawn an unseeded collectible, you must explicitly pass `undefined` to the
17722
+ * `seedOrRNG` parameter.
17723
+ *
17604
17724
  * In order to use this function, you must upgrade your mod with `ISCFeature.SPAWN_COLLECTIBLE`.
17605
17725
  *
17606
17726
  * @param itemPoolType The item pool to draw the collectible type from.
17607
17727
  * @param positionOrGridIndex The position or grid index to spawn the collectible at.
17608
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
17609
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`.
17728
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17729
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
17730
+ * to a random seed.
17610
17731
  * @param options Optional. Set to true to make the collectible a "There's Options" style
17611
17732
  * collectible. Default is false.
17612
17733
  * @param forceFreeItem Optional. Set to true to disable the logic that gives the item a price for
17613
17734
  * Tainted Keeper. Default is false.
17614
17735
  * @param spawner Optional.
17615
17736
  */
17616
- spawnCollectibleFromPool(itemPoolType: ItemPoolType, positionOrGridIndex: Vector | int, seedOrRNG?: Seed | RNG, options?: boolean, forceFreeItem?: boolean, spawner?: Entity): EntityPickupCollectible;
17737
+ spawnCollectibleFromPool(itemPoolType: ItemPoolType, positionOrGridIndex: Vector | int, seedOrRNG: Seed | RNG | undefined, options?: boolean, forceFreeItem?: boolean, spawner?: Entity): EntityPickupCollectible;
17617
17738
  }
17618
17739
 
17619
17740
  /**
@@ -17626,17 +17747,21 @@ declare class SpawnCollectible extends Feature {
17626
17747
  * Isaac's rotation mechanic. To handle that, use the `spawnCollectible` helper function instead
17627
17748
  * (which is provided by `ISCFeature.SPAWN_COLLECTIBLE`).
17628
17749
  *
17750
+ * If you want to spawn an unseeded collectible, you must explicitly pass `undefined` to the
17751
+ * `seedOrRNG` parameter.
17752
+ *
17629
17753
  * @param collectibleType The collectible type to spawn.
17630
17754
  * @param positionOrGridIndex The position or grid index to spawn the collectible at.
17631
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17632
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
17755
+ * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17756
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
17757
+ * a random seed.
17633
17758
  * @param options Optional. Set to true to make the collectible a "There's Options" style
17634
17759
  * collectible. Default is false.
17635
17760
  * @param forceFreeItem Optional. Set to true to disable the logic that gives the item a price for
17636
17761
  * Tainted Keeper. Default is false.
17637
17762
  * @param spawner Optional.
17638
17763
  */
17639
- export declare function spawnCollectibleUnsafe(collectibleType: CollectibleType, positionOrGridIndex: Vector | int, seedOrRNG?: Seed | RNG, options?: boolean, forceFreeItem?: boolean, spawner?: Entity): EntityPickupCollectible;
17764
+ export declare function spawnCollectibleUnsafe(collectibleType: CollectibleType, positionOrGridIndex: Vector | int, seedOrRNG: Seed | RNG | undefined, options?: boolean, forceFreeItem?: boolean, spawner?: Entity): EntityPickupCollectible;
17640
17765
 
17641
17766
  /** Helper function to spawn a `GridEntityType.CRAWL_SPACE` (18). */
17642
17767
  export declare function spawnCrawlSpace(gridIndexOrPosition: int | Vector): GridEntity | undefined;
@@ -17666,11 +17791,15 @@ export declare function spawnEffectWithSeed(effectVariant: EffectVariant, subTyp
17666
17791
  * Onion because it is a quest collectible and quest collectibles will prevent Damocles from
17667
17792
  * duplicating the pedestal.)
17668
17793
  *
17794
+ * If you want to spawn an unseeded collectible, you must explicitly pass `undefined` to the
17795
+ * `seedOrRNG` parameter.
17796
+ *
17669
17797
  * @param positionOrGridIndex The position or grid index to spawn the empty collectible at.
17670
17798
  * @param seedOrRNG The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
17671
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
17799
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default to
17800
+ * a random seed.
17672
17801
  */
17673
- export declare function spawnEmptyCollectible(positionOrGridIndex: Vector | int, seedOrRNG?: Seed | RNG): EntityPickup;
17802
+ export declare function spawnEmptyCollectible(positionOrGridIndex: Vector | int, seedOrRNG: Seed | RNG | undefined): EntityPickup;
17674
17803
 
17675
17804
  /**
17676
17805
  * Helper function to spawn the entity corresponding to an `EntityID`.
@@ -17853,18 +17982,22 @@ declare class SpawnRockAltRewards extends Feature {
17853
17982
  * The logic in this function is based on the rewards listed on the wiki:
17854
17983
  * https://bindingofisaacrebirth.fandom.com/wiki/Rocks
17855
17984
  *
17985
+ * If you want to spawn an unseeded reward, you must explicitly pass `undefined` to the
17986
+ * `seedOrRNG` parameter.
17987
+ *
17856
17988
  * In order to use this function, you must upgrade your mod with
17857
17989
  * `ISCFeature.SPAWN_ALT_ROCK_REWARDS`.
17858
17990
  *
17859
17991
  * @param positionOrGridIndex The position or grid index to spawn the reward.
17860
17992
  * @param rockAltType The type of reward to spawn. For example, `RockAltType.URN` will have a
17861
17993
  * chance at spawning coins and spiders.
17862
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided,
17863
- * the `RNG.Next` method will be called. Default is `getRandomSeed()`. Normally,
17864
- * you should pass the `InitSeed` of the grid entity that was broken.
17994
+ * @param seedOrRNG The `Seed` or `RNG` object to use. Normally, you should pass the `InitSeed` of
17995
+ * the grid entity that was broken. If an `RNG` object is provided, the
17996
+ * `RNG.Next` method will be called. If `undefined` is provided, it will default
17997
+ * to a random seed.
17865
17998
  * @returns Whether this function spawned something.
17866
17999
  */
17867
- spawnRockAltReward(positionOrGridIndex: Vector | int, rockAltType: RockAltType, seedOrRNG?: Seed | RNG): boolean;
18000
+ spawnRockAltReward(positionOrGridIndex: Vector | int, rockAltType: RockAltType, seedOrRNG: Seed | RNG | undefined): boolean;
17868
18001
  /**
17869
18002
  * Helper function for emulating what happens when a vanilla `GridEntityType.ROCK_ALT` grid entity
17870
18003
  * breaks of `RockAltType.URN`.