@nativewrappers/redm-codegen 0.0.3 → 0.0.4

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 (205) hide show
  1. package/dist/classes/AnimScene.d.ts +82 -82
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +124 -124
  4. package/dist/classes/BaseModel.d.ts +29 -29
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +43 -43
  7. package/dist/classes/BaseTask.d.ts +43 -43
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +53 -53
  10. package/dist/classes/Cam.d.ts +82 -82
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +115 -115
  13. package/dist/classes/Entity.d.ts +250 -250
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +350 -350
  16. package/dist/classes/Interior.d.ts +27 -27
  17. package/dist/classes/Interior.d.ts.map +1 -1
  18. package/dist/classes/Interior.js +42 -42
  19. package/dist/classes/Ped.d.ts +55 -55
  20. package/dist/classes/Ped.d.ts.map +1 -1
  21. package/dist/classes/Ped.js +76 -76
  22. package/dist/classes/PedTask.d.ts +797 -797
  23. package/dist/classes/PedTask.d.ts.map +1 -1
  24. package/dist/classes/PedTask.js +1023 -1023
  25. package/dist/classes/PersChar.d.ts +13 -13
  26. package/dist/classes/PersChar.d.ts.map +1 -1
  27. package/dist/classes/PersChar.js +27 -27
  28. package/dist/classes/Pickup.d.ts +8 -8
  29. package/dist/classes/Pickup.d.ts.map +1 -1
  30. package/dist/classes/Pickup.js +15 -15
  31. package/dist/classes/Player.d.ts +185 -185
  32. package/dist/classes/Player.d.ts.map +1 -1
  33. package/dist/classes/Player.js +251 -251
  34. package/dist/classes/Prop.d.ts +130 -130
  35. package/dist/classes/Prop.d.ts.map +1 -1
  36. package/dist/classes/Prop.js +188 -188
  37. package/dist/classes/PropSet.d.ts +17 -17
  38. package/dist/classes/PropSet.d.ts.map +1 -1
  39. package/dist/classes/PropSet.js +25 -25
  40. package/dist/classes/VehicleTask.d.ts +23 -23
  41. package/dist/classes/VehicleTask.d.ts.map +1 -1
  42. package/dist/classes/VehicleTask.js +30 -30
  43. package/dist/classes/Volume.d.ts +39 -39
  44. package/dist/classes/Volume.d.ts.map +1 -1
  45. package/dist/classes/Volume.js +54 -54
  46. package/dist/classes/Weapon.d.ts +291 -291
  47. package/dist/classes/Weapon.d.ts.map +1 -1
  48. package/dist/classes/Weapon.js +414 -414
  49. package/dist/namespaces/Animscene.d.ts +63 -63
  50. package/dist/namespaces/Animscene.d.ts.map +1 -1
  51. package/dist/namespaces/Animscene.js +83 -83
  52. package/dist/namespaces/Audio.d.ts +464 -464
  53. package/dist/namespaces/Audio.d.ts.map +1 -1
  54. package/dist/namespaces/Audio.js +650 -650
  55. package/dist/namespaces/Bounty.d.ts +57 -57
  56. package/dist/namespaces/Bounty.d.ts.map +1 -1
  57. package/dist/namespaces/Bounty.js +90 -90
  58. package/dist/namespaces/CamStatics.d.ts +426 -426
  59. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  60. package/dist/namespaces/CamStatics.js +609 -609
  61. package/dist/namespaces/Collection.d.ts +81 -81
  62. package/dist/namespaces/Collection.d.ts.map +1 -1
  63. package/dist/namespaces/Collection.js +113 -113
  64. package/dist/namespaces/Compendium.d.ts +38 -38
  65. package/dist/namespaces/Compendium.d.ts.map +1 -1
  66. package/dist/namespaces/Compendium.js +52 -52
  67. package/dist/namespaces/Crashlog.d.ts +10 -10
  68. package/dist/namespaces/Crashlog.d.ts.map +1 -1
  69. package/dist/namespaces/Crashlog.js +14 -14
  70. package/dist/namespaces/Databinding.d.ts +174 -174
  71. package/dist/namespaces/Databinding.d.ts.map +1 -1
  72. package/dist/namespaces/Databinding.js +266 -266
  73. package/dist/namespaces/EntityStatics.d.ts +110 -110
  74. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  75. package/dist/namespaces/EntityStatics.js +146 -146
  76. package/dist/namespaces/Graphics.d.ts +547 -547
  77. package/dist/namespaces/Graphics.d.ts.map +1 -1
  78. package/dist/namespaces/Graphics.js +731 -731
  79. package/dist/namespaces/Hud.d.ts +395 -395
  80. package/dist/namespaces/Hud.d.ts.map +1 -1
  81. package/dist/namespaces/Hud.js +564 -564
  82. package/dist/namespaces/InteriorStatics.d.ts +40 -40
  83. package/dist/namespaces/InteriorStatics.d.ts.map +1 -1
  84. package/dist/namespaces/InteriorStatics.js +56 -56
  85. package/dist/namespaces/Inventory.d.ts +107 -107
  86. package/dist/namespaces/Inventory.d.ts.map +1 -1
  87. package/dist/namespaces/Inventory.js +149 -149
  88. package/dist/namespaces/Itemdatabase.d.ts +5 -5
  89. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  90. package/dist/namespaces/Itemdatabase.js +7 -7
  91. package/dist/namespaces/Map.d.ts +173 -173
  92. package/dist/namespaces/Map.d.ts.map +1 -1
  93. package/dist/namespaces/Map.js +240 -240
  94. package/dist/namespaces/Minigame.d.ts +56 -56
  95. package/dist/namespaces/Minigame.d.ts.map +1 -1
  96. package/dist/namespaces/Minigame.js +80 -80
  97. package/dist/namespaces/Network.d.ts +964 -964
  98. package/dist/namespaces/Network.d.ts.map +1 -1
  99. package/dist/namespaces/Network.js +1333 -1333
  100. package/dist/namespaces/Object.d.ts +240 -240
  101. package/dist/namespaces/Object.d.ts.map +1 -1
  102. package/dist/namespaces/Object.js +337 -337
  103. package/dist/namespaces/Pad.d.ts +95 -95
  104. package/dist/namespaces/Pad.d.ts.map +1 -1
  105. package/dist/namespaces/Pad.js +127 -127
  106. package/dist/namespaces/PedStatics.d.ts +18 -18
  107. package/dist/namespaces/PedStatics.d.ts.map +1 -1
  108. package/dist/namespaces/PedStatics.js +26 -26
  109. package/dist/namespaces/Perschar.d.ts +46 -46
  110. package/dist/namespaces/Perschar.d.ts.map +1 -1
  111. package/dist/namespaces/Perschar.js +66 -66
  112. package/dist/namespaces/Physics.d.ts +207 -207
  113. package/dist/namespaces/Physics.d.ts.map +1 -1
  114. package/dist/namespaces/Physics.js +315 -315
  115. package/dist/namespaces/PlayerStatics.d.ts +68 -68
  116. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  117. package/dist/namespaces/PlayerStatics.js +95 -95
  118. package/dist/namespaces/Population.d.ts +86 -86
  119. package/dist/namespaces/Population.d.ts.map +1 -1
  120. package/dist/namespaces/Population.js +116 -116
  121. package/dist/namespaces/Posse.d.ts +43 -43
  122. package/dist/namespaces/Posse.d.ts.map +1 -1
  123. package/dist/namespaces/Posse.js +67 -67
  124. package/dist/namespaces/Propset.d.ts +59 -59
  125. package/dist/namespaces/Propset.d.ts.map +1 -1
  126. package/dist/namespaces/Propset.js +81 -81
  127. package/dist/namespaces/Shapetest.d.ts +11 -11
  128. package/dist/namespaces/Shapetest.d.ts.map +1 -1
  129. package/dist/namespaces/Shapetest.js +13 -13
  130. package/dist/namespaces/Stats.d.ts +90 -90
  131. package/dist/namespaces/Stats.d.ts.map +1 -1
  132. package/dist/namespaces/Stats.js +127 -127
  133. package/dist/namespaces/Streaming.d.ts +127 -127
  134. package/dist/namespaces/Streaming.d.ts.map +1 -1
  135. package/dist/namespaces/Streaming.js +193 -193
  136. package/dist/namespaces/Task.d.ts +346 -346
  137. package/dist/namespaces/Task.d.ts.map +1 -1
  138. package/dist/namespaces/Task.js +525 -525
  139. package/dist/namespaces/Telemetry.d.ts +176 -176
  140. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  141. package/dist/namespaces/Telemetry.js +255 -255
  142. package/dist/namespaces/VolumeStatics.d.ts +64 -64
  143. package/dist/namespaces/VolumeStatics.d.ts.map +1 -1
  144. package/dist/namespaces/VolumeStatics.js +85 -85
  145. package/dist/namespaces/Water.d.ts +27 -27
  146. package/dist/namespaces/Water.d.ts.map +1 -1
  147. package/dist/namespaces/Water.js +41 -41
  148. package/dist/namespaces/WeaponStatics.d.ts +234 -234
  149. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  150. package/dist/namespaces/WeaponStatics.js +320 -320
  151. package/dist/namespaces/Zone.d.ts +7 -7
  152. package/dist/namespaces/Zone.d.ts.map +1 -1
  153. package/dist/namespaces/Zone.js +9 -9
  154. package/package.json +1 -1
  155. package/src/classes/AnimScene.ts +133 -133
  156. package/src/classes/BaseModel.ts +50 -50
  157. package/src/classes/BaseTask.ts +55 -55
  158. package/src/classes/Cam.ts +126 -126
  159. package/src/classes/Entity.ts +365 -365
  160. package/src/classes/Interior.ts +43 -43
  161. package/src/classes/Ped.ts +86 -86
  162. package/src/classes/PedTask.ts +2067 -2067
  163. package/src/classes/PersChar.ts +34 -34
  164. package/src/classes/Pickup.ts +16 -16
  165. package/src/classes/Player.ts +296 -296
  166. package/src/classes/Prop.ts +203 -203
  167. package/src/classes/PropSet.ts +29 -29
  168. package/src/classes/VehicleTask.ts +32 -32
  169. package/src/classes/Volume.ts +61 -61
  170. package/src/classes/Weapon.ts +427 -427
  171. package/src/namespaces/Animscene.ts +86 -86
  172. package/src/namespaces/Audio.ts +760 -760
  173. package/src/namespaces/Bounty.ts +102 -102
  174. package/src/namespaces/CamStatics.ts +631 -631
  175. package/src/namespaces/Collection.ts +114 -114
  176. package/src/namespaces/Compendium.ts +59 -59
  177. package/src/namespaces/Crashlog.ts +16 -16
  178. package/src/namespaces/Databinding.ts +282 -282
  179. package/src/namespaces/EntityStatics.ts +158 -158
  180. package/src/namespaces/Graphics.ts +1140 -1140
  181. package/src/namespaces/Hud.ts +592 -592
  182. package/src/namespaces/InteriorStatics.ts +64 -64
  183. package/src/namespaces/Inventory.ts +165 -165
  184. package/src/namespaces/Itemdatabase.ts +8 -8
  185. package/src/namespaces/Map.ts +256 -256
  186. package/src/namespaces/Minigame.ts +92 -92
  187. package/src/namespaces/Network.ts +1392 -1392
  188. package/src/namespaces/Object.ts +350 -350
  189. package/src/namespaces/Pad.ts +127 -127
  190. package/src/namespaces/PedStatics.ts +30 -30
  191. package/src/namespaces/Perschar.ts +76 -76
  192. package/src/namespaces/Physics.ts +327 -327
  193. package/src/namespaces/PlayerStatics.ts +103 -103
  194. package/src/namespaces/Population.ts +131 -131
  195. package/src/namespaces/Posse.ts +67 -67
  196. package/src/namespaces/Propset.ts +92 -92
  197. package/src/namespaces/Shapetest.ts +14 -14
  198. package/src/namespaces/Stats.ts +143 -143
  199. package/src/namespaces/Streaming.ts +226 -226
  200. package/src/namespaces/Task.ts +498 -498
  201. package/src/namespaces/Telemetry.ts +261 -261
  202. package/src/namespaces/VolumeStatics.ts +87 -87
  203. package/src/namespaces/Water.ts +47 -47
  204. package/src/namespaces/WeaponStatics.ts +325 -325
  205. package/src/namespaces/Zone.ts +10 -10
@@ -16,108 +16,6 @@ import { createFromHandle } from '../types/HandleRegistry';
16
16
  import { inv, rai, raf, ras, rav, pvi, pvf, pvv, pvii, pvfi, _h, f } from '../types/NativeAliases';
17
17
 
18
18
  export class Network {
19
- /**
20
- * @param description
21
- * @returns
22
- */
23
- static ugcDidDescriptionRequestSucceed(description: string | number): boolean {
24
- return inv<boolean>('0x162C23CA83ED0A62', _h(description), rai());
25
- }
26
-
27
- /**
28
- * @returns
29
- */
30
- static getGameMode(): number {
31
- return inv<number>('0x225640E09EFFDC3F', rai());
32
- }
33
-
34
- /**
35
- * @param amount
36
- */
37
- static reserveNetworkClientMissionPeds(amount: number): void {
38
- inv<void>('0x807E119F80231732', amount);
39
- }
40
-
41
- /**
42
- * @param p0
43
- * @param p1
44
- * @param p2
45
- * @param p3
46
- */
47
- static setInMpCutscene(p0: boolean, p1: boolean, p2: number, p3: boolean): void {
48
- inv<void>('0x9CA5DE655269FEC4', p0, p1, p2, p3);
49
- }
50
-
51
- /**
52
- * @param toggle
53
- * @param playerPed
54
- */
55
- static setInSpectatorMode(toggle: boolean, playerPed: Ped): void {
56
- inv<void>('0x423DE3854BB50894', toggle, playerPed.handle);
57
- }
58
-
59
- /**
60
- * @param p0
61
- */
62
- static N_0x3E74A687A73979C6(p0: boolean): void {
63
- inv<void>('0x3E74A687A73979C6', p0);
64
- }
65
-
66
- /**
67
- * @returns sessionRequestId
68
- */
69
- static sessionIsRequestPendingTransition(): [any, number] {
70
- const result = inv<[number, number]>('0xCCF878D50F8AB10D', pvi());
71
- return [result[0], result[1]];
72
- }
73
-
74
- /**
75
- * @param offset
76
- */
77
- static spawnConfigSetGroundToRootOffset(offset: number): void {
78
- inv<void>('0x59577799F6AE2F34', f(offset));
79
- }
80
-
81
- /**
82
- * @returns
83
- */
84
- static checkAccessAndAlertIfFail(): any {
85
- return inv<number>('0x2A8112A974DE1EF6');
86
- }
87
-
88
- /**
89
- * Note: this native was added in build 1311.23
90
- *
91
- * @returns
92
- */
93
- static N_0xFB3205788F8AFA3F(): number {
94
- return inv<number>('0xFB3205788F8AFA3F', rai());
95
- }
96
-
97
- /**
98
- * @returns
99
- */
100
- static getNumRecentGamers(): number {
101
- return inv<number>('0x37A834AEC6A4F74A', rai());
102
- }
103
-
104
- /**
105
- * @returns
106
- */
107
- static N_0xD3A3C8B9F3BDEF81(): any {
108
- return inv<number>('0xD3A3C8B9F3BDEF81');
109
- }
110
-
111
- /**
112
- * Returns the entity's network ID.
113
- *
114
- * @param entity
115
- * @returns
116
- */
117
- static N_0xF302AB9D978352EE(entity: Entity): number {
118
- return inv<number>('0xF302AB9D978352EE', entity.handle, rai());
119
- }
120
-
121
19
  static disableRealtimeMultiplayer(): void {
122
20
  inv<void>('0x236905C700FDB54D');
123
21
  }
@@ -238,404 +136,278 @@ export class Network {
238
136
  }
239
137
 
240
138
  /**
139
+ * @param contentTypeName
140
+ * @param contentId
141
+ * @param fileId
142
+ * @param fileVersion
143
+ * @param languageId
241
144
  * @returns
242
145
  */
243
- static canSessionEnd(): boolean {
244
- return inv<boolean>('0x4EEBC3694E49C572', rai());
146
+ static ugcRequestContentDataFromParams(contentTypeName: string | null, contentId: string | null, fileId: number, fileVersion: number, languageId: number): number {
147
+ return inv<number>('0x7FD2990AF016795E', contentTypeName, contentId, fileId, fileVersion, languageId, rai());
245
148
  }
246
149
 
247
150
  /**
248
- * @returns
151
+ * @param maxNumMissionParticipants
152
+ * @param p1
153
+ * @param instanceId
249
154
  */
250
- static hasCurrentGetGamerStatusStarted(): any {
251
- return inv<number>('0x25189F9908E9CD65');
155
+ static setThisScriptIsNetworkScript(maxNumMissionParticipants: number, p1: boolean, instanceId: number): void {
156
+ inv<void>('0x1CA59E306ECB80A5', maxNumMissionParticipants, p1, instanceId);
252
157
  }
253
158
 
254
159
  /**
255
- * @param enabled
256
- * @param flagIndex
160
+ * Stadia only; always returns -1 on other platforms. p0 may be a BOOL.
161
+ *
162
+ * @param p0
257
163
  * @returns
258
164
  */
259
- static setMpMissionFlagOnCurrentSlot(enabled: boolean, flagIndex: number): any {
260
- return inv<number>('0x86FD10251A7118A4', enabled, flagIndex);
165
+ static N_0x3E8CCE6769DB5F34(p0: number): number {
166
+ return inv<number>('0x3E8CCE6769DB5F34', p0, rai());
261
167
  }
262
168
 
263
169
  /**
264
- * Hardcoded to return false.
265
- *
266
- * @returns
170
+ * @returns gamerHandle1; gamerHandle2
267
171
  */
268
- static isInPlatformPartyChat(): boolean {
269
- return inv<boolean>('0xFD8B834A8BA05048', rai());
172
+ static arePlayersInSamePlatformParty(): [any, number, number] {
173
+ const result = inv<[number, number, number]>('0x11820D1AE80DEA39', pvi(), pvi());
174
+ return [result[0], result[1], result[2]];
270
175
  }
271
176
 
272
177
  /**
273
- * @param friendIndex
274
- * @returns gamerHandle
178
+ * @param hour
179
+ * @param minute
180
+ * @param second
181
+ * @param transitionTime
182
+ * @param pauseClock
183
+ * @param clockwise
275
184
  */
276
- static handleFromFriend(friendIndex: number): number {
277
- const result = inv<number>('0xD45CB817D7E177D2', friendIndex, pvi());
278
- return result;
185
+ static clockTimeOverride2(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean, clockwise: boolean): void {
186
+ inv<void>('0xE28C13ECC36FF14E', hour, minute, second, transitionTime, pauseClock, clockwise);
279
187
  }
280
188
 
281
189
  /**
190
+ * @param player
282
191
  * @returns
283
192
  */
284
- static commerceStoreIsEnabled(): boolean {
285
- return inv<boolean>('0xDBC754CB6CCB9378', rai());
193
+ static isPlayerConcealed(player: Player): boolean {
194
+ return inv<boolean>('0x919B3C98ED8292F9', player.handle, rai());
286
195
  }
287
196
 
288
197
  /**
289
- * @param p0
198
+ * @param description
199
+ * @returns
290
200
  */
291
- static N_0xA95470DA137587F5(p0: boolean): void {
292
- inv<void>('0xA95470DA137587F5', p0);
201
+ static ugcRequestCachedDescription(description: string | number): number {
202
+ return inv<number>('0x5E0165278F6339EE', _h(description), rai());
293
203
  }
294
204
 
295
205
  /**
296
- * @param netId
297
206
  * @returns
298
207
  */
299
- static hasControlOfNetworkId(netId: number): boolean {
300
- return inv<boolean>('0x4D36070FE0215186', netId, rai());
208
+ static sessionLeaveSession(): boolean {
209
+ return inv<boolean>('0x17C21B7319A05047', rai());
301
210
  }
302
211
 
303
212
  /**
304
- * @param flags
213
+ * Hardcoded to return false.
214
+ *
215
+ * @returns
305
216
  */
306
- static spawnConfigSetFlags(flags: number): void {
307
- inv<void>('0xF94A0D5B254375DF', flags);
217
+ static isCustomUpsellEnabled(): any {
218
+ return inv<number>('0x78A9535AF83715C6');
308
219
  }
309
220
 
310
221
  /**
311
- * Same as NETWORK_GET_AVERAGE_LATENCY (0xD414BE129BB81B32) Old name: _NETWORK_GET_AVERAGE_LATENCY_FOR_PLAYER_2
312
- *
313
- * @param player
314
222
  * @returns
315
223
  */
316
- static getAveragePing(player: Player): number {
317
- return inv<number>('0x0E3A041ED6AC2B45', player.handle, raf());
224
+ static getNetworkTime(): number {
225
+ return inv<number>('0x7A5487FE9FAA6B48', rai());
318
226
  }
319
227
 
320
228
  /**
321
- * @param p0
229
+ * @param threadId
322
230
  * @returns
323
231
  */
324
- static getNumCreatedMissionObjects(p0: boolean): number {
325
- return inv<number>('0x12B6281B6C6706C0', p0, rai());
232
+ static getInstanceIdOfThread(threadId: number): number {
233
+ return inv<number>('0xFB9ECED5B68F3B78', threadId, rai());
326
234
  }
327
235
 
328
236
  /**
329
- * Note: this native was added in build 1311.16 GET_NUM_*
330
- *
331
- * @returns
237
+ * @param configProperty
238
+ * @param include
239
+ * @param weight
332
240
  */
333
- static N_0x02B3CDD652B3CDD6(): number {
334
- return inv<number>('0x02B3CDD652B3CDD6', rai());
241
+ static spawnConfigAddPropertyPreference(configProperty: number, include: boolean, weight: number): void {
242
+ inv<void>('0xEB6027FD1B4600D5', configProperty, include, f(weight));
335
243
  }
336
244
 
337
245
  /**
338
- * nullsub, doesn't do anything
246
+ * @param p0
247
+ * @returns
339
248
  */
340
- static N_0x2CD41AC000E6F611(): void {
341
- inv<void>('0x2CD41AC000E6F611');
249
+ static N_0xDCA4A74135E1DEA5(p0: any): boolean {
250
+ return inv<boolean>('0xDCA4A74135E1DEA5', p0, rai());
342
251
  }
343
252
 
344
253
  /**
345
- * @returns
254
+ * @returns gamerHandle
346
255
  */
347
- static sessionGetSessionType(): number {
348
- return inv<number>('0xF0C0C94B404206FA', rai());
256
+ static getPlayerFromGamerHandle(): [Player | null, number] {
257
+ const result = inv<[number, number]>('0xCE5F689CF5A0A49D', pvi(), rai());
258
+ return [createFromHandle<Player>('Player', result[0]), result[1]];
349
259
  }
350
260
 
351
261
  /**
262
+ * Returns the amount of players connected in the current session. Only works when connected to a session/server.
263
+ *
352
264
  * @returns
353
265
  */
354
- static isClockTimeOverridden(): boolean {
355
- return inv<boolean>('0xD7C95D322FF57522', rai());
266
+ static getNumConnectedPlayers(): number {
267
+ return inv<number>('0xA4A79DD2D9600654', rai());
356
268
  }
357
269
 
358
270
  /**
359
- * @param player
360
- * @returns gamerHandle
271
+ * @param netId
272
+ * @returns
361
273
  */
362
- static handleFromPlayer(player: Player): number {
363
- const result = inv<number>('0x388EB2B86C73B6B3', player.handle, pvi());
364
- return result;
274
+ static getEntityFromNetworkId(netId: number): Entity | null {
275
+ return createFromHandle<Entity>('Entity', inv<number>('0xCE4E5D9B0A4FF560', netId, rai()));
365
276
  }
366
277
 
367
278
  /**
368
- * Note: this native was added in build 1311.23, but was only used after build 1436.25
279
+ * Returns string for GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO
280
+ *
281
+ * @param p0
282
+ * @param p1
283
+ * @param p2
284
+ * @returns
369
285
  */
370
- static requestCloudTunables(): void {
371
- inv<void>('0x42FB3B532D526E6C');
286
+ static ugcQueryGetCreatorPhoto(p0: any, p1: number, p2: any): string | null {
287
+ return inv<string>('0x409FE0CA6A4D1D49', p0, p1, p2, ras());
372
288
  }
373
289
 
374
290
  /**
375
291
  * @param toggle
376
292
  */
377
- static setScriptReadyForEvents(toggle: boolean): void {
378
- inv<void>('0x7AC752103856FB20', toggle);
293
+ static setRecentGamersEnabled(toggle: boolean): void {
294
+ inv<void>('0x29FE035D35B8589C', toggle);
379
295
  }
380
296
 
381
297
  /**
382
- * @param amount
383
298
  * @returns
384
299
  */
385
- static canRegisterMissionPeds(amount: number): boolean {
386
- return inv<boolean>('0xBCBF4FEF9FA5D781', amount, rai());
300
+ static getLaunchParamString(): string | null {
301
+ return inv<string>('0xC59AB6A04333C502', ras());
387
302
  }
388
303
 
389
304
  /**
390
- * @returns gamerHandle1; gamerHandle2
305
+ * @param entity
306
+ * @param toggle
391
307
  */
392
- static areHandlesTheSame(): [boolean, number, number] {
393
- const result = inv<[boolean, number, number]>('0x57DBA049E110F217', pvi(), pvi(), rai());
394
- return [!!result[0], result[1], result[2]];
308
+ static setEntityRemainsWhenUnnetworked(entity: Entity, toggle: boolean): void {
309
+ inv<void>('0xD785864798258032', entity.handle, toggle);
395
310
  }
396
311
 
397
312
  /**
398
- * Old name: _SET_LOCAL_PLAYER_AS_GHOST
399
- *
400
- * @param toggle
401
- */
402
- static setLocalPlayerAsGhost(toggle: boolean): void {
403
- inv<void>('0x5FFE9B4144F9712F', toggle);
404
- }
405
-
406
- /**
407
- * Example: char displayName[64];
408
- * if (_NETWORK_GET_DISPLAY_NAME_FROM_HANDLE(handle, displayName))
409
- * {
410
- * // use displayName
411
- * }
412
- *
413
- * @param displayName
414
- * @returns gamerHandle
415
- */
416
- static getDisplayNameFromHandle(displayName: string | null): [any, number] {
417
- const result = inv<[number, number]>('0x7FEE4F07C54B6B3C', pvi(), displayName);
418
- return [result[0], result[1]];
419
- }
420
-
421
- static endTutorialSession(): void {
422
- inv<void>('0xD0AFAFF5A51D72F7');
423
- }
424
-
425
- /**
426
- * @param p0
313
+ * @param flags
314
+ * @param userHash
427
315
  * @param p2
428
- * @returns p1
316
+ * @returns sessionRequestId
429
317
  */
430
- static isPlayerAParticipantOnScript(p0: Player, p2: any): [boolean, number] {
431
- const result = inv<[boolean, number]>('0x1AD5B71586B94820', p0.handle, pvi(), p2, rai());
318
+ static sessionRequestSessionNominated(flags: number, userHash: number, p2: number): [boolean, number] {
319
+ const result = inv<[boolean, number]>('0x4F4672457FF597D1', flags, userHash, p2, pvi(), rai());
432
320
  return [!!result[0], result[1]];
433
321
  }
434
322
 
435
323
  /**
324
+ * @param description
436
325
  * @returns
437
326
  */
438
- static getTotalNumFriends(): number {
439
- return inv<number>('0xDB7ABDD203FA3704', rai());
440
- }
441
-
442
- /**
443
- * Returns ugcRequestId
444
- *
445
- * @param p0
446
- * @param maxGet
447
- * @param contentTypeName
448
- * @param p3
449
- * @param p4
450
- * @param p5
451
- * @returns
452
- */
453
- static ugcQueryByContentType(p0: number, maxGet: number, contentTypeName: string | null, p3: number, p4: number, p5: number): number {
454
- return inv<number>('0xF40EF49B3099E98E', p0, maxGet, contentTypeName, p3, p4, p5, rai());
455
- }
456
-
457
- /**
458
- * @param p0
459
- * @param index
460
- * @param p2
461
- * @returns
462
- */
463
- static ugcQueryGetRating(p0: any, index: number, p2: number): number {
464
- return inv<number>('0x24CD8FAEA1368379', p0, index, p2, raf());
465
- }
466
-
467
- /**
468
- * @param player
469
- */
470
- static N_0xD78A26024BB13E08(player: Player): void {
471
- inv<void>('0xD78A26024BB13E08', player.handle);
472
- }
473
-
474
- /**
475
- * Only used in R* Script fm_race_controller
476
- *
477
- * @param p0
478
- */
479
- static N_0x71FA2D1880C48032(p0: boolean): void {
480
- inv<void>('0x71FA2D1880C48032', p0);
481
- }
482
-
483
- /**
484
- * Note: this native was added in build 1311.23
485
- *
486
- * @param p0
487
- * @param p1
488
- * @param p2
489
- * @param p3
490
- * @returns
491
- */
492
- static N_0x5F328FC909F0E0FF(p0: number, p1: number, p2: number, p3: number): boolean {
493
- return inv<boolean>('0x5F328FC909F0E0FF', p0, p1, p2, p3, rai());
494
- }
495
-
496
- /**
497
- * Old name: _NETWORK_SET_VEHICLE_WHEELS_DESTRUCTIBLE
498
- *
499
- * @param entity
500
- * @param p1
501
- */
502
- static triggerDamageEventForZeroDamage(entity: Entity, p1: boolean): void {
503
- inv<void>('0x0C8BC052AE87D744', entity.handle, p1);
504
- }
505
-
506
- /**
507
- * nullsub, doesn't do anything
508
- *
509
- * @returns
510
- */
511
- static getNetStatisticsInfo(): any {
512
- return inv<number>('0x6FD992C4A1C1B986');
327
+ static ugcIsDescriptionRequestInProgress(description: string | number): boolean {
328
+ return inv<boolean>('0x2D5DC831176D0114', _h(description), rai());
513
329
  }
514
330
 
515
331
  /**
516
- * nullsub, doesn't do anything
332
+ * @param ugcRequestId
517
333
  */
518
- static N_0xFC6FCF4C03F1BBF6(): void {
519
- inv<void>('0xFC6FCF4C03F1BBF6');
520
- }
521
-
522
- static N_0x43CF999205084B4B(): void {
523
- inv<void>('0x43CF999205084B4B');
334
+ static ugcClearQueryResults(ugcRequestId: number): void {
335
+ inv<void>('0xE931354FEA710038', ugcRequestId);
524
336
  }
525
337
 
526
338
  /**
527
- * p0 appears to be for MP
528
- *
529
- * @param p0
339
+ * @param threadId
530
340
  * @returns
531
341
  */
532
- static getNumReservedMissionVehicles(p0: boolean): number {
533
- return inv<number>('0xCF3A965906452031', p0, rai());
342
+ static getHostOfThread(threadId: number): Player | null {
343
+ return createFromHandle<Player>('Player', inv<number>('0xB4A25351D79B444C', threadId, rai()));
534
344
  }
535
345
 
536
346
  /**
537
- * @param name
538
347
  * @returns
539
348
  */
540
- static textureDownloadTextureNameIsValid(name: string | null): any {
541
- return inv<number>('0xE2C3CEC3C0903A00', name);
349
+ static isGameInProgress(): boolean {
350
+ return inv<boolean>('0x10FAB35428CCC9D7', rai());
542
351
  }
543
352
 
544
353
  /**
545
- * @param scriptName
546
- * @param p1
547
- * @param p2
548
- * @param p3
354
+ * @param rangeStart
355
+ * @param rangeEnd
549
356
  * @returns
550
357
  */
551
- static isScriptActive(scriptName: string | null, p1: number, p2: boolean, p3: number): boolean {
552
- return inv<boolean>('0x9D40DF90FAD26098', scriptName, p1, p2, p3, rai());
358
+ static getRandomIntRanged(rangeStart: number, rangeEnd: number): number {
359
+ return inv<number>('0xE30CF56F1EFA5F43', rangeStart, rangeEnd, rai());
553
360
  }
554
361
 
555
362
  /**
556
363
  * @param p0
557
- */
558
- static N_0x5CB8B0C846D0F30B(p0: any): void {
559
- inv<void>('0x5CB8B0C846D0F30B', p0);
560
- }
561
-
562
- /**
563
- * @returns loadingState
564
- */
565
- static canAccessMultiplayer(): [boolean, number] {
566
- const result = inv<[boolean, number]>('0xAF50DA1A3F8B1BA4', pvi(), rai());
567
- return [!!result[0], result[1]];
568
- }
569
-
570
- /**
571
- * @returns p0
572
- */
573
- static getCurrentFriendPageData(): [any, number] {
574
- const result = inv<[number, number]>('0xA3EEC0A5AFF3FC5B', pvi());
575
- return [result[0], result[1]];
576
- }
577
-
578
- /**
579
- * @returns p0
580
- */
581
- static getSizeOfHostBroadcastDataStorage(): [number, number] {
582
- const result = inv<[number, number]>('0xBA24095EA96DFE17', pvi(), rai());
583
- return [result[0], result[1]];
584
- }
585
-
586
- /**
587
364
  * @returns
588
365
  */
589
- static getInstanceIdOfThisScript(): number {
590
- return inv<number>('0x638A3A81733086DB', rai());
366
+ static acceptRsInvite(p0: number): any {
367
+ return inv<number>('0xB2CEA5105AAC8DDE', p0);
591
368
  }
592
369
 
593
370
  /**
594
- * @param p0
595
- * @returns
371
+ * @param player
372
+ * @param toggle
596
373
  */
597
- static awardHasReachedMaxclaim(p0: any): any {
598
- return inv<number>('0xFBE782B3165AC8EC', p0);
374
+ static concealPlayer(player: Player, toggle: boolean): void {
375
+ inv<void>('0xBBDF066252829606', player.handle, toggle);
599
376
  }
600
377
 
601
378
  /**
602
- * @param p0
603
- * @returns
379
+ * ^^ I attempted this by grabbing an object with GET_ENTITY_PLAYER_IS_FREE_AIMING_AT and setting this naive no matter the toggle he could still see it. pc or last gen? ^^ last-gen Old name: _NETWORK_SET_ENTITY_INVISIBLE_TO_NETWORK
380
+ *
381
+ * @param entity
382
+ * @param toggle
604
383
  */
605
- static N_0xBB697756309D77EE(p0: boolean): any {
606
- return inv<number>('0xBB697756309D77EE', p0);
384
+ static setEntityOnlyExistsForParticipants(entity: Entity, toggle: boolean): void {
385
+ inv<void>('0xF1CA12B18AEF5298', entity.handle, toggle);
607
386
  }
608
387
 
609
388
  /**
610
- * @returns
389
+ * @param doorHash
611
390
  */
612
- static autoSessionIsInstancedSession(): any {
613
- return inv<number>('0x277865A734918AE6');
391
+ static setDoorNetworked(doorHash: string | number): void {
392
+ inv<void>('0x51D99497ABF3F451', _h(doorHash));
614
393
  }
615
394
 
616
395
  /**
617
396
  * @param p0
618
- * @param p1
619
- * @returns
620
- */
621
- static resetPopulation(p0: boolean, p1: number): any {
622
- return inv<number>('0x101F538C25ABB39A', p0, p1);
623
- }
624
-
625
- /**
626
- * @param ped
627
- * @returns Returns the network id for the specified `ped` or `0` if the entity isn't networked.
397
+ * @param index
398
+ * @returns gamerHandle
628
399
  */
629
- static pedToNet(ped: Ped): number {
630
- return inv<number>('0x0EDEC3C276198689', ped.handle, rai());
400
+ static ugcQueryGetCreatorHandle(p0: any, index: number): [any, number] {
401
+ const result = inv<[number, number]>('0xADB56322EEDFBDC9', p0, index, pvi());
402
+ return [result[0], result[1]];
631
403
  }
632
404
 
633
405
  /**
634
- * @param p0
406
+ * @param paramName
635
407
  * @returns
636
408
  */
637
- static N_0x27B1AE4D8C652F08(p0: number): number {
638
- return inv<number>('0x27B1AE4D8C652F08', p0, rai());
409
+ static getLaunchParamExists(paramName: string | null): any {
410
+ return inv<number>('0x02E97CE283648CD9', paramName);
639
411
  }
640
412
 
641
413
  /**
@@ -1327,141 +1099,269 @@ export class Network {
1327
1099
  return inv<number>('0xB72999D3120599DF', texture, personaPhotoType, formatIndex);
1328
1100
  }
1329
1101
 
1102
+ static N_0x9B39B0555CC692B5(): void {
1103
+ inv<void>('0x9B39B0555CC692B5');
1104
+ }
1105
+
1330
1106
  /**
1331
1107
  * @param p0
1332
- * @param p1
1333
1108
  * @returns
1334
1109
  */
1335
- static N_0x271F95E55C663B8B(p0: any, p1: any): any {
1336
- return inv<number>('0x271F95E55C663B8B', p0, p1);
1110
+ static N_0xE79BA3BC265895DA(p0: number): string | null {
1111
+ return inv<string>('0xE79BA3BC265895DA', p0, ras());
1337
1112
  }
1338
1113
 
1339
1114
  /**
1340
- * @returns
1115
+ * @param netPlaylistActivity
1341
1116
  */
1342
- static sessionGetSessionFlags(): number {
1343
- return inv<number>('0x51F33DBC1A41CBFD', rai());
1117
+ static activitySetCurrent(netPlaylistActivity: number): void {
1118
+ inv<void>('0x9ADAC065D9F6706F', netPlaylistActivity);
1344
1119
  }
1345
1120
 
1346
1121
  /**
1347
- * Note: this native was added in build 1311.23
1348
- *
1122
+ * @param queueGroup
1349
1123
  * @returns
1350
1124
  */
1351
- static N_0x039AD6B57D5179FF(): number {
1352
- return inv<number>('0x039AD6B57D5179FF', rai());
1125
+ static sessionIsRequestInProgressByQueueGroup(queueGroup: number): any {
1126
+ return inv<number>('0x9E762A595CF88E4A', queueGroup);
1353
1127
  }
1354
1128
 
1355
1129
  /**
1356
- * Old name: _NETWORK_GET_NUM_UNACKED_FOR_PLAYER
1357
- *
1358
- * @param player
1359
1130
  * @returns
1360
1131
  */
1361
- static getNumUnackedReliables(player: Player): number {
1362
- return inv<number>('0xFF8FCF9FFC458A1C', player.handle, rai());
1363
- }
1132
+ static pedmugshotGetStatus(): number {
1133
+ return inv<number>('0xCBAC13F065C47596', rai());
1134
+ }
1135
+
1136
+ /**
1137
+ * @returns
1138
+ */
1139
+ static getTunableCloudCrc(): number {
1140
+ return inv<number>('0x10BD227A753B0D84', rai());
1141
+ }
1142
+
1143
+ /**
1144
+ * Returns true if the passed value is less than 32.
1145
+ *
1146
+ * @param player
1147
+ * @returns
1148
+ */
1149
+ static isPlayerIndexValid(player: Player): any {
1150
+ return inv<number>('0x255A5EF65EDA9167', player.handle);
1151
+ }
1364
1152
 
1365
1153
  /**
1366
1154
  * @param entity
1367
- * @param toggle
1155
+ * @returns
1368
1156
  */
1369
- static allowEntityFadingForInstances(entity: Entity, toggle: boolean): void {
1370
- inv<void>('0xF3354D6CA46F419D', entity.handle, toggle);
1157
+ static getEntityIsNetworked(entity: Entity): boolean {
1158
+ return inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
1371
1159
  }
1372
1160
 
1373
1161
  /**
1374
- * Only used in R* Script startup_clip
1162
+ * @param vehicle
1163
+ * @returns Returns the network id for the specified `vehicle`, or `0` if the vehicle isn't networked.
1375
1164
  */
1376
- static N_0xFD4272A137703449(): void {
1377
- inv<void>('0xFD4272A137703449');
1165
+ static vehToNet(vehicle: Vehicle): number {
1166
+ return inv<number>('0xB4C94523F023419C', vehicle.handle, rai());
1378
1167
  }
1379
1168
 
1380
1169
  /**
1170
+ * Only used in R* SP Scripts
1171
+ *
1381
1172
  * @param player
1382
- * @param type
1173
+ * @param personaPhotoLocalCacheType
1174
+ * @returns
1383
1175
  */
1384
- static N_0x51951DE06C0D1C40(player: Player, type: number): void {
1385
- inv<void>('0x51951DE06C0D1C40', player.handle, type);
1176
+ static requestPedshotTextureLocalBackupDownload(player: number, personaPhotoLocalCacheType: number): string | null {
1177
+ return inv<string>('0x356F9FB0698C1FEB', player, personaPhotoLocalCacheType, ras());
1386
1178
  }
1387
1179
 
1388
1180
  /**
1389
1181
  * @param p0
1390
- * @returns
1391
1182
  */
1392
- static N_0x5ED39DA62BEB1330(p0: number): any {
1393
- return inv<number>('0x5ED39DA62BEB1330', p0);
1183
+ static N_0xE5634491A58C2703(p0: number): void {
1184
+ inv<void>('0xE5634491A58C2703', f(p0));
1394
1185
  }
1395
1186
 
1396
1187
  /**
1397
1188
  * @param p0
1398
- * @param index
1189
+ * @param p1
1190
+ * @param p2
1191
+ * @param p3
1399
1192
  * @returns
1400
1193
  */
1401
- static ugcQueryGetName(p0: any, index: number): string | null {
1402
- return inv<string>('0x2D053EA815702DD1', p0, index, ras());
1194
+ static N_0x64A36BA85CE01A81(p0: any, p1: any, p2: any, p3: any): any {
1195
+ return inv<number>('0x64A36BA85CE01A81', p0, p1, p2, p3);
1196
+ }
1197
+
1198
+ /**
1199
+ * @returns sessionRequestId
1200
+ */
1201
+ static sessionIsSessionRequestIdValid(): [any, number] {
1202
+ const result = inv<[number, number]>('0x2F54B146D3EDCE4D', pvi());
1203
+ return [result[0], result[1]];
1204
+ }
1205
+
1206
+ /**
1207
+ * @returns
1208
+ */
1209
+ static isResettingPopulation(): any {
1210
+ return inv<number>('0x1BB50CD340A996E6');
1403
1211
  }
1404
1212
 
1405
1213
  /**
1214
+ * Note: this native was added in build 1311.23
1215
+ *
1406
1216
  * @param p0
1407
- * @param index
1408
1217
  * @returns
1409
1218
  */
1410
- static ugcQueryGetBookMarked(p0: any, index: number): any {
1411
- return inv<number>('0x98539FC453AEA639', p0, index);
1219
+ static N_0x039B692B3318FAB6(p0: boolean): number {
1220
+ return inv<number>('0x039B692B3318FAB6', p0, rai());
1412
1221
  }
1413
1222
 
1414
1223
  /**
1415
- * @param entity
1416
- * @param timer
1417
- * @param p2
1224
+ * Always returns 60
1225
+ *
1226
+ * @returns
1418
1227
  */
1419
- static setNetworkRespotTimer(entity: Entity, timer: number, p2: boolean): void {
1420
- inv<void>('0x442B4347B6EC36E8', entity.handle, timer, p2);
1228
+ static getMaxNumNetworkObjects(): number {
1229
+ return inv<number>('0xC7BE335216B5EC7C', rai());
1421
1230
  }
1422
1231
 
1423
1232
  /**
1424
- * @returns gamerHandle
1233
+ * Checks if the user has ROS privilege 14.
1234
+ *
1235
+ * @returns
1425
1236
  */
1426
- static getGamertagFromFriend(): [string | null, number] {
1427
- const result = inv<[string, number]>('0x5659D87BE674AB17', pvi(), ras());
1428
- return [result[0], result[1]];
1237
+ static ugcHasPrivilege(): any {
1238
+ return inv<number>('0x6506BFA755FB209C');
1429
1239
  }
1430
1240
 
1431
1241
  /**
1432
- * @param player
1242
+ * @param networkId
1243
+ * @param bStopCloning
1244
+ */
1245
+ static setNetworkIdStopCloning(networkId: number, bStopCloning: boolean): void {
1246
+ inv<void>('0x9ED3108D6847760A', networkId, bStopCloning);
1247
+ }
1248
+
1249
+ /**
1250
+ * Returns CGameConfig->ConfigOnlineServices->RosTitleName (see gameconfig.xml)
1251
+ *
1433
1252
  * @returns
1434
1253
  */
1435
- static getPlayerWaypointIsActive(player: Player): any {
1436
- return inv<number>('0xDCC4B7F7112E8AB7', player.handle);
1254
+ static getRosTitleName(): string | null {
1255
+ return inv<string>('0xAC6153A0722F524C', ras());
1437
1256
  }
1438
1257
 
1439
1258
  /**
1440
- * @param inviteIndex
1441
1259
  * @returns
1442
1260
  */
1443
- static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
1444
- return inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
1261
+ static getScriptStatus(): number {
1262
+ return inv<number>('0x57D158647A6BFABF', rai());
1445
1263
  }
1446
1264
 
1447
1265
  /**
1448
- * @param netID
1266
+ * @param p0
1267
+ * @param p1
1268
+ * @param p2
1269
+ * @param p3
1449
1270
  */
1450
- static disableProximityMigration(netID: number): void {
1451
- inv<void>('0x407091CF6037118E', netID);
1271
+ static setNetworkIdVisibleInCutscene(p0: any, p1: any, p2: any, p3: any): void {
1272
+ inv<void>('0xA6928482543022B4', p0, p1, p2, p3);
1273
+ }
1274
+
1275
+ /**
1276
+ * @param amount
1277
+ */
1278
+ static reserveNetworkMissionObjects(amount: number): void {
1279
+ inv<void>('0x4E5C93BD0C32FBF8', amount);
1280
+ }
1281
+
1282
+ /**
1283
+ * @param entity
1284
+ * @param player
1285
+ * @returns p2
1286
+ */
1287
+ static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
1288
+ const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
1289
+ return [!!result[0], result[1]];
1290
+ }
1291
+
1292
+ /**
1293
+ * @returns
1294
+ */
1295
+ static autoSessionIsAllowedToMerge(): any {
1296
+ return inv<number>('0xAADED99A6B268A27');
1452
1297
  }
1453
1298
 
1454
1299
  /**
1455
1300
  * @param p0
1456
1301
  * @param p1
1457
- * @param dataSize
1458
- * @returns outData
1302
+ * @param p2
1303
+ * @returns
1459
1304
  */
1460
- static getRecentGamerNames(p0: number, p1: number, dataSize: number): [any, number] {
1461
- const result = inv<[number, number]>('0xFEFCC345CE357453', p0, p1, pvi(), dataSize);
1305
+ static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
1306
+ return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
1307
+ }
1308
+
1309
+ /**
1310
+ * Hardcoded to return false.
1311
+ *
1312
+ * @returns
1313
+ */
1314
+ static shouldShowPromotionDlg(): any {
1315
+ return inv<number>('0xDA4B1A479C414FB2');
1316
+ }
1317
+
1318
+ /**
1319
+ * @param amount
1320
+ */
1321
+ static reserveNetworkMissionPeds(amount: number): void {
1322
+ inv<void>('0xB60FEBA45333D36F', amount);
1323
+ }
1324
+
1325
+ /**
1326
+ * @param pos
1327
+ * @param heading
1328
+ */
1329
+ static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
1330
+ inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
1331
+ }
1332
+
1333
+ /**
1334
+ * @param paramName
1335
+ * @param value
1336
+ */
1337
+ static setLaunchParamValue(paramName: string | null, value: string | null): void {
1338
+ inv<void>('0x668AF6E4933AC13F', paramName, value);
1339
+ }
1340
+
1341
+ /**
1342
+ * @returns gamerHandle
1343
+ */
1344
+ static canViewGamerUserContent(): [any, number] {
1345
+ const result = inv<[number, number]>('0x246545C37C27A717', pvi());
1462
1346
  return [result[0], result[1]];
1463
1347
  }
1464
1348
 
1349
+ /**
1350
+ * @param p0
1351
+ * @returns
1352
+ */
1353
+ static isParticipantActive(p0: number): boolean {
1354
+ return inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
1355
+ }
1356
+
1357
+ /**
1358
+ * @param p0
1359
+ * @returns
1360
+ */
1361
+ static getNumCreatedMissionPeds(p0: boolean): number {
1362
+ return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
1363
+ }
1364
+
1465
1365
  /**
1466
1366
  * @returns
1467
1367
  */
@@ -1598,139 +1498,292 @@ export class Network {
1598
1498
  }
1599
1499
 
1600
1500
  /**
1601
- * @returns
1501
+ * _NETWORK_GET_A* - _NETWORK_GET_D*
1502
+ *
1503
+ * @param player
1504
+ * @param ped
1505
+ * @returns p2
1602
1506
  */
1603
- static N_0x18B94666CF610AEB(): boolean {
1604
- return inv<boolean>('0x18B94666CF610AEB', rai());
1507
+ static N_0x236321F1178A5446(player: Player, ped: Ped): [boolean, number] {
1508
+ const result = inv<[boolean, number]>('0x236321F1178A5446', player.handle, ped.handle, pvi(), rai());
1509
+ return [!!result[0], result[1]];
1605
1510
  }
1606
1511
 
1607
1512
  /**
1608
- * p0 appears to be for MP
1513
+ * Must be called from a background script, otherwise it will do nothing.
1609
1514
  *
1610
- * @param p0
1611
- * @returns
1515
+ * @param entity
1516
+ * @param p1
1612
1517
  */
1613
- static getNumReservedMissionObjects(p0: boolean): number {
1614
- return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
1518
+ static N_0x979765465A6F25FC(entity: Entity, p1: boolean): void {
1519
+ inv<void>('0x979765465A6F25FC', entity.handle, p1);
1615
1520
  }
1616
1521
 
1617
1522
  /**
1618
- * @returns
1523
+ * @param player
1524
+ * @param p1
1619
1525
  */
1620
- static hasSocialClubAccount(): boolean {
1621
- return inv<boolean>('0x67A5589628E0CFF6', rai());
1526
+ static N_0x5A91BCEF74944E93(player: Player, p1: number): void {
1527
+ inv<void>('0x5A91BCEF74944E93', player.handle, f(p1));
1622
1528
  }
1623
1529
 
1624
1530
  /**
1625
- * @param netHandle
1626
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
1531
+ * @param params
1627
1532
  */
1628
- static netToPed(netHandle: number): Ped | null {
1629
- return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
1533
+ static setLaunchParamString(params: string | null): void {
1534
+ inv<void>('0xDFFC15AA63D04AAB', params);
1630
1535
  }
1631
1536
 
1632
1537
  /**
1633
- * 0 = succeeded
1634
- * 1 = pending
1635
- * 2 = failed
1538
+ * Note: this native was added in build 1311.23
1636
1539
  *
1637
- * @param textureDownloadId
1638
- * @returns
1540
+ * @param p0
1541
+ * @param p1
1639
1542
  */
1640
- static getStatusOfTextureDownload(textureDownloadId: number): number {
1641
- return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
1543
+ static N_0x0D183D8490EE4366(p0: number, p1: number): void {
1544
+ inv<void>('0x0D183D8490EE4366', p0, p1);
1642
1545
  }
1643
1546
 
1644
1547
  /**
1645
- * @returns gamerHandle
1548
+ * Note: this native was added in build 1311.23
1549
+ *
1550
+ * @param p0
1551
+ * @returns
1646
1552
  */
1647
- static N_0xF23A6D6C11D8EC15(): [boolean, number] {
1648
- const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
1553
+ static N_0xF8DC69DC1AD19072(p0: boolean): number {
1554
+ return inv<number>('0xF8DC69DC1AD19072', p0, rai());
1555
+ }
1556
+
1557
+ /**
1558
+ * @returns
1559
+ */
1560
+ static N_0xA47D48D06AA5A188(): boolean {
1561
+ return inv<boolean>('0xA47D48D06AA5A188', rai());
1562
+ }
1563
+
1564
+ /**
1565
+ * @returns
1566
+ */
1567
+ static getCloudTimeAsInt(): number {
1568
+ return inv<number>('0x9A73240B49945C76', rai());
1569
+ }
1570
+
1571
+ /**
1572
+ * *GET_LAUNCH_PARAM*(RESPOT?)*
1573
+ * Name is probably invalid since this native only reads data from parsed entity.
1574
+ *
1575
+ * @param entity
1576
+ * @returns
1577
+ */
1578
+ static N_0x26A867C0B7A456D1(entity: Entity): boolean {
1579
+ return inv<boolean>('0x26A867C0B7A456D1', entity.handle, rai());
1580
+ }
1581
+
1582
+ /**
1583
+ * @param netHandle
1584
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
1585
+ */
1586
+ static netToVeh(netHandle: number): Vehicle | null {
1587
+ return createFromHandle<Vehicle>('Vehicle', inv<number>('0x367B936610BA360C', netHandle, rai()));
1588
+ }
1589
+
1590
+ /**
1591
+ * @returns sessionRequestId
1592
+ */
1593
+ static N_0xAFA14F98327791CE(): [boolean, number] {
1594
+ const result = inv<[boolean, number]>('0xAFA14F98327791CE', pvi(), rai());
1649
1595
  return [!!result[0], result[1]];
1650
1596
  }
1651
1597
 
1652
1598
  /**
1653
- * Always returns 40
1599
+ * @returns
1600
+ */
1601
+ static N_0xDA1BFED8582F61F0(): boolean {
1602
+ return inv<boolean>('0xDA1BFED8582F61F0', rai());
1603
+ }
1604
+
1605
+ /**
1606
+ * Note: this native was added in build 1311.23
1654
1607
  *
1608
+ * @param p0
1655
1609
  * @returns
1656
1610
  */
1657
- static getMaxNumNetworkVehicles(): number {
1658
- return inv<number>('0x0AFCE529F69B21FF', rai());
1611
+ static N_0xBAF7E2979442B29F(p0: boolean): number {
1612
+ return inv<number>('0xBAF7E2979442B29F', p0, rai());
1659
1613
  }
1660
1614
 
1661
1615
  /**
1662
- * @param netId
1616
+ * @returns
1617
+ */
1618
+ static isCloudAvailable(): boolean {
1619
+ return inv<boolean>('0x9A4CF4F48AD77302', rai());
1620
+ }
1621
+
1622
+ /**
1623
+ * @param p0
1663
1624
  * @param p1
1664
1625
  * @param p2
1665
1626
  */
1666
- static keepNetworkIdInFastInstance(netId: number, p1: boolean, p2: number): void {
1667
- inv<void>('0xE1BC73D6815BA361', netId, p1, p2);
1627
+ static registerPlayerBroadcastVariables(p0: any, p1: any, p2: any): void {
1628
+ inv<void>('0x3364AA97340CA215', p0, p1, p2);
1668
1629
  }
1669
1630
 
1670
1631
  /**
1671
- * @returns gamerHandle
1632
+ * _NETWORK_IS_T* - _NETWORK_RE*
1633
+ *
1634
+ * @returns
1672
1635
  */
1673
- static isHandleValid(): [boolean, number] {
1674
- const result = inv<[boolean, number]>('0x6F79B93B0A8E4133', pvi(), rai());
1675
- return [!!result[0], result[1]];
1636
+ static isPreviousUploadPending(): any {
1637
+ return inv<number>('0xA21E3BAD0A42D199');
1676
1638
  }
1677
1639
 
1678
1640
  /**
1679
- * @param p0
1641
+ * _NETWORK_GET_A* - _NETWORK_GET_D*
1642
+ *
1643
+ * @param ped
1680
1644
  * @returns p1
1681
1645
  */
1682
- static N_0x691E4DE5309EAEFC(p0: any): number {
1683
- const result = inv<number>('0x691E4DE5309EAEFC', p0, pvi());
1684
- return result;
1646
+ static N_0x6CF82A7F65A5AD5F(ped: Ped): [Player | null, number] {
1647
+ const result = inv<[number, number]>('0x6CF82A7F65A5AD5F', ped.handle, pvi(), rai());
1648
+ return [createFromHandle<Player>('Player', result[0]), result[1]];
1685
1649
  }
1686
1650
 
1687
1651
  /**
1688
- * @param entity
1652
+ * @param p1
1653
+ * @returns gamerHandle
1654
+ */
1655
+ static getGamerStatus(p1: number): [number, number] {
1656
+ const result = inv<[number, number]>('0xDDAEB478E58F8DEA', pvi(), p1, rai());
1657
+ return [result[0], result[1]];
1658
+ }
1659
+
1660
+ /**
1661
+ * Returns result of session request:
1662
+ * 0 - NOT_FOUND
1663
+ * 1 - IN_PROGRESS
1664
+ * 2 - TIMEOUT
1665
+ * 3 - PLAYER_OFFLINE
1666
+ * 4 - GANG_MEMBERS_CHANGED
1667
+ * 5 - PLAYER_CANCELLED
1668
+ * 6 - PLAYER_SET_TOO_LARGE
1669
+ * 7 - MATCH_ACCEPTED
1670
+ * 8 - OTHER
1671
+ *
1672
+ * @returns sessionRequestId; p1
1673
+ */
1674
+ static sessionGetSessionRequestResult(): [number, number, number] {
1675
+ const result = inv<[number, number, number]>('0x0DD051B1BF4B8BD6', pvi(), pvi(), rai());
1676
+ return [result[0], result[1], result[2]];
1677
+ }
1678
+
1679
+ static N_0xA63E4F050F20021F(): void {
1680
+ inv<void>('0xA63E4F050F20021F');
1681
+ }
1682
+
1683
+ /**
1684
+ * @param amount
1689
1685
  * @returns
1690
1686
  */
1691
- static getNetworkIdFromEntity(entity: Entity): number {
1692
- return inv<number>('0xA11700682F3AD45C', entity.handle, rai());
1687
+ static canRegisterMissionObjects(amount: number): boolean {
1688
+ return inv<boolean>('0x800DD4721A8B008B', amount, rai());
1693
1689
  }
1694
1690
 
1695
1691
  /**
1696
- * Only used in SP R* Script dominoes_sp: p1 = 0
1692
+ * @param description
1693
+ * @returns
1694
+ */
1695
+ static ugcReleaseCachedDescription(description: string | number): boolean {
1696
+ return inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
1697
+ }
1698
+
1699
+ /**
1700
+ * @param toggle
1701
+ */
1702
+ static setFriendlyFireOption(toggle: boolean): void {
1703
+ inv<void>('0xF808475FA571D823', toggle);
1704
+ }
1705
+
1706
+ /**
1707
+ * @returns sessionRequestId
1708
+ */
1709
+ static sessionTransitionToSession(): [any, number] {
1710
+ const result = inv<[number, number]>('0xF20B18A330E6DB5C', pvi());
1711
+ return [result[0], result[1]];
1712
+ }
1713
+
1714
+ /**
1715
+ * Hardcoded to return false.
1697
1716
  *
1698
- * @param player
1699
- * @param p1
1717
+ * @returns
1700
1718
  */
1701
- static N_0x02C4C6C2900D84DF(player: Player, p1: any): void {
1702
- inv<void>('0x02C4C6C2900D84DF', player.handle, p1);
1719
+ static isPromotionEnabled(): any {
1720
+ return inv<number>('0x8FF6059DA26E688A');
1703
1721
  }
1704
1722
 
1705
1723
  /**
1724
+ * @param playersToTake
1725
+ * @param maxInstancePlayers
1726
+ * @param sessionFlags
1727
+ * @param bucketId
1706
1728
  * @returns
1707
1729
  */
1708
- static isSessionActive(): boolean {
1709
- return inv<boolean>('0xD83C2B94E7508980', rai());
1730
+ static autoSessionSplitSession(playersToTake: number, maxInstancePlayers: number, sessionFlags: number, bucketId: number): any {
1731
+ return inv<number>('0xC223D299C670413D', playersToTake, maxInstancePlayers, sessionFlags, bucketId);
1710
1732
  }
1711
1733
 
1712
1734
  /**
1713
- * @param animScene
1735
+ * @param p0
1714
1736
  * @returns
1715
1737
  */
1716
- static animSceneToNet(animScene: AnimScene): number {
1717
- return inv<number>('0xE0D73CDDEA79DDCD', animScene.handle, rai());
1738
+ static N_0x923346025512DFB7(p0: any): any {
1739
+ return inv<number>('0x923346025512DFB7', p0);
1740
+ }
1741
+
1742
+ /**
1743
+ * @returns args
1744
+ */
1745
+ static resurrectLocalPlayer2(): number {
1746
+ const result = inv<number>('0x4154B7D8C75E5DCF', pvi());
1747
+ return result;
1748
+ }
1749
+
1750
+ /**
1751
+ * Only used in R* Script net_stable_manager
1752
+ *
1753
+ * @param threadId
1754
+ * @returns pedMax; vehicleMax; unkMax; pedMin; vehicleMin; unkMin
1755
+ */
1756
+ static getReservedMissionEntitiesForThread(threadId: number): [number, number, number, number, number, number] {
1757
+ const result = inv<[number, number, number, number, number, number]>('0x99AAC89C510DEB0D', threadId, pvi(), pvi(), pvi(), pvi(), pvi(), pvi());
1758
+ return [result[0], result[1], result[2], result[3], result[4], result[5]];
1718
1759
  }
1719
1760
 
1720
1761
  /**
1762
+ * @param p0
1721
1763
  * @returns
1722
1764
  */
1723
- static getRank(): number {
1724
- return inv<number>('0x32C90CDFAF40514C', rai());
1765
+ static N_0xD7BAD4062074B9C1(p0: any): boolean {
1766
+ return inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
1725
1767
  }
1726
1768
 
1727
1769
  /**
1728
- * @param message
1729
- * @returns gamerHandle
1770
+ * @param hour
1771
+ * @param minute
1772
+ * @param second
1773
+ * @param transitionTime
1774
+ * @param pauseClock
1730
1775
  */
1731
- static addFriend(message: string | null): [boolean, number] {
1732
- const result = inv<[boolean, number]>('0x8E02D73914064223', pvi(), message, rai());
1733
- return [!!result[0], result[1]];
1776
+ static clockTimeOverride(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean): void {
1777
+ inv<void>('0x669E223E64B1903C', hour, minute, second, transitionTime, pauseClock);
1778
+ }
1779
+
1780
+ /**
1781
+ * @param netId
1782
+ * @param player
1783
+ * @param toggle
1784
+ */
1785
+ static setNetworkIdAlwaysExistsForPlayer(netId: number, player: Player, toggle: boolean): void {
1786
+ inv<void>('0xA8A024587329F36A', netId, player.handle, toggle);
1734
1787
  }
1735
1788
 
1736
1789
  /**
@@ -1887,401 +1940,134 @@ export class Network {
1887
1940
  }
1888
1941
 
1889
1942
  /**
1890
- * @param p0
1891
- * @returns gamerHandle
1943
+ * Note: this native was added in build 1311.16
1944
+ *
1945
+ * @returns
1892
1946
  */
1893
- static N_0x16EFB123C4451032(p0: number): [boolean, number] {
1894
- const result = inv<[boolean, number]>('0x16EFB123C4451032', p0, pvi(), rai());
1895
- return [!!result[0], result[1]];
1947
+ static isObjectReassignmentInProgress(): boolean {
1948
+ return inv<boolean>('0x8FE9EB11EC9CC23A', rai());
1896
1949
  }
1897
1950
 
1898
1951
  /**
1899
- * Return the local Participant ID
1900
- *
1952
+ * @param scriptName
1953
+ * @param instanceId
1954
+ * @param position
1901
1955
  * @returns
1902
1956
  */
1903
- static participantId(): Player | null {
1904
- return createFromHandle<Player>('Player', inv<number>('0x90986E8876CE0A83', rai()));
1957
+ static getNumScriptParticipants(scriptName: string | null, instanceId: number, position: string | number): number {
1958
+ return inv<number>('0x3658E8CD94FC121A', scriptName, instanceId, _h(position), rai());
1905
1959
  }
1906
1960
 
1907
- static N_0x97BCE4C4B3191228(): void {
1908
- inv<void>('0x97BCE4C4B3191228');
1961
+ /**
1962
+ * @param p0
1963
+ * @returns
1964
+ */
1965
+ static N_0x6C27442A225A241A(p0: number): number {
1966
+ return inv<number>('0x6C27442A225A241A', p0, rai());
1909
1967
  }
1910
1968
 
1911
1969
  /**
1912
- * @param volume
1970
+ * @param p0
1913
1971
  * @param p1
1914
- * @param originalWeight
1915
- * @param p3
1916
- * @param p4
1917
- */
1918
- static N_0x13F592FC3BF0EA84(volume: Volume, p1: boolean, originalWeight: number, p3: any, p4: any): void {
1919
- inv<void>('0x13F592FC3BF0EA84', volume.handle, p1, f(originalWeight), p3, p4);
1920
- }
1921
-
1922
- /**
1923
- * @returns
1924
- */
1925
- static N_0xBF8276E51761F9DA(): number {
1926
- return inv<number>('0xBF8276E51761F9DA', rai());
1927
- }
1928
-
1929
- /**
1930
- * Note: this native was added in build 1311.23
1931
- *
1932
- * @returns
1933
- */
1934
- static N_0x316FD416C432C761(): boolean {
1935
- return inv<boolean>('0x316FD416C432C761', rai());
1936
- }
1937
-
1938
- /**
1939
- * nullsub, doesn't do anything
1940
- *
1941
- * @returns
1942
- */
1943
- static N_0xEC089F84A9C16C62(): any {
1944
- return inv<number>('0xEC089F84A9C16C62');
1945
- }
1946
-
1947
- /**
1948
- * @param netId
1949
- * @returns
1950
- */
1951
- static getRopeIdFromNetworkId(netId: number): number {
1952
- return inv<number>('0xEB1A4DD8352EC828', netId, rai());
1953
- }
1954
-
1955
- /**
1956
- * @param ugcRequestId
1957
- * @returns
1958
- */
1959
- static ugcDidRequestSucceed(ugcRequestId: number): any {
1960
- return inv<number>('0x0B6009A90B8495F1', ugcRequestId);
1961
- }
1962
-
1963
- /**
1964
- * @returns
1965
- */
1966
- static getNetworkTimeAccurate(): number {
1967
- return inv<number>('0x89023FBBF9200E9F', rai());
1968
- }
1969
-
1970
- /**
1971
- * @param p0
1972
- * @returns
1973
- */
1974
- static getNumCreatedMissionVehicles(p0: boolean): number {
1975
- return inv<number>('0x0CD9AB83489430EA', p0, rai());
1976
- }
1977
-
1978
- static showAccountUpgradeUi(): void {
1979
- inv<void>('0x83FE8D7229593017');
1980
- }
1981
-
1982
- /**
1983
- * Hardcoded to return false.
1984
- *
1985
- * @returns
1986
1972
  */
1987
- static isInSessionLobby(): any {
1988
- return inv<number>('0xC5196C42DE19F646');
1973
+ static spawnConfigSetTuningFloat(p0: string | number, p1: number): void {
1974
+ inv<void>('0x0608326F7B98C08D', _h(p0), f(p1));
1989
1975
  }
1990
1976
 
1991
1977
  /**
1992
- * Always returns a null string.
1993
- *
1994
- * @returns gamerHandle
1978
+ * @param p1
1979
+ * @returns outData
1995
1980
  */
1996
- static getGamertagFromHandle(): [string | null, number] {
1997
- const result = inv<[string, number]>('0x426141162EBE5CDB', pvi(), ras());
1981
+ static N_0x7BCA0A3972708436(p1: number): [number, number] {
1982
+ const result = inv<[number, number]>('0x7BCA0A3972708436', pvi(), p1, rai());
1998
1983
  return [result[0], result[1]];
1999
1984
  }
2000
1985
 
2001
1986
  /**
2002
- * Returns the network ID of the given object.
2003
- *
2004
- * @param object
2005
- * @returns Returns the network id for the specified `object`, or `0` if the entity isn't networked.
2006
- */
2007
- static objToNet(object: Prop): number {
2008
- return inv<number>('0x99BFDC94A603E541', object.handle, rai());
2009
- }
2010
-
2011
- /**
2012
- * @param p0
2013
- * @returns
2014
- */
2015
- static requestJoin(p0: any): number {
2016
- return inv<number>('0xE483BB6BE686F632', p0, rai());
2017
- }
2018
-
2019
- /**
2020
- * Note: this native was added in build 1311.23
2021
- *
2022
- * @param p0
2023
- * @returns
2024
- */
2025
- static N_0x4835413EA6F9C9CD(p0: boolean): number {
2026
- return inv<number>('0x4835413EA6F9C9CD', p0, rai());
2027
- }
2028
-
2029
- /**
2030
- * Returns ugcRequestId
2031
- *
2032
- * @param contentId
2033
- * @param latestVersion
2034
- * @param contentTypeName
2035
- * @returns
2036
- */
2037
- static ugcQueryByContentId(contentId: string | null, latestVersion: boolean, contentTypeName: string | null): number {
2038
- return inv<number>('0x69D22E183580113F', contentId, latestVersion, contentTypeName, rai());
2039
- }
2040
-
2041
- /**
2042
- * @param p0
2043
- */
2044
- static N_0x3034C77C79A58880(p0: boolean): void {
2045
- inv<void>('0x3034C77C79A58880', p0);
2046
- }
2047
-
2048
- /**
2049
- * @param paramName
2050
- * @returns
2051
- */
2052
- static getLaunchParamValue(paramName: string | null): string | null {
2053
- return inv<string>('0x65E65CA6A0FE59D4', paramName, ras());
2054
- }
2055
-
2056
- /**
2057
- * @param p0
2058
- */
2059
- static N_0xCF23AB5BD47B384D(p0: any): void {
2060
- inv<void>('0xCF23AB5BD47B384D', p0);
2061
- }
2062
-
2063
- /**
2064
- * Note: this native was added in build 1311.23
1987
+ * Hardcoded to return zero.
2065
1988
  *
2066
1989
  * @param p0
2067
1990
  * @param p1
2068
1991
  * @param p2
2069
- */
2070
- static N_0x3CBD6565D9C3B133(p0: number, p1: number, p2: number): void {
2071
- inv<void>('0x3CBD6565D9C3B133', p0, p1, f(p2));
2072
- }
2073
-
2074
- /**
2075
- * @returns
2076
- */
2077
- static hasReceivedHostBroadcastData(): boolean {
2078
- return inv<boolean>('0x5D10B3795F3FC886', rai());
2079
- }
2080
-
2081
- /**
2082
- * @param languageId
2083
- * @returns
2084
- */
2085
- static ugcIsLanguageSupported(languageId: number): boolean {
2086
- return inv<boolean>('0xF53E48461B71EECB', languageId, rai());
2087
- }
2088
-
2089
- /**
2090
1992
  * @returns
2091
1993
  */
2092
- static actionPlatformInvite(): any {
2093
- return inv<number>('0x3B82ACC3F4B6240C');
2094
- }
2095
-
2096
- /**
2097
- * nullsub, doesn't do anything
2098
- *
2099
- * @returns
2100
- */
2101
- static dumpNetIfConfig(): any {
2102
- return inv<number>('0xAEDF1BC1C133D6E3');
1994
+ static getDisplaynamesFromHandles(p0: any, p1: any, p2: any): number {
1995
+ return inv<number>('0x58CC181719256197', p0, p1, p2, rai());
2103
1996
  }
2104
1997
 
2105
1998
  /**
2106
1999
  * @returns
2107
2000
  */
2108
- static sessionIsTransitioning(): any {
2109
- return inv<number>('0xF2CBC969C4F090C7');
2001
+ static isHostOfThisScript(): boolean {
2002
+ return inv<boolean>('0x83CD99A1E6061AB5', rai());
2110
2003
  }
2111
2004
 
2112
2005
  /**
2113
2006
  * @param p0
2114
2007
  * @param index
2115
- * @param p2
2116
- * @returns
2117
- */
2118
- static ugcQueryGetVersion(p0: any, index: number, p2: number): number {
2119
- return inv<number>('0x63E9DCBC8B0931ED', p0, index, p2, rai());
2120
- }
2121
-
2122
- /**
2123
- * @param p0
2124
- * @param p1
2125
- */
2126
- static N_0x3F0ABAE38A0515AD(p0: number, p1: number): void {
2127
- inv<void>('0x3F0ABAE38A0515AD', p0, p1);
2128
- }
2129
-
2130
- /**
2131
- * Subtracts the second argument from the first, then returns whether the result is negative.
2132
- *
2133
- * @param timeA
2134
- * @param timeB
2135
- * @returns
2136
- */
2137
- static isTimeLessThan(timeA: number, timeB: number): boolean {
2138
- return inv<boolean>('0xCB2CF5148012C8D0', timeA, timeB, rai());
2139
- }
2140
-
2141
- /**
2142
- * Old name: _NETWORK_GET_UNRELIABLE_RESEND_COUNT_FOR_PLAYER
2143
- *
2144
- * @param player
2145
2008
  * @returns
2146
2009
  */
2147
- static getUnreliableResendCount(player: Player): number {
2148
- return inv<number>('0x3765C3A3E8192E10', player.handle, rai());
2010
+ static ugcQueryGetLanguage(p0: any, index: number): number {
2011
+ return inv<number>('0x97764E8AC6487A9A', p0, index, rai());
2149
2012
  }
2150
2013
 
2151
2014
  /**
2152
- * Note: this native was added in build 1311.23
2015
+ * Note: this native was added in build 1355.30
2153
2016
  *
2154
2017
  * @param p0
2155
- * @returns
2156
- */
2157
- static N_0x106CBDD5077DEDE1(p0: boolean): number {
2158
- return inv<number>('0x106CBDD5077DEDE1', p0, rai());
2159
- }
2160
-
2161
- /**
2162
- * @param featureId
2163
- * @returns
2164
- */
2165
- static isFeatureSupported(featureId: number): any {
2166
- return inv<number>('0x9C725D149622BFDE', featureId);
2167
- }
2168
-
2169
- /**
2170
- * On PC this returns true if gamerHandle is a valid handle.
2171
- *
2172
- * @returns gamerHandle
2173
- */
2174
- static canAddFriend(): [any, number] {
2175
- const result = inv<[number, number]>('0x99ABE9BF9DADA162', pvi());
2176
- return [result[0], result[1]];
2177
- }
2178
-
2179
- /**
2180
- * Note: this native was added in build 1311.23
2181
- */
2182
- static N_0x7673C0D2C5CDAC55(): void {
2183
- inv<void>('0x7673C0D2C5CDAC55');
2184
- }
2185
-
2186
- /**
2187
- * Always returns 110
2188
- *
2189
- * @returns
2190
- */
2191
- static getMaxNumNetworkPeds(): number {
2192
- return inv<number>('0x0C1F7D49C39D2289', rai());
2193
- }
2194
-
2195
- /**
2196
- * Returns textureDownloadId
2197
- *
2198
- * @param p1
2199
- * @param name
2200
- * @param p3
2201
- * @returns gamerHandle
2202
2018
  */
2203
- static mugshotTextureDownloadRequest(p1: number, name: string | null, p3: boolean): [number, number] {
2204
- const result = inv<[number, number]>('0x9B5DB6CEAFAA10BB', pvi(), p1, name, p3, rai());
2205
- return [result[0], result[1]];
2206
- }
2207
-
2208
- /**
2209
- * @returns gamerHandle
2210
- */
2211
- static isFriend(): [boolean, number] {
2212
- const result = inv<[boolean, number]>('0x1A24A179F9B31654', pvi(), rai());
2213
- return [!!result[0], result[1]];
2019
+ static N_0x422F9D6D6C7BC290(p0: number): void {
2020
+ inv<void>('0x422F9D6D6C7BC290', p0);
2214
2021
  }
2215
2022
 
2216
2023
  /**
2024
+ * @param propSet
2217
2025
  * @returns
2218
2026
  */
2219
- static isRecentGamerNamesRequestInProgress(): any {
2220
- return inv<number>('0x4664D213A0CCAF40');
2027
+ static propsetToNet(propSet: PropSet): number {
2028
+ return inv<number>('0x74F99EF7EF503398', propSet.handle, rai());
2221
2029
  }
2222
2030
 
2223
2031
  /**
2224
- * @param scriptHash
2225
- * @param p1
2226
- * @param p2
2227
- * @param p3
2228
- * @returns
2032
+ * @param p0
2229
2033
  */
2230
- static isScriptActiveByHash(scriptHash: string | number, p1: number, p2: boolean, p3: number): any {
2231
- return inv<number>('0x1B89BC43B6E69107', _h(scriptHash), p1, p2, p3);
2232
- }
2233
-
2234
- static N_0x564552C6AF1EEAB1(): void {
2235
- inv<void>('0x564552C6AF1EEAB1');
2034
+ static N_0x5CD3AAD8FF9ED121(p0: any): void {
2035
+ inv<void>('0x5CD3AAD8FF9ED121', p0);
2236
2036
  }
2237
2037
 
2238
2038
  /**
2039
+ * @param netId
2239
2040
  * @returns
2240
2041
  */
2241
- static hasPendingInviteFailure(): any {
2242
- return inv<number>('0xD0498AD30E16B6BD');
2042
+ static netToAnimScene(netId: number): AnimScene | null {
2043
+ return createFromHandle<AnimScene>('AnimScene', inv<number>('0xD7F6781A0ABAF6FB', netId, rai()));
2243
2044
  }
2244
2045
 
2245
2046
  /**
2246
- * @param entity
2047
+ * @param p0
2048
+ * @param index
2247
2049
  * @returns
2248
2050
  */
2249
- static requestControlOfEntity(entity: Entity): boolean {
2250
- return inv<boolean>('0xB69317BF5E782347', entity.handle, rai());
2051
+ static ugcQueryGetContentHasPlayerRecord(p0: any, index: number): any {
2052
+ return inv<number>('0xF794765390A6DCA5', p0, index);
2251
2053
  }
2252
2054
 
2253
- /**
2254
- * @param p0
2255
- * @returns
2256
- */
2257
- static N_0xD7D0DF27CB1765B5(p0: number): boolean {
2258
- return inv<boolean>('0xD7D0DF27CB1765B5', p0, rai());
2055
+ static N_0x814729078AED6D30(): void {
2056
+ inv<void>('0x814729078AED6D30');
2259
2057
  }
2260
2058
 
2261
2059
  /**
2262
2060
  * @returns
2263
2061
  */
2264
- static canRefreshFriendPage(): any {
2265
- return inv<number>('0x1AF5E28E64A76A9F');
2062
+ static isSignedOnline(): boolean {
2063
+ return inv<boolean>('0x1077788E268557C2', rai());
2266
2064
  }
2267
2065
 
2268
2066
  /**
2269
- * Old name: _NETWORK_IS_PLAYER_EQUAL_TO_INDEX
2270
- *
2271
- * @param player
2272
- * @param index
2273
2067
  * @returns
2274
2068
  */
2275
- static arePlayersInSameTutorialSession(player: Player, index: number): boolean {
2276
- return inv<boolean>('0x9DE986FC9A87C474', player.handle, index, rai());
2277
- }
2278
-
2279
- static clearFoundGamers(): void {
2280
- inv<void>('0x6D14CCEE1B40381A');
2281
- }
2282
-
2283
- static preventScriptHostMigration(): void {
2284
- inv<void>('0x2302C0264EA58D31');
2069
+ static isInSpectatorMode(): boolean {
2070
+ return inv<boolean>('0x048746E388762E11', rai());
2285
2071
  }
2286
2072
 
2287
2073
  static N_0x49CF17A564918E8D(): void {
@@ -2431,144 +2217,9 @@ export class Network {
2431
2217
 
2432
2218
  /**
2433
2219
  * @returns
2434
- */
2435
- static commerceStoreIsOpen(): boolean {
2436
- return inv<boolean>('0xCE5E79D9E303628E', rai());
2437
- }
2438
-
2439
- /**
2440
- * @param flags
2441
- * @returns
2442
- */
2443
- static sessionRemovePlayerFlags(flags: number): any {
2444
- return inv<number>('0x3215BBE34D3418C5', flags);
2445
- }
2446
-
2447
- /**
2448
- * @returns
2449
- */
2450
- static getTimeoutTime(): number {
2451
- return inv<number>('0x5ED0356A0CE3A34F', rai());
2452
- }
2453
-
2454
- /**
2455
- * @param p0
2456
- */
2457
- static setLocalPlayerInvisibleLocally(p0: boolean): void {
2458
- inv<void>('0xE5F773C1A1D9D168', p0);
2459
- }
2460
-
2461
- /**
2462
- * @param threadId
2463
- * @returns
2464
- */
2465
- static isThreadActive(threadId: number): any {
2466
- return inv<number>('0x31DAD2CD6D49546E', threadId);
2467
- }
2468
-
2469
- /**
2470
- * Returns false if pedshot push failed
2471
- *
2472
- * @param texture
2473
- * @param playerSlot
2474
- * @param p2
2475
- * @param personaPhotoLocalCacheType
2476
- * @returns
2477
- */
2478
- static personaPhotoWriteLocal(texture: string | null, playerSlot: number, p2: number, personaPhotoLocalCacheType: number): any {
2479
- return inv<number>('0x2A48D9567940598F', texture, playerSlot, p2, personaPhotoLocalCacheType);
2480
- }
2481
-
2482
- /**
2483
- * @param index
2484
- * @returns
2485
- */
2486
- static getParticipantIndex(index: number): number {
2487
- return inv<number>('0x1B84DF6AF2A46938', index, rai());
2488
- }
2489
-
2490
- /**
2491
- * @param p0
2492
- */
2493
- static N_0xD637D327080CD86E(p0: number): void {
2494
- inv<void>('0xD637D327080CD86E', p0);
2495
- }
2496
-
2497
- /**
2498
- * @returns
2499
- */
2500
- static sessionIsAnyRequestInProgress(): any {
2501
- return inv<number>('0xBAFFDE5F953720D9');
2502
- }
2503
-
2504
- /**
2505
- * @param p0
2506
- * @param p1
2507
- * @param p2
2508
- * @param p3
2509
- * @param p4
2510
- * @param p5
2511
- * @returns
2512
- */
2513
- static isSphereVisibleToPlayer(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): boolean {
2514
- return inv<boolean>('0xDC3A310219E5DA62', p0, p1, p2, p3, p4, p5, rai());
2515
- }
2516
-
2517
- /**
2518
- * @param netHandle
2519
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
2520
- */
2521
- static netToEnt(netHandle: number): Entity | null {
2522
- return createFromHandle<Entity>('Entity', inv<number>('0xBFFEAB45A9A9094A', netHandle, rai()));
2523
- }
2524
-
2525
- /**
2526
- * Note: this native was added in build 1311.23
2527
- *
2528
- * @returns
2529
- */
2530
- static N_0x062842D61D0D53FD(): boolean {
2531
- return inv<boolean>('0x062842D61D0D53FD', rai());
2532
- }
2533
-
2534
- /**
2535
- * @param p0
2536
- */
2537
- static N_0xFF36F36B07E69059(p0: any): void {
2538
- inv<void>('0xFF36F36B07E69059', p0);
2539
- }
2540
-
2541
- /**
2542
- * @param flags
2543
- * @returns
2544
- */
2545
- static sessionSetPlayerFlags(flags: number): any {
2546
- return inv<number>('0x0AE241A4A9ADEEEC', flags);
2547
- }
2548
-
2549
- /**
2550
- * @param contentId
2551
- * @param dataSize
2552
- * @param p4
2553
- * @param flags
2554
- * @returns gamerHandle; data
2555
- */
2556
- static sendSessionInvite(contentId: string | null, dataSize: number, p4: number, flags: number): [any, number, number] {
2557
- const result = inv<[number, number, number]>('0xE47001B7CB8B98AE', pvi(), contentId, pvi(), dataSize, p4, flags);
2558
- return [result[0], result[1], result[2]];
2559
- }
2560
-
2561
- static N_0x61BFBAA795E712AD(): void {
2562
- inv<void>('0x61BFBAA795E712AD');
2563
- }
2564
-
2565
- /**
2566
- * @param playerSlot
2567
- * @param personaPhotoLocalCacheType
2568
- * @returns
2569
- */
2570
- static localPlayerPedshotTextureDownloadRequest(playerSlot: number, personaPhotoLocalCacheType: number): number {
2571
- return inv<number>('0x6E2FD8CF7EB10E53', playerSlot, personaPhotoLocalCacheType, rai());
2220
+ */
2221
+ static commerceStoreIsOpen(): boolean {
2222
+ return inv<boolean>('0xCE5E79D9E303628E', rai());
2572
2223
  }
2573
2224
 
2574
2225
  static clearClockTimeOverride(): void {
@@ -2908,278 +2559,506 @@ export class Network {
2908
2559
  }
2909
2560
 
2910
2561
  /**
2911
- * @param contentTypeName
2912
- * @param contentId
2913
- * @param fileId
2914
- * @param fileVersion
2915
- * @param languageId
2562
+ * @param description
2916
2563
  * @returns
2917
2564
  */
2918
- static ugcRequestContentDataFromParams(contentTypeName: string | null, contentId: string | null, fileId: number, fileVersion: number, languageId: number): number {
2919
- return inv<number>('0x7FD2990AF016795E', contentTypeName, contentId, fileId, fileVersion, languageId, rai());
2565
+ static ugcDidDescriptionRequestSucceed(description: string | number): boolean {
2566
+ return inv<boolean>('0x162C23CA83ED0A62', _h(description), rai());
2920
2567
  }
2921
2568
 
2922
2569
  /**
2923
- * @param maxNumMissionParticipants
2570
+ * @returns
2571
+ */
2572
+ static getGameMode(): number {
2573
+ return inv<number>('0x225640E09EFFDC3F', rai());
2574
+ }
2575
+
2576
+ /**
2577
+ * @param amount
2578
+ */
2579
+ static reserveNetworkClientMissionPeds(amount: number): void {
2580
+ inv<void>('0x807E119F80231732', amount);
2581
+ }
2582
+
2583
+ /**
2584
+ * @param p0
2924
2585
  * @param p1
2925
- * @param instanceId
2586
+ * @param p2
2587
+ * @param p3
2926
2588
  */
2927
- static setThisScriptIsNetworkScript(maxNumMissionParticipants: number, p1: boolean, instanceId: number): void {
2928
- inv<void>('0x1CA59E306ECB80A5', maxNumMissionParticipants, p1, instanceId);
2589
+ static setInMpCutscene(p0: boolean, p1: boolean, p2: number, p3: boolean): void {
2590
+ inv<void>('0x9CA5DE655269FEC4', p0, p1, p2, p3);
2929
2591
  }
2930
2592
 
2931
2593
  /**
2932
- * Stadia only; always returns -1 on other platforms. p0 may be a BOOL.
2594
+ * @param toggle
2595
+ * @param playerPed
2596
+ */
2597
+ static setInSpectatorMode(toggle: boolean, playerPed: Ped): void {
2598
+ inv<void>('0x423DE3854BB50894', toggle, playerPed.handle);
2599
+ }
2600
+
2601
+ /**
2602
+ * @param p0
2603
+ */
2604
+ static N_0x3E74A687A73979C6(p0: boolean): void {
2605
+ inv<void>('0x3E74A687A73979C6', p0);
2606
+ }
2607
+
2608
+ /**
2609
+ * @returns sessionRequestId
2610
+ */
2611
+ static sessionIsRequestPendingTransition(): [any, number] {
2612
+ const result = inv<[number, number]>('0xCCF878D50F8AB10D', pvi());
2613
+ return [result[0], result[1]];
2614
+ }
2615
+
2616
+ /**
2617
+ * @param offset
2618
+ */
2619
+ static spawnConfigSetGroundToRootOffset(offset: number): void {
2620
+ inv<void>('0x59577799F6AE2F34', f(offset));
2621
+ }
2622
+
2623
+ /**
2624
+ * @returns
2625
+ */
2626
+ static checkAccessAndAlertIfFail(): any {
2627
+ return inv<number>('0x2A8112A974DE1EF6');
2628
+ }
2629
+
2630
+ /**
2631
+ * Note: this native was added in build 1311.23
2632
+ *
2633
+ * @returns
2634
+ */
2635
+ static N_0xFB3205788F8AFA3F(): number {
2636
+ return inv<number>('0xFB3205788F8AFA3F', rai());
2637
+ }
2638
+
2639
+ /**
2640
+ * @returns
2641
+ */
2642
+ static getNumRecentGamers(): number {
2643
+ return inv<number>('0x37A834AEC6A4F74A', rai());
2644
+ }
2645
+
2646
+ /**
2647
+ * @returns
2648
+ */
2649
+ static N_0xD3A3C8B9F3BDEF81(): any {
2650
+ return inv<number>('0xD3A3C8B9F3BDEF81');
2651
+ }
2652
+
2653
+ /**
2654
+ * Returns the entity's network ID.
2655
+ *
2656
+ * @param entity
2657
+ * @returns
2658
+ */
2659
+ static N_0xF302AB9D978352EE(entity: Entity): number {
2660
+ return inv<number>('0xF302AB9D978352EE', entity.handle, rai());
2661
+ }
2662
+
2663
+ /**
2664
+ * @returns
2665
+ */
2666
+ static canSessionEnd(): boolean {
2667
+ return inv<boolean>('0x4EEBC3694E49C572', rai());
2668
+ }
2669
+
2670
+ /**
2671
+ * @returns
2672
+ */
2673
+ static hasCurrentGetGamerStatusStarted(): any {
2674
+ return inv<number>('0x25189F9908E9CD65');
2675
+ }
2676
+
2677
+ /**
2678
+ * @param enabled
2679
+ * @param flagIndex
2680
+ * @returns
2681
+ */
2682
+ static setMpMissionFlagOnCurrentSlot(enabled: boolean, flagIndex: number): any {
2683
+ return inv<number>('0x86FD10251A7118A4', enabled, flagIndex);
2684
+ }
2685
+
2686
+ /**
2687
+ * Hardcoded to return false.
2688
+ *
2689
+ * @returns
2690
+ */
2691
+ static isInPlatformPartyChat(): boolean {
2692
+ return inv<boolean>('0xFD8B834A8BA05048', rai());
2693
+ }
2694
+
2695
+ /**
2696
+ * @param friendIndex
2697
+ * @returns gamerHandle
2698
+ */
2699
+ static handleFromFriend(friendIndex: number): number {
2700
+ const result = inv<number>('0xD45CB817D7E177D2', friendIndex, pvi());
2701
+ return result;
2702
+ }
2703
+
2704
+ /**
2705
+ * @returns
2706
+ */
2707
+ static commerceStoreIsEnabled(): boolean {
2708
+ return inv<boolean>('0xDBC754CB6CCB9378', rai());
2709
+ }
2710
+
2711
+ /**
2712
+ * @param p0
2713
+ */
2714
+ static N_0xA95470DA137587F5(p0: boolean): void {
2715
+ inv<void>('0xA95470DA137587F5', p0);
2716
+ }
2717
+
2718
+ /**
2719
+ * @param netId
2720
+ * @returns
2721
+ */
2722
+ static hasControlOfNetworkId(netId: number): boolean {
2723
+ return inv<boolean>('0x4D36070FE0215186', netId, rai());
2724
+ }
2725
+
2726
+ /**
2727
+ * @param flags
2728
+ */
2729
+ static spawnConfigSetFlags(flags: number): void {
2730
+ inv<void>('0xF94A0D5B254375DF', flags);
2731
+ }
2732
+
2733
+ /**
2734
+ * Same as NETWORK_GET_AVERAGE_LATENCY (0xD414BE129BB81B32) Old name: _NETWORK_GET_AVERAGE_LATENCY_FOR_PLAYER_2
2933
2735
  *
2736
+ * @param player
2737
+ * @returns
2738
+ */
2739
+ static getAveragePing(player: Player): number {
2740
+ return inv<number>('0x0E3A041ED6AC2B45', player.handle, raf());
2741
+ }
2742
+
2743
+ /**
2934
2744
  * @param p0
2935
2745
  * @returns
2936
2746
  */
2937
- static N_0x3E8CCE6769DB5F34(p0: number): number {
2938
- return inv<number>('0x3E8CCE6769DB5F34', p0, rai());
2747
+ static getNumCreatedMissionObjects(p0: boolean): number {
2748
+ return inv<number>('0x12B6281B6C6706C0', p0, rai());
2749
+ }
2750
+
2751
+ /**
2752
+ * Note: this native was added in build 1311.16 GET_NUM_*
2753
+ *
2754
+ * @returns
2755
+ */
2756
+ static N_0x02B3CDD652B3CDD6(): number {
2757
+ return inv<number>('0x02B3CDD652B3CDD6', rai());
2758
+ }
2759
+
2760
+ /**
2761
+ * nullsub, doesn't do anything
2762
+ */
2763
+ static N_0x2CD41AC000E6F611(): void {
2764
+ inv<void>('0x2CD41AC000E6F611');
2765
+ }
2766
+
2767
+ /**
2768
+ * @returns
2769
+ */
2770
+ static sessionGetSessionType(): number {
2771
+ return inv<number>('0xF0C0C94B404206FA', rai());
2772
+ }
2773
+
2774
+ /**
2775
+ * @returns
2776
+ */
2777
+ static isClockTimeOverridden(): boolean {
2778
+ return inv<boolean>('0xD7C95D322FF57522', rai());
2779
+ }
2780
+
2781
+ /**
2782
+ * @param player
2783
+ * @returns gamerHandle
2784
+ */
2785
+ static handleFromPlayer(player: Player): number {
2786
+ const result = inv<number>('0x388EB2B86C73B6B3', player.handle, pvi());
2787
+ return result;
2788
+ }
2789
+
2790
+ /**
2791
+ * Note: this native was added in build 1311.23, but was only used after build 1436.25
2792
+ */
2793
+ static requestCloudTunables(): void {
2794
+ inv<void>('0x42FB3B532D526E6C');
2795
+ }
2796
+
2797
+ /**
2798
+ * @param toggle
2799
+ */
2800
+ static setScriptReadyForEvents(toggle: boolean): void {
2801
+ inv<void>('0x7AC752103856FB20', toggle);
2802
+ }
2803
+
2804
+ /**
2805
+ * @param amount
2806
+ * @returns
2807
+ */
2808
+ static canRegisterMissionPeds(amount: number): boolean {
2809
+ return inv<boolean>('0xBCBF4FEF9FA5D781', amount, rai());
2939
2810
  }
2940
2811
 
2941
2812
  /**
2942
2813
  * @returns gamerHandle1; gamerHandle2
2943
2814
  */
2944
- static arePlayersInSamePlatformParty(): [any, number, number] {
2945
- const result = inv<[number, number, number]>('0x11820D1AE80DEA39', pvi(), pvi());
2946
- return [result[0], result[1], result[2]];
2815
+ static areHandlesTheSame(): [boolean, number, number] {
2816
+ const result = inv<[boolean, number, number]>('0x57DBA049E110F217', pvi(), pvi(), rai());
2817
+ return [!!result[0], result[1], result[2]];
2947
2818
  }
2948
2819
 
2949
2820
  /**
2950
- * @param hour
2951
- * @param minute
2952
- * @param second
2953
- * @param transitionTime
2954
- * @param pauseClock
2955
- * @param clockwise
2821
+ * Old name: _SET_LOCAL_PLAYER_AS_GHOST
2822
+ *
2823
+ * @param toggle
2956
2824
  */
2957
- static clockTimeOverride2(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean, clockwise: boolean): void {
2958
- inv<void>('0xE28C13ECC36FF14E', hour, minute, second, transitionTime, pauseClock, clockwise);
2825
+ static setLocalPlayerAsGhost(toggle: boolean): void {
2826
+ inv<void>('0x5FFE9B4144F9712F', toggle);
2959
2827
  }
2960
2828
 
2961
2829
  /**
2962
- * @param player
2963
- * @returns
2830
+ * Example: char displayName[64];
2831
+ * if (_NETWORK_GET_DISPLAY_NAME_FROM_HANDLE(handle, displayName))
2832
+ * {
2833
+ * // use displayName
2834
+ * }
2835
+ *
2836
+ * @param displayName
2837
+ * @returns gamerHandle
2964
2838
  */
2965
- static isPlayerConcealed(player: Player): boolean {
2966
- return inv<boolean>('0x919B3C98ED8292F9', player.handle, rai());
2839
+ static getDisplayNameFromHandle(displayName: string | null): [any, number] {
2840
+ const result = inv<[number, number]>('0x7FEE4F07C54B6B3C', pvi(), displayName);
2841
+ return [result[0], result[1]];
2842
+ }
2843
+
2844
+ static endTutorialSession(): void {
2845
+ inv<void>('0xD0AFAFF5A51D72F7');
2967
2846
  }
2968
2847
 
2969
2848
  /**
2970
- * @param description
2971
- * @returns
2849
+ * @param p0
2850
+ * @param p2
2851
+ * @returns p1
2972
2852
  */
2973
- static ugcRequestCachedDescription(description: string | number): number {
2974
- return inv<number>('0x5E0165278F6339EE', _h(description), rai());
2853
+ static isPlayerAParticipantOnScript(p0: Player, p2: any): [boolean, number] {
2854
+ const result = inv<[boolean, number]>('0x1AD5B71586B94820', p0.handle, pvi(), p2, rai());
2855
+ return [!!result[0], result[1]];
2975
2856
  }
2976
2857
 
2977
2858
  /**
2978
2859
  * @returns
2979
2860
  */
2980
- static sessionLeaveSession(): boolean {
2981
- return inv<boolean>('0x17C21B7319A05047', rai());
2861
+ static getTotalNumFriends(): number {
2862
+ return inv<number>('0xDB7ABDD203FA3704', rai());
2982
2863
  }
2983
2864
 
2984
2865
  /**
2985
- * Hardcoded to return false.
2866
+ * Returns ugcRequestId
2986
2867
  *
2868
+ * @param p0
2869
+ * @param maxGet
2870
+ * @param contentTypeName
2871
+ * @param p3
2872
+ * @param p4
2873
+ * @param p5
2987
2874
  * @returns
2988
2875
  */
2989
- static isCustomUpsellEnabled(): any {
2990
- return inv<number>('0x78A9535AF83715C6');
2876
+ static ugcQueryByContentType(p0: number, maxGet: number, contentTypeName: string | null, p3: number, p4: number, p5: number): number {
2877
+ return inv<number>('0xF40EF49B3099E98E', p0, maxGet, contentTypeName, p3, p4, p5, rai());
2991
2878
  }
2992
2879
 
2993
2880
  /**
2881
+ * @param p0
2882
+ * @param index
2883
+ * @param p2
2994
2884
  * @returns
2995
2885
  */
2996
- static getNetworkTime(): number {
2997
- return inv<number>('0x7A5487FE9FAA6B48', rai());
2886
+ static ugcQueryGetRating(p0: any, index: number, p2: number): number {
2887
+ return inv<number>('0x24CD8FAEA1368379', p0, index, p2, raf());
2998
2888
  }
2999
2889
 
3000
2890
  /**
3001
- * @param threadId
3002
- * @returns
2891
+ * @param player
3003
2892
  */
3004
- static getInstanceIdOfThread(threadId: number): number {
3005
- return inv<number>('0xFB9ECED5B68F3B78', threadId, rai());
2893
+ static N_0xD78A26024BB13E08(player: Player): void {
2894
+ inv<void>('0xD78A26024BB13E08', player.handle);
3006
2895
  }
3007
2896
 
3008
2897
  /**
3009
- * @param configProperty
3010
- * @param include
3011
- * @param weight
2898
+ * Only used in R* Script fm_race_controller
2899
+ *
2900
+ * @param p0
3012
2901
  */
3013
- static spawnConfigAddPropertyPreference(configProperty: number, include: boolean, weight: number): void {
3014
- inv<void>('0xEB6027FD1B4600D5', configProperty, include, f(weight));
2902
+ static N_0x71FA2D1880C48032(p0: boolean): void {
2903
+ inv<void>('0x71FA2D1880C48032', p0);
3015
2904
  }
3016
2905
 
3017
2906
  /**
2907
+ * Note: this native was added in build 1311.23
2908
+ *
3018
2909
  * @param p0
2910
+ * @param p1
2911
+ * @param p2
2912
+ * @param p3
3019
2913
  * @returns
3020
2914
  */
3021
- static N_0xDCA4A74135E1DEA5(p0: any): boolean {
3022
- return inv<boolean>('0xDCA4A74135E1DEA5', p0, rai());
2915
+ static N_0x5F328FC909F0E0FF(p0: number, p1: number, p2: number, p3: number): boolean {
2916
+ return inv<boolean>('0x5F328FC909F0E0FF', p0, p1, p2, p3, rai());
3023
2917
  }
3024
2918
 
3025
2919
  /**
3026
- * @returns gamerHandle
2920
+ * Old name: _NETWORK_SET_VEHICLE_WHEELS_DESTRUCTIBLE
2921
+ *
2922
+ * @param entity
2923
+ * @param p1
3027
2924
  */
3028
- static getPlayerFromGamerHandle(): [Player | null, number] {
3029
- const result = inv<[number, number]>('0xCE5F689CF5A0A49D', pvi(), rai());
3030
- return [createFromHandle<Player>('Player', result[0]), result[1]];
2925
+ static triggerDamageEventForZeroDamage(entity: Entity, p1: boolean): void {
2926
+ inv<void>('0x0C8BC052AE87D744', entity.handle, p1);
3031
2927
  }
3032
2928
 
3033
2929
  /**
3034
- * Returns the amount of players connected in the current session. Only works when connected to a session/server.
2930
+ * nullsub, doesn't do anything
3035
2931
  *
3036
2932
  * @returns
3037
2933
  */
3038
- static getNumConnectedPlayers(): number {
3039
- return inv<number>('0xA4A79DD2D9600654', rai());
2934
+ static getNetStatisticsInfo(): any {
2935
+ return inv<number>('0x6FD992C4A1C1B986');
3040
2936
  }
3041
2937
 
3042
2938
  /**
3043
- * @param netId
3044
- * @returns
2939
+ * nullsub, doesn't do anything
3045
2940
  */
3046
- static getEntityFromNetworkId(netId: number): Entity | null {
3047
- return createFromHandle<Entity>('Entity', inv<number>('0xCE4E5D9B0A4FF560', netId, rai()));
2941
+ static N_0xFC6FCF4C03F1BBF6(): void {
2942
+ inv<void>('0xFC6FCF4C03F1BBF6');
2943
+ }
2944
+
2945
+ static N_0x43CF999205084B4B(): void {
2946
+ inv<void>('0x43CF999205084B4B');
3048
2947
  }
3049
2948
 
3050
2949
  /**
3051
- * Returns string for GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO
2950
+ * p0 appears to be for MP
3052
2951
  *
3053
2952
  * @param p0
3054
- * @param p1
3055
- * @param p2
3056
2953
  * @returns
3057
2954
  */
3058
- static ugcQueryGetCreatorPhoto(p0: any, p1: number, p2: any): string | null {
3059
- return inv<string>('0x409FE0CA6A4D1D49', p0, p1, p2, ras());
2955
+ static getNumReservedMissionVehicles(p0: boolean): number {
2956
+ return inv<number>('0xCF3A965906452031', p0, rai());
3060
2957
  }
3061
2958
 
3062
2959
  /**
3063
- * @param toggle
2960
+ * @param name
2961
+ * @returns
3064
2962
  */
3065
- static setRecentGamersEnabled(toggle: boolean): void {
3066
- inv<void>('0x29FE035D35B8589C', toggle);
2963
+ static textureDownloadTextureNameIsValid(name: string | null): any {
2964
+ return inv<number>('0xE2C3CEC3C0903A00', name);
3067
2965
  }
3068
2966
 
3069
2967
  /**
2968
+ * @param scriptName
2969
+ * @param p1
2970
+ * @param p2
2971
+ * @param p3
3070
2972
  * @returns
3071
2973
  */
3072
- static getLaunchParamString(): string | null {
3073
- return inv<string>('0xC59AB6A04333C502', ras());
2974
+ static isScriptActive(scriptName: string | null, p1: number, p2: boolean, p3: number): boolean {
2975
+ return inv<boolean>('0x9D40DF90FAD26098', scriptName, p1, p2, p3, rai());
3074
2976
  }
3075
2977
 
3076
2978
  /**
3077
- * @param entity
3078
- * @param toggle
2979
+ * @param p0
3079
2980
  */
3080
- static setEntityRemainsWhenUnnetworked(entity: Entity, toggle: boolean): void {
3081
- inv<void>('0xD785864798258032', entity.handle, toggle);
2981
+ static N_0x5CB8B0C846D0F30B(p0: any): void {
2982
+ inv<void>('0x5CB8B0C846D0F30B', p0);
3082
2983
  }
3083
2984
 
3084
2985
  /**
3085
- * @param flags
3086
- * @param userHash
3087
- * @param p2
3088
- * @returns sessionRequestId
2986
+ * @returns loadingState
3089
2987
  */
3090
- static sessionRequestSessionNominated(flags: number, userHash: number, p2: number): [boolean, number] {
3091
- const result = inv<[boolean, number]>('0x4F4672457FF597D1', flags, userHash, p2, pvi(), rai());
2988
+ static canAccessMultiplayer(): [boolean, number] {
2989
+ const result = inv<[boolean, number]>('0xAF50DA1A3F8B1BA4', pvi(), rai());
3092
2990
  return [!!result[0], result[1]];
3093
2991
  }
3094
2992
 
3095
2993
  /**
3096
- * @param description
3097
- * @returns
3098
- */
3099
- static ugcIsDescriptionRequestInProgress(description: string | number): boolean {
3100
- return inv<boolean>('0x2D5DC831176D0114', _h(description), rai());
3101
- }
3102
-
3103
- /**
3104
- * @param ugcRequestId
2994
+ * @returns p0
3105
2995
  */
3106
- static ugcClearQueryResults(ugcRequestId: number): void {
3107
- inv<void>('0xE931354FEA710038', ugcRequestId);
2996
+ static getCurrentFriendPageData(): [any, number] {
2997
+ const result = inv<[number, number]>('0xA3EEC0A5AFF3FC5B', pvi());
2998
+ return [result[0], result[1]];
3108
2999
  }
3109
3000
 
3110
3001
  /**
3111
- * @param threadId
3112
- * @returns
3002
+ * @returns p0
3113
3003
  */
3114
- static getHostOfThread(threadId: number): Player | null {
3115
- return createFromHandle<Player>('Player', inv<number>('0xB4A25351D79B444C', threadId, rai()));
3004
+ static getSizeOfHostBroadcastDataStorage(): [number, number] {
3005
+ const result = inv<[number, number]>('0xBA24095EA96DFE17', pvi(), rai());
3006
+ return [result[0], result[1]];
3116
3007
  }
3117
3008
 
3118
3009
  /**
3119
3010
  * @returns
3120
3011
  */
3121
- static isGameInProgress(): boolean {
3122
- return inv<boolean>('0x10FAB35428CCC9D7', rai());
3012
+ static getInstanceIdOfThisScript(): number {
3013
+ return inv<number>('0x638A3A81733086DB', rai());
3123
3014
  }
3124
3015
 
3125
3016
  /**
3126
- * @param rangeStart
3127
- * @param rangeEnd
3017
+ * @param p0
3128
3018
  * @returns
3129
3019
  */
3130
- static getRandomIntRanged(rangeStart: number, rangeEnd: number): number {
3131
- return inv<number>('0xE30CF56F1EFA5F43', rangeStart, rangeEnd, rai());
3020
+ static awardHasReachedMaxclaim(p0: any): any {
3021
+ return inv<number>('0xFBE782B3165AC8EC', p0);
3132
3022
  }
3133
3023
 
3134
3024
  /**
3135
3025
  * @param p0
3136
3026
  * @returns
3137
3027
  */
3138
- static acceptRsInvite(p0: number): any {
3139
- return inv<number>('0xB2CEA5105AAC8DDE', p0);
3028
+ static N_0xBB697756309D77EE(p0: boolean): any {
3029
+ return inv<number>('0xBB697756309D77EE', p0);
3140
3030
  }
3141
3031
 
3142
3032
  /**
3143
- * @param player
3144
- * @param toggle
3033
+ * @returns
3145
3034
  */
3146
- static concealPlayer(player: Player, toggle: boolean): void {
3147
- inv<void>('0xBBDF066252829606', player.handle, toggle);
3035
+ static autoSessionIsInstancedSession(): any {
3036
+ return inv<number>('0x277865A734918AE6');
3148
3037
  }
3149
3038
 
3150
3039
  /**
3151
- * ^^ I attempted this by grabbing an object with GET_ENTITY_PLAYER_IS_FREE_AIMING_AT and setting this naive no matter the toggle he could still see it. pc or last gen? ^^ last-gen Old name: _NETWORK_SET_ENTITY_INVISIBLE_TO_NETWORK
3152
- *
3153
- * @param entity
3154
- * @param toggle
3040
+ * @param p0
3041
+ * @param p1
3042
+ * @returns
3155
3043
  */
3156
- static setEntityOnlyExistsForParticipants(entity: Entity, toggle: boolean): void {
3157
- inv<void>('0xF1CA12B18AEF5298', entity.handle, toggle);
3044
+ static resetPopulation(p0: boolean, p1: number): any {
3045
+ return inv<number>('0x101F538C25ABB39A', p0, p1);
3158
3046
  }
3159
3047
 
3160
3048
  /**
3161
- * @param doorHash
3049
+ * @param ped
3050
+ * @returns Returns the network id for the specified `ped` or `0` if the entity isn't networked.
3162
3051
  */
3163
- static setDoorNetworked(doorHash: string | number): void {
3164
- inv<void>('0x51D99497ABF3F451', _h(doorHash));
3052
+ static pedToNet(ped: Ped): number {
3053
+ return inv<number>('0x0EDEC3C276198689', ped.handle, rai());
3165
3054
  }
3166
3055
 
3167
3056
  /**
3168
3057
  * @param p0
3169
- * @param index
3170
- * @returns gamerHandle
3171
- */
3172
- static ugcQueryGetCreatorHandle(p0: any, index: number): [any, number] {
3173
- const result = inv<[number, number]>('0xADB56322EEDFBDC9', p0, index, pvi());
3174
- return [result[0], result[1]];
3175
- }
3176
-
3177
- /**
3178
- * @param paramName
3179
3058
  * @returns
3180
3059
  */
3181
- static getLaunchParamExists(paramName: string | null): any {
3182
- return inv<number>('0x02E97CE283648CD9', paramName);
3060
+ static N_0x27B1AE4D8C652F08(p0: number): number {
3061
+ return inv<number>('0x27B1AE4D8C652F08', p0, rai());
3183
3062
  }
3184
3063
 
3185
3064
  /**
@@ -3687,691 +3566,677 @@ export class Network {
3687
3566
  * @param networkId
3688
3567
  * @returns
3689
3568
  */
3690
- static N_0x4538EE7C321590BC(networkId: number): Entity | null {
3691
- return createFromHandle<Entity>('Entity', inv<number>('0x4538EE7C321590BC', networkId, rai()));
3692
- }
3693
-
3694
- static N_0x9B39B0555CC692B5(): void {
3695
- inv<void>('0x9B39B0555CC692B5');
3696
- }
3697
-
3698
- /**
3699
- * @param p0
3700
- * @returns
3701
- */
3702
- static N_0xE79BA3BC265895DA(p0: number): string | null {
3703
- return inv<string>('0xE79BA3BC265895DA', p0, ras());
3704
- }
3705
-
3706
- /**
3707
- * @param netPlaylistActivity
3708
- */
3709
- static activitySetCurrent(netPlaylistActivity: number): void {
3710
- inv<void>('0x9ADAC065D9F6706F', netPlaylistActivity);
3569
+ static N_0x4538EE7C321590BC(networkId: number): Entity | null {
3570
+ return createFromHandle<Entity>('Entity', inv<number>('0x4538EE7C321590BC', networkId, rai()));
3711
3571
  }
3712
3572
 
3713
3573
  /**
3714
- * @param queueGroup
3574
+ * @param p0
3575
+ * @param p1
3715
3576
  * @returns
3716
3577
  */
3717
- static sessionIsRequestInProgressByQueueGroup(queueGroup: number): any {
3718
- return inv<number>('0x9E762A595CF88E4A', queueGroup);
3578
+ static N_0x271F95E55C663B8B(p0: any, p1: any): any {
3579
+ return inv<number>('0x271F95E55C663B8B', p0, p1);
3719
3580
  }
3720
3581
 
3721
3582
  /**
3722
3583
  * @returns
3723
3584
  */
3724
- static pedmugshotGetStatus(): number {
3725
- return inv<number>('0xCBAC13F065C47596', rai());
3585
+ static sessionGetSessionFlags(): number {
3586
+ return inv<number>('0x51F33DBC1A41CBFD', rai());
3726
3587
  }
3727
3588
 
3728
3589
  /**
3590
+ * Note: this native was added in build 1311.23
3591
+ *
3729
3592
  * @returns
3730
3593
  */
3731
- static getTunableCloudCrc(): number {
3732
- return inv<number>('0x10BD227A753B0D84', rai());
3594
+ static N_0x039AD6B57D5179FF(): number {
3595
+ return inv<number>('0x039AD6B57D5179FF', rai());
3733
3596
  }
3734
3597
 
3735
3598
  /**
3736
- * Returns true if the passed value is less than 32.
3599
+ * Old name: _NETWORK_GET_NUM_UNACKED_FOR_PLAYER
3737
3600
  *
3738
3601
  * @param player
3739
3602
  * @returns
3740
3603
  */
3741
- static isPlayerIndexValid(player: Player): any {
3742
- return inv<number>('0x255A5EF65EDA9167', player.handle);
3604
+ static getNumUnackedReliables(player: Player): number {
3605
+ return inv<number>('0xFF8FCF9FFC458A1C', player.handle, rai());
3743
3606
  }
3744
3607
 
3745
3608
  /**
3746
3609
  * @param entity
3747
- * @returns
3610
+ * @param toggle
3748
3611
  */
3749
- static getEntityIsNetworked(entity: Entity): boolean {
3750
- return inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
3612
+ static allowEntityFadingForInstances(entity: Entity, toggle: boolean): void {
3613
+ inv<void>('0xF3354D6CA46F419D', entity.handle, toggle);
3751
3614
  }
3752
3615
 
3753
3616
  /**
3754
- * @param vehicle
3755
- * @returns Returns the network id for the specified `vehicle`, or `0` if the vehicle isn't networked.
3617
+ * Only used in R* Script startup_clip
3756
3618
  */
3757
- static vehToNet(vehicle: Vehicle): number {
3758
- return inv<number>('0xB4C94523F023419C', vehicle.handle, rai());
3619
+ static N_0xFD4272A137703449(): void {
3620
+ inv<void>('0xFD4272A137703449');
3759
3621
  }
3760
3622
 
3761
3623
  /**
3762
- * Only used in R* SP Scripts
3763
- *
3764
3624
  * @param player
3765
- * @param personaPhotoLocalCacheType
3625
+ * @param type
3626
+ */
3627
+ static N_0x51951DE06C0D1C40(player: Player, type: number): void {
3628
+ inv<void>('0x51951DE06C0D1C40', player.handle, type);
3629
+ }
3630
+
3631
+ /**
3632
+ * @param p0
3766
3633
  * @returns
3767
3634
  */
3768
- static requestPedshotTextureLocalBackupDownload(player: number, personaPhotoLocalCacheType: number): string | null {
3769
- return inv<string>('0x356F9FB0698C1FEB', player, personaPhotoLocalCacheType, ras());
3635
+ static N_0x5ED39DA62BEB1330(p0: number): any {
3636
+ return inv<number>('0x5ED39DA62BEB1330', p0);
3770
3637
  }
3771
3638
 
3772
3639
  /**
3773
3640
  * @param p0
3641
+ * @param index
3642
+ * @returns
3774
3643
  */
3775
- static N_0xE5634491A58C2703(p0: number): void {
3776
- inv<void>('0xE5634491A58C2703', f(p0));
3644
+ static ugcQueryGetName(p0: any, index: number): string | null {
3645
+ return inv<string>('0x2D053EA815702DD1', p0, index, ras());
3777
3646
  }
3778
3647
 
3779
3648
  /**
3780
3649
  * @param p0
3781
- * @param p1
3782
- * @param p2
3783
- * @param p3
3650
+ * @param index
3784
3651
  * @returns
3785
3652
  */
3786
- static N_0x64A36BA85CE01A81(p0: any, p1: any, p2: any, p3: any): any {
3787
- return inv<number>('0x64A36BA85CE01A81', p0, p1, p2, p3);
3653
+ static ugcQueryGetBookMarked(p0: any, index: number): any {
3654
+ return inv<number>('0x98539FC453AEA639', p0, index);
3788
3655
  }
3789
3656
 
3790
3657
  /**
3791
- * @returns sessionRequestId
3658
+ * @param entity
3659
+ * @param timer
3660
+ * @param p2
3792
3661
  */
3793
- static sessionIsSessionRequestIdValid(): [any, number] {
3794
- const result = inv<[number, number]>('0x2F54B146D3EDCE4D', pvi());
3662
+ static setNetworkRespotTimer(entity: Entity, timer: number, p2: boolean): void {
3663
+ inv<void>('0x442B4347B6EC36E8', entity.handle, timer, p2);
3664
+ }
3665
+
3666
+ /**
3667
+ * @returns gamerHandle
3668
+ */
3669
+ static getGamertagFromFriend(): [string | null, number] {
3670
+ const result = inv<[string, number]>('0x5659D87BE674AB17', pvi(), ras());
3795
3671
  return [result[0], result[1]];
3796
3672
  }
3797
3673
 
3798
3674
  /**
3675
+ * @param player
3799
3676
  * @returns
3800
3677
  */
3801
- static isResettingPopulation(): any {
3802
- return inv<number>('0x1BB50CD340A996E6');
3678
+ static getPlayerWaypointIsActive(player: Player): any {
3679
+ return inv<number>('0xDCC4B7F7112E8AB7', player.handle);
3803
3680
  }
3804
3681
 
3805
3682
  /**
3806
- * Note: this native was added in build 1311.23
3807
- *
3808
- * @param p0
3683
+ * @param inviteIndex
3809
3684
  * @returns
3810
3685
  */
3811
- static N_0x039B692B3318FAB6(p0: boolean): number {
3812
- return inv<number>('0x039B692B3318FAB6', p0, rai());
3686
+ static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
3687
+ return inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
3813
3688
  }
3814
3689
 
3815
3690
  /**
3816
- * Always returns 60
3817
- *
3818
- * @returns
3691
+ * @param netID
3819
3692
  */
3820
- static getMaxNumNetworkObjects(): number {
3821
- return inv<number>('0xC7BE335216B5EC7C', rai());
3693
+ static disableProximityMigration(netID: number): void {
3694
+ inv<void>('0x407091CF6037118E', netID);
3822
3695
  }
3823
3696
 
3824
3697
  /**
3825
- * Checks if the user has ROS privilege 14.
3826
- *
3827
- * @returns
3698
+ * @param p0
3699
+ * @param p1
3700
+ * @param dataSize
3701
+ * @returns outData
3828
3702
  */
3829
- static ugcHasPrivilege(): any {
3830
- return inv<number>('0x6506BFA755FB209C');
3703
+ static getRecentGamerNames(p0: number, p1: number, dataSize: number): [any, number] {
3704
+ const result = inv<[number, number]>('0xFEFCC345CE357453', p0, p1, pvi(), dataSize);
3705
+ return [result[0], result[1]];
3831
3706
  }
3832
3707
 
3833
3708
  /**
3834
- * @param networkId
3835
- * @param bStopCloning
3709
+ * @returns
3836
3710
  */
3837
- static setNetworkIdStopCloning(networkId: number, bStopCloning: boolean): void {
3838
- inv<void>('0x9ED3108D6847760A', networkId, bStopCloning);
3711
+ static N_0x18B94666CF610AEB(): boolean {
3712
+ return inv<boolean>('0x18B94666CF610AEB', rai());
3839
3713
  }
3840
3714
 
3841
3715
  /**
3842
- * Returns CGameConfig->ConfigOnlineServices->RosTitleName (see gameconfig.xml)
3716
+ * p0 appears to be for MP
3843
3717
  *
3718
+ * @param p0
3844
3719
  * @returns
3845
3720
  */
3846
- static getRosTitleName(): string | null {
3847
- return inv<string>('0xAC6153A0722F524C', ras());
3721
+ static getNumReservedMissionObjects(p0: boolean): number {
3722
+ return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
3848
3723
  }
3849
3724
 
3850
3725
  /**
3851
3726
  * @returns
3852
3727
  */
3853
- static getScriptStatus(): number {
3854
- return inv<number>('0x57D158647A6BFABF', rai());
3728
+ static hasSocialClubAccount(): boolean {
3729
+ return inv<boolean>('0x67A5589628E0CFF6', rai());
3855
3730
  }
3856
3731
 
3857
3732
  /**
3858
- * @param p0
3859
- * @param p1
3860
- * @param p2
3861
- * @param p3
3733
+ * @param netHandle
3734
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
3862
3735
  */
3863
- static setNetworkIdVisibleInCutscene(p0: any, p1: any, p2: any, p3: any): void {
3864
- inv<void>('0xA6928482543022B4', p0, p1, p2, p3);
3736
+ static netToPed(netHandle: number): Ped | null {
3737
+ return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
3865
3738
  }
3866
3739
 
3867
3740
  /**
3868
- * @param amount
3741
+ * 0 = succeeded
3742
+ * 1 = pending
3743
+ * 2 = failed
3744
+ *
3745
+ * @param textureDownloadId
3746
+ * @returns
3869
3747
  */
3870
- static reserveNetworkMissionObjects(amount: number): void {
3871
- inv<void>('0x4E5C93BD0C32FBF8', amount);
3748
+ static getStatusOfTextureDownload(textureDownloadId: number): number {
3749
+ return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
3872
3750
  }
3873
3751
 
3874
3752
  /**
3875
- * @param entity
3876
- * @param player
3877
- * @returns p2
3753
+ * @returns gamerHandle
3878
3754
  */
3879
- static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
3880
- const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
3755
+ static N_0xF23A6D6C11D8EC15(): [boolean, number] {
3756
+ const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
3881
3757
  return [!!result[0], result[1]];
3882
3758
  }
3883
3759
 
3884
3760
  /**
3761
+ * Always returns 40
3762
+ *
3885
3763
  * @returns
3886
3764
  */
3887
- static autoSessionIsAllowedToMerge(): any {
3888
- return inv<number>('0xAADED99A6B268A27');
3765
+ static getMaxNumNetworkVehicles(): number {
3766
+ return inv<number>('0x0AFCE529F69B21FF', rai());
3889
3767
  }
3890
3768
 
3891
3769
  /**
3892
- * @param p0
3770
+ * @param netId
3893
3771
  * @param p1
3894
3772
  * @param p2
3895
- * @returns
3896
3773
  */
3897
- static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
3898
- return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
3774
+ static keepNetworkIdInFastInstance(netId: number, p1: boolean, p2: number): void {
3775
+ inv<void>('0xE1BC73D6815BA361', netId, p1, p2);
3899
3776
  }
3900
3777
 
3901
3778
  /**
3902
- * Hardcoded to return false.
3903
- *
3904
- * @returns
3779
+ * @returns gamerHandle
3905
3780
  */
3906
- static shouldShowPromotionDlg(): any {
3907
- return inv<number>('0xDA4B1A479C414FB2');
3781
+ static isHandleValid(): [boolean, number] {
3782
+ const result = inv<[boolean, number]>('0x6F79B93B0A8E4133', pvi(), rai());
3783
+ return [!!result[0], result[1]];
3908
3784
  }
3909
3785
 
3910
3786
  /**
3911
- * @param amount
3787
+ * @param p0
3788
+ * @returns p1
3912
3789
  */
3913
- static reserveNetworkMissionPeds(amount: number): void {
3914
- inv<void>('0xB60FEBA45333D36F', amount);
3790
+ static N_0x691E4DE5309EAEFC(p0: any): number {
3791
+ const result = inv<number>('0x691E4DE5309EAEFC', p0, pvi());
3792
+ return result;
3915
3793
  }
3916
3794
 
3917
3795
  /**
3918
- * @param pos
3919
- * @param heading
3796
+ * @param entity
3797
+ * @returns
3920
3798
  */
3921
- static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
3922
- inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
3799
+ static getNetworkIdFromEntity(entity: Entity): number {
3800
+ return inv<number>('0xA11700682F3AD45C', entity.handle, rai());
3923
3801
  }
3924
3802
 
3925
3803
  /**
3926
- * @param paramName
3927
- * @param value
3804
+ * Only used in SP R* Script dominoes_sp: p1 = 0
3805
+ *
3806
+ * @param player
3807
+ * @param p1
3928
3808
  */
3929
- static setLaunchParamValue(paramName: string | null, value: string | null): void {
3930
- inv<void>('0x668AF6E4933AC13F', paramName, value);
3809
+ static N_0x02C4C6C2900D84DF(player: Player, p1: any): void {
3810
+ inv<void>('0x02C4C6C2900D84DF', player.handle, p1);
3931
3811
  }
3932
3812
 
3933
3813
  /**
3934
- * @returns gamerHandle
3814
+ * @returns
3935
3815
  */
3936
- static canViewGamerUserContent(): [any, number] {
3937
- const result = inv<[number, number]>('0x246545C37C27A717', pvi());
3938
- return [result[0], result[1]];
3816
+ static isSessionActive(): boolean {
3817
+ return inv<boolean>('0xD83C2B94E7508980', rai());
3939
3818
  }
3940
3819
 
3941
3820
  /**
3942
- * @param p0
3821
+ * @param animScene
3943
3822
  * @returns
3944
3823
  */
3945
- static isParticipantActive(p0: number): boolean {
3946
- return inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
3824
+ static animSceneToNet(animScene: AnimScene): number {
3825
+ return inv<number>('0xE0D73CDDEA79DDCD', animScene.handle, rai());
3947
3826
  }
3948
3827
 
3949
3828
  /**
3950
- * @param p0
3951
3829
  * @returns
3952
3830
  */
3953
- static getNumCreatedMissionPeds(p0: boolean): number {
3954
- return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
3831
+ static getRank(): number {
3832
+ return inv<number>('0x32C90CDFAF40514C', rai());
3955
3833
  }
3956
3834
 
3957
3835
  /**
3958
- * _NETWORK_GET_A* - _NETWORK_GET_D*
3959
- *
3960
- * @param player
3961
- * @param ped
3962
- * @returns p2
3836
+ * @param message
3837
+ * @returns gamerHandle
3963
3838
  */
3964
- static N_0x236321F1178A5446(player: Player, ped: Ped): [boolean, number] {
3965
- const result = inv<[boolean, number]>('0x236321F1178A5446', player.handle, ped.handle, pvi(), rai());
3839
+ static addFriend(message: string | null): [boolean, number] {
3840
+ const result = inv<[boolean, number]>('0x8E02D73914064223', pvi(), message, rai());
3966
3841
  return [!!result[0], result[1]];
3967
3842
  }
3968
3843
 
3969
3844
  /**
3970
- * Must be called from a background script, otherwise it will do nothing.
3971
- *
3972
- * @param entity
3973
- * @param p1
3845
+ * @param p0
3846
+ * @returns gamerHandle
3974
3847
  */
3975
- static N_0x979765465A6F25FC(entity: Entity, p1: boolean): void {
3976
- inv<void>('0x979765465A6F25FC', entity.handle, p1);
3848
+ static N_0x16EFB123C4451032(p0: number): [boolean, number] {
3849
+ const result = inv<[boolean, number]>('0x16EFB123C4451032', p0, pvi(), rai());
3850
+ return [!!result[0], result[1]];
3851
+ }
3852
+
3853
+ /**
3854
+ * Return the local Participant ID
3855
+ *
3856
+ * @returns
3857
+ */
3858
+ static participantId(): Player | null {
3859
+ return createFromHandle<Player>('Player', inv<number>('0x90986E8876CE0A83', rai()));
3860
+ }
3861
+
3862
+ static N_0x97BCE4C4B3191228(): void {
3863
+ inv<void>('0x97BCE4C4B3191228');
3977
3864
  }
3978
3865
 
3979
3866
  /**
3980
- * @param player
3867
+ * @param volume
3981
3868
  * @param p1
3869
+ * @param originalWeight
3870
+ * @param p3
3871
+ * @param p4
3982
3872
  */
3983
- static N_0x5A91BCEF74944E93(player: Player, p1: number): void {
3984
- inv<void>('0x5A91BCEF74944E93', player.handle, f(p1));
3873
+ static N_0x13F592FC3BF0EA84(volume: Volume, p1: boolean, originalWeight: number, p3: any, p4: any): void {
3874
+ inv<void>('0x13F592FC3BF0EA84', volume.handle, p1, f(originalWeight), p3, p4);
3985
3875
  }
3986
3876
 
3987
3877
  /**
3988
- * @param params
3878
+ * @returns
3989
3879
  */
3990
- static setLaunchParamString(params: string | null): void {
3991
- inv<void>('0xDFFC15AA63D04AAB', params);
3880
+ static N_0xBF8276E51761F9DA(): number {
3881
+ return inv<number>('0xBF8276E51761F9DA', rai());
3992
3882
  }
3993
3883
 
3994
3884
  /**
3995
3885
  * Note: this native was added in build 1311.23
3996
3886
  *
3997
- * @param p0
3998
- * @param p1
3887
+ * @returns
3999
3888
  */
4000
- static N_0x0D183D8490EE4366(p0: number, p1: number): void {
4001
- inv<void>('0x0D183D8490EE4366', p0, p1);
3889
+ static N_0x316FD416C432C761(): boolean {
3890
+ return inv<boolean>('0x316FD416C432C761', rai());
4002
3891
  }
4003
3892
 
4004
3893
  /**
4005
- * Note: this native was added in build 1311.23
3894
+ * nullsub, doesn't do anything
4006
3895
  *
4007
- * @param p0
4008
3896
  * @returns
4009
3897
  */
4010
- static N_0xF8DC69DC1AD19072(p0: boolean): number {
4011
- return inv<number>('0xF8DC69DC1AD19072', p0, rai());
3898
+ static N_0xEC089F84A9C16C62(): any {
3899
+ return inv<number>('0xEC089F84A9C16C62');
4012
3900
  }
4013
3901
 
4014
3902
  /**
3903
+ * @param netId
4015
3904
  * @returns
4016
3905
  */
4017
- static N_0xA47D48D06AA5A188(): boolean {
4018
- return inv<boolean>('0xA47D48D06AA5A188', rai());
3906
+ static getRopeIdFromNetworkId(netId: number): number {
3907
+ return inv<number>('0xEB1A4DD8352EC828', netId, rai());
4019
3908
  }
4020
3909
 
4021
3910
  /**
3911
+ * @param ugcRequestId
4022
3912
  * @returns
4023
3913
  */
4024
- static getCloudTimeAsInt(): number {
4025
- return inv<number>('0x9A73240B49945C76', rai());
3914
+ static ugcDidRequestSucceed(ugcRequestId: number): any {
3915
+ return inv<number>('0x0B6009A90B8495F1', ugcRequestId);
4026
3916
  }
4027
3917
 
4028
3918
  /**
4029
- * *GET_LAUNCH_PARAM*(RESPOT?)*
4030
- * Name is probably invalid since this native only reads data from parsed entity.
4031
- *
4032
- * @param entity
4033
3919
  * @returns
4034
3920
  */
4035
- static N_0x26A867C0B7A456D1(entity: Entity): boolean {
4036
- return inv<boolean>('0x26A867C0B7A456D1', entity.handle, rai());
3921
+ static getNetworkTimeAccurate(): number {
3922
+ return inv<number>('0x89023FBBF9200E9F', rai());
4037
3923
  }
4038
3924
 
4039
3925
  /**
4040
- * @param netHandle
4041
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
3926
+ * @param p0
3927
+ * @returns
4042
3928
  */
4043
- static netToVeh(netHandle: number): Vehicle | null {
4044
- return createFromHandle<Vehicle>('Vehicle', inv<number>('0x367B936610BA360C', netHandle, rai()));
3929
+ static getNumCreatedMissionVehicles(p0: boolean): number {
3930
+ return inv<number>('0x0CD9AB83489430EA', p0, rai());
4045
3931
  }
4046
3932
 
4047
- /**
4048
- * @returns sessionRequestId
4049
- */
4050
- static N_0xAFA14F98327791CE(): [boolean, number] {
4051
- const result = inv<[boolean, number]>('0xAFA14F98327791CE', pvi(), rai());
4052
- return [!!result[0], result[1]];
3933
+ static showAccountUpgradeUi(): void {
3934
+ inv<void>('0x83FE8D7229593017');
4053
3935
  }
4054
3936
 
4055
3937
  /**
3938
+ * Hardcoded to return false.
3939
+ *
4056
3940
  * @returns
4057
3941
  */
4058
- static N_0xDA1BFED8582F61F0(): boolean {
4059
- return inv<boolean>('0xDA1BFED8582F61F0', rai());
3942
+ static isInSessionLobby(): any {
3943
+ return inv<number>('0xC5196C42DE19F646');
4060
3944
  }
4061
3945
 
4062
3946
  /**
4063
- * Note: this native was added in build 1311.23
3947
+ * Always returns a null string.
4064
3948
  *
4065
- * @param p0
4066
- * @returns
3949
+ * @returns gamerHandle
4067
3950
  */
4068
- static N_0xBAF7E2979442B29F(p0: boolean): number {
4069
- return inv<number>('0xBAF7E2979442B29F', p0, rai());
3951
+ static getGamertagFromHandle(): [string | null, number] {
3952
+ const result = inv<[string, number]>('0x426141162EBE5CDB', pvi(), ras());
3953
+ return [result[0], result[1]];
4070
3954
  }
4071
3955
 
4072
3956
  /**
4073
- * @returns
3957
+ * Returns the network ID of the given object.
3958
+ *
3959
+ * @param object
3960
+ * @returns Returns the network id for the specified `object`, or `0` if the entity isn't networked.
4074
3961
  */
4075
- static isCloudAvailable(): boolean {
4076
- return inv<boolean>('0x9A4CF4F48AD77302', rai());
3962
+ static objToNet(object: Prop): number {
3963
+ return inv<number>('0x99BFDC94A603E541', object.handle, rai());
4077
3964
  }
4078
3965
 
4079
3966
  /**
4080
3967
  * @param p0
4081
- * @param p1
4082
- * @param p2
3968
+ * @returns
4083
3969
  */
4084
- static registerPlayerBroadcastVariables(p0: any, p1: any, p2: any): void {
4085
- inv<void>('0x3364AA97340CA215', p0, p1, p2);
3970
+ static requestJoin(p0: any): number {
3971
+ return inv<number>('0xE483BB6BE686F632', p0, rai());
4086
3972
  }
4087
3973
 
4088
3974
  /**
4089
- * _NETWORK_IS_T* - _NETWORK_RE*
3975
+ * Note: this native was added in build 1311.23
4090
3976
  *
3977
+ * @param p0
4091
3978
  * @returns
4092
3979
  */
4093
- static isPreviousUploadPending(): any {
4094
- return inv<number>('0xA21E3BAD0A42D199');
3980
+ static N_0x4835413EA6F9C9CD(p0: boolean): number {
3981
+ return inv<number>('0x4835413EA6F9C9CD', p0, rai());
4095
3982
  }
4096
3983
 
4097
3984
  /**
4098
- * _NETWORK_GET_A* - _NETWORK_GET_D*
3985
+ * Returns ugcRequestId
4099
3986
  *
4100
- * @param ped
4101
- * @returns p1
3987
+ * @param contentId
3988
+ * @param latestVersion
3989
+ * @param contentTypeName
3990
+ * @returns
4102
3991
  */
4103
- static N_0x6CF82A7F65A5AD5F(ped: Ped): [Player | null, number] {
4104
- const result = inv<[number, number]>('0x6CF82A7F65A5AD5F', ped.handle, pvi(), rai());
4105
- return [createFromHandle<Player>('Player', result[0]), result[1]];
3992
+ static ugcQueryByContentId(contentId: string | null, latestVersion: boolean, contentTypeName: string | null): number {
3993
+ return inv<number>('0x69D22E183580113F', contentId, latestVersion, contentTypeName, rai());
4106
3994
  }
4107
3995
 
4108
3996
  /**
4109
- * @param p1
4110
- * @returns gamerHandle
3997
+ * @param p0
4111
3998
  */
4112
- static getGamerStatus(p1: number): [number, number] {
4113
- const result = inv<[number, number]>('0xDDAEB478E58F8DEA', pvi(), p1, rai());
4114
- return [result[0], result[1]];
3999
+ static N_0x3034C77C79A58880(p0: boolean): void {
4000
+ inv<void>('0x3034C77C79A58880', p0);
4115
4001
  }
4116
4002
 
4117
4003
  /**
4118
- * Returns result of session request:
4119
- * 0 - NOT_FOUND
4120
- * 1 - IN_PROGRESS
4121
- * 2 - TIMEOUT
4122
- * 3 - PLAYER_OFFLINE
4123
- * 4 - GANG_MEMBERS_CHANGED
4124
- * 5 - PLAYER_CANCELLED
4125
- * 6 - PLAYER_SET_TOO_LARGE
4126
- * 7 - MATCH_ACCEPTED
4127
- * 8 - OTHER
4128
- *
4129
- * @returns sessionRequestId; p1
4004
+ * @param paramName
4005
+ * @returns
4130
4006
  */
4131
- static sessionGetSessionRequestResult(): [number, number, number] {
4132
- const result = inv<[number, number, number]>('0x0DD051B1BF4B8BD6', pvi(), pvi(), rai());
4133
- return [result[0], result[1], result[2]];
4007
+ static getLaunchParamValue(paramName: string | null): string | null {
4008
+ return inv<string>('0x65E65CA6A0FE59D4', paramName, ras());
4134
4009
  }
4135
4010
 
4136
- static N_0xA63E4F050F20021F(): void {
4137
- inv<void>('0xA63E4F050F20021F');
4011
+ /**
4012
+ * @param p0
4013
+ */
4014
+ static N_0xCF23AB5BD47B384D(p0: any): void {
4015
+ inv<void>('0xCF23AB5BD47B384D', p0);
4138
4016
  }
4139
4017
 
4140
4018
  /**
4141
- * @param amount
4142
- * @returns
4019
+ * Note: this native was added in build 1311.23
4020
+ *
4021
+ * @param p0
4022
+ * @param p1
4023
+ * @param p2
4143
4024
  */
4144
- static canRegisterMissionObjects(amount: number): boolean {
4145
- return inv<boolean>('0x800DD4721A8B008B', amount, rai());
4025
+ static N_0x3CBD6565D9C3B133(p0: number, p1: number, p2: number): void {
4026
+ inv<void>('0x3CBD6565D9C3B133', p0, p1, f(p2));
4146
4027
  }
4147
4028
 
4148
4029
  /**
4149
- * @param description
4150
4030
  * @returns
4151
4031
  */
4152
- static ugcReleaseCachedDescription(description: string | number): boolean {
4153
- return inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
4032
+ static hasReceivedHostBroadcastData(): boolean {
4033
+ return inv<boolean>('0x5D10B3795F3FC886', rai());
4154
4034
  }
4155
4035
 
4156
4036
  /**
4157
- * @param toggle
4037
+ * @param languageId
4038
+ * @returns
4158
4039
  */
4159
- static setFriendlyFireOption(toggle: boolean): void {
4160
- inv<void>('0xF808475FA571D823', toggle);
4040
+ static ugcIsLanguageSupported(languageId: number): boolean {
4041
+ return inv<boolean>('0xF53E48461B71EECB', languageId, rai());
4161
4042
  }
4162
4043
 
4163
4044
  /**
4164
- * @returns sessionRequestId
4045
+ * @returns
4165
4046
  */
4166
- static sessionTransitionToSession(): [any, number] {
4167
- const result = inv<[number, number]>('0xF20B18A330E6DB5C', pvi());
4168
- return [result[0], result[1]];
4047
+ static actionPlatformInvite(): any {
4048
+ return inv<number>('0x3B82ACC3F4B6240C');
4169
4049
  }
4170
4050
 
4171
4051
  /**
4172
- * Hardcoded to return false.
4052
+ * nullsub, doesn't do anything
4173
4053
  *
4174
4054
  * @returns
4175
4055
  */
4176
- static isPromotionEnabled(): any {
4177
- return inv<number>('0x8FF6059DA26E688A');
4056
+ static dumpNetIfConfig(): any {
4057
+ return inv<number>('0xAEDF1BC1C133D6E3');
4178
4058
  }
4179
4059
 
4180
4060
  /**
4181
- * @param playersToTake
4182
- * @param maxInstancePlayers
4183
- * @param sessionFlags
4184
- * @param bucketId
4185
4061
  * @returns
4186
4062
  */
4187
- static autoSessionSplitSession(playersToTake: number, maxInstancePlayers: number, sessionFlags: number, bucketId: number): any {
4188
- return inv<number>('0xC223D299C670413D', playersToTake, maxInstancePlayers, sessionFlags, bucketId);
4063
+ static sessionIsTransitioning(): any {
4064
+ return inv<number>('0xF2CBC969C4F090C7');
4189
4065
  }
4190
4066
 
4191
4067
  /**
4192
4068
  * @param p0
4069
+ * @param index
4070
+ * @param p2
4193
4071
  * @returns
4194
4072
  */
4195
- static N_0x923346025512DFB7(p0: any): any {
4196
- return inv<number>('0x923346025512DFB7', p0);
4073
+ static ugcQueryGetVersion(p0: any, index: number, p2: number): number {
4074
+ return inv<number>('0x63E9DCBC8B0931ED', p0, index, p2, rai());
4197
4075
  }
4198
4076
 
4199
4077
  /**
4200
- * @returns args
4078
+ * @param p0
4079
+ * @param p1
4201
4080
  */
4202
- static resurrectLocalPlayer2(): number {
4203
- const result = inv<number>('0x4154B7D8C75E5DCF', pvi());
4204
- return result;
4081
+ static N_0x3F0ABAE38A0515AD(p0: number, p1: number): void {
4082
+ inv<void>('0x3F0ABAE38A0515AD', p0, p1);
4205
4083
  }
4206
4084
 
4207
4085
  /**
4208
- * Only used in R* Script net_stable_manager
4086
+ * Subtracts the second argument from the first, then returns whether the result is negative.
4209
4087
  *
4210
- * @param threadId
4211
- * @returns pedMax; vehicleMax; unkMax; pedMin; vehicleMin; unkMin
4088
+ * @param timeA
4089
+ * @param timeB
4090
+ * @returns
4212
4091
  */
4213
- static getReservedMissionEntitiesForThread(threadId: number): [number, number, number, number, number, number] {
4214
- const result = inv<[number, number, number, number, number, number]>('0x99AAC89C510DEB0D', threadId, pvi(), pvi(), pvi(), pvi(), pvi(), pvi());
4215
- return [result[0], result[1], result[2], result[3], result[4], result[5]];
4092
+ static isTimeLessThan(timeA: number, timeB: number): boolean {
4093
+ return inv<boolean>('0xCB2CF5148012C8D0', timeA, timeB, rai());
4216
4094
  }
4217
4095
 
4218
4096
  /**
4219
- * @param p0
4097
+ * Old name: _NETWORK_GET_UNRELIABLE_RESEND_COUNT_FOR_PLAYER
4098
+ *
4099
+ * @param player
4220
4100
  * @returns
4221
4101
  */
4222
- static N_0xD7BAD4062074B9C1(p0: any): boolean {
4223
- return inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
4102
+ static getUnreliableResendCount(player: Player): number {
4103
+ return inv<number>('0x3765C3A3E8192E10', player.handle, rai());
4224
4104
  }
4225
4105
 
4226
4106
  /**
4227
- * @param hour
4228
- * @param minute
4229
- * @param second
4230
- * @param transitionTime
4231
- * @param pauseClock
4107
+ * Note: this native was added in build 1311.23
4108
+ *
4109
+ * @param p0
4110
+ * @returns
4232
4111
  */
4233
- static clockTimeOverride(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean): void {
4234
- inv<void>('0x669E223E64B1903C', hour, minute, second, transitionTime, pauseClock);
4112
+ static N_0x106CBDD5077DEDE1(p0: boolean): number {
4113
+ return inv<number>('0x106CBDD5077DEDE1', p0, rai());
4235
4114
  }
4236
4115
 
4237
4116
  /**
4238
- * @param netId
4239
- * @param player
4240
- * @param toggle
4117
+ * @param featureId
4118
+ * @returns
4241
4119
  */
4242
- static setNetworkIdAlwaysExistsForPlayer(netId: number, player: Player, toggle: boolean): void {
4243
- inv<void>('0xA8A024587329F36A', netId, player.handle, toggle);
4120
+ static isFeatureSupported(featureId: number): any {
4121
+ return inv<number>('0x9C725D149622BFDE', featureId);
4244
4122
  }
4245
4123
 
4246
4124
  /**
4247
- * Note: this native was added in build 1311.16
4125
+ * On PC this returns true if gamerHandle is a valid handle.
4248
4126
  *
4249
- * @returns
4127
+ * @returns gamerHandle
4250
4128
  */
4251
- static isObjectReassignmentInProgress(): boolean {
4252
- return inv<boolean>('0x8FE9EB11EC9CC23A', rai());
4129
+ static canAddFriend(): [any, number] {
4130
+ const result = inv<[number, number]>('0x99ABE9BF9DADA162', pvi());
4131
+ return [result[0], result[1]];
4253
4132
  }
4254
4133
 
4255
4134
  /**
4256
- * @param scriptName
4257
- * @param instanceId
4258
- * @param position
4259
- * @returns
4135
+ * Note: this native was added in build 1311.23
4260
4136
  */
4261
- static getNumScriptParticipants(scriptName: string | null, instanceId: number, position: string | number): number {
4262
- return inv<number>('0x3658E8CD94FC121A', scriptName, instanceId, _h(position), rai());
4137
+ static N_0x7673C0D2C5CDAC55(): void {
4138
+ inv<void>('0x7673C0D2C5CDAC55');
4263
4139
  }
4264
4140
 
4265
4141
  /**
4266
- * @param p0
4142
+ * Always returns 110
4143
+ *
4267
4144
  * @returns
4268
4145
  */
4269
- static N_0x6C27442A225A241A(p0: number): number {
4270
- return inv<number>('0x6C27442A225A241A', p0, rai());
4146
+ static getMaxNumNetworkPeds(): number {
4147
+ return inv<number>('0x0C1F7D49C39D2289', rai());
4271
4148
  }
4272
4149
 
4273
4150
  /**
4274
- * @param p0
4151
+ * Returns textureDownloadId
4152
+ *
4275
4153
  * @param p1
4154
+ * @param name
4155
+ * @param p3
4156
+ * @returns gamerHandle
4276
4157
  */
4277
- static spawnConfigSetTuningFloat(p0: string | number, p1: number): void {
4278
- inv<void>('0x0608326F7B98C08D', _h(p0), f(p1));
4158
+ static mugshotTextureDownloadRequest(p1: number, name: string | null, p3: boolean): [number, number] {
4159
+ const result = inv<[number, number]>('0x9B5DB6CEAFAA10BB', pvi(), p1, name, p3, rai());
4160
+ return [result[0], result[1]];
4279
4161
  }
4280
4162
 
4281
4163
  /**
4282
- * @param p1
4283
- * @returns outData
4164
+ * @returns gamerHandle
4284
4165
  */
4285
- static N_0x7BCA0A3972708436(p1: number): [number, number] {
4286
- const result = inv<[number, number]>('0x7BCA0A3972708436', pvi(), p1, rai());
4287
- return [result[0], result[1]];
4166
+ static isFriend(): [boolean, number] {
4167
+ const result = inv<[boolean, number]>('0x1A24A179F9B31654', pvi(), rai());
4168
+ return [!!result[0], result[1]];
4288
4169
  }
4289
4170
 
4290
4171
  /**
4291
- * Hardcoded to return zero.
4292
- *
4293
- * @param p0
4294
- * @param p1
4295
- * @param p2
4296
4172
  * @returns
4297
4173
  */
4298
- static getDisplaynamesFromHandles(p0: any, p1: any, p2: any): number {
4299
- return inv<number>('0x58CC181719256197', p0, p1, p2, rai());
4174
+ static isRecentGamerNamesRequestInProgress(): any {
4175
+ return inv<number>('0x4664D213A0CCAF40');
4300
4176
  }
4301
4177
 
4302
4178
  /**
4179
+ * @param scriptHash
4180
+ * @param p1
4181
+ * @param p2
4182
+ * @param p3
4303
4183
  * @returns
4304
4184
  */
4305
- static isHostOfThisScript(): boolean {
4306
- return inv<boolean>('0x83CD99A1E6061AB5', rai());
4185
+ static isScriptActiveByHash(scriptHash: string | number, p1: number, p2: boolean, p3: number): any {
4186
+ return inv<number>('0x1B89BC43B6E69107', _h(scriptHash), p1, p2, p3);
4307
4187
  }
4308
4188
 
4309
- /**
4310
- * @param p0
4311
- * @param index
4312
- * @returns
4313
- */
4314
- static ugcQueryGetLanguage(p0: any, index: number): number {
4315
- return inv<number>('0x97764E8AC6487A9A', p0, index, rai());
4189
+ static N_0x564552C6AF1EEAB1(): void {
4190
+ inv<void>('0x564552C6AF1EEAB1');
4316
4191
  }
4317
4192
 
4318
4193
  /**
4319
- * Note: this native was added in build 1355.30
4320
- *
4321
- * @param p0
4194
+ * @returns
4322
4195
  */
4323
- static N_0x422F9D6D6C7BC290(p0: number): void {
4324
- inv<void>('0x422F9D6D6C7BC290', p0);
4196
+ static hasPendingInviteFailure(): any {
4197
+ return inv<number>('0xD0498AD30E16B6BD');
4325
4198
  }
4326
4199
 
4327
4200
  /**
4328
- * @param propSet
4201
+ * @param entity
4329
4202
  * @returns
4330
4203
  */
4331
- static propsetToNet(propSet: PropSet): number {
4332
- return inv<number>('0x74F99EF7EF503398', propSet.handle, rai());
4204
+ static requestControlOfEntity(entity: Entity): boolean {
4205
+ return inv<boolean>('0xB69317BF5E782347', entity.handle, rai());
4333
4206
  }
4334
4207
 
4335
4208
  /**
4336
4209
  * @param p0
4210
+ * @returns
4337
4211
  */
4338
- static N_0x5CD3AAD8FF9ED121(p0: any): void {
4339
- inv<void>('0x5CD3AAD8FF9ED121', p0);
4212
+ static N_0xD7D0DF27CB1765B5(p0: number): boolean {
4213
+ return inv<boolean>('0xD7D0DF27CB1765B5', p0, rai());
4340
4214
  }
4341
4215
 
4342
4216
  /**
4343
- * @param netId
4344
4217
  * @returns
4345
4218
  */
4346
- static netToAnimScene(netId: number): AnimScene | null {
4347
- return createFromHandle<AnimScene>('AnimScene', inv<number>('0xD7F6781A0ABAF6FB', netId, rai()));
4219
+ static canRefreshFriendPage(): any {
4220
+ return inv<number>('0x1AF5E28E64A76A9F');
4348
4221
  }
4349
4222
 
4350
4223
  /**
4351
- * @param p0
4224
+ * Old name: _NETWORK_IS_PLAYER_EQUAL_TO_INDEX
4225
+ *
4226
+ * @param player
4352
4227
  * @param index
4353
4228
  * @returns
4354
4229
  */
4355
- static ugcQueryGetContentHasPlayerRecord(p0: any, index: number): any {
4356
- return inv<number>('0xF794765390A6DCA5', p0, index);
4357
- }
4358
-
4359
- static N_0x814729078AED6D30(): void {
4360
- inv<void>('0x814729078AED6D30');
4230
+ static arePlayersInSameTutorialSession(player: Player, index: number): boolean {
4231
+ return inv<boolean>('0x9DE986FC9A87C474', player.handle, index, rai());
4361
4232
  }
4362
4233
 
4363
- /**
4364
- * @returns
4365
- */
4366
- static isSignedOnline(): boolean {
4367
- return inv<boolean>('0x1077788E268557C2', rai());
4234
+ static clearFoundGamers(): void {
4235
+ inv<void>('0x6D14CCEE1B40381A');
4368
4236
  }
4369
4237
 
4370
- /**
4371
- * @returns
4372
- */
4373
- static isInSpectatorMode(): boolean {
4374
- return inv<boolean>('0x048746E388762E11', rai());
4238
+ static preventScriptHostMigration(): void {
4239
+ inv<void>('0x2302C0264EA58D31');
4375
4240
  }
4376
4241
 
4377
4242
  /**
@@ -4525,6 +4390,141 @@ export class Network {
4525
4390
  return inv<number>('0x4FE932E84FE932E8', rai());
4526
4391
  }
4527
4392
 
4393
+ /**
4394
+ * @param flags
4395
+ * @returns
4396
+ */
4397
+ static sessionRemovePlayerFlags(flags: number): any {
4398
+ return inv<number>('0x3215BBE34D3418C5', flags);
4399
+ }
4400
+
4401
+ /**
4402
+ * @returns
4403
+ */
4404
+ static getTimeoutTime(): number {
4405
+ return inv<number>('0x5ED0356A0CE3A34F', rai());
4406
+ }
4407
+
4408
+ /**
4409
+ * @param p0
4410
+ */
4411
+ static setLocalPlayerInvisibleLocally(p0: boolean): void {
4412
+ inv<void>('0xE5F773C1A1D9D168', p0);
4413
+ }
4414
+
4415
+ /**
4416
+ * @param threadId
4417
+ * @returns
4418
+ */
4419
+ static isThreadActive(threadId: number): any {
4420
+ return inv<number>('0x31DAD2CD6D49546E', threadId);
4421
+ }
4422
+
4423
+ /**
4424
+ * Returns false if pedshot push failed
4425
+ *
4426
+ * @param texture
4427
+ * @param playerSlot
4428
+ * @param p2
4429
+ * @param personaPhotoLocalCacheType
4430
+ * @returns
4431
+ */
4432
+ static personaPhotoWriteLocal(texture: string | null, playerSlot: number, p2: number, personaPhotoLocalCacheType: number): any {
4433
+ return inv<number>('0x2A48D9567940598F', texture, playerSlot, p2, personaPhotoLocalCacheType);
4434
+ }
4435
+
4436
+ /**
4437
+ * @param index
4438
+ * @returns
4439
+ */
4440
+ static getParticipantIndex(index: number): number {
4441
+ return inv<number>('0x1B84DF6AF2A46938', index, rai());
4442
+ }
4443
+
4444
+ /**
4445
+ * @param p0
4446
+ */
4447
+ static N_0xD637D327080CD86E(p0: number): void {
4448
+ inv<void>('0xD637D327080CD86E', p0);
4449
+ }
4450
+
4451
+ /**
4452
+ * @returns
4453
+ */
4454
+ static sessionIsAnyRequestInProgress(): any {
4455
+ return inv<number>('0xBAFFDE5F953720D9');
4456
+ }
4457
+
4458
+ /**
4459
+ * @param p0
4460
+ * @param p1
4461
+ * @param p2
4462
+ * @param p3
4463
+ * @param p4
4464
+ * @param p5
4465
+ * @returns
4466
+ */
4467
+ static isSphereVisibleToPlayer(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): boolean {
4468
+ return inv<boolean>('0xDC3A310219E5DA62', p0, p1, p2, p3, p4, p5, rai());
4469
+ }
4470
+
4471
+ /**
4472
+ * @param netHandle
4473
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
4474
+ */
4475
+ static netToEnt(netHandle: number): Entity | null {
4476
+ return createFromHandle<Entity>('Entity', inv<number>('0xBFFEAB45A9A9094A', netHandle, rai()));
4477
+ }
4478
+
4479
+ /**
4480
+ * Note: this native was added in build 1311.23
4481
+ *
4482
+ * @returns
4483
+ */
4484
+ static N_0x062842D61D0D53FD(): boolean {
4485
+ return inv<boolean>('0x062842D61D0D53FD', rai());
4486
+ }
4487
+
4488
+ /**
4489
+ * @param p0
4490
+ */
4491
+ static N_0xFF36F36B07E69059(p0: any): void {
4492
+ inv<void>('0xFF36F36B07E69059', p0);
4493
+ }
4494
+
4495
+ /**
4496
+ * @param flags
4497
+ * @returns
4498
+ */
4499
+ static sessionSetPlayerFlags(flags: number): any {
4500
+ return inv<number>('0x0AE241A4A9ADEEEC', flags);
4501
+ }
4502
+
4503
+ /**
4504
+ * @param contentId
4505
+ * @param dataSize
4506
+ * @param p4
4507
+ * @param flags
4508
+ * @returns gamerHandle; data
4509
+ */
4510
+ static sendSessionInvite(contentId: string | null, dataSize: number, p4: number, flags: number): [any, number, number] {
4511
+ const result = inv<[number, number, number]>('0xE47001B7CB8B98AE', pvi(), contentId, pvi(), dataSize, p4, flags);
4512
+ return [result[0], result[1], result[2]];
4513
+ }
4514
+
4515
+ static N_0x61BFBAA795E712AD(): void {
4516
+ inv<void>('0x61BFBAA795E712AD');
4517
+ }
4518
+
4519
+ /**
4520
+ * @param playerSlot
4521
+ * @param personaPhotoLocalCacheType
4522
+ * @returns
4523
+ */
4524
+ static localPlayerPedshotTextureDownloadRequest(playerSlot: number, personaPhotoLocalCacheType: number): number {
4525
+ return inv<number>('0x6E2FD8CF7EB10E53', playerSlot, personaPhotoLocalCacheType, rai());
4526
+ }
4527
+
4528
4528
  /**
4529
4529
  * Hardcoded to return zero.
4530
4530
  *