@nativewrappers/redm-codegen 0.0.4 → 0.0.5

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 (317) hide show
  1. package/dist/classes/AnimScene.d.ts +96 -96
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +137 -137
  4. package/dist/classes/BaseModel.d.ts +19 -19
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +33 -33
  7. package/dist/classes/BaseTask.d.ts +33 -33
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +40 -40
  10. package/dist/classes/Cam.d.ts +85 -85
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +108 -108
  13. package/dist/classes/Entity.d.ts +288 -283
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +410 -401
  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/ItemSet.d.ts +2 -2
  20. package/dist/classes/ItemSet.d.ts.map +1 -1
  21. package/dist/classes/ItemSet.js +3 -3
  22. package/dist/classes/Ped.d.ts +286 -286
  23. package/dist/classes/Ped.d.ts.map +1 -1
  24. package/dist/classes/Ped.js +425 -425
  25. package/dist/classes/PedModel.d.ts +1 -1
  26. package/dist/classes/PedModel.d.ts.map +1 -1
  27. package/dist/classes/PedModel.js +2 -2
  28. package/dist/classes/PedTask.d.ts +729 -729
  29. package/dist/classes/PedTask.d.ts.map +1 -1
  30. package/dist/classes/PedTask.js +935 -935
  31. package/dist/classes/PersChar.d.ts +13 -13
  32. package/dist/classes/PersChar.d.ts.map +1 -1
  33. package/dist/classes/PersChar.js +19 -19
  34. package/dist/classes/Pickup.d.ts +6 -6
  35. package/dist/classes/Pickup.d.ts.map +1 -1
  36. package/dist/classes/Pickup.js +13 -13
  37. package/dist/classes/Player.d.ts +343 -339
  38. package/dist/classes/Player.d.ts.map +1 -1
  39. package/dist/classes/Player.js +495 -489
  40. package/dist/classes/Prop.d.ts +64 -64
  41. package/dist/classes/Prop.d.ts.map +1 -1
  42. package/dist/classes/Prop.js +94 -94
  43. package/dist/classes/PropSet.d.ts +18 -18
  44. package/dist/classes/PropSet.d.ts.map +1 -1
  45. package/dist/classes/PropSet.js +27 -27
  46. package/dist/classes/Vehicle.d.ts +122 -122
  47. package/dist/classes/Vehicle.d.ts.map +1 -1
  48. package/dist/classes/Vehicle.js +147 -147
  49. package/dist/classes/VehicleModel.d.ts +1 -1
  50. package/dist/classes/VehicleModel.d.ts.map +1 -1
  51. package/dist/classes/VehicleModel.js +2 -2
  52. package/dist/classes/VehicleTask.d.ts +24 -24
  53. package/dist/classes/VehicleTask.d.ts.map +1 -1
  54. package/dist/classes/VehicleTask.js +30 -30
  55. package/dist/classes/Volume.d.ts +44 -44
  56. package/dist/classes/Volume.d.ts.map +1 -1
  57. package/dist/classes/Volume.js +58 -58
  58. package/dist/classes/Weapon.d.ts +351 -351
  59. package/dist/classes/Weapon.d.ts.map +1 -1
  60. package/dist/classes/Weapon.js +486 -486
  61. package/dist/namespaces/Aicoverpoint.d.ts +23 -23
  62. package/dist/namespaces/Aicoverpoint.d.ts.map +1 -1
  63. package/dist/namespaces/Aicoverpoint.js +35 -35
  64. package/dist/namespaces/Aitransport.d.ts +78 -78
  65. package/dist/namespaces/Aitransport.d.ts.map +1 -1
  66. package/dist/namespaces/Aitransport.js +95 -95
  67. package/dist/namespaces/Animscene.d.ts +48 -48
  68. package/dist/namespaces/Animscene.d.ts.map +1 -1
  69. package/dist/namespaces/Animscene.js +65 -65
  70. package/dist/namespaces/Audio.d.ts +476 -476
  71. package/dist/namespaces/Audio.d.ts.map +1 -1
  72. package/dist/namespaces/Audio.js +692 -692
  73. package/dist/namespaces/Bounty.d.ts +57 -57
  74. package/dist/namespaces/Bounty.d.ts.map +1 -1
  75. package/dist/namespaces/Bounty.js +90 -90
  76. package/dist/namespaces/CamStatics.d.ts +432 -432
  77. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  78. package/dist/namespaces/CamStatics.js +606 -606
  79. package/dist/namespaces/Collection.d.ts +78 -78
  80. package/dist/namespaces/Collection.d.ts.map +1 -1
  81. package/dist/namespaces/Collection.js +111 -111
  82. package/dist/namespaces/Companion.d.ts +22 -22
  83. package/dist/namespaces/Companion.d.ts.map +1 -1
  84. package/dist/namespaces/Companion.js +30 -30
  85. package/dist/namespaces/Compapp.js +1 -1
  86. package/dist/namespaces/Compendium.d.ts +58 -58
  87. package/dist/namespaces/Compendium.d.ts.map +1 -1
  88. package/dist/namespaces/Compendium.js +83 -83
  89. package/dist/namespaces/Crashlog.d.ts +10 -10
  90. package/dist/namespaces/Crashlog.d.ts.map +1 -1
  91. package/dist/namespaces/Crashlog.js +21 -21
  92. package/dist/namespaces/Crew.js +4 -4
  93. package/dist/namespaces/Databinding.d.ts +154 -154
  94. package/dist/namespaces/Databinding.d.ts.map +1 -1
  95. package/dist/namespaces/Databinding.js +222 -222
  96. package/dist/namespaces/Datafile.js +4 -4
  97. package/dist/namespaces/Decorator.d.ts +19 -19
  98. package/dist/namespaces/Decorator.d.ts.map +1 -1
  99. package/dist/namespaces/Decorator.js +34 -34
  100. package/dist/namespaces/Dlc.d.ts +5 -5
  101. package/dist/namespaces/Dlc.d.ts.map +1 -1
  102. package/dist/namespaces/Dlc.js +9 -9
  103. package/dist/namespaces/EntityStatics.d.ts +80 -80
  104. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  105. package/dist/namespaces/EntityStatics.js +113 -113
  106. package/dist/namespaces/Event.js +4 -4
  107. package/dist/namespaces/Fire.d.ts +89 -89
  108. package/dist/namespaces/Fire.d.ts.map +1 -1
  109. package/dist/namespaces/Fire.js +115 -115
  110. package/dist/namespaces/Flock.js +2 -2
  111. package/dist/namespaces/Gang.js +2 -2
  112. package/dist/namespaces/GoogleAnalytics.js +2 -2
  113. package/dist/namespaces/Graphics.d.ts +781 -781
  114. package/dist/namespaces/Graphics.d.ts.map +1 -1
  115. package/dist/namespaces/Graphics.js +1207 -1207
  116. package/dist/namespaces/Hud.d.ts +483 -483
  117. package/dist/namespaces/Hud.d.ts.map +1 -1
  118. package/dist/namespaces/Hud.js +678 -678
  119. package/dist/namespaces/Ik.js +1 -1
  120. package/dist/namespaces/Interaction.js +3 -3
  121. package/dist/namespaces/InteriorStatics.d.ts +40 -40
  122. package/dist/namespaces/InteriorStatics.d.ts.map +1 -1
  123. package/dist/namespaces/InteriorStatics.js +57 -57
  124. package/dist/namespaces/Inventory.d.ts +211 -211
  125. package/dist/namespaces/Inventory.d.ts.map +1 -1
  126. package/dist/namespaces/Inventory.js +291 -291
  127. package/dist/namespaces/Itemdatabase.js +3 -3
  128. package/dist/namespaces/Itemset.js +2 -2
  129. package/dist/namespaces/Law.d.ts +1 -1
  130. package/dist/namespaces/Law.d.ts.map +1 -1
  131. package/dist/namespaces/Law.js +19 -19
  132. package/dist/namespaces/Localization.js +1 -1
  133. package/dist/namespaces/Map.js +3 -3
  134. package/dist/namespaces/Minigame.d.ts +65 -65
  135. package/dist/namespaces/Minigame.d.ts.map +1 -1
  136. package/dist/namespaces/Minigame.js +105 -105
  137. package/dist/namespaces/Misc.d.ts +3 -3
  138. package/dist/namespaces/Misc.d.ts.map +1 -1
  139. package/dist/namespaces/Misc.js +35 -35
  140. package/dist/namespaces/Missiondata.d.ts +15 -15
  141. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  142. package/dist/namespaces/Missiondata.js +24 -24
  143. package/dist/namespaces/Money.js +3 -3
  144. package/dist/namespaces/Netshopping.d.ts +58 -58
  145. package/dist/namespaces/Netshopping.d.ts.map +1 -1
  146. package/dist/namespaces/Netshopping.js +89 -89
  147. package/dist/namespaces/Network.d.ts +1067 -1067
  148. package/dist/namespaces/Network.d.ts.map +1 -1
  149. package/dist/namespaces/Network.js +1586 -1586
  150. package/dist/namespaces/Object.d.ts +231 -231
  151. package/dist/namespaces/Object.d.ts.map +1 -1
  152. package/dist/namespaces/Object.js +337 -337
  153. package/dist/namespaces/Pad.d.ts +42 -42
  154. package/dist/namespaces/Pad.d.ts.map +1 -1
  155. package/dist/namespaces/Pad.js +68 -68
  156. package/dist/namespaces/Pathfind.js +10 -10
  157. package/dist/namespaces/PedStatics.d.ts +2 -2
  158. package/dist/namespaces/PedStatics.d.ts.map +1 -1
  159. package/dist/namespaces/PedStatics.js +10 -10
  160. package/dist/namespaces/Perschar.d.ts +54 -54
  161. package/dist/namespaces/Perschar.d.ts.map +1 -1
  162. package/dist/namespaces/Perschar.js +84 -84
  163. package/dist/namespaces/Physics.d.ts +121 -121
  164. package/dist/namespaces/Physics.d.ts.map +1 -1
  165. package/dist/namespaces/Physics.js +155 -155
  166. package/dist/namespaces/PlayerStatics.d.ts +97 -97
  167. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  168. package/dist/namespaces/PlayerStatics.js +142 -142
  169. package/dist/namespaces/Population.d.ts +11 -11
  170. package/dist/namespaces/Population.d.ts.map +1 -1
  171. package/dist/namespaces/Population.js +15 -15
  172. package/dist/namespaces/Posse.d.ts +33 -33
  173. package/dist/namespaces/Posse.d.ts.map +1 -1
  174. package/dist/namespaces/Posse.js +51 -51
  175. package/dist/namespaces/Propset.d.ts +59 -59
  176. package/dist/namespaces/Propset.d.ts.map +1 -1
  177. package/dist/namespaces/Propset.js +81 -81
  178. package/dist/namespaces/Replay.d.ts +1 -1
  179. package/dist/namespaces/Replay.d.ts.map +1 -1
  180. package/dist/namespaces/Replay.js +2 -2
  181. package/dist/namespaces/Scripts.d.ts +1 -1
  182. package/dist/namespaces/Scripts.d.ts.map +1 -1
  183. package/dist/namespaces/Scripts.js +12 -12
  184. package/dist/namespaces/Shapetest.d.ts +11 -11
  185. package/dist/namespaces/Shapetest.d.ts.map +1 -1
  186. package/dist/namespaces/Shapetest.js +13 -13
  187. package/dist/namespaces/Socialclub.js +8 -8
  188. package/dist/namespaces/Socialclubfeed.js +1 -1
  189. package/dist/namespaces/Spactionproxy.js +4 -4
  190. package/dist/namespaces/Stats.d.ts +191 -191
  191. package/dist/namespaces/Stats.d.ts.map +1 -1
  192. package/dist/namespaces/Stats.js +281 -281
  193. package/dist/namespaces/Streaming.d.ts +84 -84
  194. package/dist/namespaces/Streaming.d.ts.map +1 -1
  195. package/dist/namespaces/Streaming.js +137 -137
  196. package/dist/namespaces/Task.d.ts +347 -347
  197. package/dist/namespaces/Task.d.ts.map +1 -1
  198. package/dist/namespaces/Task.js +488 -488
  199. package/dist/namespaces/Telemetry.d.ts +151 -151
  200. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  201. package/dist/namespaces/Telemetry.js +206 -206
  202. package/dist/namespaces/Txd.js +1 -1
  203. package/dist/namespaces/Uiapps.d.ts +25 -25
  204. package/dist/namespaces/Uiapps.d.ts.map +1 -1
  205. package/dist/namespaces/Uiapps.js +36 -36
  206. package/dist/namespaces/Uievents.js +1 -1
  207. package/dist/namespaces/Uifeed.d.ts +15 -15
  208. package/dist/namespaces/Uifeed.d.ts.map +1 -1
  209. package/dist/namespaces/Uifeed.js +25 -25
  210. package/dist/namespaces/Uistickyfeed.d.ts +16 -16
  211. package/dist/namespaces/Uistickyfeed.d.ts.map +1 -1
  212. package/dist/namespaces/Uistickyfeed.js +21 -21
  213. package/dist/namespaces/Unlock.js +5 -5
  214. package/dist/namespaces/VehicleStatics.js +12 -12
  215. package/dist/namespaces/Voice.d.ts +38 -38
  216. package/dist/namespaces/Voice.d.ts.map +1 -1
  217. package/dist/namespaces/Voice.js +61 -61
  218. package/dist/namespaces/VolumeStatics.d.ts +99 -99
  219. package/dist/namespaces/VolumeStatics.d.ts.map +1 -1
  220. package/dist/namespaces/VolumeStatics.js +137 -137
  221. package/dist/namespaces/WeaponStatics.d.ts +276 -276
  222. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  223. package/dist/namespaces/WeaponStatics.js +371 -371
  224. package/dist/types/NativeAliases.d.ts +3 -1
  225. package/dist/types/NativeAliases.d.ts.map +1 -1
  226. package/dist/types/NativeAliases.js +3 -1
  227. package/package.json +1 -1
  228. package/src/classes/AnimScene.ts +159 -159
  229. package/src/classes/BaseModel.ts +37 -37
  230. package/src/classes/BaseTask.ts +41 -41
  231. package/src/classes/Cam.ts +111 -111
  232. package/src/classes/Entity.ts +422 -411
  233. package/src/classes/Interior.ts +43 -43
  234. package/src/classes/ItemSet.ts +3 -3
  235. package/src/classes/Ped.ts +432 -432
  236. package/src/classes/PedModel.ts +2 -2
  237. package/src/classes/PedTask.ts +957 -957
  238. package/src/classes/PersChar.ts +22 -22
  239. package/src/classes/Pickup.ts +14 -14
  240. package/src/classes/Player.ts +994 -987
  241. package/src/classes/Prop.ts +106 -106
  242. package/src/classes/PropSet.ts +29 -29
  243. package/src/classes/Vehicle.ts +147 -147
  244. package/src/classes/VehicleModel.ts +2 -2
  245. package/src/classes/VehicleTask.ts +31 -31
  246. package/src/classes/Volume.ts +62 -62
  247. package/src/classes/Weapon.ts +511 -511
  248. package/src/namespaces/Aicoverpoint.ts +40 -40
  249. package/src/namespaces/Aitransport.ts +104 -104
  250. package/src/namespaces/Animscene.ts +71 -71
  251. package/src/namespaces/Audio.ts +725 -725
  252. package/src/namespaces/Bounty.ts +102 -102
  253. package/src/namespaces/CamStatics.ts +700 -700
  254. package/src/namespaces/Collection.ts +113 -113
  255. package/src/namespaces/Companion.ts +34 -34
  256. package/src/namespaces/Compapp.ts +1 -1
  257. package/src/namespaces/Compendium.ts +94 -94
  258. package/src/namespaces/Crashlog.ts +23 -23
  259. package/src/namespaces/Crew.ts +4 -4
  260. package/src/namespaces/Databinding.ts +237 -237
  261. package/src/namespaces/Datafile.ts +4 -4
  262. package/src/namespaces/Decorator.ts +37 -37
  263. package/src/namespaces/Dlc.ts +9 -9
  264. package/src/namespaces/EntityStatics.ts +117 -117
  265. package/src/namespaces/Event.ts +4 -4
  266. package/src/namespaces/Fire.ts +127 -127
  267. package/src/namespaces/Flock.ts +2 -2
  268. package/src/namespaces/Gang.ts +2 -2
  269. package/src/namespaces/GoogleAnalytics.ts +2 -2
  270. package/src/namespaces/Graphics.ts +1218 -1218
  271. package/src/namespaces/Hud.ts +696 -696
  272. package/src/namespaces/Ik.ts +1 -1
  273. package/src/namespaces/Interaction.ts +3 -3
  274. package/src/namespaces/InteriorStatics.ts +65 -65
  275. package/src/namespaces/Inventory.ts +294 -294
  276. package/src/namespaces/Itemdatabase.ts +3 -3
  277. package/src/namespaces/Itemset.ts +2 -2
  278. package/src/namespaces/Law.ts +20 -20
  279. package/src/namespaces/Localization.ts +1 -1
  280. package/src/namespaces/Map.ts +3 -3
  281. package/src/namespaces/Minigame.ts +109 -109
  282. package/src/namespaces/Misc.ts +38 -38
  283. package/src/namespaces/Missiondata.ts +28 -28
  284. package/src/namespaces/Money.ts +3 -3
  285. package/src/namespaces/Netshopping.ts +99 -99
  286. package/src/namespaces/Network.ts +1616 -1616
  287. package/src/namespaces/Object.ts +344 -344
  288. package/src/namespaces/Pad.ts +76 -76
  289. package/src/namespaces/Pathfind.ts +10 -10
  290. package/src/namespaces/PedStatics.ts +12 -12
  291. package/src/namespaces/Perschar.ts +86 -86
  292. package/src/namespaces/Physics.ts +171 -171
  293. package/src/namespaces/PlayerStatics.ts +162 -162
  294. package/src/namespaces/Population.ts +17 -17
  295. package/src/namespaces/Posse.ts +54 -54
  296. package/src/namespaces/Propset.ts +92 -92
  297. package/src/namespaces/Replay.ts +3 -3
  298. package/src/namespaces/Scripts.ts +13 -13
  299. package/src/namespaces/Shapetest.ts +14 -14
  300. package/src/namespaces/Socialclub.ts +8 -8
  301. package/src/namespaces/Socialclubfeed.ts +1 -1
  302. package/src/namespaces/Spactionproxy.ts +4 -4
  303. package/src/namespaces/Stats.ts +287 -287
  304. package/src/namespaces/Streaming.ts +159 -159
  305. package/src/namespaces/Task.ts +517 -517
  306. package/src/namespaces/Telemetry.ts +224 -224
  307. package/src/namespaces/Txd.ts +1 -1
  308. package/src/namespaces/Uiapps.ts +43 -43
  309. package/src/namespaces/Uievents.ts +1 -1
  310. package/src/namespaces/Uifeed.ts +28 -28
  311. package/src/namespaces/Uistickyfeed.ts +23 -23
  312. package/src/namespaces/Unlock.ts +5 -5
  313. package/src/namespaces/VehicleStatics.ts +12 -12
  314. package/src/namespaces/Voice.ts +70 -70
  315. package/src/namespaces/VolumeStatics.ts +143 -143
  316. package/src/namespaces/WeaponStatics.ts +383 -383
  317. package/src/types/NativeAliases.ts +6 -1
@@ -16,123 +16,106 @@ 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
- static disableRealtimeMultiplayer(): void {
20
- inv<void>('0x236905C700FDB54D');
21
- }
22
-
23
19
  /**
24
- * @param volume
20
+ * @param description
21
+ * @returns
25
22
  */
26
- static spawnConfigRemoveExclusionVolume(volume: Volume): void {
27
- inv<void>('0xA35E7BF20FA269E0', volume.handle);
23
+ static ugcDidDescriptionRequestSucceed(description: string | number): boolean {
24
+ return !!inv<boolean>('0x162C23CA83ED0A62', _h(description), rai());
28
25
  }
29
26
 
30
27
  /**
31
- * @param tunableContext
32
- * @param tunableName
33
28
  * @returns
34
29
  */
35
- static doesTunableExist(tunableContext: string | number, tunableName: string | number): boolean {
36
- return inv<boolean>('0x85E5F8B9B898B20A', _h(tunableContext), _h(tunableName), rai());
30
+ static getGameMode(): number {
31
+ return inv<number>('0x225640E09EFFDC3F', rai());
37
32
  }
38
33
 
39
34
  /**
40
- * Note: this native was added in build 1311.23
41
- *
42
- * @param p0
43
- * @returns
35
+ * @param amount
44
36
  */
45
- static N_0x982D7AD755B8F62C(p0: boolean): number {
46
- return inv<number>('0x982D7AD755B8F62C', p0, rai());
47
- }
48
-
49
- static startSoloTutorialSession(): void {
50
- inv<void>('0x17E0198B3882C2CB');
37
+ static reserveNetworkClientMissionPeds(amount: number): void {
38
+ inv<void>('0x807E119F80231732', amount);
51
39
  }
52
40
 
53
41
  /**
54
42
  * @param p0
43
+ * @param p1
55
44
  * @param p2
56
45
  * @param p3
57
- * @returns p1
58
46
  */
59
- static setRichPresence(p0: number, p2: number, p3: number): number {
60
- const result = inv<number>('0x1DCCACDCFC569362', p0, pvi(), p2, p3);
61
- return result;
47
+ static setInMpCutscene(p0: boolean, p1: boolean, p2: number, p3: boolean): void {
48
+ inv<void>('0x9CA5DE655269FEC4', p0, p1, p2, p3);
62
49
  }
63
50
 
64
51
  /**
65
- * @returns
52
+ * @param toggle
53
+ * @param playerPed
66
54
  */
67
- static pedmugshotTake(): any {
68
- return inv<number>('0xCD954F330693F5F2');
55
+ static setInSpectatorMode(toggle: boolean, playerPed: Ped): void {
56
+ inv<void>('0x423DE3854BB50894', toggle, playerPed.handle);
69
57
  }
70
58
 
71
59
  /**
72
- * @param entity
60
+ * @param p0
73
61
  */
74
- static N_0xBB1EC8C2EEF33BAA(entity: Entity): void {
75
- inv<void>('0xBB1EC8C2EEF33BAA', entity.handle);
62
+ static N_0x3E74A687A73979C6(p0: boolean): void {
63
+ inv<void>('0x3E74A687A73979C6', p0);
76
64
  }
77
65
 
78
66
  /**
79
- * @returns
67
+ * @returns sessionRequestId
80
68
  */
81
- static haveOnlinePrivileges(): boolean {
82
- return inv<boolean>('0x25CB5A9F37BFD063', rai());
69
+ static sessionIsRequestPendingTransition(): [any, number] {
70
+ const result = inv<[number, number]>('0xCCF878D50F8AB10D', pvi());
71
+ return [result[0], result[1]];
83
72
  }
84
73
 
85
74
  /**
86
- * @param p0
87
- * @param index
88
- * @returns
75
+ * @param offset
89
76
  */
90
- static ugcQueryGetRootContentId(p0: any, index: number): string | null {
91
- return inv<string>('0x566CEB0542EF5ECF', p0, index, ras());
77
+ static spawnConfigSetGroundToRootOffset(offset: number): void {
78
+ inv<void>('0x59577799F6AE2F34', f(offset));
92
79
  }
93
80
 
94
81
  /**
95
82
  * @returns
96
83
  */
97
- static didFindGamersSucceed(): any {
98
- return inv<number>('0xF9B83B77929D8863');
99
- }
100
-
101
- static N_0x0BF90CBB6B72977B(): void {
102
- inv<void>('0x0BF90CBB6B72977B');
84
+ static checkAccessAndAlertIfFail(): any {
85
+ return inv<number>('0x2A8112A974DE1EF6');
103
86
  }
104
87
 
105
88
  /**
106
- * @returns gamerHandle
89
+ * Note: this native was added in build 1311.23
90
+ *
91
+ * @returns
107
92
  */
108
- static getLocalHandle(): number {
109
- const result = inv<number>('0xE86051786B66CD8E', pvi());
110
- return result;
93
+ static N_0xFB3205788F8AFA3F(): number {
94
+ return inv<number>('0xFB3205788F8AFA3F', rai());
111
95
  }
112
96
 
113
97
  /**
114
- * nullsub, doesn't do anything
115
- *
116
- * @param p0
98
+ * @returns
117
99
  */
118
- static N_0x2C4E98DDA475364F(p0: string | null): void {
119
- inv<void>('0x2C4E98DDA475364F', p0);
100
+ static getNumRecentGamers(): number {
101
+ return inv<number>('0x37A834AEC6A4F74A', rai());
120
102
  }
121
103
 
122
104
  /**
123
- * @param entity
124
105
  * @returns
125
106
  */
126
- static getGlobalEntityFlags(entity: Entity): number {
127
- return inv<number>('0xDD7806FD0543BC3D', entity.handle, rai());
107
+ static N_0xD3A3C8B9F3BDEF81(): any {
108
+ return inv<number>('0xD3A3C8B9F3BDEF81');
128
109
  }
129
110
 
130
111
  /**
131
- * @param description
112
+ * Returns the entity's network ID.
113
+ *
114
+ * @param entity
132
115
  * @returns
133
116
  */
134
- static ugcHasDescriptionRequestFinished(description: string | number): boolean {
135
- return inv<boolean>('0xEBFA8D50ADDC54C4', _h(description), rai());
117
+ static N_0xF302AB9D978352EE(entity: Entity): number {
118
+ return inv<number>('0xF302AB9D978352EE', entity.handle, rai());
136
119
  }
137
120
 
138
121
  /**
@@ -191,7 +174,7 @@ export class Network {
191
174
  * @returns
192
175
  */
193
176
  static isPlayerConcealed(player: Player): boolean {
194
- return inv<boolean>('0x919B3C98ED8292F9', player.handle, rai());
177
+ return !!inv<boolean>('0x919B3C98ED8292F9', player.handle, rai());
195
178
  }
196
179
 
197
180
  /**
@@ -206,7 +189,7 @@ export class Network {
206
189
  * @returns
207
190
  */
208
191
  static sessionLeaveSession(): boolean {
209
- return inv<boolean>('0x17C21B7319A05047', rai());
192
+ return !!inv<boolean>('0x17C21B7319A05047', rai());
210
193
  }
211
194
 
212
195
  /**
@@ -247,7 +230,7 @@ export class Network {
247
230
  * @returns
248
231
  */
249
232
  static N_0xDCA4A74135E1DEA5(p0: any): boolean {
250
- return inv<boolean>('0xDCA4A74135E1DEA5', p0, rai());
233
+ return !!inv<boolean>('0xDCA4A74135E1DEA5', p0, rai());
251
234
  }
252
235
 
253
236
  /**
@@ -276,267 +259,408 @@ export class Network {
276
259
  }
277
260
 
278
261
  /**
279
- * Returns string for GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO
280
- *
281
- * @param p0
282
- * @param p1
283
- * @param p2
284
- * @returns
262
+ * Note: this native was added in build 1311.23, but was only used after build 1436.25
285
263
  */
286
- static ugcQueryGetCreatorPhoto(p0: any, p1: number, p2: any): string | null {
287
- return inv<string>('0x409FE0CA6A4D1D49', p0, p1, p2, ras());
264
+ static requestCloudTunables(): void {
265
+ inv<void>('0x42FB3B532D526E6C');
288
266
  }
289
267
 
290
268
  /**
291
269
  * @param toggle
292
270
  */
293
- static setRecentGamersEnabled(toggle: boolean): void {
294
- inv<void>('0x29FE035D35B8589C', toggle);
271
+ static setScriptReadyForEvents(toggle: boolean): void {
272
+ inv<void>('0x7AC752103856FB20', toggle);
295
273
  }
296
274
 
297
275
  /**
276
+ * @param amount
298
277
  * @returns
299
278
  */
300
- static getLaunchParamString(): string | null {
301
- return inv<string>('0xC59AB6A04333C502', ras());
279
+ static canRegisterMissionPeds(amount: number): boolean {
280
+ return !!inv<boolean>('0xBCBF4FEF9FA5D781', amount, rai());
302
281
  }
303
282
 
304
283
  /**
305
- * @param entity
306
- * @param toggle
284
+ * @returns gamerHandle1; gamerHandle2
307
285
  */
308
- static setEntityRemainsWhenUnnetworked(entity: Entity, toggle: boolean): void {
309
- inv<void>('0xD785864798258032', entity.handle, toggle);
286
+ static areHandlesTheSame(): [boolean, number, number] {
287
+ const result = inv<[boolean, number, number]>('0x57DBA049E110F217', pvi(), pvi(), rai());
288
+ return [!!result[0], result[1], result[2]];
310
289
  }
311
290
 
312
291
  /**
313
- * @param flags
314
- * @param userHash
315
- * @param p2
316
- * @returns sessionRequestId
292
+ * Old name: _SET_LOCAL_PLAYER_AS_GHOST
293
+ *
294
+ * @param toggle
317
295
  */
318
- static sessionRequestSessionNominated(flags: number, userHash: number, p2: number): [boolean, number] {
319
- const result = inv<[boolean, number]>('0x4F4672457FF597D1', flags, userHash, p2, pvi(), rai());
320
- return [!!result[0], result[1]];
296
+ static setLocalPlayerAsGhost(toggle: boolean): void {
297
+ inv<void>('0x5FFE9B4144F9712F', toggle);
321
298
  }
322
299
 
323
300
  /**
324
- * @param description
325
- * @returns
301
+ * Example: char displayName[64];
302
+ * if (_NETWORK_GET_DISPLAY_NAME_FROM_HANDLE(handle, displayName))
303
+ * {
304
+ * // use displayName
305
+ * }
306
+ *
307
+ * @param displayName
308
+ * @returns gamerHandle
326
309
  */
327
- static ugcIsDescriptionRequestInProgress(description: string | number): boolean {
328
- return inv<boolean>('0x2D5DC831176D0114', _h(description), rai());
310
+ static getDisplayNameFromHandle(displayName: string | null): [any, number] {
311
+ const result = inv<[number, number]>('0x7FEE4F07C54B6B3C', pvi(), displayName);
312
+ return [result[0], result[1]];
329
313
  }
330
314
 
331
- /**
332
- * @param ugcRequestId
333
- */
334
- static ugcClearQueryResults(ugcRequestId: number): void {
335
- inv<void>('0xE931354FEA710038', ugcRequestId);
315
+ static endTutorialSession(): void {
316
+ inv<void>('0xD0AFAFF5A51D72F7');
336
317
  }
337
318
 
338
319
  /**
339
- * @param threadId
340
- * @returns
320
+ * @param p0
321
+ * @param p2
322
+ * @returns p1
341
323
  */
342
- static getHostOfThread(threadId: number): Player | null {
343
- return createFromHandle<Player>('Player', inv<number>('0xB4A25351D79B444C', threadId, rai()));
324
+ static isPlayerAParticipantOnScript(p0: Player, p2: any): [boolean, number] {
325
+ const result = inv<[boolean, number]>('0x1AD5B71586B94820', p0.handle, pvi(), p2, rai());
326
+ return [!!result[0], result[1]];
344
327
  }
345
328
 
346
329
  /**
347
330
  * @returns
348
331
  */
349
- static isGameInProgress(): boolean {
350
- return inv<boolean>('0x10FAB35428CCC9D7', rai());
332
+ static getTotalNumFriends(): number {
333
+ return inv<number>('0xDB7ABDD203FA3704', rai());
351
334
  }
352
335
 
353
336
  /**
354
- * @param rangeStart
355
- * @param rangeEnd
337
+ * Returns ugcRequestId
338
+ *
339
+ * @param p0
340
+ * @param maxGet
341
+ * @param contentTypeName
342
+ * @param p3
343
+ * @param p4
344
+ * @param p5
356
345
  * @returns
357
346
  */
358
- static getRandomIntRanged(rangeStart: number, rangeEnd: number): number {
359
- return inv<number>('0xE30CF56F1EFA5F43', rangeStart, rangeEnd, rai());
347
+ static ugcQueryByContentType(p0: number, maxGet: number, contentTypeName: string | null, p3: number, p4: number, p5: number): number {
348
+ return inv<number>('0xF40EF49B3099E98E', p0, maxGet, contentTypeName, p3, p4, p5, rai());
360
349
  }
361
350
 
362
351
  /**
363
352
  * @param p0
353
+ * @param index
354
+ * @param p2
364
355
  * @returns
365
356
  */
366
- static acceptRsInvite(p0: number): any {
367
- return inv<number>('0xB2CEA5105AAC8DDE', p0);
357
+ static ugcQueryGetRating(p0: any, index: number, p2: number): number {
358
+ return inv<number>('0x24CD8FAEA1368379', p0, index, p2, raf());
368
359
  }
369
360
 
370
361
  /**
371
362
  * @param player
372
- * @param toggle
373
363
  */
374
- static concealPlayer(player: Player, toggle: boolean): void {
375
- inv<void>('0xBBDF066252829606', player.handle, toggle);
364
+ static N_0xD78A26024BB13E08(player: Player): void {
365
+ inv<void>('0xD78A26024BB13E08', player.handle);
376
366
  }
377
367
 
378
368
  /**
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
369
+ * Only used in R* Script fm_race_controller
380
370
  *
381
- * @param entity
382
- * @param toggle
371
+ * @param p0
383
372
  */
384
- static setEntityOnlyExistsForParticipants(entity: Entity, toggle: boolean): void {
385
- inv<void>('0xF1CA12B18AEF5298', entity.handle, toggle);
373
+ static N_0x71FA2D1880C48032(p0: boolean): void {
374
+ inv<void>('0x71FA2D1880C48032', p0);
386
375
  }
387
376
 
388
377
  /**
389
- * @param doorHash
378
+ * Note: this native was added in build 1311.23
379
+ *
380
+ * @param p0
381
+ * @param p1
382
+ * @param p2
383
+ * @param p3
384
+ * @returns
390
385
  */
391
- static setDoorNetworked(doorHash: string | number): void {
392
- inv<void>('0x51D99497ABF3F451', _h(doorHash));
386
+ static N_0x5F328FC909F0E0FF(p0: number, p1: number, p2: number, p3: number): boolean {
387
+ return !!inv<boolean>('0x5F328FC909F0E0FF', p0, p1, p2, p3, rai());
393
388
  }
394
389
 
395
390
  /**
396
- * @param p0
397
- * @param index
398
- * @returns gamerHandle
391
+ * Old name: _NETWORK_SET_VEHICLE_WHEELS_DESTRUCTIBLE
392
+ *
393
+ * @param entity
394
+ * @param p1
399
395
  */
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]];
396
+ static triggerDamageEventForZeroDamage(entity: Entity, p1: boolean): void {
397
+ inv<void>('0x0C8BC052AE87D744', entity.handle, p1);
403
398
  }
404
399
 
405
400
  /**
406
- * @param paramName
401
+ * nullsub, doesn't do anything
402
+ *
407
403
  * @returns
408
404
  */
409
- static getLaunchParamExists(paramName: string | null): any {
410
- return inv<number>('0x02E97CE283648CD9', paramName);
405
+ static getNetStatisticsInfo(): any {
406
+ return inv<number>('0x6FD992C4A1C1B986');
411
407
  }
412
408
 
413
409
  /**
414
- * @returns gamerHandle
410
+ * nullsub, doesn't do anything
415
411
  */
416
- static canReceiveInviteFromHandle(): [any, number] {
417
- const result = inv<[number, number]>('0xF23D6475640D29EB', pvi());
418
- return [result[0], result[1]];
412
+ static N_0xFC6FCF4C03F1BBF6(): void {
413
+ inv<void>('0xFC6FCF4C03F1BBF6');
419
414
  }
420
415
 
421
- /**
422
- * @param player
423
- * @param p1
424
- */
425
- static addPlayerToRecentGamersList(player: Player, p1: number): void {
426
- inv<void>('0x157D8F3DE12B307F', player.handle, p1);
416
+ static N_0x43CF999205084B4B(): void {
417
+ inv<void>('0x43CF999205084B4B');
427
418
  }
428
419
 
429
420
  /**
421
+ * p0 appears to be for MP
422
+ *
423
+ * @param p0
430
424
  * @returns
431
425
  */
432
- static N_0x232E1EB23CDB313C(): boolean {
433
- return inv<boolean>('0x232E1EB23CDB313C', rai());
434
- }
426
+ static getNumReservedMissionVehicles(p0: boolean): number {
427
+ return inv<number>('0xCF3A965906452031', p0, rai());
428
+ }
435
429
 
436
430
  /**
437
- * Note: this native was added in build 1311.23
438
- *
439
- * @returns sessionId1; sessionId2
431
+ * @param name
432
+ * @returns
440
433
  */
441
- static sessionAreSessionIdsEqual(): [boolean, number, number] {
442
- const result = inv<[boolean, number, number]>('0x4DEC5000F7B508F0', pvi(), pvi(), rai());
443
- return [!!result[0], result[1], result[2]];
434
+ static textureDownloadTextureNameIsValid(name: string | null): any {
435
+ return inv<number>('0xE2C3CEC3C0903A00', name);
444
436
  }
445
437
 
446
438
  /**
439
+ * @param scriptName
440
+ * @param p1
441
+ * @param p2
442
+ * @param p3
447
443
  * @returns
448
444
  */
449
- static isTutorialSessionChangePending(): boolean {
450
- return inv<boolean>('0x35F0B98A8387274D', rai());
445
+ static isScriptActive(scriptName: string | null, p1: number, p2: boolean, p3: number): boolean {
446
+ return !!inv<boolean>('0x9D40DF90FAD26098', scriptName, p1, p2, p3, rai());
451
447
  }
452
448
 
453
- static ugcReleaseAllCachedDescriptions(): void {
454
- inv<void>('0x68103E2247887242');
449
+ /**
450
+ * @param p0
451
+ */
452
+ static N_0x5CB8B0C846D0F30B(p0: any): void {
453
+ inv<void>('0x5CB8B0C846D0F30B', p0);
454
+ }
455
+
456
+ /**
457
+ * @returns loadingState
458
+ */
459
+ static canAccessMultiplayer(): [boolean, number] {
460
+ const result = inv<[boolean, number]>('0xAF50DA1A3F8B1BA4', pvi(), rai());
461
+ return [!!result[0], result[1]];
462
+ }
463
+
464
+ /**
465
+ * @returns p0
466
+ */
467
+ static getCurrentFriendPageData(): [any, number] {
468
+ const result = inv<[number, number]>('0xA3EEC0A5AFF3FC5B', pvi());
469
+ return [result[0], result[1]];
470
+ }
471
+
472
+ /**
473
+ * @returns p0
474
+ */
475
+ static getSizeOfHostBroadcastDataStorage(): [number, number] {
476
+ const result = inv<[number, number]>('0xBA24095EA96DFE17', pvi(), rai());
477
+ return [result[0], result[1]];
455
478
  }
456
479
 
457
480
  /**
458
- * @param animScene
459
481
  * @returns
460
482
  */
461
- static requestControlOfAnimScene(animScene: AnimScene): any {
462
- return inv<number>('0xAAA92B631B13F614', animScene.handle);
483
+ static getInstanceIdOfThisScript(): number {
484
+ return inv<number>('0x638A3A81733086DB', rai());
463
485
  }
464
486
 
465
- static setMissionFinished(): void {
466
- inv<void>('0x3B3D11CD9FFCDFC9');
487
+ /**
488
+ * @param p0
489
+ * @returns
490
+ */
491
+ static awardHasReachedMaxclaim(p0: any): any {
492
+ return inv<number>('0xFBE782B3165AC8EC', p0);
467
493
  }
468
494
 
469
495
  /**
470
- * Note: this native was added in build 1311.23
471
- *
472
496
  * @param p0
473
497
  * @returns
474
498
  */
475
- static N_0x1E4E097D71D449FB(p0: boolean): number {
476
- return inv<number>('0x1E4E097D71D449FB', p0, rai());
499
+ static N_0xBB697756309D77EE(p0: boolean): any {
500
+ return inv<number>('0xBB697756309D77EE', p0);
501
+ }
502
+
503
+ /**
504
+ * @returns
505
+ */
506
+ static autoSessionIsInstancedSession(): any {
507
+ return inv<number>('0x277865A734918AE6');
477
508
  }
478
509
 
479
510
  /**
480
- * Note: this native was added in build 1311.23
481
- *
482
511
  * @param p0
512
+ * @param p1
513
+ * @returns
483
514
  */
484
- static N_0xC1968045EEB563B7(p0: number): void {
485
- inv<void>('0xC1968045EEB563B7', p0);
515
+ static resetPopulation(p0: boolean, p1: number): any {
516
+ return inv<number>('0x101F538C25ABB39A', p0, p1);
486
517
  }
487
518
 
488
519
  /**
489
- * Old name: _CLEAR_LAUNCH_PARAMS
520
+ * @param ped
521
+ * @returns Returns the network id for the specified `ped` or `0` if the entity isn't networked.
490
522
  */
491
- static clearServiceEventArguments(): void {
492
- inv<void>('0x966DD84FB6A46017');
523
+ static pedToNet(ped: Ped): number {
524
+ return inv<number>('0x0EDEC3C276198689', ped.handle, rai());
525
+ }
526
+
527
+ /**
528
+ * @param p0
529
+ * @returns
530
+ */
531
+ static N_0x27B1AE4D8C652F08(p0: number): number {
532
+ return inv<number>('0x27B1AE4D8C652F08', p0, rai());
533
+ }
534
+
535
+ /**
536
+ * @param entity
537
+ * @returns
538
+ */
539
+ static hasEntityBeenRegisteredWithThisThread(entity: Entity): boolean {
540
+ return !!inv<boolean>('0xB07D3185E11657A5', entity.handle, rai());
493
541
  }
494
542
 
495
543
  /**
496
- * Old name: _NETWORK_ALLOW_LOCAL_ENTITY_ATTACHMENT
497
- *
498
544
  * @param entity
499
545
  * @param toggle
500
546
  */
501
- static allowRemoteAttachmentModification(entity: Entity, toggle: boolean): void {
502
- inv<void>('0x267C78C60E806B9A', entity.handle, toggle);
547
+ static setEntityGhostedToLocalPlayer(entity: Entity, toggle: boolean): void {
548
+ inv<void>('0xEE5AE9956743BA20', entity.handle, toggle);
503
549
  }
504
550
 
505
551
  /**
506
- * @param volume
552
+ * @param player
553
+ * @returns weaponHash: Refer to [enum: eWeaponHash]
507
554
  */
508
- static spawnConfigAddExclusionVolume(volume: Volume): void {
509
- inv<void>('0xEEB7818B1D307212', volume.handle);
555
+ static getEntityKillerOfPlayer(player: Player): [Entity | null, number] {
556
+ const result = inv<[number, number]>('0x42B2DAA6B596F5F8', player.handle, pvi(), rai());
557
+ return [createFromHandle<Entity>('Entity', result[0]), result[1]];
510
558
  }
511
559
 
512
560
  /**
513
- * Note: this native was added in build 1436.31
514
- *
515
561
  * @param p0
516
562
  * @returns
517
563
  */
518
- static N_0x78271BC02AE9AF83(p0: number): number {
519
- return inv<number>('0x78271BC02AE9AF83', p0, rai());
564
+ static getNumCreatedMissionPickups(p0: boolean): number {
565
+ return inv<number>('0xD2BA051B94CA9BCC', p0, rai());
566
+ }
567
+
568
+ /**
569
+ * @param entity
570
+ * @param p1
571
+ * @param p2
572
+ * @param p3
573
+ */
574
+ static setEntityVisibleInCutscene(entity: Entity, p1: boolean, p2: boolean, p3: number): void {
575
+ inv<void>('0xE0031D3C8F36AB82', entity.handle, p1, p2, p3);
576
+ }
577
+
578
+ /**
579
+ * Hardcoded to return -1.
580
+ *
581
+ * @param p1
582
+ * @returns p0
583
+ */
584
+ static displaynamesFromHandlesStart(p1: any): [number, number] {
585
+ const result = inv<[number, number]>('0xD66C9E72B3CC4982', pvi(), p1, rai());
586
+ return [result[0], result[1]];
520
587
  }
521
588
 
522
589
  /**
523
- * @param netID
524
590
  * @returns
525
591
  */
526
- static isDamageTrackerActiveOnNetworkId(netID: number): boolean {
527
- return inv<boolean>('0x6E192E33AD436366', netID, rai());
592
+ static N_0xCC4E72C339461ED1(): any {
593
+ return inv<number>('0xCC4E72C339461ED1');
528
594
  }
529
595
 
530
596
  /**
531
- * Always returns -1. Seems to be XB1 specific.
597
+ * nullsub, doesn't do anything
532
598
  *
533
- * @returns gamerHandle
599
+ * @returns
534
600
  */
535
- static startUserContentPermissionsCheck(): [number, number] {
536
- const result = inv<[number, number]>('0xDEB2B99A1AF1A2A6', pvi(), rai());
601
+ static N_0x160F0CE6D76A39C9(): any {
602
+ return inv<number>('0x160F0CE6D76A39C9');
603
+ }
604
+
605
+ /**
606
+ * Old name: _NETWORK_GET_OLDEST_RESEND_COUNT_FOR_PLAYER
607
+ *
608
+ * @param player
609
+ * @returns
610
+ */
611
+ static getHighestReliableResendCount(player: Player): number {
612
+ return inv<number>('0x52C1EADAF7B10302', player.handle, rai());
613
+ }
614
+
615
+ /**
616
+ * Checks for session flag 'SF_PRIVATE'
617
+ *
618
+ * @returns
619
+ */
620
+ static sessionIsPrivate(): boolean {
621
+ return !!inv<boolean>('0xCEF70AA5B3F89BA1', rai());
622
+ }
623
+
624
+ /**
625
+ * @param toggle
626
+ */
627
+ static autoSessionSetAllowedToSplit(toggle: boolean): void {
628
+ inv<void>('0x0A428058079EE65C', toggle);
629
+ }
630
+
631
+ static N_0x19B52C20B5C4757C(): void {
632
+ inv<void>('0x19B52C20B5C4757C');
633
+ }
634
+
635
+ /**
636
+ * @returns sessionRequestId
637
+ */
638
+ static sessionIsNsrrSuccess(): [any, number] {
639
+ const result = inv<[number, number]>('0x0F44A5C78D114922', pvi());
537
640
  return [result[0], result[1]];
538
641
  }
539
642
 
643
+ /**
644
+ * @returns
645
+ */
646
+ static isPlatformInvitePending(): any {
647
+ return inv<number>('0xFC4165C9165C166F');
648
+ }
649
+
650
+ /**
651
+ * @returns
652
+ */
653
+ static isInMpCutscene(): boolean {
654
+ return !!inv<boolean>('0x6CC27C9FA2040220', rai());
655
+ }
656
+
657
+ /**
658
+ * @returns
659
+ */
660
+ static N_0x273E04A3A7AD1F2D(): boolean {
661
+ return !!inv<boolean>('0x273E04A3A7AD1F2D', rai());
662
+ }
663
+
540
664
  /**
541
665
  * gets the object id of a network id
542
666
  *
@@ -588,7 +712,7 @@ export class Network {
588
712
  * @returns
589
713
  */
590
714
  static isHost(): boolean {
591
- return inv<boolean>('0x8DB296B814EDDA07', rai());
715
+ return !!inv<boolean>('0x8DB296B814EDDA07', rai());
592
716
  }
593
717
 
594
718
  /**
@@ -620,7 +744,7 @@ export class Network {
620
744
  * @returns
621
745
  */
622
746
  static N_0x9E5A47744C0F0376(p0: number): boolean {
623
- return inv<boolean>('0x9E5A47744C0F0376', p0, rai());
747
+ return !!inv<boolean>('0x9E5A47744C0F0376', p0, rai());
624
748
  }
625
749
 
626
750
  /**
@@ -675,14 +799,14 @@ export class Network {
675
799
  * @returns
676
800
  */
677
801
  static isInSession(): boolean {
678
- return inv<boolean>('0xCA97246103B63917', rai());
802
+ return !!inv<boolean>('0xCA97246103B63917', rai());
679
803
  }
680
804
 
681
805
  /**
682
806
  * @returns
683
807
  */
684
808
  static isTunableCloudRequestPending(): boolean {
685
- return inv<boolean>('0x0467C11ED88B7D28', rai());
809
+ return !!inv<boolean>('0x0467C11ED88B7D28', rai());
686
810
  }
687
811
 
688
812
  /**
@@ -692,7 +816,7 @@ export class Network {
692
816
  * @returns
693
817
  */
694
818
  static isConnectedViaRelay(player: Player): boolean {
695
- return inv<boolean>('0x16D3D49902F697BB', player.handle, rai());
819
+ return !!inv<boolean>('0x16D3D49902F697BB', player.handle, rai());
696
820
  }
697
821
 
698
822
  /**
@@ -735,7 +859,7 @@ export class Network {
735
859
  * @returns
736
860
  */
737
861
  static haveRosBannedPriv(): boolean {
738
- return inv<boolean>('0x8020A73847E0CA7D', rai());
862
+ return !!inv<boolean>('0x8020A73847E0CA7D', rai());
739
863
  }
740
864
 
741
865
  /**
@@ -798,7 +922,7 @@ export class Network {
798
922
  * @returns
799
923
  */
800
924
  static hasValidRosCredentials(): boolean {
801
- return inv<boolean>('0x85443FF4C328F53B', rai());
925
+ return !!inv<boolean>('0x85443FF4C328F53B', rai());
802
926
  }
803
927
 
804
928
  /**
@@ -809,139 +933,142 @@ export class Network {
809
933
  * @returns
810
934
  */
811
935
  static canRegisterMissionEntities(ped_amt: number, vehicle_amt: number, object_amt: number, pickup_amt: number): boolean {
812
- return inv<boolean>('0x69778E7564BADE6D', ped_amt, vehicle_amt, object_amt, pickup_amt, rai());
936
+ return !!inv<boolean>('0x69778E7564BADE6D', ped_amt, vehicle_amt, object_amt, pickup_amt, rai());
813
937
  }
814
938
 
815
939
  /**
940
+ * @param description
941
+ * @param length
816
942
  * @returns
817
943
  */
818
- static didRecentGamerNamesRequestSucceed(): any {
819
- return inv<number>('0x12AEB56B489415C5');
944
+ static ugcGetCachedDescription(description: string | number, length: number): string | null {
945
+ return inv<string>('0x40F7E66472DF3E5C', _h(description), length, ras());
820
946
  }
821
947
 
822
948
  /**
823
- * @returns sessionRequestId
949
+ * @param toggle
824
950
  */
825
- static sessionCancelRequest(): [any, number] {
826
- const result = inv<[number, number]>('0xE72E5C1289BD1F40', pvi());
827
- return [result[0], result[1]];
951
+ static N_0x780A13F780A13F1B(toggle: boolean): void {
952
+ inv<void>('0x780A13F780A13F1B', toggle);
828
953
  }
829
954
 
830
955
  /**
831
- * @param message
956
+ * @param p1
832
957
  * @returns gamerHandle
833
958
  */
834
- static N_0x5759160AC17C13CE(message: string | null): number {
835
- const result = inv<number>('0x5759160AC17C13CE', pvi(), message);
836
- return result;
959
+ static requestPedshotTextureMultiplayerDownload(p1: number): [string | null, number] {
960
+ const result = inv<[string, number]>('0xB5C4B18B12A2AF23', pvi(), p1, ras());
961
+ return [result[0], result[1]];
837
962
  }
838
963
 
839
964
  /**
840
- * @param id
965
+ * @param setting
966
+ */
967
+ static N_0xE3AB5EEFCB6671A2(setting: number): void {
968
+ inv<void>('0xE3AB5EEFCB6671A2', setting);
969
+ }
970
+
971
+ /**
972
+ * @param p0
841
973
  * @returns
842
974
  */
843
- static cloudHasRequestCompleted(id: number): boolean {
844
- return inv<boolean>('0x4C61B39930D045DA', id, rai());
975
+ static N_0x3AA0CDC63696166D(p0: number): boolean {
976
+ return !!inv<boolean>('0x3AA0CDC63696166D', p0, rai());
845
977
  }
846
978
 
847
979
  /**
848
- * nullsub, doesn't do anything
980
+ * @param p0
981
+ * @param p1
982
+ * @returns
849
983
  */
850
- static N_0xACC44768AF229042(): void {
851
- inv<void>('0xACC44768AF229042');
984
+ static N_0xE39600E50D608693(p0: any, p1: any): boolean {
985
+ return !!inv<boolean>('0xE39600E50D608693', p0, p1, rai());
852
986
  }
853
987
 
854
988
  /**
855
- * Hardcoded to return zero. ==== PS4 specific info ==== Returns some sort of unavailable reason:
856
- * -1 = REASON_INVALID
857
- * 0 = REASON_OTHER
858
- * 1 = REASON_SYSTEM_UPDATE
859
- * 2 = REASON_GAME_UPDATE
860
- * 3 = REASON_SIGNED_OUT
861
- * 4 = REASON_AGE
862
- * 5 = REASON_CONNECTION =================================
863
- *
989
+ * @param flags Refer to [enum: eSessionFlags]
864
990
  * @returns
865
991
  */
866
- static getNpUnavailableReason(): number {
867
- return inv<number>('0x74FB3E29E6D10FA9', rai());
992
+ static sessionAddSessionFlags(flags: number): any {
993
+ return inv<number>('0xE546BDA1B3E288EE', flags);
868
994
  }
869
995
 
870
996
  /**
871
- * @param netId
997
+ * @param p0
998
+ * @param playerCount
872
999
  * @returns
873
1000
  */
874
- static netToPropset(netId: number): PropSet | null {
875
- return createFromHandle<PropSet>('PropSet', inv<number>('0xD08066E00D26C448', netId, rai()));
1001
+ static requestRecentGamerNames(p0: number, playerCount: number): any {
1002
+ return inv<number>('0x6D206D383BB5F6B1', p0, playerCount);
876
1003
  }
877
1004
 
878
1005
  /**
879
- * @param paramName
1006
+ * @returns
880
1007
  */
881
- static clearLaunchParam(paramName: string | null): void {
882
- inv<void>('0x782C94DB6469634D', paramName);
1008
+ static getHostOfThisScript(): Player | null {
1009
+ return createFromHandle<Player>('Player', inv<number>('0xC7B4D79B01FA7A5C', rai()));
883
1010
  }
884
1011
 
885
1012
  /**
886
- * @param p0
1013
+ * @param animScene
1014
+ * @returns
887
1015
  */
888
- static N_0x603469298A4308AF(p0: boolean): void {
889
- inv<void>('0x603469298A4308AF', p0);
1016
+ static hasControlOfAnimScene(animScene: AnimScene): any {
1017
+ return inv<number>('0x26A5C12FACFF8724', animScene.handle);
890
1018
  }
891
1019
 
892
1020
  /**
893
- * @param player
894
- * @returns
1021
+ * Equivalent to NETWORK_REQUEST_SESSION_SEAMLESS if userHash == 0.
1022
+ * Otherwise it is equivalent to NETWORK_SESSION_REQUEST_SESSION_COMPETITIVE(flags, MATCHTYPE_SEAMLESS, userHash, 0, sessionRequestId); p1 is unused
1023
+ *
1024
+ * @param flags
1025
+ * @param seamlessType
1026
+ * @param userHash
1027
+ * @returns sessionRequestId
895
1028
  */
896
- static isAimCamActive(player: Player): any {
897
- return inv<number>('0x8E7CE19219669AEB', player.handle);
1029
+ static sessionRequestSessionSeamless(flags: number, seamlessType: number, userHash: number): [any, number] {
1030
+ const result = inv<[number, number]>('0x2989E131FDE37E97', flags, seamlessType, userHash, pvi());
1031
+ return [result[0], result[1]];
898
1032
  }
899
1033
 
900
1034
  /**
901
- * Note: scripts seem to indicate that this was renamed to NETWORK_IS_PLAYER_IN_MP_FAST_INSTANCE
902
- *
903
- * @param player
904
1035
  * @returns
905
1036
  */
906
- static isPlayerInMpCutscene(player: Player): boolean {
907
- return inv<boolean>('0x63F9EE203C3619F2', player.handle, rai());
1037
+ static hasCompletedMpIntroFlowOnCurrentSlot(): any {
1038
+ return inv<number>('0xDD73C9838CE7181D');
908
1039
  }
909
1040
 
910
1041
  /**
911
- * @param time
1042
+ * @param configProperty
1043
+ * @param include
912
1044
  */
913
- static setLocalPlayerInvincibleTime(time: number): void {
914
- inv<void>('0x2D95C7E2D7E07307', time);
1045
+ static spawnConfigAddPropertyScripted(configProperty: number, include: boolean): void {
1046
+ inv<void>('0x44D59EC597BBF348', configProperty, include);
915
1047
  }
916
1048
 
917
1049
  /**
918
1050
  * @param p0
919
1051
  * @returns
920
1052
  */
921
- static N_0x3F2EE18A3E294801(p0: number): number {
922
- return inv<number>('0x3F2EE18A3E294801', p0, rai());
923
- }
924
-
925
- /**
926
- * @param player
927
- */
928
- static N_0x7B3FF2D193628126(player: Player): void {
929
- inv<void>('0x7B3FF2D193628126', player.handle);
1053
+ static N_0xA2837A5E21FB5A58(p0: any): boolean {
1054
+ return !!inv<boolean>('0xA2837A5E21FB5A58', p0, rai());
930
1055
  }
931
1056
 
932
1057
  /**
933
- * @param milliseconds
1058
+ * @returns
934
1059
  */
935
- static clearClockOverrideOvertime(milliseconds: number): void {
936
- inv<void>('0x65F040D91001ED4B', milliseconds);
1060
+ static N_0x0E54D4DA6018FF8E(): boolean {
1061
+ return !!inv<boolean>('0x0E54D4DA6018FF8E', rai());
937
1062
  }
938
1063
 
939
1064
  /**
940
- * @param player
1065
+ * Returns the entity associated with the given network ID.
1066
+ *
1067
+ * @param networkId
941
1068
  * @returns
942
1069
  */
943
- static getPlayerTutorialSessionInstance(player: Player): number {
944
- return inv<number>('0x3B39236746714134', player.handle, rai());
1070
+ static N_0x4538EE7C321590BC(networkId: number): Entity | null {
1071
+ return createFromHandle<Entity>('Entity', inv<number>('0x4538EE7C321590BC', networkId, rai()));
945
1072
  }
946
1073
 
947
1074
  /**
@@ -949,7 +1076,7 @@ export class Network {
949
1076
  * @returns
950
1077
  */
951
1078
  static canRegisterMissionVehicles(amount: number): boolean {
952
- return inv<boolean>('0x7277F1F2E085EE74', amount, rai());
1079
+ return !!inv<boolean>('0x7277F1F2E085EE74', amount, rai());
953
1080
  }
954
1081
 
955
1082
  /**
@@ -982,7 +1109,7 @@ export class Network {
982
1109
  * @returns
983
1110
  */
984
1111
  static N_0xCD53E6CBF609C012(ugcRequestId: number): boolean {
985
- return inv<boolean>('0xCD53E6CBF609C012', ugcRequestId, rai());
1112
+ return !!inv<boolean>('0xCD53E6CBF609C012', ugcRequestId, rai());
986
1113
  }
987
1114
 
988
1115
  /**
@@ -1099,304 +1226,176 @@ export class Network {
1099
1226
  return inv<number>('0xB72999D3120599DF', texture, personaPhotoType, formatIndex);
1100
1227
  }
1101
1228
 
1102
- static N_0x9B39B0555CC692B5(): void {
1103
- inv<void>('0x9B39B0555CC692B5');
1104
- }
1105
-
1106
1229
  /**
1107
1230
  * @param p0
1231
+ * @param p1
1108
1232
  * @returns
1109
1233
  */
1110
- static N_0xE79BA3BC265895DA(p0: number): string | null {
1111
- return inv<string>('0xE79BA3BC265895DA', p0, ras());
1112
- }
1113
-
1114
- /**
1115
- * @param netPlaylistActivity
1116
- */
1117
- static activitySetCurrent(netPlaylistActivity: number): void {
1118
- inv<void>('0x9ADAC065D9F6706F', netPlaylistActivity);
1119
- }
1120
-
1121
- /**
1122
- * @param queueGroup
1123
- * @returns
1124
- */
1125
- static sessionIsRequestInProgressByQueueGroup(queueGroup: number): any {
1126
- return inv<number>('0x9E762A595CF88E4A', queueGroup);
1234
+ static N_0x271F95E55C663B8B(p0: any, p1: any): any {
1235
+ return inv<number>('0x271F95E55C663B8B', p0, p1);
1127
1236
  }
1128
1237
 
1129
1238
  /**
1130
1239
  * @returns
1131
1240
  */
1132
- static pedmugshotGetStatus(): number {
1133
- return inv<number>('0xCBAC13F065C47596', rai());
1241
+ static sessionGetSessionFlags(): number {
1242
+ return inv<number>('0x51F33DBC1A41CBFD', rai());
1134
1243
  }
1135
1244
 
1136
1245
  /**
1246
+ * Note: this native was added in build 1311.23
1247
+ *
1137
1248
  * @returns
1138
1249
  */
1139
- static getTunableCloudCrc(): number {
1140
- return inv<number>('0x10BD227A753B0D84', rai());
1250
+ static N_0x039AD6B57D5179FF(): number {
1251
+ return inv<number>('0x039AD6B57D5179FF', rai());
1141
1252
  }
1142
1253
 
1143
1254
  /**
1144
- * Returns true if the passed value is less than 32.
1255
+ * Old name: _NETWORK_GET_NUM_UNACKED_FOR_PLAYER
1145
1256
  *
1146
1257
  * @param player
1147
1258
  * @returns
1148
1259
  */
1149
- static isPlayerIndexValid(player: Player): any {
1150
- return inv<number>('0x255A5EF65EDA9167', player.handle);
1260
+ static getNumUnackedReliables(player: Player): number {
1261
+ return inv<number>('0xFF8FCF9FFC458A1C', player.handle, rai());
1151
1262
  }
1152
1263
 
1153
1264
  /**
1154
1265
  * @param entity
1155
- * @returns
1266
+ * @param toggle
1156
1267
  */
1157
- static getEntityIsNetworked(entity: Entity): boolean {
1158
- return inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
1268
+ static allowEntityFadingForInstances(entity: Entity, toggle: boolean): void {
1269
+ inv<void>('0xF3354D6CA46F419D', entity.handle, toggle);
1159
1270
  }
1160
1271
 
1161
1272
  /**
1162
- * @param vehicle
1163
- * @returns Returns the network id for the specified `vehicle`, or `0` if the vehicle isn't networked.
1273
+ * Only used in R* Script startup_clip
1164
1274
  */
1165
- static vehToNet(vehicle: Vehicle): number {
1166
- return inv<number>('0xB4C94523F023419C', vehicle.handle, rai());
1275
+ static N_0xFD4272A137703449(): void {
1276
+ inv<void>('0xFD4272A137703449');
1167
1277
  }
1168
1278
 
1169
1279
  /**
1170
- * Only used in R* SP Scripts
1171
- *
1172
1280
  * @param player
1173
- * @param personaPhotoLocalCacheType
1174
- * @returns
1175
- */
1176
- static requestPedshotTextureLocalBackupDownload(player: number, personaPhotoLocalCacheType: number): string | null {
1177
- return inv<string>('0x356F9FB0698C1FEB', player, personaPhotoLocalCacheType, ras());
1178
- }
1179
-
1180
- /**
1181
- * @param p0
1281
+ * @param type
1182
1282
  */
1183
- static N_0xE5634491A58C2703(p0: number): void {
1184
- inv<void>('0xE5634491A58C2703', f(p0));
1283
+ static N_0x51951DE06C0D1C40(player: Player, type: number): void {
1284
+ inv<void>('0x51951DE06C0D1C40', player.handle, type);
1185
1285
  }
1186
1286
 
1187
1287
  /**
1188
1288
  * @param p0
1189
- * @param p1
1190
- * @param p2
1191
- * @param p3
1192
1289
  * @returns
1193
1290
  */
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]];
1291
+ static N_0x5ED39DA62BEB1330(p0: number): any {
1292
+ return inv<number>('0x5ED39DA62BEB1330', p0);
1204
1293
  }
1205
1294
 
1206
1295
  /**
1296
+ * @param p0
1297
+ * @param index
1207
1298
  * @returns
1208
1299
  */
1209
- static isResettingPopulation(): any {
1210
- return inv<number>('0x1BB50CD340A996E6');
1300
+ static ugcQueryGetName(p0: any, index: number): string | null {
1301
+ return inv<string>('0x2D053EA815702DD1', p0, index, ras());
1211
1302
  }
1212
1303
 
1213
1304
  /**
1214
- * Note: this native was added in build 1311.23
1215
- *
1216
1305
  * @param p0
1306
+ * @param index
1217
1307
  * @returns
1218
1308
  */
1219
- static N_0x039B692B3318FAB6(p0: boolean): number {
1220
- return inv<number>('0x039B692B3318FAB6', p0, rai());
1309
+ static ugcQueryGetBookMarked(p0: any, index: number): any {
1310
+ return inv<number>('0x98539FC453AEA639', p0, index);
1221
1311
  }
1222
1312
 
1223
1313
  /**
1224
- * Always returns 60
1225
- *
1226
- * @returns
1314
+ * @param entity
1315
+ * @param timer
1316
+ * @param p2
1227
1317
  */
1228
- static getMaxNumNetworkObjects(): number {
1229
- return inv<number>('0xC7BE335216B5EC7C', rai());
1318
+ static setNetworkRespotTimer(entity: Entity, timer: number, p2: boolean): void {
1319
+ inv<void>('0x442B4347B6EC36E8', entity.handle, timer, p2);
1230
1320
  }
1231
1321
 
1232
1322
  /**
1233
- * Checks if the user has ROS privilege 14.
1234
- *
1235
- * @returns
1323
+ * @returns gamerHandle
1236
1324
  */
1237
- static ugcHasPrivilege(): any {
1238
- return inv<number>('0x6506BFA755FB209C');
1325
+ static getGamertagFromFriend(): [string | null, number] {
1326
+ const result = inv<[string, number]>('0x5659D87BE674AB17', pvi(), ras());
1327
+ return [result[0], result[1]];
1239
1328
  }
1240
1329
 
1241
1330
  /**
1242
- * @param networkId
1243
- * @param bStopCloning
1331
+ * @param player
1332
+ * @returns
1244
1333
  */
1245
- static setNetworkIdStopCloning(networkId: number, bStopCloning: boolean): void {
1246
- inv<void>('0x9ED3108D6847760A', networkId, bStopCloning);
1334
+ static getPlayerWaypointIsActive(player: Player): any {
1335
+ return inv<number>('0xDCC4B7F7112E8AB7', player.handle);
1247
1336
  }
1248
1337
 
1249
1338
  /**
1250
- * Returns CGameConfig->ConfigOnlineServices->RosTitleName (see gameconfig.xml)
1251
- *
1339
+ * @param inviteIndex
1252
1340
  * @returns
1253
1341
  */
1254
- static getRosTitleName(): string | null {
1255
- return inv<string>('0xAC6153A0722F524C', ras());
1342
+ static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
1343
+ return !!inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
1256
1344
  }
1257
1345
 
1258
1346
  /**
1259
- * @returns
1347
+ * @param netID
1260
1348
  */
1261
- static getScriptStatus(): number {
1262
- return inv<number>('0x57D158647A6BFABF', rai());
1349
+ static disableProximityMigration(netID: number): void {
1350
+ inv<void>('0x407091CF6037118E', netID);
1263
1351
  }
1264
1352
 
1265
1353
  /**
1266
1354
  * @param p0
1267
1355
  * @param p1
1268
- * @param p2
1269
- * @param p3
1356
+ * @param dataSize
1357
+ * @returns outData
1270
1358
  */
1271
- static setNetworkIdVisibleInCutscene(p0: any, p1: any, p2: any, p3: any): void {
1272
- inv<void>('0xA6928482543022B4', p0, p1, p2, p3);
1359
+ static getRecentGamerNames(p0: number, p1: number, dataSize: number): [any, number] {
1360
+ const result = inv<[number, number]>('0xFEFCC345CE357453', p0, p1, pvi(), dataSize);
1361
+ return [result[0], result[1]];
1273
1362
  }
1274
1363
 
1275
1364
  /**
1276
- * @param amount
1365
+ * @returns
1277
1366
  */
1278
- static reserveNetworkMissionObjects(amount: number): void {
1279
- inv<void>('0x4E5C93BD0C32FBF8', amount);
1367
+ static isInTutorialSession(): boolean {
1368
+ return !!inv<boolean>('0xADA24309FE08DACF', rai());
1280
1369
  }
1281
1370
 
1282
1371
  /**
1283
- * @param entity
1284
- * @param player
1285
- * @returns p2
1372
+ * @param tunableContext
1373
+ * @param tunableName
1374
+ * @returns value
1286
1375
  */
1287
- static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
1288
- const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
1376
+ static accessTunableInt(tunableContext: string | number, tunableName: string | number): [boolean, number] {
1377
+ const result = inv<[boolean, number]>('0x8BE1146DFD5D4468', _h(tunableContext), _h(tunableName), pvi(), rai());
1289
1378
  return [!!result[0], result[1]];
1290
1379
  }
1291
1380
 
1292
1381
  /**
1382
+ * @param tunableContext
1383
+ * @param tunableName
1384
+ * @param defaultValue
1293
1385
  * @returns
1294
1386
  */
1295
- static autoSessionIsAllowedToMerge(): any {
1296
- return inv<number>('0xAADED99A6B268A27');
1387
+ static tryAccessTunableIntHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
1388
+ return inv<number>('0xA25E006B36719774', _h(tunableContext), _h(tunableName), defaultValue, rai());
1297
1389
  }
1298
1390
 
1299
1391
  /**
1300
- * @param p0
1301
- * @param p1
1302
- * @param p2
1392
+ * @param tunableContext
1393
+ * @param tunableName
1394
+ * @param defaultValue
1303
1395
  * @returns
1304
1396
  */
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());
1346
- return [result[0], result[1]];
1347
- }
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
-
1365
- /**
1366
- * @returns
1367
- */
1368
- static isInTutorialSession(): boolean {
1369
- return inv<boolean>('0xADA24309FE08DACF', rai());
1370
- }
1371
-
1372
- /**
1373
- * @param tunableContext
1374
- * @param tunableName
1375
- * @returns value
1376
- */
1377
- static accessTunableInt(tunableContext: string | number, tunableName: string | number): [boolean, number] {
1378
- const result = inv<[boolean, number]>('0x8BE1146DFD5D4468', _h(tunableContext), _h(tunableName), pvi(), rai());
1379
- return [!!result[0], result[1]];
1380
- }
1381
-
1382
- /**
1383
- * @param tunableContext
1384
- * @param tunableName
1385
- * @param defaultValue
1386
- * @returns
1387
- */
1388
- static tryAccessTunableIntHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
1389
- return inv<number>('0xA25E006B36719774', _h(tunableContext), _h(tunableName), defaultValue, rai());
1390
- }
1391
-
1392
- /**
1393
- * @param tunableContext
1394
- * @param tunableName
1395
- * @param defaultValue
1396
- * @returns
1397
- */
1398
- static tryAccessTunableBoolHash(tunableContext: string | number, tunableName: string | number, defaultValue: boolean): boolean {
1399
- return inv<boolean>('0xB2AD5D29A99D4B26', _h(tunableContext), _h(tunableName), defaultValue, rai());
1397
+ static tryAccessTunableBoolHash(tunableContext: string | number, tunableName: string | number, defaultValue: boolean): boolean {
1398
+ return !!inv<boolean>('0xB2AD5D29A99D4B26', _h(tunableContext), _h(tunableName), defaultValue, rai());
1400
1399
  }
1401
1400
 
1402
1401
  /**
@@ -1411,7 +1410,7 @@ export class Network {
1411
1410
  * @returns
1412
1411
  */
1413
1412
  static isNetworkIdOwnedByParticipant(netId: number): boolean {
1414
- return inv<boolean>('0xA1607996431332DF', netId, rai());
1413
+ return !!inv<boolean>('0xA1607996431332DF', netId, rai());
1415
1414
  }
1416
1415
 
1417
1416
  /**
@@ -1459,7 +1458,7 @@ export class Network {
1459
1458
  * @returns
1460
1459
  */
1461
1460
  static ugcIsBookMarked(contentId: string | null): boolean {
1462
- return inv<boolean>('0xE42D1042F09865FE', contentId, rai());
1461
+ return !!inv<boolean>('0xE42D1042F09865FE', contentId, rai());
1463
1462
  }
1464
1463
 
1465
1464
  /**
@@ -1558,7 +1557,7 @@ export class Network {
1558
1557
  * @returns
1559
1558
  */
1560
1559
  static N_0xA47D48D06AA5A188(): boolean {
1561
- return inv<boolean>('0xA47D48D06AA5A188', rai());
1560
+ return !!inv<boolean>('0xA47D48D06AA5A188', rai());
1562
1561
  }
1563
1562
 
1564
1563
  /**
@@ -1576,7 +1575,7 @@ export class Network {
1576
1575
  * @returns
1577
1576
  */
1578
1577
  static N_0x26A867C0B7A456D1(entity: Entity): boolean {
1579
- return inv<boolean>('0x26A867C0B7A456D1', entity.handle, rai());
1578
+ return !!inv<boolean>('0x26A867C0B7A456D1', entity.handle, rai());
1580
1579
  }
1581
1580
 
1582
1581
  /**
@@ -1599,7 +1598,7 @@ export class Network {
1599
1598
  * @returns
1600
1599
  */
1601
1600
  static N_0xDA1BFED8582F61F0(): boolean {
1602
- return inv<boolean>('0xDA1BFED8582F61F0', rai());
1601
+ return !!inv<boolean>('0xDA1BFED8582F61F0', rai());
1603
1602
  }
1604
1603
 
1605
1604
  /**
@@ -1616,7 +1615,7 @@ export class Network {
1616
1615
  * @returns
1617
1616
  */
1618
1617
  static isCloudAvailable(): boolean {
1619
- return inv<boolean>('0x9A4CF4F48AD77302', rai());
1618
+ return !!inv<boolean>('0x9A4CF4F48AD77302', rai());
1620
1619
  }
1621
1620
 
1622
1621
  /**
@@ -1638,152 +1637,139 @@ export class Network {
1638
1637
  }
1639
1638
 
1640
1639
  /**
1641
- * _NETWORK_GET_A* - _NETWORK_GET_D*
1642
- *
1643
- * @param ped
1644
- * @returns p1
1640
+ * @returns
1645
1641
  */
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]];
1642
+ static N_0x18B94666CF610AEB(): boolean {
1643
+ return !!inv<boolean>('0x18B94666CF610AEB', rai());
1649
1644
  }
1650
1645
 
1651
1646
  /**
1652
- * @param p1
1653
- * @returns gamerHandle
1647
+ * p0 appears to be for MP
1648
+ *
1649
+ * @param p0
1650
+ * @returns
1654
1651
  */
1655
- static getGamerStatus(p1: number): [number, number] {
1656
- const result = inv<[number, number]>('0xDDAEB478E58F8DEA', pvi(), p1, rai());
1657
- return [result[0], result[1]];
1652
+ static getNumReservedMissionObjects(p0: boolean): number {
1653
+ return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
1658
1654
  }
1659
1655
 
1660
1656
  /**
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
1657
+ * @returns
1673
1658
  */
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]];
1659
+ static hasSocialClubAccount(): boolean {
1660
+ return !!inv<boolean>('0x67A5589628E0CFF6', rai());
1677
1661
  }
1678
1662
 
1679
- static N_0xA63E4F050F20021F(): void {
1680
- inv<void>('0xA63E4F050F20021F');
1663
+ /**
1664
+ * @param netHandle
1665
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
1666
+ */
1667
+ static netToPed(netHandle: number): Ped | null {
1668
+ return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
1681
1669
  }
1682
1670
 
1683
1671
  /**
1684
- * @param amount
1672
+ * 0 = succeeded
1673
+ * 1 = pending
1674
+ * 2 = failed
1675
+ *
1676
+ * @param textureDownloadId
1685
1677
  * @returns
1686
1678
  */
1687
- static canRegisterMissionObjects(amount: number): boolean {
1688
- return inv<boolean>('0x800DD4721A8B008B', amount, rai());
1679
+ static getStatusOfTextureDownload(textureDownloadId: number): number {
1680
+ return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
1689
1681
  }
1690
1682
 
1691
1683
  /**
1692
- * @param description
1693
- * @returns
1684
+ * @returns gamerHandle
1694
1685
  */
1695
- static ugcReleaseCachedDescription(description: string | number): boolean {
1696
- return inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
1686
+ static N_0xF23A6D6C11D8EC15(): [boolean, number] {
1687
+ const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
1688
+ return [!!result[0], result[1]];
1697
1689
  }
1698
1690
 
1699
1691
  /**
1700
- * @param toggle
1692
+ * Always returns 40
1693
+ *
1694
+ * @returns
1701
1695
  */
1702
- static setFriendlyFireOption(toggle: boolean): void {
1703
- inv<void>('0xF808475FA571D823', toggle);
1696
+ static getMaxNumNetworkVehicles(): number {
1697
+ return inv<number>('0x0AFCE529F69B21FF', rai());
1704
1698
  }
1705
1699
 
1706
1700
  /**
1707
- * @returns sessionRequestId
1701
+ * @param netId
1702
+ * @param p1
1703
+ * @param p2
1708
1704
  */
1709
- static sessionTransitionToSession(): [any, number] {
1710
- const result = inv<[number, number]>('0xF20B18A330E6DB5C', pvi());
1711
- return [result[0], result[1]];
1705
+ static keepNetworkIdInFastInstance(netId: number, p1: boolean, p2: number): void {
1706
+ inv<void>('0xE1BC73D6815BA361', netId, p1, p2);
1712
1707
  }
1713
1708
 
1714
1709
  /**
1715
- * Hardcoded to return false.
1716
- *
1717
- * @returns
1710
+ * @returns gamerHandle
1718
1711
  */
1719
- static isPromotionEnabled(): any {
1720
- return inv<number>('0x8FF6059DA26E688A');
1712
+ static isHandleValid(): [boolean, number] {
1713
+ const result = inv<[boolean, number]>('0x6F79B93B0A8E4133', pvi(), rai());
1714
+ return [!!result[0], result[1]];
1721
1715
  }
1722
1716
 
1723
1717
  /**
1724
- * @param playersToTake
1725
- * @param maxInstancePlayers
1726
- * @param sessionFlags
1727
- * @param bucketId
1728
- * @returns
1718
+ * @param p0
1719
+ * @returns p1
1729
1720
  */
1730
- static autoSessionSplitSession(playersToTake: number, maxInstancePlayers: number, sessionFlags: number, bucketId: number): any {
1731
- return inv<number>('0xC223D299C670413D', playersToTake, maxInstancePlayers, sessionFlags, bucketId);
1721
+ static N_0x691E4DE5309EAEFC(p0: any): number {
1722
+ const result = inv<number>('0x691E4DE5309EAEFC', p0, pvi());
1723
+ return result;
1732
1724
  }
1733
1725
 
1734
1726
  /**
1735
- * @param p0
1727
+ * @param entity
1736
1728
  * @returns
1737
1729
  */
1738
- static N_0x923346025512DFB7(p0: any): any {
1739
- return inv<number>('0x923346025512DFB7', p0);
1730
+ static getNetworkIdFromEntity(entity: Entity): number {
1731
+ return inv<number>('0xA11700682F3AD45C', entity.handle, rai());
1740
1732
  }
1741
1733
 
1742
1734
  /**
1743
- * @returns args
1735
+ * Only used in SP R* Script dominoes_sp: p1 = 0
1736
+ *
1737
+ * @param player
1738
+ * @param p1
1744
1739
  */
1745
- static resurrectLocalPlayer2(): number {
1746
- const result = inv<number>('0x4154B7D8C75E5DCF', pvi());
1747
- return result;
1740
+ static N_0x02C4C6C2900D84DF(player: Player, p1: any): void {
1741
+ inv<void>('0x02C4C6C2900D84DF', player.handle, p1);
1748
1742
  }
1749
1743
 
1750
1744
  /**
1751
- * Only used in R* Script net_stable_manager
1752
- *
1753
- * @param threadId
1754
- * @returns pedMax; vehicleMax; unkMax; pedMin; vehicleMin; unkMin
1745
+ * @returns
1755
1746
  */
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]];
1747
+ static isSessionActive(): boolean {
1748
+ return !!inv<boolean>('0xD83C2B94E7508980', rai());
1759
1749
  }
1760
1750
 
1761
1751
  /**
1762
- * @param p0
1752
+ * @param animScene
1763
1753
  * @returns
1764
1754
  */
1765
- static N_0xD7BAD4062074B9C1(p0: any): boolean {
1766
- return inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
1755
+ static animSceneToNet(animScene: AnimScene): number {
1756
+ return inv<number>('0xE0D73CDDEA79DDCD', animScene.handle, rai());
1767
1757
  }
1768
1758
 
1769
1759
  /**
1770
- * @param hour
1771
- * @param minute
1772
- * @param second
1773
- * @param transitionTime
1774
- * @param pauseClock
1760
+ * @returns
1775
1761
  */
1776
- static clockTimeOverride(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean): void {
1777
- inv<void>('0x669E223E64B1903C', hour, minute, second, transitionTime, pauseClock);
1762
+ static getRank(): number {
1763
+ return inv<number>('0x32C90CDFAF40514C', rai());
1778
1764
  }
1779
1765
 
1780
1766
  /**
1781
- * @param netId
1782
- * @param player
1783
- * @param toggle
1767
+ * @param message
1768
+ * @returns gamerHandle
1784
1769
  */
1785
- static setNetworkIdAlwaysExistsForPlayer(netId: number, player: Player, toggle: boolean): void {
1786
- inv<void>('0xA8A024587329F36A', netId, player.handle, toggle);
1770
+ static addFriend(message: string | null): [boolean, number] {
1771
+ const result = inv<[boolean, number]>('0x8E02D73914064223', pvi(), message, rai());
1772
+ return [!!result[0], result[1]];
1787
1773
  }
1788
1774
 
1789
1775
  /**
@@ -1801,7 +1787,7 @@ export class Network {
1801
1787
  * @returns
1802
1788
  */
1803
1789
  static isTimeMoreThan(timeA: number, timeB: number): boolean {
1804
- return inv<boolean>('0xDE350F8651E4346C', timeA, timeB, rai());
1790
+ return !!inv<boolean>('0xDE350F8651E4346C', timeA, timeB, rai());
1805
1791
  }
1806
1792
 
1807
1793
  /**
@@ -1898,7 +1884,7 @@ export class Network {
1898
1884
  * @returns
1899
1885
  */
1900
1886
  static isEntityAGhost(entity: Entity): boolean {
1901
- return inv<boolean>('0x21D04D7BC538C146', entity.handle, rai());
1887
+ return !!inv<boolean>('0x21D04D7BC538C146', entity.handle, rai());
1902
1888
  }
1903
1889
 
1904
1890
  static clearGetGamerStatus(): void {
@@ -1940,134 +1926,275 @@ export class Network {
1940
1926
  }
1941
1927
 
1942
1928
  /**
1943
- * Note: this native was added in build 1311.16
1944
- *
1945
- * @returns
1929
+ * @param p0
1930
+ * @returns gamerHandle
1946
1931
  */
1947
- static isObjectReassignmentInProgress(): boolean {
1948
- return inv<boolean>('0x8FE9EB11EC9CC23A', rai());
1932
+ static N_0x16EFB123C4451032(p0: number): [boolean, number] {
1933
+ const result = inv<[boolean, number]>('0x16EFB123C4451032', p0, pvi(), rai());
1934
+ return [!!result[0], result[1]];
1949
1935
  }
1950
1936
 
1951
1937
  /**
1952
- * @param scriptName
1953
- * @param instanceId
1954
- * @param position
1938
+ * Return the local Participant ID
1939
+ *
1955
1940
  * @returns
1956
1941
  */
1957
- static getNumScriptParticipants(scriptName: string | null, instanceId: number, position: string | number): number {
1958
- return inv<number>('0x3658E8CD94FC121A', scriptName, instanceId, _h(position), rai());
1959
- }
1942
+ static participantId(): Player | null {
1943
+ return createFromHandle<Player>('Player', inv<number>('0x90986E8876CE0A83', rai()));
1944
+ }
1945
+
1946
+ static N_0x97BCE4C4B3191228(): void {
1947
+ inv<void>('0x97BCE4C4B3191228');
1948
+ }
1949
+
1950
+ /**
1951
+ * @param volume
1952
+ * @param p1
1953
+ * @param originalWeight
1954
+ * @param p3
1955
+ * @param p4
1956
+ */
1957
+ static N_0x13F592FC3BF0EA84(volume: Volume, p1: boolean, originalWeight: number, p3: any, p4: any): void {
1958
+ inv<void>('0x13F592FC3BF0EA84', volume.handle, p1, f(originalWeight), p3, p4);
1959
+ }
1960
1960
 
1961
1961
  /**
1962
- * @param p0
1963
1962
  * @returns
1964
1963
  */
1965
- static N_0x6C27442A225A241A(p0: number): number {
1966
- return inv<number>('0x6C27442A225A241A', p0, rai());
1964
+ static N_0xBF8276E51761F9DA(): number {
1965
+ return inv<number>('0xBF8276E51761F9DA', rai());
1966
+ }
1967
+
1968
+ /**
1969
+ * Note: this native was added in build 1311.23
1970
+ *
1971
+ * @returns
1972
+ */
1973
+ static N_0x316FD416C432C761(): boolean {
1974
+ return !!inv<boolean>('0x316FD416C432C761', rai());
1975
+ }
1976
+
1977
+ /**
1978
+ * nullsub, doesn't do anything
1979
+ *
1980
+ * @returns
1981
+ */
1982
+ static N_0xEC089F84A9C16C62(): any {
1983
+ return inv<number>('0xEC089F84A9C16C62');
1984
+ }
1985
+
1986
+ /**
1987
+ * @param netId
1988
+ * @returns
1989
+ */
1990
+ static getRopeIdFromNetworkId(netId: number): number {
1991
+ return inv<number>('0xEB1A4DD8352EC828', netId, rai());
1992
+ }
1993
+
1994
+ /**
1995
+ * @param ugcRequestId
1996
+ * @returns
1997
+ */
1998
+ static ugcDidRequestSucceed(ugcRequestId: number): any {
1999
+ return inv<number>('0x0B6009A90B8495F1', ugcRequestId);
2000
+ }
2001
+
2002
+ /**
2003
+ * @returns
2004
+ */
2005
+ static getNetworkTimeAccurate(): number {
2006
+ return inv<number>('0x89023FBBF9200E9F', rai());
1967
2007
  }
1968
2008
 
1969
2009
  /**
1970
2010
  * @param p0
1971
- * @param p1
2011
+ * @returns
1972
2012
  */
1973
- static spawnConfigSetTuningFloat(p0: string | number, p1: number): void {
1974
- inv<void>('0x0608326F7B98C08D', _h(p0), f(p1));
2013
+ static getNumCreatedMissionVehicles(p0: boolean): number {
2014
+ return inv<number>('0x0CD9AB83489430EA', p0, rai());
2015
+ }
2016
+
2017
+ static showAccountUpgradeUi(): void {
2018
+ inv<void>('0x83FE8D7229593017');
1975
2019
  }
1976
2020
 
1977
2021
  /**
1978
- * @param p1
1979
- * @returns outData
2022
+ * Hardcoded to return false.
2023
+ *
2024
+ * @returns
1980
2025
  */
1981
- static N_0x7BCA0A3972708436(p1: number): [number, number] {
1982
- const result = inv<[number, number]>('0x7BCA0A3972708436', pvi(), p1, rai());
2026
+ static isInSessionLobby(): any {
2027
+ return inv<number>('0xC5196C42DE19F646');
2028
+ }
2029
+
2030
+ /**
2031
+ * Always returns a null string.
2032
+ *
2033
+ * @returns gamerHandle
2034
+ */
2035
+ static getGamertagFromHandle(): [string | null, number] {
2036
+ const result = inv<[string, number]>('0x426141162EBE5CDB', pvi(), ras());
1983
2037
  return [result[0], result[1]];
1984
2038
  }
1985
2039
 
1986
2040
  /**
1987
- * Hardcoded to return zero.
2041
+ * Returns the network ID of the given object.
2042
+ *
2043
+ * @param object
2044
+ * @returns Returns the network id for the specified `object`, or `0` if the entity isn't networked.
2045
+ */
2046
+ static objToNet(object: Prop): number {
2047
+ return inv<number>('0x99BFDC94A603E541', object.handle, rai());
2048
+ }
2049
+
2050
+ /**
2051
+ * @param p0
2052
+ * @returns
2053
+ */
2054
+ static requestJoin(p0: any): number {
2055
+ return inv<number>('0xE483BB6BE686F632', p0, rai());
2056
+ }
2057
+
2058
+ /**
2059
+ * Note: this native was added in build 1311.23
1988
2060
  *
1989
2061
  * @param p0
1990
- * @param p1
1991
- * @param p2
1992
2062
  * @returns
1993
2063
  */
1994
- static getDisplaynamesFromHandles(p0: any, p1: any, p2: any): number {
1995
- return inv<number>('0x58CC181719256197', p0, p1, p2, rai());
2064
+ static N_0x4835413EA6F9C9CD(p0: boolean): number {
2065
+ return inv<number>('0x4835413EA6F9C9CD', p0, rai());
1996
2066
  }
1997
2067
 
1998
2068
  /**
2069
+ * Returns ugcRequestId
2070
+ *
2071
+ * @param contentId
2072
+ * @param latestVersion
2073
+ * @param contentTypeName
1999
2074
  * @returns
2000
2075
  */
2001
- static isHostOfThisScript(): boolean {
2002
- return inv<boolean>('0x83CD99A1E6061AB5', rai());
2076
+ static ugcQueryByContentId(contentId: string | null, latestVersion: boolean, contentTypeName: string | null): number {
2077
+ return inv<number>('0x69D22E183580113F', contentId, latestVersion, contentTypeName, rai());
2003
2078
  }
2004
2079
 
2005
2080
  /**
2006
2081
  * @param p0
2007
- * @param index
2082
+ */
2083
+ static N_0x3034C77C79A58880(p0: boolean): void {
2084
+ inv<void>('0x3034C77C79A58880', p0);
2085
+ }
2086
+
2087
+ /**
2088
+ * @param paramName
2008
2089
  * @returns
2009
2090
  */
2010
- static ugcQueryGetLanguage(p0: any, index: number): number {
2011
- return inv<number>('0x97764E8AC6487A9A', p0, index, rai());
2091
+ static getLaunchParamValue(paramName: string | null): string | null {
2092
+ return inv<string>('0x65E65CA6A0FE59D4', paramName, ras());
2012
2093
  }
2013
2094
 
2014
2095
  /**
2015
- * Note: this native was added in build 1355.30
2096
+ * @param p0
2097
+ */
2098
+ static N_0xCF23AB5BD47B384D(p0: any): void {
2099
+ inv<void>('0xCF23AB5BD47B384D', p0);
2100
+ }
2101
+
2102
+ /**
2103
+ * Note: this native was added in build 1311.23
2016
2104
  *
2017
2105
  * @param p0
2106
+ * @param p1
2107
+ * @param p2
2018
2108
  */
2019
- static N_0x422F9D6D6C7BC290(p0: number): void {
2020
- inv<void>('0x422F9D6D6C7BC290', p0);
2109
+ static N_0x3CBD6565D9C3B133(p0: number, p1: number, p2: number): void {
2110
+ inv<void>('0x3CBD6565D9C3B133', p0, p1, f(p2));
2021
2111
  }
2022
2112
 
2023
2113
  /**
2024
- * @param propSet
2025
2114
  * @returns
2026
2115
  */
2027
- static propsetToNet(propSet: PropSet): number {
2028
- return inv<number>('0x74F99EF7EF503398', propSet.handle, rai());
2116
+ static hasReceivedHostBroadcastData(): boolean {
2117
+ return !!inv<boolean>('0x5D10B3795F3FC886', rai());
2029
2118
  }
2030
2119
 
2031
2120
  /**
2032
- * @param p0
2121
+ * @param languageId
2122
+ * @returns
2033
2123
  */
2034
- static N_0x5CD3AAD8FF9ED121(p0: any): void {
2035
- inv<void>('0x5CD3AAD8FF9ED121', p0);
2124
+ static ugcIsLanguageSupported(languageId: number): boolean {
2125
+ return !!inv<boolean>('0xF53E48461B71EECB', languageId, rai());
2036
2126
  }
2037
2127
 
2038
2128
  /**
2039
- * @param netId
2040
2129
  * @returns
2041
2130
  */
2042
- static netToAnimScene(netId: number): AnimScene | null {
2043
- return createFromHandle<AnimScene>('AnimScene', inv<number>('0xD7F6781A0ABAF6FB', netId, rai()));
2131
+ static actionPlatformInvite(): any {
2132
+ return inv<number>('0x3B82ACC3F4B6240C');
2133
+ }
2134
+
2135
+ /**
2136
+ * nullsub, doesn't do anything
2137
+ *
2138
+ * @returns
2139
+ */
2140
+ static dumpNetIfConfig(): any {
2141
+ return inv<number>('0xAEDF1BC1C133D6E3');
2142
+ }
2143
+
2144
+ /**
2145
+ * @returns
2146
+ */
2147
+ static sessionIsTransitioning(): any {
2148
+ return inv<number>('0xF2CBC969C4F090C7');
2044
2149
  }
2045
2150
 
2046
2151
  /**
2047
2152
  * @param p0
2048
2153
  * @param index
2154
+ * @param p2
2049
2155
  * @returns
2050
2156
  */
2051
- static ugcQueryGetContentHasPlayerRecord(p0: any, index: number): any {
2052
- return inv<number>('0xF794765390A6DCA5', p0, index);
2157
+ static ugcQueryGetVersion(p0: any, index: number, p2: number): number {
2158
+ return inv<number>('0x63E9DCBC8B0931ED', p0, index, p2, rai());
2053
2159
  }
2054
2160
 
2055
- static N_0x814729078AED6D30(): void {
2056
- inv<void>('0x814729078AED6D30');
2161
+ /**
2162
+ * @param p0
2163
+ * @param p1
2164
+ */
2165
+ static N_0x3F0ABAE38A0515AD(p0: number, p1: number): void {
2166
+ inv<void>('0x3F0ABAE38A0515AD', p0, p1);
2057
2167
  }
2058
2168
 
2059
2169
  /**
2170
+ * Subtracts the second argument from the first, then returns whether the result is negative.
2171
+ *
2172
+ * @param timeA
2173
+ * @param timeB
2060
2174
  * @returns
2061
2175
  */
2062
- static isSignedOnline(): boolean {
2063
- return inv<boolean>('0x1077788E268557C2', rai());
2176
+ static isTimeLessThan(timeA: number, timeB: number): boolean {
2177
+ return !!inv<boolean>('0xCB2CF5148012C8D0', timeA, timeB, rai());
2064
2178
  }
2065
2179
 
2066
2180
  /**
2181
+ * Old name: _NETWORK_GET_UNRELIABLE_RESEND_COUNT_FOR_PLAYER
2182
+ *
2183
+ * @param player
2067
2184
  * @returns
2068
2185
  */
2069
- static isInSpectatorMode(): boolean {
2070
- return inv<boolean>('0x048746E388762E11', rai());
2186
+ static getUnreliableResendCount(player: Player): number {
2187
+ return inv<number>('0x3765C3A3E8192E10', player.handle, rai());
2188
+ }
2189
+
2190
+ /**
2191
+ * Note: this native was added in build 1311.23
2192
+ *
2193
+ * @param p0
2194
+ * @returns
2195
+ */
2196
+ static N_0x106CBDD5077DEDE1(p0: boolean): number {
2197
+ return inv<number>('0x106CBDD5077DEDE1', p0, rai());
2071
2198
  }
2072
2199
 
2073
2200
  static N_0x49CF17A564918E8D(): void {
@@ -2171,7 +2298,7 @@ export class Network {
2171
2298
  * @returns
2172
2299
  */
2173
2300
  static requestControlOfNetworkId(netId: number): boolean {
2174
- return inv<boolean>('0xA670B3662FAFFBD0', netId, rai());
2301
+ return !!inv<boolean>('0xA670B3662FAFFBD0', netId, rai());
2175
2302
  }
2176
2303
 
2177
2304
  /**
@@ -2219,452 +2346,545 @@ export class Network {
2219
2346
  * @returns
2220
2347
  */
2221
2348
  static commerceStoreIsOpen(): boolean {
2222
- return inv<boolean>('0xCE5E79D9E303628E', rai());
2349
+ return !!inv<boolean>('0xCE5E79D9E303628E', rai());
2223
2350
  }
2224
2351
 
2225
- static clearClockTimeOverride(): void {
2226
- inv<void>('0xD972DF67326F966E');
2352
+ /**
2353
+ * @param flags
2354
+ * @returns
2355
+ */
2356
+ static sessionRemovePlayerFlags(flags: number): any {
2357
+ return inv<number>('0x3215BBE34D3418C5', flags);
2227
2358
  }
2228
2359
 
2229
- static N_0xC8B6D18E22484643(): void {
2230
- inv<void>('0xC8B6D18E22484643');
2360
+ /**
2361
+ * @returns
2362
+ */
2363
+ static getTimeoutTime(): number {
2364
+ return inv<number>('0x5ED0356A0CE3A34F', rai());
2231
2365
  }
2232
2366
 
2233
2367
  /**
2234
2368
  * @param p0
2235
- * @param p1
2236
2369
  */
2237
- static N_0xDC6AD5C046F33AB4(p0: boolean, p1: boolean): void {
2238
- inv<void>('0xDC6AD5C046F33AB4', p0, p1);
2370
+ static setLocalPlayerInvisibleLocally(p0: boolean): void {
2371
+ inv<void>('0xE5F773C1A1D9D168', p0);
2239
2372
  }
2240
2373
 
2241
2374
  /**
2242
- * @param entity
2375
+ * @param threadId
2243
2376
  * @returns
2244
2377
  */
2245
- static hasControlOfEntity(entity: Entity): boolean {
2246
- return inv<boolean>('0x01BF60A500E28887', entity.handle, rai());
2378
+ static isThreadActive(threadId: number): any {
2379
+ return inv<number>('0x31DAD2CD6D49546E', threadId);
2247
2380
  }
2248
2381
 
2249
2382
  /**
2250
- * @param player
2383
+ * Returns false if pedshot push failed
2384
+ *
2385
+ * @param texture
2386
+ * @param playerSlot
2387
+ * @param p2
2388
+ * @param personaPhotoLocalCacheType
2251
2389
  * @returns
2252
2390
  */
2253
- static getUniqueIntForPlayer(player: Player): number {
2254
- return inv<number>('0x07F723401B9D921C', player.handle, rai());
2391
+ static personaPhotoWriteLocal(texture: string | null, playerSlot: number, p2: number, personaPhotoLocalCacheType: number): any {
2392
+ return inv<number>('0x2A48D9567940598F', texture, playerSlot, p2, personaPhotoLocalCacheType);
2255
2393
  }
2256
2394
 
2257
2395
  /**
2258
- * @param tunableContext
2259
- * @param tunableName
2396
+ * @param index
2260
2397
  * @returns
2261
2398
  */
2262
- static accessTunableBool(tunableContext: string | number, tunableName: string | number): boolean {
2263
- return inv<boolean>('0xAA6A47A573ABB75A', _h(tunableContext), _h(tunableName), rai());
2399
+ static getParticipantIndex(index: number): number {
2400
+ return inv<number>('0x1B84DF6AF2A46938', index, rai());
2264
2401
  }
2265
2402
 
2266
2403
  /**
2267
- * @returns gamerHandle
2404
+ * @param p0
2268
2405
  */
2269
- static removeFriend(): [any, number] {
2270
- const result = inv<[number, number]>('0x55F618F68AB854D3', pvi());
2271
- return [result[0], result[1]];
2272
- }
2273
-
2274
- static N_0x6C7E04E9DE451789(): void {
2275
- inv<void>('0x6C7E04E9DE451789');
2406
+ static N_0xD637D327080CD86E(p0: number): void {
2407
+ inv<void>('0xD637D327080CD86E', p0);
2276
2408
  }
2277
2409
 
2278
2410
  /**
2279
2411
  * @returns
2280
2412
  */
2281
- static N_0x0B6B4507AC5EA8B8(): boolean {
2282
- return inv<boolean>('0x0B6B4507AC5EA8B8', rai());
2413
+ static sessionIsAnyRequestInProgress(): any {
2414
+ return inv<number>('0xBAFFDE5F953720D9');
2283
2415
  }
2284
2416
 
2285
2417
  /**
2286
- * @param netID
2287
- * @param toggle
2418
+ * @param p0
2419
+ * @param p1
2420
+ * @param p2
2421
+ * @param p3
2422
+ * @param p4
2423
+ * @param p5
2424
+ * @returns
2288
2425
  */
2289
- static activateDamageTrackerOnNetworkId(netID: number, toggle: boolean): void {
2290
- inv<void>('0xD45B1FFCCD52FF19', netID, toggle);
2426
+ static isSphereVisibleToPlayer(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): boolean {
2427
+ return !!inv<boolean>('0xDC3A310219E5DA62', p0, p1, p2, p3, p4, p5, rai());
2291
2428
  }
2292
2429
 
2293
2430
  /**
2294
- * *NETWORK_SPAWN_CONFIG**
2431
+ * @param netHandle
2432
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
2295
2433
  */
2296
- static N_0x6CEE2E30021DAEC6(): void {
2297
- inv<void>('0x6CEE2E30021DAEC6');
2298
- }
2299
-
2300
- static N_0x5B9C6AC118FD4774(): void {
2301
- inv<void>('0x5B9C6AC118FD4774');
2434
+ static netToEnt(netHandle: number): Entity | null {
2435
+ return createFromHandle<Entity>('Entity', inv<number>('0xBFFEAB45A9A9094A', netHandle, rai()));
2302
2436
  }
2303
2437
 
2304
2438
  /**
2305
- * @param player
2306
- * @param trackedPlayer
2439
+ * Note: this native was added in build 1311.23
2440
+ *
2307
2441
  * @returns
2308
2442
  */
2309
- static isTrackedPlayerVisible(player: Player, trackedPlayer: Player): any {
2310
- return inv<number>('0xE525878A35B9EEBD', player.handle, trackedPlayer.handle);
2443
+ static N_0x062842D61D0D53FD(): boolean {
2444
+ return !!inv<boolean>('0x062842D61D0D53FD', rai());
2311
2445
  }
2312
2446
 
2313
- static activityResetToIdle(): void {
2314
- inv<void>('0x3FE141FDB990E3D1');
2447
+ /**
2448
+ * @param p0
2449
+ */
2450
+ static N_0xFF36F36B07E69059(p0: any): void {
2451
+ inv<void>('0xFF36F36B07E69059', p0);
2315
2452
  }
2316
2453
 
2317
2454
  /**
2318
- * @param p0
2455
+ * @param flags
2319
2456
  * @returns
2320
2457
  */
2321
- static hasControlOfPickupPlacement(p0: any): boolean {
2322
- return inv<boolean>('0x51EABCF2786515AB', p0, rai());
2458
+ static sessionSetPlayerFlags(flags: number): any {
2459
+ return inv<number>('0x0AE241A4A9ADEEEC', flags);
2323
2460
  }
2324
2461
 
2325
2462
  /**
2326
- * Converts the specified entity into a local entity, removing it from the networked pool. This will only work if you're the owner of the entity.
2327
- *
2328
- * @param entity The entity to un-network
2463
+ * @param contentId
2464
+ * @param dataSize
2465
+ * @param p4
2466
+ * @param flags
2467
+ * @returns gamerHandle; data
2329
2468
  */
2330
- static unregisterNetworkedEntity(entity: Entity): void {
2331
- inv<void>('0xE31A04513237DC89', entity.handle);
2469
+ static sendSessionInvite(contentId: string | null, dataSize: number, p4: number, flags: number): [any, number, number] {
2470
+ const result = inv<[number, number, number]>('0xE47001B7CB8B98AE', pvi(), contentId, pvi(), dataSize, p4, flags);
2471
+ return [result[0], result[1], result[2]];
2472
+ }
2473
+
2474
+ static N_0x61BFBAA795E712AD(): void {
2475
+ inv<void>('0x61BFBAA795E712AD');
2332
2476
  }
2333
2477
 
2334
2478
  /**
2335
- * nullsub, doesn't do anything
2479
+ * @param playerSlot
2480
+ * @param personaPhotoLocalCacheType
2481
+ * @returns
2336
2482
  */
2337
- static showPsnUgcRestriction(): void {
2338
- inv<void>('0x5C497525F803486B');
2483
+ static localPlayerPedshotTextureDownloadRequest(playerSlot: number, personaPhotoLocalCacheType: number): number {
2484
+ return inv<number>('0x6E2FD8CF7EB10E53', playerSlot, personaPhotoLocalCacheType, rai());
2339
2485
  }
2340
2486
 
2341
2487
  /**
2342
- * @param p0
2343
- * @param p1
2488
+ * Hardcoded to return zero.
2489
+ *
2344
2490
  * @returns
2345
2491
  */
2346
- static ugcQueryGetPosixUpdatedDate(p0: any, p1: any): number {
2347
- return inv<number>('0x21A99A72B00D8002', p0, p1, rai());
2492
+ static N_0x5133CF81924F1129(): number {
2493
+ return inv<number>('0x5133CF81924F1129', rai());
2348
2494
  }
2349
2495
 
2350
2496
  /**
2351
- * @param index
2497
+ * Returns the Player associated to a given Ped when in an online session.
2498
+ *
2499
+ * @param ped
2352
2500
  * @returns
2353
2501
  */
2354
- static hasRosPrivilege(index: number): boolean {
2355
- return inv<boolean>('0xA699957E60D80214', index, rai());
2502
+ static getPlayerIndexFromPed(ped: Ped): Player | null {
2503
+ return createFromHandle<Player>('Player', inv<number>('0x6C0E2E0125610278', ped.handle, rai()));
2356
2504
  }
2357
2505
 
2358
2506
  /**
2507
+ * @param netID
2359
2508
  * @returns
2360
2509
  */
2361
- static isSessionStarted(): boolean {
2362
- return inv<boolean>('0x9DE624D2FC4B603F', rai());
2510
+ static doesNetworkIdExist(netID: number): boolean {
2511
+ return !!inv<boolean>('0x38CE16C96BD11344', netID, rai());
2363
2512
  }
2364
2513
 
2365
2514
  /**
2366
- * @param toggle
2515
+ * @param local
2516
+ * @param remote
2517
+ * @param instanceId
2367
2518
  */
2368
- static setLocalPlayerSyncLookAt(toggle: boolean): void {
2369
- inv<void>('0x524FF0AEFF9C3973', toggle);
2519
+ static setLocalPlayerVisibleInCutscene(local: boolean, remote: boolean, instanceId: number): void {
2520
+ inv<void>('0xD1065D68947E7B6E', local, remote, instanceId);
2370
2521
  }
2371
2522
 
2372
2523
  /**
2373
- * @returns gamerHandle
2524
+ * Params: p5 = 50.f, p6 = 0 in R* Script net_fetch (NET_FETCH_CLIENT_UPDATE_PED_ROLE_CLUE_IDLE)
2525
+ *
2526
+ * @param pos
2527
+ * @param p5
2528
+ * @param p6
2529
+ * @returns p0; p1
2374
2530
  */
2375
- static showProfileUi(): number {
2376
- const result = inv<number>('0x859ED1CEA343FCA8', pvi());
2377
- return result;
2531
+ static N_0x880A7202301E282B(pos: Vector3, p5: number, p6: any): [boolean, number, number] {
2532
+ const result = inv<[boolean, number, number]>('0x880A7202301E282B', pvi(), pvi(), f(pos.x), f(pos.y), f(pos.z), f(p5), p6, rai());
2533
+ return [!!result[0], result[1], result[2]];
2378
2534
  }
2379
2535
 
2380
2536
  /**
2381
- * @param player
2382
- * @param toggle
2537
+ * Note: this native was added in build 1491.50
2538
+ *
2539
+ * @param p0
2540
+ * @returns
2383
2541
  */
2384
- static setPlayerVisibleLocally(player: Player, toggle: boolean): void {
2385
- inv<void>('0xFAA10F1FAFB11AF2', player.handle, toggle);
2542
+ static N_0xDBDF80673BBA3D65(p0: number): boolean {
2543
+ return !!inv<boolean>('0xDBDF80673BBA3D65', p0, rai());
2386
2544
  }
2387
2545
 
2388
2546
  /**
2389
- * *NETWORK_SPAWN_CONFIG**
2390
- *
2391
- * @param nsctf
2547
+ * @param p0
2392
2548
  */
2393
- static N_0x5D3C528B7A7DF836(nsctf: string | number): void {
2394
- inv<void>('0x5D3C528B7A7DF836', _h(nsctf));
2549
+ static N_0x9F24A34863FD35DA(p0: any): void {
2550
+ inv<void>('0x9F24A34863FD35DA', p0);
2551
+ }
2552
+
2553
+ static clearPlatformInvite(): void {
2554
+ inv<void>('0xA4484173759749B1');
2395
2555
  }
2396
2556
 
2397
2557
  /**
2398
- * @returns
2558
+ * @param toggle
2559
+ * @param p2
2560
+ * @returns p1
2399
2561
  */
2400
- static autoSessionIsAutoWarpDisabled(): any {
2401
- return inv<number>('0xE258570E0C116A66');
2562
+ static autoSessionSetAllowedToMerge(toggle: boolean, p2: number): number {
2563
+ const result = inv<number>('0x63246A24F5747510', toggle, pvi(), p2);
2564
+ return result;
2402
2565
  }
2403
2566
 
2404
2567
  /**
2405
2568
  * @returns
2406
2569
  */
2407
- static didGetGamerStatusSucceed(): any {
2408
- return inv<number>('0x5AE17C6B0134B7F1');
2570
+ static getTotalNumPlayers(): number {
2571
+ return inv<number>('0xCF61D4B4702EE9EB', rai());
2409
2572
  }
2410
2573
 
2411
2574
  /**
2575
+ * Note: this native was added in build 1311.23
2576
+ *
2412
2577
  * @param p0
2413
- * @param p1
2414
- * @param p2
2415
- * @param p3
2416
- * @param p4
2417
2578
  * @returns
2418
2579
  */
2419
- static isSphereVisibleToAnotherMachine(p0: any, p1: any, p2: any, p3: any, p4: any): boolean {
2420
- return inv<boolean>('0xD82CF8E64C8729D8', p0, p1, p2, p3, p4, rai());
2580
+ static N_0x744BFBB0CA908161(p0: boolean): number {
2581
+ return inv<number>('0x744BFBB0CA908161', p0, rai());
2421
2582
  }
2422
2583
 
2423
2584
  /**
2424
- * @param p0
2585
+ * @param player
2425
2586
  * @returns
2426
2587
  */
2427
- static checkCommunicationPrivileges(p0: number): boolean {
2428
- return inv<boolean>('0x83F28CE49FBBFFBA', p0, rai());
2588
+ static isPlayerActive(player: Player): boolean {
2589
+ return !!inv<boolean>('0xB8DFD30D6973E135', player.handle, rai());
2429
2590
  }
2430
2591
 
2431
2592
  /**
2432
- * Note: this native was added in build 1355.30
2593
+ * @returns
2433
2594
  */
2434
- static N_0x40FEDB13870042F1(): void {
2435
- inv<void>('0x40FEDB13870042F1');
2595
+ static getPlatformInviteId(): number {
2596
+ return inv<number>('0x9BCF28FB5D65A9BE', rai());
2436
2597
  }
2437
2598
 
2438
2599
  /**
2439
- * @param player1
2440
- * @param player2
2600
+ * @param p0
2601
+ * @param index
2441
2602
  * @returns
2442
2603
  */
2443
- static N_0xFE53B1F8D43F19BF(player1: Player, player2: Player): number {
2444
- return inv<number>('0xFE53B1F8D43F19BF', player1.handle, player2.handle, rai());
2604
+ static ugcQueryGetOwnerId(p0: any, index: number): string | null {
2605
+ return inv<string>('0xF9F0B3028431967B', p0, index, ras());
2445
2606
  }
2446
2607
 
2447
2608
  /**
2448
- * @param id
2609
+ * @param tunableContext
2610
+ * @param tunableName
2611
+ * @param defaultValue
2449
2612
  * @returns
2450
2613
  */
2451
- static cloudDidRequestSucceed(id: number): boolean {
2452
- return inv<boolean>('0x3A3D5568AF297CD5', id, rai());
2614
+ static tryAccessTunableFloatHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
2615
+ return inv<number>('0xA18393089C05E49C', _h(tunableContext), _h(tunableName), f(defaultValue), raf());
2453
2616
  }
2454
2617
 
2455
2618
  /**
2456
- * @param player
2457
2619
  * @returns
2458
2620
  */
2459
- static isPlayerConnected(player: Player): boolean {
2460
- return inv<boolean>('0x93DC1BE4E1ABE9D1', player.handle, rai());
2621
+ static hasNetworkTimeStarted(): boolean {
2622
+ return !!inv<boolean>('0x46718ACEEDEAFC84', rai());
2461
2623
  }
2462
2624
 
2463
2625
  /**
2464
2626
  * Hardcoded to return false.
2465
2627
  *
2466
- * @returns gamerHandle
2628
+ * @returns
2467
2629
  */
2468
- static isPendingFriend(): [any, number] {
2469
- const result = inv<[number, number]>('0x0BE73DA6984A6E33', pvi());
2470
- return [result[0], result[1]];
2630
+ static isInPlatformParty(): boolean {
2631
+ return !!inv<boolean>('0x2FC5650B0271CB57', rai());
2471
2632
  }
2472
2633
 
2473
2634
  /**
2474
- * Note: this native was added in build 1311.23
2635
+ * Return the local Participant ID. This native is exactly the same as 'PARTICIPANT_ID' native.
2475
2636
  *
2476
- * @param p0
2637
+ * @returns
2477
2638
  */
2478
- static N_0xA7670F7991099680(p0: number): void {
2479
- inv<void>('0xA7670F7991099680', p0);
2639
+ static participantIdToInt(): number {
2640
+ return inv<number>('0x57A3BDDAD8E5AA0A', rai());
2480
2641
  }
2481
2642
 
2482
2643
  /**
2483
- * @param instanceId
2644
+ * @param toggle
2645
+ * @param pos
2484
2646
  */
2485
- static setLocalPlayerPendingFastInstanceId(instanceId: number): void {
2486
- inv<void>('0x007FF852DCF49DA4', instanceId);
2647
+ static setInStaticSpectatorMode(toggle: boolean, pos: Vector3): void {
2648
+ inv<void>('0xFBF1ECFB39A77B5F', toggle, f(pos.x), f(pos.y), f(pos.z));
2487
2649
  }
2488
2650
 
2489
2651
  /**
2490
2652
  * @param p0
2653
+ * @returns
2491
2654
  */
2492
- static N_0xF342F6BD0A8287D5(p0: any): void {
2493
- inv<void>('0xF342F6BD0A8287D5', p0);
2655
+ static requestControlOfPickupPlacement(p0: any): boolean {
2656
+ return !!inv<boolean>('0x56ED2C48558DAB78', p0, rai());
2494
2657
  }
2495
2658
 
2496
2659
  /**
2497
- * @returns
2660
+ * @param entity
2498
2661
  */
2499
- static isFindingGamers(): boolean {
2500
- return inv<boolean>('0xDDDF64C91BFCF0AA', rai());
2662
+ static registerEntityAsNetworked(entity: Entity): void {
2663
+ inv<void>('0x06FAACD625D80CAA', entity.handle);
2501
2664
  }
2502
2665
 
2503
2666
  /**
2504
- * Returns textureDownloadId
2667
+ * Session flag 'SF_PRIVATE' is set internally
2668
+ * p1 represents max amount of players in private session
2505
2669
  *
2506
- * @param filePath
2507
- * @param name
2508
- * @param p3
2509
- * @returns gamerHandle
2670
+ * @param flags
2671
+ * @param numPlayers
2672
+ * @param userHash
2673
+ * @returns sessionRequestId
2510
2674
  */
2511
- static textureDownloadRequest(filePath: string | null, name: string | null, p3: boolean): [number, number] {
2512
- const result = inv<[number, number]>('0x16160DA74A8E74A2', pvi(), filePath, name, p3, rai());
2675
+ static sessionRequestSessionPrivate(flags: number, numPlayers: number, userHash: number): [any, number] {
2676
+ const result = inv<[number, number]>('0x39A8EF7AF29A192C', flags, numPlayers, userHash, pvi());
2513
2677
  return [result[0], result[1]];
2514
2678
  }
2515
2679
 
2516
2680
  /**
2517
- * @returns gamerHandle
2681
+ * @param textureDownloadId
2518
2682
  */
2519
- static isFriendHandleOnline(): [boolean, number] {
2520
- const result = inv<[boolean, number]>('0xE348D1404BD80146', pvi(), rai());
2521
- return [!!result[0], result[1]];
2683
+ static textureDownloadRelease(textureDownloadId: number): void {
2684
+ inv<void>('0x487EB90B98E9FB19', textureDownloadId);
2522
2685
  }
2523
2686
 
2524
2687
  /**
2525
- * @param netId
2526
- * @returns weaponHash: Refer to [enum: eWeaponHash]
2688
+ * Only used in R* Script net_rolling_playlist
2527
2689
  */
2528
- static getDestroyerOfNetworkId(netId: number): [number, number] {
2529
- const result = inv<[number, number]>('0x7A1ADEEF01740A24', netId, pvi(), rai());
2530
- return [result[0], result[1]];
2690
+ static sessionPlaylistGoToNextContent(): void {
2691
+ inv<void>('0xBDE605F925B07127');
2531
2692
  }
2532
2693
 
2533
2694
  /**
2534
- * Returns value of fwuiCachedSetting "general.onlineNotificationsInStoryMode"
2695
+ * Note: this native was added in build 1311.23
2535
2696
  *
2697
+ * @returns sessionId
2698
+ */
2699
+ static sessionGetSessionId(): number {
2700
+ const result = inv<number>('0xE9B356C330C0A806', pvi());
2701
+ return result;
2702
+ }
2703
+
2704
+ /**
2536
2705
  * @returns
2537
2706
  */
2538
- static areOnlineNotificationsShownInStoryMode(): boolean {
2539
- return inv<boolean>('0xF5C5929E07512F80', rai());
2707
+ static autoSessionSplitSessionSuccessful(): any {
2708
+ return inv<number>('0x6D87BA8EF15226CD');
2540
2709
  }
2541
2710
 
2542
2711
  /**
2543
- * Subtracts the second argument from the first.
2712
+ * @param ugcRequestId
2713
+ * @returns
2714
+ */
2715
+ static ugcHasRequestFinished(ugcRequestId: number): any {
2716
+ return inv<number>('0xA9EB4D606076615D', ugcRequestId);
2717
+ }
2718
+
2719
+ /**
2720
+ * @returns sessionRequestId
2721
+ */
2722
+ static sessionIsRequestInProgress(): [any, number] {
2723
+ const result = inv<[number, number]>('0x8FB7C254CFCBF78E', pvi());
2724
+ return [result[0], result[1]];
2725
+ }
2726
+
2727
+ /**
2728
+ * Adds the first argument to the second.
2544
2729
  *
2545
2730
  * @param timeA
2546
2731
  * @param timeB
2547
2732
  * @returns
2548
2733
  */
2549
- static getTimeDifference(timeA: number, timeB: number): number {
2550
- return inv<number>('0xA2C6FC031D46FFF0', timeA, timeB, rai());
2734
+ static getTimeOffset(timeA: number, timeB: number): number {
2735
+ return inv<number>('0x017008CCDAD48503', timeA, timeB, rai());
2551
2736
  }
2552
2737
 
2553
2738
  /**
2554
2739
  * @param p0
2555
2740
  * @returns
2556
2741
  */
2557
- static N_0xD1FFB246F4E088AC(p0: number): boolean {
2558
- return inv<boolean>('0xD1FFB246F4E088AC', p0, rai());
2742
+ static N_0xC028B3F52C707C49(p0: any): boolean {
2743
+ return !!inv<boolean>('0xC028B3F52C707C49', p0, rai());
2559
2744
  }
2560
2745
 
2561
2746
  /**
2562
- * @param description
2747
+ * nullsub, doesn't do anything
2748
+ *
2563
2749
  * @returns
2564
2750
  */
2565
- static ugcDidDescriptionRequestSucceed(description: string | number): boolean {
2566
- return inv<boolean>('0x162C23CA83ED0A62', _h(description), rai());
2751
+ static N_0xC964FCD3D1720697(): any {
2752
+ return inv<number>('0xC964FCD3D1720697');
2567
2753
  }
2568
2754
 
2569
2755
  /**
2756
+ * @param p0
2757
+ * @param p1
2570
2758
  * @returns
2571
2759
  */
2572
- static getGameMode(): number {
2573
- return inv<number>('0x225640E09EFFDC3F', rai());
2760
+ static ugcQueryGetPublished(p0: any, p1: any): any {
2761
+ return inv<number>('0x9993F1E11944A3DD', p0, p1);
2762
+ }
2763
+
2764
+ static disableRealtimeMultiplayer(): void {
2765
+ inv<void>('0x236905C700FDB54D');
2574
2766
  }
2575
2767
 
2576
2768
  /**
2577
- * @param amount
2769
+ * @param volume
2578
2770
  */
2579
- static reserveNetworkClientMissionPeds(amount: number): void {
2580
- inv<void>('0x807E119F80231732', amount);
2771
+ static spawnConfigRemoveExclusionVolume(volume: Volume): void {
2772
+ inv<void>('0xA35E7BF20FA269E0', volume.handle);
2581
2773
  }
2582
2774
 
2583
2775
  /**
2584
- * @param p0
2585
- * @param p1
2586
- * @param p2
2587
- * @param p3
2776
+ * @param tunableContext
2777
+ * @param tunableName
2778
+ * @returns
2588
2779
  */
2589
- static setInMpCutscene(p0: boolean, p1: boolean, p2: number, p3: boolean): void {
2590
- inv<void>('0x9CA5DE655269FEC4', p0, p1, p2, p3);
2780
+ static doesTunableExist(tunableContext: string | number, tunableName: string | number): boolean {
2781
+ return !!inv<boolean>('0x85E5F8B9B898B20A', _h(tunableContext), _h(tunableName), rai());
2591
2782
  }
2592
2783
 
2593
2784
  /**
2594
- * @param toggle
2595
- * @param playerPed
2785
+ * Note: this native was added in build 1311.23
2786
+ *
2787
+ * @param p0
2788
+ * @returns
2596
2789
  */
2597
- static setInSpectatorMode(toggle: boolean, playerPed: Ped): void {
2598
- inv<void>('0x423DE3854BB50894', toggle, playerPed.handle);
2790
+ static N_0x982D7AD755B8F62C(p0: boolean): number {
2791
+ return inv<number>('0x982D7AD755B8F62C', p0, rai());
2792
+ }
2793
+
2794
+ static startSoloTutorialSession(): void {
2795
+ inv<void>('0x17E0198B3882C2CB');
2599
2796
  }
2600
2797
 
2601
2798
  /**
2602
2799
  * @param p0
2800
+ * @param p2
2801
+ * @param p3
2802
+ * @returns p1
2603
2803
  */
2604
- static N_0x3E74A687A73979C6(p0: boolean): void {
2605
- inv<void>('0x3E74A687A73979C6', p0);
2804
+ static setRichPresence(p0: number, p2: number, p3: number): number {
2805
+ const result = inv<number>('0x1DCCACDCFC569362', p0, pvi(), p2, p3);
2806
+ return result;
2606
2807
  }
2607
2808
 
2608
2809
  /**
2609
- * @returns sessionRequestId
2810
+ * @returns
2610
2811
  */
2611
- static sessionIsRequestPendingTransition(): [any, number] {
2612
- const result = inv<[number, number]>('0xCCF878D50F8AB10D', pvi());
2613
- return [result[0], result[1]];
2812
+ static pedmugshotTake(): any {
2813
+ return inv<number>('0xCD954F330693F5F2');
2614
2814
  }
2615
2815
 
2616
2816
  /**
2617
- * @param offset
2817
+ * @param entity
2618
2818
  */
2619
- static spawnConfigSetGroundToRootOffset(offset: number): void {
2620
- inv<void>('0x59577799F6AE2F34', f(offset));
2819
+ static N_0xBB1EC8C2EEF33BAA(entity: Entity): void {
2820
+ inv<void>('0xBB1EC8C2EEF33BAA', entity.handle);
2621
2821
  }
2622
2822
 
2623
2823
  /**
2624
2824
  * @returns
2625
2825
  */
2626
- static checkAccessAndAlertIfFail(): any {
2627
- return inv<number>('0x2A8112A974DE1EF6');
2826
+ static haveOnlinePrivileges(): boolean {
2827
+ return !!inv<boolean>('0x25CB5A9F37BFD063', rai());
2628
2828
  }
2629
2829
 
2630
2830
  /**
2631
- * Note: this native was added in build 1311.23
2632
- *
2831
+ * @param p0
2832
+ * @param index
2633
2833
  * @returns
2634
2834
  */
2635
- static N_0xFB3205788F8AFA3F(): number {
2636
- return inv<number>('0xFB3205788F8AFA3F', rai());
2835
+ static ugcQueryGetRootContentId(p0: any, index: number): string | null {
2836
+ return inv<string>('0x566CEB0542EF5ECF', p0, index, ras());
2637
2837
  }
2638
2838
 
2639
2839
  /**
2640
2840
  * @returns
2641
2841
  */
2642
- static getNumRecentGamers(): number {
2643
- return inv<number>('0x37A834AEC6A4F74A', rai());
2842
+ static didFindGamersSucceed(): any {
2843
+ return inv<number>('0xF9B83B77929D8863');
2844
+ }
2845
+
2846
+ static N_0x0BF90CBB6B72977B(): void {
2847
+ inv<void>('0x0BF90CBB6B72977B');
2644
2848
  }
2645
2849
 
2646
2850
  /**
2647
- * @returns
2851
+ * @returns gamerHandle
2648
2852
  */
2649
- static N_0xD3A3C8B9F3BDEF81(): any {
2650
- return inv<number>('0xD3A3C8B9F3BDEF81');
2853
+ static getLocalHandle(): number {
2854
+ const result = inv<number>('0xE86051786B66CD8E', pvi());
2855
+ return result;
2651
2856
  }
2652
2857
 
2653
2858
  /**
2654
- * Returns the entity's network ID.
2859
+ * nullsub, doesn't do anything
2655
2860
  *
2861
+ * @param p0
2862
+ */
2863
+ static N_0x2C4E98DDA475364F(p0: string | null): void {
2864
+ inv<void>('0x2C4E98DDA475364F', p0);
2865
+ }
2866
+
2867
+ /**
2656
2868
  * @param entity
2657
2869
  * @returns
2658
2870
  */
2659
- static N_0xF302AB9D978352EE(entity: Entity): number {
2660
- return inv<number>('0xF302AB9D978352EE', entity.handle, rai());
2871
+ static getGlobalEntityFlags(entity: Entity): number {
2872
+ return inv<number>('0xDD7806FD0543BC3D', entity.handle, rai());
2873
+ }
2874
+
2875
+ /**
2876
+ * @param description
2877
+ * @returns
2878
+ */
2879
+ static ugcHasDescriptionRequestFinished(description: string | number): boolean {
2880
+ return !!inv<boolean>('0xEBFA8D50ADDC54C4', _h(description), rai());
2661
2881
  }
2662
2882
 
2663
2883
  /**
2664
2884
  * @returns
2665
2885
  */
2666
2886
  static canSessionEnd(): boolean {
2667
- return inv<boolean>('0x4EEBC3694E49C572', rai());
2887
+ return !!inv<boolean>('0x4EEBC3694E49C572', rai());
2668
2888
  }
2669
2889
 
2670
2890
  /**
@@ -2689,7 +2909,7 @@ export class Network {
2689
2909
  * @returns
2690
2910
  */
2691
2911
  static isInPlatformPartyChat(): boolean {
2692
- return inv<boolean>('0xFD8B834A8BA05048', rai());
2912
+ return !!inv<boolean>('0xFD8B834A8BA05048', rai());
2693
2913
  }
2694
2914
 
2695
2915
  /**
@@ -2705,7 +2925,7 @@ export class Network {
2705
2925
  * @returns
2706
2926
  */
2707
2927
  static commerceStoreIsEnabled(): boolean {
2708
- return inv<boolean>('0xDBC754CB6CCB9378', rai());
2928
+ return !!inv<boolean>('0xDBC754CB6CCB9378', rai());
2709
2929
  }
2710
2930
 
2711
2931
  /**
@@ -2720,7 +2940,7 @@ export class Network {
2720
2940
  * @returns
2721
2941
  */
2722
2942
  static hasControlOfNetworkId(netId: number): boolean {
2723
- return inv<boolean>('0x4D36070FE0215186', netId, rai());
2943
+ return !!inv<boolean>('0x4D36070FE0215186', netId, rai());
2724
2944
  }
2725
2945
 
2726
2946
  /**
@@ -2775,7 +2995,7 @@ export class Network {
2775
2995
  * @returns
2776
2996
  */
2777
2997
  static isClockTimeOverridden(): boolean {
2778
- return inv<boolean>('0xD7C95D322FF57522', rai());
2998
+ return !!inv<boolean>('0xD7C95D322FF57522', rai());
2779
2999
  }
2780
3000
 
2781
3001
  /**
@@ -2788,408 +3008,267 @@ export class Network {
2788
3008
  }
2789
3009
 
2790
3010
  /**
2791
- * Note: this native was added in build 1311.23, but was only used after build 1436.25
3011
+ * Returns string for GET_STATUS_OF_LOAD_MISSION_CREATOR_PHOTO
3012
+ *
3013
+ * @param p0
3014
+ * @param p1
3015
+ * @param p2
3016
+ * @returns
2792
3017
  */
2793
- static requestCloudTunables(): void {
2794
- inv<void>('0x42FB3B532D526E6C');
3018
+ static ugcQueryGetCreatorPhoto(p0: any, p1: number, p2: any): string | null {
3019
+ return inv<string>('0x409FE0CA6A4D1D49', p0, p1, p2, ras());
2795
3020
  }
2796
3021
 
2797
3022
  /**
2798
3023
  * @param toggle
2799
3024
  */
2800
- static setScriptReadyForEvents(toggle: boolean): void {
2801
- inv<void>('0x7AC752103856FB20', toggle);
3025
+ static setRecentGamersEnabled(toggle: boolean): void {
3026
+ inv<void>('0x29FE035D35B8589C', toggle);
2802
3027
  }
2803
3028
 
2804
3029
  /**
2805
- * @param amount
2806
3030
  * @returns
2807
3031
  */
2808
- static canRegisterMissionPeds(amount: number): boolean {
2809
- return inv<boolean>('0xBCBF4FEF9FA5D781', amount, rai());
3032
+ static getLaunchParamString(): string | null {
3033
+ return inv<string>('0xC59AB6A04333C502', ras());
2810
3034
  }
2811
3035
 
2812
3036
  /**
2813
- * @returns gamerHandle1; gamerHandle2
3037
+ * @param entity
3038
+ * @param toggle
2814
3039
  */
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]];
3040
+ static setEntityRemainsWhenUnnetworked(entity: Entity, toggle: boolean): void {
3041
+ inv<void>('0xD785864798258032', entity.handle, toggle);
2818
3042
  }
2819
3043
 
2820
3044
  /**
2821
- * Old name: _SET_LOCAL_PLAYER_AS_GHOST
2822
- *
2823
- * @param toggle
3045
+ * @param flags
3046
+ * @param userHash
3047
+ * @param p2
3048
+ * @returns sessionRequestId
2824
3049
  */
2825
- static setLocalPlayerAsGhost(toggle: boolean): void {
2826
- inv<void>('0x5FFE9B4144F9712F', toggle);
3050
+ static sessionRequestSessionNominated(flags: number, userHash: number, p2: number): [boolean, number] {
3051
+ const result = inv<[boolean, number]>('0x4F4672457FF597D1', flags, userHash, p2, pvi(), rai());
3052
+ return [!!result[0], result[1]];
2827
3053
  }
2828
3054
 
2829
3055
  /**
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
3056
+ * @param description
3057
+ * @returns
2838
3058
  */
2839
- static getDisplayNameFromHandle(displayName: string | null): [any, number] {
2840
- const result = inv<[number, number]>('0x7FEE4F07C54B6B3C', pvi(), displayName);
2841
- return [result[0], result[1]];
3059
+ static ugcIsDescriptionRequestInProgress(description: string | number): boolean {
3060
+ return !!inv<boolean>('0x2D5DC831176D0114', _h(description), rai());
2842
3061
  }
2843
3062
 
2844
- static endTutorialSession(): void {
2845
- inv<void>('0xD0AFAFF5A51D72F7');
3063
+ /**
3064
+ * @param ugcRequestId
3065
+ */
3066
+ static ugcClearQueryResults(ugcRequestId: number): void {
3067
+ inv<void>('0xE931354FEA710038', ugcRequestId);
2846
3068
  }
2847
3069
 
2848
3070
  /**
2849
- * @param p0
2850
- * @param p2
2851
- * @returns p1
3071
+ * @param threadId
3072
+ * @returns
2852
3073
  */
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]];
3074
+ static getHostOfThread(threadId: number): Player | null {
3075
+ return createFromHandle<Player>('Player', inv<number>('0xB4A25351D79B444C', threadId, rai()));
2856
3076
  }
2857
3077
 
2858
3078
  /**
2859
3079
  * @returns
2860
3080
  */
2861
- static getTotalNumFriends(): number {
2862
- return inv<number>('0xDB7ABDD203FA3704', rai());
3081
+ static isGameInProgress(): boolean {
3082
+ return !!inv<boolean>('0x10FAB35428CCC9D7', rai());
2863
3083
  }
2864
3084
 
2865
3085
  /**
2866
- * Returns ugcRequestId
2867
- *
2868
- * @param p0
2869
- * @param maxGet
2870
- * @param contentTypeName
2871
- * @param p3
2872
- * @param p4
2873
- * @param p5
3086
+ * @param rangeStart
3087
+ * @param rangeEnd
2874
3088
  * @returns
2875
3089
  */
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());
3090
+ static getRandomIntRanged(rangeStart: number, rangeEnd: number): number {
3091
+ return inv<number>('0xE30CF56F1EFA5F43', rangeStart, rangeEnd, rai());
2878
3092
  }
2879
3093
 
2880
3094
  /**
2881
3095
  * @param p0
2882
- * @param index
2883
- * @param p2
2884
3096
  * @returns
2885
3097
  */
2886
- static ugcQueryGetRating(p0: any, index: number, p2: number): number {
2887
- return inv<number>('0x24CD8FAEA1368379', p0, index, p2, raf());
3098
+ static acceptRsInvite(p0: number): any {
3099
+ return inv<number>('0xB2CEA5105AAC8DDE', p0);
2888
3100
  }
2889
3101
 
2890
3102
  /**
2891
3103
  * @param player
3104
+ * @param toggle
2892
3105
  */
2893
- static N_0xD78A26024BB13E08(player: Player): void {
2894
- inv<void>('0xD78A26024BB13E08', player.handle);
3106
+ static concealPlayer(player: Player, toggle: boolean): void {
3107
+ inv<void>('0xBBDF066252829606', player.handle, toggle);
2895
3108
  }
2896
3109
 
2897
3110
  /**
2898
- * Only used in R* Script fm_race_controller
3111
+ * ^^ 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
2899
3112
  *
2900
- * @param p0
3113
+ * @param entity
3114
+ * @param toggle
2901
3115
  */
2902
- static N_0x71FA2D1880C48032(p0: boolean): void {
2903
- inv<void>('0x71FA2D1880C48032', p0);
3116
+ static setEntityOnlyExistsForParticipants(entity: Entity, toggle: boolean): void {
3117
+ inv<void>('0xF1CA12B18AEF5298', entity.handle, toggle);
2904
3118
  }
2905
3119
 
2906
3120
  /**
2907
- * Note: this native was added in build 1311.23
2908
- *
2909
- * @param p0
2910
- * @param p1
2911
- * @param p2
2912
- * @param p3
2913
- * @returns
2914
- */
2915
- static N_0x5F328FC909F0E0FF(p0: number, p1: number, p2: number, p3: number): boolean {
2916
- return inv<boolean>('0x5F328FC909F0E0FF', p0, p1, p2, p3, rai());
2917
- }
2918
-
2919
- /**
2920
- * Old name: _NETWORK_SET_VEHICLE_WHEELS_DESTRUCTIBLE
2921
- *
2922
- * @param entity
2923
- * @param p1
2924
- */
2925
- static triggerDamageEventForZeroDamage(entity: Entity, p1: boolean): void {
2926
- inv<void>('0x0C8BC052AE87D744', entity.handle, p1);
2927
- }
2928
-
2929
- /**
2930
- * nullsub, doesn't do anything
2931
- *
2932
- * @returns
2933
- */
2934
- static getNetStatisticsInfo(): any {
2935
- return inv<number>('0x6FD992C4A1C1B986');
2936
- }
2937
-
2938
- /**
2939
- * nullsub, doesn't do anything
3121
+ * @param doorHash
2940
3122
  */
2941
- static N_0xFC6FCF4C03F1BBF6(): void {
2942
- inv<void>('0xFC6FCF4C03F1BBF6');
2943
- }
2944
-
2945
- static N_0x43CF999205084B4B(): void {
2946
- inv<void>('0x43CF999205084B4B');
3123
+ static setDoorNetworked(doorHash: string | number): void {
3124
+ inv<void>('0x51D99497ABF3F451', _h(doorHash));
2947
3125
  }
2948
3126
 
2949
3127
  /**
2950
- * p0 appears to be for MP
2951
- *
2952
3128
  * @param p0
2953
- * @returns
2954
- */
2955
- static getNumReservedMissionVehicles(p0: boolean): number {
2956
- return inv<number>('0xCF3A965906452031', p0, rai());
2957
- }
2958
-
2959
- /**
2960
- * @param name
2961
- * @returns
3129
+ * @param index
3130
+ * @returns gamerHandle
2962
3131
  */
2963
- static textureDownloadTextureNameIsValid(name: string | null): any {
2964
- return inv<number>('0xE2C3CEC3C0903A00', name);
3132
+ static ugcQueryGetCreatorHandle(p0: any, index: number): [any, number] {
3133
+ const result = inv<[number, number]>('0xADB56322EEDFBDC9', p0, index, pvi());
3134
+ return [result[0], result[1]];
2965
3135
  }
2966
3136
 
2967
3137
  /**
2968
- * @param scriptName
2969
- * @param p1
2970
- * @param p2
2971
- * @param p3
3138
+ * @param paramName
2972
3139
  * @returns
2973
3140
  */
2974
- static isScriptActive(scriptName: string | null, p1: number, p2: boolean, p3: number): boolean {
2975
- return inv<boolean>('0x9D40DF90FAD26098', scriptName, p1, p2, p3, rai());
2976
- }
2977
-
2978
- /**
2979
- * @param p0
2980
- */
2981
- static N_0x5CB8B0C846D0F30B(p0: any): void {
2982
- inv<void>('0x5CB8B0C846D0F30B', p0);
2983
- }
2984
-
2985
- /**
2986
- * @returns loadingState
2987
- */
2988
- static canAccessMultiplayer(): [boolean, number] {
2989
- const result = inv<[boolean, number]>('0xAF50DA1A3F8B1BA4', pvi(), rai());
2990
- return [!!result[0], result[1]];
3141
+ static getLaunchParamExists(paramName: string | null): any {
3142
+ return inv<number>('0x02E97CE283648CD9', paramName);
2991
3143
  }
2992
3144
 
2993
3145
  /**
2994
- * @returns p0
3146
+ * @returns gamerHandle
2995
3147
  */
2996
- static getCurrentFriendPageData(): [any, number] {
2997
- const result = inv<[number, number]>('0xA3EEC0A5AFF3FC5B', pvi());
3148
+ static canReceiveInviteFromHandle(): [any, number] {
3149
+ const result = inv<[number, number]>('0xF23D6475640D29EB', pvi());
2998
3150
  return [result[0], result[1]];
2999
3151
  }
3000
3152
 
3001
3153
  /**
3002
- * @returns p0
3154
+ * @param player
3155
+ * @param p1
3003
3156
  */
3004
- static getSizeOfHostBroadcastDataStorage(): [number, number] {
3005
- const result = inv<[number, number]>('0xBA24095EA96DFE17', pvi(), rai());
3006
- return [result[0], result[1]];
3157
+ static addPlayerToRecentGamersList(player: Player, p1: number): void {
3158
+ inv<void>('0x157D8F3DE12B307F', player.handle, p1);
3007
3159
  }
3008
3160
 
3009
3161
  /**
3010
3162
  * @returns
3011
3163
  */
3012
- static getInstanceIdOfThisScript(): number {
3013
- return inv<number>('0x638A3A81733086DB', rai());
3164
+ static N_0x232E1EB23CDB313C(): boolean {
3165
+ return !!inv<boolean>('0x232E1EB23CDB313C', rai());
3014
3166
  }
3015
3167
 
3016
3168
  /**
3017
- * @param p0
3018
- * @returns
3169
+ * Note: this native was added in build 1311.23
3170
+ *
3171
+ * @returns sessionId1; sessionId2
3019
3172
  */
3020
- static awardHasReachedMaxclaim(p0: any): any {
3021
- return inv<number>('0xFBE782B3165AC8EC', p0);
3173
+ static sessionAreSessionIdsEqual(): [boolean, number, number] {
3174
+ const result = inv<[boolean, number, number]>('0x4DEC5000F7B508F0', pvi(), pvi(), rai());
3175
+ return [!!result[0], result[1], result[2]];
3022
3176
  }
3023
3177
 
3024
3178
  /**
3025
- * @param p0
3026
3179
  * @returns
3027
3180
  */
3028
- static N_0xBB697756309D77EE(p0: boolean): any {
3029
- return inv<number>('0xBB697756309D77EE', p0);
3181
+ static isTutorialSessionChangePending(): boolean {
3182
+ return !!inv<boolean>('0x35F0B98A8387274D', rai());
3030
3183
  }
3031
3184
 
3032
- /**
3033
- * @returns
3034
- */
3035
- static autoSessionIsInstancedSession(): any {
3036
- return inv<number>('0x277865A734918AE6');
3185
+ static ugcReleaseAllCachedDescriptions(): void {
3186
+ inv<void>('0x68103E2247887242');
3037
3187
  }
3038
3188
 
3039
3189
  /**
3040
- * @param p0
3041
- * @param p1
3190
+ * @param animScene
3042
3191
  * @returns
3043
3192
  */
3044
- static resetPopulation(p0: boolean, p1: number): any {
3045
- return inv<number>('0x101F538C25ABB39A', p0, p1);
3193
+ static requestControlOfAnimScene(animScene: AnimScene): any {
3194
+ return inv<number>('0xAAA92B631B13F614', animScene.handle);
3046
3195
  }
3047
3196
 
3048
- /**
3049
- * @param ped
3050
- * @returns Returns the network id for the specified `ped` or `0` if the entity isn't networked.
3051
- */
3052
- static pedToNet(ped: Ped): number {
3053
- return inv<number>('0x0EDEC3C276198689', ped.handle, rai());
3197
+ static setMissionFinished(): void {
3198
+ inv<void>('0x3B3D11CD9FFCDFC9');
3054
3199
  }
3055
3200
 
3056
3201
  /**
3202
+ * Note: this native was added in build 1311.23
3203
+ *
3057
3204
  * @param p0
3058
3205
  * @returns
3059
3206
  */
3060
- static N_0x27B1AE4D8C652F08(p0: number): number {
3061
- return inv<number>('0x27B1AE4D8C652F08', p0, rai());
3062
- }
3063
-
3064
- /**
3065
- * @param entity
3066
- * @returns
3067
- */
3068
- static hasEntityBeenRegisteredWithThisThread(entity: Entity): boolean {
3069
- return inv<boolean>('0xB07D3185E11657A5', entity.handle, rai());
3070
- }
3071
-
3072
- /**
3073
- * @param entity
3074
- * @param toggle
3075
- */
3076
- static setEntityGhostedToLocalPlayer(entity: Entity, toggle: boolean): void {
3077
- inv<void>('0xEE5AE9956743BA20', entity.handle, toggle);
3078
- }
3079
-
3080
- /**
3081
- * @param player
3082
- * @returns weaponHash: Refer to [enum: eWeaponHash]
3083
- */
3084
- static getEntityKillerOfPlayer(player: Player): [Entity | null, number] {
3085
- const result = inv<[number, number]>('0x42B2DAA6B596F5F8', player.handle, pvi(), rai());
3086
- return [createFromHandle<Entity>('Entity', result[0]), result[1]];
3207
+ static N_0x1E4E097D71D449FB(p0: boolean): number {
3208
+ return inv<number>('0x1E4E097D71D449FB', p0, rai());
3087
3209
  }
3088
3210
 
3089
3211
  /**
3212
+ * Note: this native was added in build 1311.23
3213
+ *
3090
3214
  * @param p0
3091
- * @returns
3092
3215
  */
3093
- static getNumCreatedMissionPickups(p0: boolean): number {
3094
- return inv<number>('0xD2BA051B94CA9BCC', p0, rai());
3216
+ static N_0xC1968045EEB563B7(p0: number): void {
3217
+ inv<void>('0xC1968045EEB563B7', p0);
3095
3218
  }
3096
3219
 
3097
3220
  /**
3098
- * @param entity
3099
- * @param p1
3100
- * @param p2
3101
- * @param p3
3221
+ * Old name: _CLEAR_LAUNCH_PARAMS
3102
3222
  */
3103
- static setEntityVisibleInCutscene(entity: Entity, p1: boolean, p2: boolean, p3: number): void {
3104
- inv<void>('0xE0031D3C8F36AB82', entity.handle, p1, p2, p3);
3223
+ static clearServiceEventArguments(): void {
3224
+ inv<void>('0x966DD84FB6A46017');
3105
3225
  }
3106
3226
 
3107
3227
  /**
3108
- * Hardcoded to return -1.
3228
+ * Old name: _NETWORK_ALLOW_LOCAL_ENTITY_ATTACHMENT
3109
3229
  *
3110
- * @param p1
3111
- * @returns p0
3230
+ * @param entity
3231
+ * @param toggle
3112
3232
  */
3113
- static displaynamesFromHandlesStart(p1: any): [number, number] {
3114
- const result = inv<[number, number]>('0xD66C9E72B3CC4982', pvi(), p1, rai());
3115
- return [result[0], result[1]];
3233
+ static allowRemoteAttachmentModification(entity: Entity, toggle: boolean): void {
3234
+ inv<void>('0x267C78C60E806B9A', entity.handle, toggle);
3116
3235
  }
3117
3236
 
3118
3237
  /**
3119
- * @returns
3238
+ * @param volume
3120
3239
  */
3121
- static N_0xCC4E72C339461ED1(): any {
3122
- return inv<number>('0xCC4E72C339461ED1');
3240
+ static spawnConfigAddExclusionVolume(volume: Volume): void {
3241
+ inv<void>('0xEEB7818B1D307212', volume.handle);
3123
3242
  }
3124
3243
 
3125
3244
  /**
3126
- * nullsub, doesn't do anything
3245
+ * Note: this native was added in build 1436.31
3127
3246
  *
3247
+ * @param p0
3128
3248
  * @returns
3129
3249
  */
3130
- static N_0x160F0CE6D76A39C9(): any {
3131
- return inv<number>('0x160F0CE6D76A39C9');
3250
+ static N_0x78271BC02AE9AF83(p0: number): number {
3251
+ return inv<number>('0x78271BC02AE9AF83', p0, rai());
3132
3252
  }
3133
3253
 
3134
3254
  /**
3135
- * Old name: _NETWORK_GET_OLDEST_RESEND_COUNT_FOR_PLAYER
3136
- *
3137
- * @param player
3255
+ * @param netID
3138
3256
  * @returns
3139
3257
  */
3140
- static getHighestReliableResendCount(player: Player): number {
3141
- return inv<number>('0x52C1EADAF7B10302', player.handle, rai());
3258
+ static isDamageTrackerActiveOnNetworkId(netID: number): boolean {
3259
+ return !!inv<boolean>('0x6E192E33AD436366', netID, rai());
3142
3260
  }
3143
3261
 
3144
3262
  /**
3145
- * Checks for session flag 'SF_PRIVATE'
3263
+ * Always returns -1. Seems to be XB1 specific.
3146
3264
  *
3147
- * @returns
3148
- */
3149
- static sessionIsPrivate(): boolean {
3150
- return inv<boolean>('0xCEF70AA5B3F89BA1', rai());
3151
- }
3152
-
3153
- /**
3154
- * @param toggle
3155
- */
3156
- static autoSessionSetAllowedToSplit(toggle: boolean): void {
3157
- inv<void>('0x0A428058079EE65C', toggle);
3158
- }
3159
-
3160
- static N_0x19B52C20B5C4757C(): void {
3161
- inv<void>('0x19B52C20B5C4757C');
3162
- }
3163
-
3164
- /**
3165
- * @returns sessionRequestId
3265
+ * @returns gamerHandle
3166
3266
  */
3167
- static sessionIsNsrrSuccess(): [any, number] {
3168
- const result = inv<[number, number]>('0x0F44A5C78D114922', pvi());
3267
+ static startUserContentPermissionsCheck(): [number, number] {
3268
+ const result = inv<[number, number]>('0xDEB2B99A1AF1A2A6', pvi(), rai());
3169
3269
  return [result[0], result[1]];
3170
3270
  }
3171
3271
 
3172
- /**
3173
- * @returns
3174
- */
3175
- static isPlatformInvitePending(): any {
3176
- return inv<number>('0xFC4165C9165C166F');
3177
- }
3178
-
3179
- /**
3180
- * @returns
3181
- */
3182
- static isInMpCutscene(): boolean {
3183
- return inv<boolean>('0x6CC27C9FA2040220', rai());
3184
- }
3185
-
3186
- /**
3187
- * @returns
3188
- */
3189
- static N_0x273E04A3A7AD1F2D(): boolean {
3190
- return inv<boolean>('0x273E04A3A7AD1F2D', rai());
3191
- }
3192
-
3193
3272
  /**
3194
3273
  * Old name: _NETWORK_GET_AVERAGE_PACKET_LOSS_FOR_PLAYER
3195
3274
  *
@@ -3213,7 +3292,7 @@ export class Network {
3213
3292
  * @returns
3214
3293
  */
3215
3294
  static isPlayerAParticipant(player: Player): boolean {
3216
- return inv<boolean>('0x3CA58F6CB7CBD784', player.handle, rai());
3295
+ return !!inv<boolean>('0x3CA58F6CB7CBD784', player.handle, rai());
3217
3296
  }
3218
3297
 
3219
3298
  /**
@@ -3269,7 +3348,7 @@ export class Network {
3269
3348
  * @returns
3270
3349
  */
3271
3350
  static N_0x3E4A16BC669E71B3(): boolean {
3272
- return inv<boolean>('0x3E4A16BC669E71B3', rai());
3351
+ return !!inv<boolean>('0x3E4A16BC669E71B3', rai());
3273
3352
  }
3274
3353
 
3275
3354
  /**
@@ -3287,7 +3366,7 @@ export class Network {
3287
3366
  * @returns
3288
3367
  */
3289
3368
  static getThisScriptIsNetworkScript(): boolean {
3290
- return inv<boolean>('0x2910669969E9535E', rai());
3369
+ return !!inv<boolean>('0x2910669969E9535E', rai());
3291
3370
  }
3292
3371
 
3293
3372
  /**
@@ -3313,7 +3392,7 @@ export class Network {
3313
3392
  * @returns
3314
3393
  */
3315
3394
  static N_0x862C5040F4888741(player1: Player, player2: Player): boolean {
3316
- return inv<boolean>('0x862C5040F4888741', player1.handle, player2.handle, rai());
3395
+ return !!inv<boolean>('0x862C5040F4888741', player1.handle, player2.handle, rai());
3317
3396
  }
3318
3397
 
3319
3398
  /**
@@ -3416,7 +3495,7 @@ export class Network {
3416
3495
  * @returns
3417
3496
  */
3418
3497
  static checkUserContentPrivileges(p0: number): boolean {
3419
- return inv<boolean>('0x595F028698072DD9', p0, rai());
3498
+ return !!inv<boolean>('0x595F028698072DD9', p0, rai());
3420
3499
  }
3421
3500
 
3422
3501
  /**
@@ -3436,681 +3515,678 @@ export class Network {
3436
3515
  }
3437
3516
 
3438
3517
  /**
3439
- * @param description
3440
- * @param length
3441
3518
  * @returns
3442
3519
  */
3443
- static ugcGetCachedDescription(description: string | number, length: number): string | null {
3444
- return inv<string>('0x40F7E66472DF3E5C', _h(description), length, ras());
3520
+ static didRecentGamerNamesRequestSucceed(): any {
3521
+ return inv<number>('0x12AEB56B489415C5');
3445
3522
  }
3446
3523
 
3447
3524
  /**
3448
- * @param toggle
3525
+ * @returns sessionRequestId
3449
3526
  */
3450
- static N_0x780A13F780A13F1B(toggle: boolean): void {
3451
- inv<void>('0x780A13F780A13F1B', toggle);
3527
+ static sessionCancelRequest(): [any, number] {
3528
+ const result = inv<[number, number]>('0xE72E5C1289BD1F40', pvi());
3529
+ return [result[0], result[1]];
3452
3530
  }
3453
3531
 
3454
3532
  /**
3455
- * @param p1
3533
+ * @param message
3456
3534
  * @returns gamerHandle
3457
3535
  */
3458
- static requestPedshotTextureMultiplayerDownload(p1: number): [string | null, number] {
3459
- const result = inv<[string, number]>('0xB5C4B18B12A2AF23', pvi(), p1, ras());
3460
- return [result[0], result[1]];
3536
+ static N_0x5759160AC17C13CE(message: string | null): number {
3537
+ const result = inv<number>('0x5759160AC17C13CE', pvi(), message);
3538
+ return result;
3461
3539
  }
3462
3540
 
3463
3541
  /**
3464
- * @param setting
3542
+ * @param id
3543
+ * @returns
3465
3544
  */
3466
- static N_0xE3AB5EEFCB6671A2(setting: number): void {
3467
- inv<void>('0xE3AB5EEFCB6671A2', setting);
3545
+ static cloudHasRequestCompleted(id: number): boolean {
3546
+ return !!inv<boolean>('0x4C61B39930D045DA', id, rai());
3468
3547
  }
3469
3548
 
3470
3549
  /**
3471
- * @param p0
3472
- * @returns
3550
+ * nullsub, doesn't do anything
3473
3551
  */
3474
- static N_0x3AA0CDC63696166D(p0: number): boolean {
3475
- return inv<boolean>('0x3AA0CDC63696166D', p0, rai());
3552
+ static N_0xACC44768AF229042(): void {
3553
+ inv<void>('0xACC44768AF229042');
3476
3554
  }
3477
3555
 
3478
3556
  /**
3479
- * @param p0
3480
- * @param p1
3557
+ * Hardcoded to return zero. ==== PS4 specific info ==== Returns some sort of unavailable reason:
3558
+ * -1 = REASON_INVALID
3559
+ * 0 = REASON_OTHER
3560
+ * 1 = REASON_SYSTEM_UPDATE
3561
+ * 2 = REASON_GAME_UPDATE
3562
+ * 3 = REASON_SIGNED_OUT
3563
+ * 4 = REASON_AGE
3564
+ * 5 = REASON_CONNECTION =================================
3565
+ *
3481
3566
  * @returns
3482
3567
  */
3483
- static N_0xE39600E50D608693(p0: any, p1: any): boolean {
3484
- return inv<boolean>('0xE39600E50D608693', p0, p1, rai());
3568
+ static getNpUnavailableReason(): number {
3569
+ return inv<number>('0x74FB3E29E6D10FA9', rai());
3485
3570
  }
3486
3571
 
3487
3572
  /**
3488
- * @param flags Refer to [enum: eSessionFlags]
3573
+ * @param netId
3489
3574
  * @returns
3490
3575
  */
3491
- static sessionAddSessionFlags(flags: number): any {
3492
- return inv<number>('0xE546BDA1B3E288EE', flags);
3576
+ static netToPropset(netId: number): PropSet | null {
3577
+ return createFromHandle<PropSet>('PropSet', inv<number>('0xD08066E00D26C448', netId, rai()));
3493
3578
  }
3494
3579
 
3495
3580
  /**
3496
- * @param p0
3497
- * @param playerCount
3498
- * @returns
3581
+ * @param paramName
3499
3582
  */
3500
- static requestRecentGamerNames(p0: number, playerCount: number): any {
3501
- return inv<number>('0x6D206D383BB5F6B1', p0, playerCount);
3583
+ static clearLaunchParam(paramName: string | null): void {
3584
+ inv<void>('0x782C94DB6469634D', paramName);
3502
3585
  }
3503
3586
 
3504
3587
  /**
3505
- * @returns
3588
+ * @param p0
3506
3589
  */
3507
- static getHostOfThisScript(): Player | null {
3508
- return createFromHandle<Player>('Player', inv<number>('0xC7B4D79B01FA7A5C', rai()));
3590
+ static N_0x603469298A4308AF(p0: boolean): void {
3591
+ inv<void>('0x603469298A4308AF', p0);
3509
3592
  }
3510
3593
 
3511
3594
  /**
3512
- * @param animScene
3595
+ * @param player
3513
3596
  * @returns
3514
3597
  */
3515
- static hasControlOfAnimScene(animScene: AnimScene): any {
3516
- return inv<number>('0x26A5C12FACFF8724', animScene.handle);
3598
+ static isAimCamActive(player: Player): any {
3599
+ return inv<number>('0x8E7CE19219669AEB', player.handle);
3517
3600
  }
3518
3601
 
3519
3602
  /**
3520
- * Equivalent to NETWORK_REQUEST_SESSION_SEAMLESS if userHash == 0.
3521
- * Otherwise it is equivalent to NETWORK_SESSION_REQUEST_SESSION_COMPETITIVE(flags, MATCHTYPE_SEAMLESS, userHash, 0, sessionRequestId); p1 is unused
3603
+ * Note: scripts seem to indicate that this was renamed to NETWORK_IS_PLAYER_IN_MP_FAST_INSTANCE
3522
3604
  *
3523
- * @param flags
3524
- * @param seamlessType
3525
- * @param userHash
3526
- * @returns sessionRequestId
3605
+ * @param player
3606
+ * @returns
3527
3607
  */
3528
- static sessionRequestSessionSeamless(flags: number, seamlessType: number, userHash: number): [any, number] {
3529
- const result = inv<[number, number]>('0x2989E131FDE37E97', flags, seamlessType, userHash, pvi());
3530
- return [result[0], result[1]];
3608
+ static isPlayerInMpCutscene(player: Player): boolean {
3609
+ return !!inv<boolean>('0x63F9EE203C3619F2', player.handle, rai());
3531
3610
  }
3532
3611
 
3533
3612
  /**
3534
- * @returns
3613
+ * @param time
3535
3614
  */
3536
- static hasCompletedMpIntroFlowOnCurrentSlot(): any {
3537
- return inv<number>('0xDD73C9838CE7181D');
3615
+ static setLocalPlayerInvincibleTime(time: number): void {
3616
+ inv<void>('0x2D95C7E2D7E07307', time);
3538
3617
  }
3539
3618
 
3540
3619
  /**
3541
- * @param configProperty
3542
- * @param include
3620
+ * @param p0
3621
+ * @returns
3543
3622
  */
3544
- static spawnConfigAddPropertyScripted(configProperty: number, include: boolean): void {
3545
- inv<void>('0x44D59EC597BBF348', configProperty, include);
3623
+ static N_0x3F2EE18A3E294801(p0: number): number {
3624
+ return inv<number>('0x3F2EE18A3E294801', p0, rai());
3546
3625
  }
3547
3626
 
3548
3627
  /**
3549
- * @param p0
3550
- * @returns
3628
+ * @param player
3551
3629
  */
3552
- static N_0xA2837A5E21FB5A58(p0: any): boolean {
3553
- return inv<boolean>('0xA2837A5E21FB5A58', p0, rai());
3630
+ static N_0x7B3FF2D193628126(player: Player): void {
3631
+ inv<void>('0x7B3FF2D193628126', player.handle);
3554
3632
  }
3555
3633
 
3556
3634
  /**
3557
- * @returns
3635
+ * @param milliseconds
3558
3636
  */
3559
- static N_0x0E54D4DA6018FF8E(): boolean {
3560
- return inv<boolean>('0x0E54D4DA6018FF8E', rai());
3637
+ static clearClockOverrideOvertime(milliseconds: number): void {
3638
+ inv<void>('0x65F040D91001ED4B', milliseconds);
3561
3639
  }
3562
3640
 
3563
3641
  /**
3564
- * Returns the entity associated with the given network ID.
3565
- *
3566
- * @param networkId
3642
+ * @param player
3567
3643
  * @returns
3568
3644
  */
3569
- static N_0x4538EE7C321590BC(networkId: number): Entity | null {
3570
- return createFromHandle<Entity>('Entity', inv<number>('0x4538EE7C321590BC', networkId, rai()));
3645
+ static getPlayerTutorialSessionInstance(player: Player): number {
3646
+ return inv<number>('0x3B39236746714134', player.handle, rai());
3647
+ }
3648
+
3649
+ static N_0x9B39B0555CC692B5(): void {
3650
+ inv<void>('0x9B39B0555CC692B5');
3571
3651
  }
3572
3652
 
3573
3653
  /**
3574
3654
  * @param p0
3575
- * @param p1
3576
3655
  * @returns
3577
3656
  */
3578
- static N_0x271F95E55C663B8B(p0: any, p1: any): any {
3579
- return inv<number>('0x271F95E55C663B8B', p0, p1);
3657
+ static N_0xE79BA3BC265895DA(p0: number): string | null {
3658
+ return inv<string>('0xE79BA3BC265895DA', p0, ras());
3580
3659
  }
3581
3660
 
3582
3661
  /**
3583
- * @returns
3662
+ * @param netPlaylistActivity
3584
3663
  */
3585
- static sessionGetSessionFlags(): number {
3586
- return inv<number>('0x51F33DBC1A41CBFD', rai());
3664
+ static activitySetCurrent(netPlaylistActivity: number): void {
3665
+ inv<void>('0x9ADAC065D9F6706F', netPlaylistActivity);
3587
3666
  }
3588
3667
 
3589
3668
  /**
3590
- * Note: this native was added in build 1311.23
3591
- *
3669
+ * @param queueGroup
3592
3670
  * @returns
3593
3671
  */
3594
- static N_0x039AD6B57D5179FF(): number {
3595
- return inv<number>('0x039AD6B57D5179FF', rai());
3672
+ static sessionIsRequestInProgressByQueueGroup(queueGroup: number): any {
3673
+ return inv<number>('0x9E762A595CF88E4A', queueGroup);
3596
3674
  }
3597
3675
 
3598
3676
  /**
3599
- * Old name: _NETWORK_GET_NUM_UNACKED_FOR_PLAYER
3600
- *
3601
- * @param player
3602
3677
  * @returns
3603
3678
  */
3604
- static getNumUnackedReliables(player: Player): number {
3605
- return inv<number>('0xFF8FCF9FFC458A1C', player.handle, rai());
3679
+ static pedmugshotGetStatus(): number {
3680
+ return inv<number>('0xCBAC13F065C47596', rai());
3606
3681
  }
3607
3682
 
3608
3683
  /**
3609
- * @param entity
3610
- * @param toggle
3684
+ * @returns
3611
3685
  */
3612
- static allowEntityFadingForInstances(entity: Entity, toggle: boolean): void {
3613
- inv<void>('0xF3354D6CA46F419D', entity.handle, toggle);
3686
+ static getTunableCloudCrc(): number {
3687
+ return inv<number>('0x10BD227A753B0D84', rai());
3614
3688
  }
3615
3689
 
3616
3690
  /**
3617
- * Only used in R* Script startup_clip
3691
+ * Returns true if the passed value is less than 32.
3692
+ *
3693
+ * @param player
3694
+ * @returns
3618
3695
  */
3619
- static N_0xFD4272A137703449(): void {
3620
- inv<void>('0xFD4272A137703449');
3696
+ static isPlayerIndexValid(player: Player): any {
3697
+ return inv<number>('0x255A5EF65EDA9167', player.handle);
3621
3698
  }
3622
3699
 
3623
3700
  /**
3624
- * @param player
3625
- * @param type
3701
+ * @param entity
3702
+ * @returns
3626
3703
  */
3627
- static N_0x51951DE06C0D1C40(player: Player, type: number): void {
3628
- inv<void>('0x51951DE06C0D1C40', player.handle, type);
3704
+ static getEntityIsNetworked(entity: Entity): boolean {
3705
+ return !!inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
3629
3706
  }
3630
3707
 
3631
3708
  /**
3632
- * @param p0
3633
- * @returns
3709
+ * @param vehicle
3710
+ * @returns Returns the network id for the specified `vehicle`, or `0` if the vehicle isn't networked.
3634
3711
  */
3635
- static N_0x5ED39DA62BEB1330(p0: number): any {
3636
- return inv<number>('0x5ED39DA62BEB1330', p0);
3712
+ static vehToNet(vehicle: Vehicle): number {
3713
+ return inv<number>('0xB4C94523F023419C', vehicle.handle, rai());
3637
3714
  }
3638
3715
 
3639
3716
  /**
3640
- * @param p0
3641
- * @param index
3717
+ * Only used in R* SP Scripts
3718
+ *
3719
+ * @param player
3720
+ * @param personaPhotoLocalCacheType
3642
3721
  * @returns
3643
3722
  */
3644
- static ugcQueryGetName(p0: any, index: number): string | null {
3645
- return inv<string>('0x2D053EA815702DD1', p0, index, ras());
3723
+ static requestPedshotTextureLocalBackupDownload(player: number, personaPhotoLocalCacheType: number): string | null {
3724
+ return inv<string>('0x356F9FB0698C1FEB', player, personaPhotoLocalCacheType, ras());
3646
3725
  }
3647
3726
 
3648
3727
  /**
3649
3728
  * @param p0
3650
- * @param index
3651
- * @returns
3652
3729
  */
3653
- static ugcQueryGetBookMarked(p0: any, index: number): any {
3654
- return inv<number>('0x98539FC453AEA639', p0, index);
3730
+ static N_0xE5634491A58C2703(p0: number): void {
3731
+ inv<void>('0xE5634491A58C2703', f(p0));
3655
3732
  }
3656
3733
 
3657
3734
  /**
3658
- * @param entity
3659
- * @param timer
3735
+ * @param p0
3736
+ * @param p1
3660
3737
  * @param p2
3738
+ * @param p3
3739
+ * @returns
3661
3740
  */
3662
- static setNetworkRespotTimer(entity: Entity, timer: number, p2: boolean): void {
3663
- inv<void>('0x442B4347B6EC36E8', entity.handle, timer, p2);
3741
+ static N_0x64A36BA85CE01A81(p0: any, p1: any, p2: any, p3: any): any {
3742
+ return inv<number>('0x64A36BA85CE01A81', p0, p1, p2, p3);
3664
3743
  }
3665
3744
 
3666
3745
  /**
3667
- * @returns gamerHandle
3746
+ * @returns sessionRequestId
3668
3747
  */
3669
- static getGamertagFromFriend(): [string | null, number] {
3670
- const result = inv<[string, number]>('0x5659D87BE674AB17', pvi(), ras());
3748
+ static sessionIsSessionRequestIdValid(): [any, number] {
3749
+ const result = inv<[number, number]>('0x2F54B146D3EDCE4D', pvi());
3671
3750
  return [result[0], result[1]];
3672
3751
  }
3673
3752
 
3674
3753
  /**
3675
- * @param player
3676
3754
  * @returns
3677
3755
  */
3678
- static getPlayerWaypointIsActive(player: Player): any {
3679
- return inv<number>('0xDCC4B7F7112E8AB7', player.handle);
3756
+ static isResettingPopulation(): any {
3757
+ return inv<number>('0x1BB50CD340A996E6');
3680
3758
  }
3681
3759
 
3682
3760
  /**
3683
- * @param inviteIndex
3761
+ * Note: this native was added in build 1311.23
3762
+ *
3763
+ * @param p0
3684
3764
  * @returns
3685
3765
  */
3686
- static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
3687
- return inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
3766
+ static N_0x039B692B3318FAB6(p0: boolean): number {
3767
+ return inv<number>('0x039B692B3318FAB6', p0, rai());
3688
3768
  }
3689
3769
 
3690
3770
  /**
3691
- * @param netID
3771
+ * Always returns 60
3772
+ *
3773
+ * @returns
3692
3774
  */
3693
- static disableProximityMigration(netID: number): void {
3694
- inv<void>('0x407091CF6037118E', netID);
3775
+ static getMaxNumNetworkObjects(): number {
3776
+ return inv<number>('0xC7BE335216B5EC7C', rai());
3695
3777
  }
3696
3778
 
3697
3779
  /**
3698
- * @param p0
3699
- * @param p1
3700
- * @param dataSize
3701
- * @returns outData
3780
+ * Checks if the user has ROS privilege 14.
3781
+ *
3782
+ * @returns
3702
3783
  */
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]];
3784
+ static ugcHasPrivilege(): any {
3785
+ return inv<number>('0x6506BFA755FB209C');
3706
3786
  }
3707
3787
 
3708
3788
  /**
3709
- * @returns
3789
+ * @param networkId
3790
+ * @param bStopCloning
3710
3791
  */
3711
- static N_0x18B94666CF610AEB(): boolean {
3712
- return inv<boolean>('0x18B94666CF610AEB', rai());
3792
+ static setNetworkIdStopCloning(networkId: number, bStopCloning: boolean): void {
3793
+ inv<void>('0x9ED3108D6847760A', networkId, bStopCloning);
3713
3794
  }
3714
3795
 
3715
3796
  /**
3716
- * p0 appears to be for MP
3797
+ * Returns CGameConfig->ConfigOnlineServices->RosTitleName (see gameconfig.xml)
3717
3798
  *
3718
- * @param p0
3719
3799
  * @returns
3720
3800
  */
3721
- static getNumReservedMissionObjects(p0: boolean): number {
3722
- return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
3801
+ static getRosTitleName(): string | null {
3802
+ return inv<string>('0xAC6153A0722F524C', ras());
3723
3803
  }
3724
3804
 
3725
3805
  /**
3726
3806
  * @returns
3727
3807
  */
3728
- static hasSocialClubAccount(): boolean {
3729
- return inv<boolean>('0x67A5589628E0CFF6', rai());
3808
+ static getScriptStatus(): number {
3809
+ return inv<number>('0x57D158647A6BFABF', rai());
3730
3810
  }
3731
3811
 
3732
3812
  /**
3733
- * @param netHandle
3734
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
3813
+ * @param p0
3814
+ * @param p1
3815
+ * @param p2
3816
+ * @param p3
3735
3817
  */
3736
- static netToPed(netHandle: number): Ped | null {
3737
- return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
3818
+ static setNetworkIdVisibleInCutscene(p0: any, p1: any, p2: any, p3: any): void {
3819
+ inv<void>('0xA6928482543022B4', p0, p1, p2, p3);
3738
3820
  }
3739
3821
 
3740
3822
  /**
3741
- * 0 = succeeded
3742
- * 1 = pending
3743
- * 2 = failed
3744
- *
3745
- * @param textureDownloadId
3746
- * @returns
3823
+ * @param amount
3747
3824
  */
3748
- static getStatusOfTextureDownload(textureDownloadId: number): number {
3749
- return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
3825
+ static reserveNetworkMissionObjects(amount: number): void {
3826
+ inv<void>('0x4E5C93BD0C32FBF8', amount);
3750
3827
  }
3751
3828
 
3752
3829
  /**
3753
- * @returns gamerHandle
3830
+ * @param entity
3831
+ * @param player
3832
+ * @returns p2
3754
3833
  */
3755
- static N_0xF23A6D6C11D8EC15(): [boolean, number] {
3756
- const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
3834
+ static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
3835
+ const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
3757
3836
  return [!!result[0], result[1]];
3758
3837
  }
3759
3838
 
3760
3839
  /**
3761
- * Always returns 40
3762
- *
3763
3840
  * @returns
3764
3841
  */
3765
- static getMaxNumNetworkVehicles(): number {
3766
- return inv<number>('0x0AFCE529F69B21FF', rai());
3842
+ static autoSessionIsAllowedToMerge(): any {
3843
+ return inv<number>('0xAADED99A6B268A27');
3767
3844
  }
3768
3845
 
3769
3846
  /**
3770
- * @param netId
3847
+ * @param p0
3771
3848
  * @param p1
3772
3849
  * @param p2
3850
+ * @returns
3773
3851
  */
3774
- static keepNetworkIdInFastInstance(netId: number, p1: boolean, p2: number): void {
3775
- inv<void>('0xE1BC73D6815BA361', netId, p1, p2);
3852
+ static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
3853
+ return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
3776
3854
  }
3777
3855
 
3778
3856
  /**
3779
- * @returns gamerHandle
3857
+ * Hardcoded to return false.
3858
+ *
3859
+ * @returns
3780
3860
  */
3781
- static isHandleValid(): [boolean, number] {
3782
- const result = inv<[boolean, number]>('0x6F79B93B0A8E4133', pvi(), rai());
3783
- return [!!result[0], result[1]];
3861
+ static shouldShowPromotionDlg(): any {
3862
+ return inv<number>('0xDA4B1A479C414FB2');
3784
3863
  }
3785
3864
 
3786
3865
  /**
3787
- * @param p0
3788
- * @returns p1
3866
+ * @param amount
3789
3867
  */
3790
- static N_0x691E4DE5309EAEFC(p0: any): number {
3791
- const result = inv<number>('0x691E4DE5309EAEFC', p0, pvi());
3792
- return result;
3868
+ static reserveNetworkMissionPeds(amount: number): void {
3869
+ inv<void>('0xB60FEBA45333D36F', amount);
3793
3870
  }
3794
3871
 
3795
3872
  /**
3796
- * @param entity
3797
- * @returns
3873
+ * @param pos
3874
+ * @param heading
3798
3875
  */
3799
- static getNetworkIdFromEntity(entity: Entity): number {
3800
- return inv<number>('0xA11700682F3AD45C', entity.handle, rai());
3876
+ static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
3877
+ inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
3801
3878
  }
3802
3879
 
3803
3880
  /**
3804
- * Only used in SP R* Script dominoes_sp: p1 = 0
3805
- *
3806
- * @param player
3807
- * @param p1
3881
+ * @param paramName
3882
+ * @param value
3808
3883
  */
3809
- static N_0x02C4C6C2900D84DF(player: Player, p1: any): void {
3810
- inv<void>('0x02C4C6C2900D84DF', player.handle, p1);
3884
+ static setLaunchParamValue(paramName: string | null, value: string | null): void {
3885
+ inv<void>('0x668AF6E4933AC13F', paramName, value);
3811
3886
  }
3812
3887
 
3813
3888
  /**
3814
- * @returns
3889
+ * @returns gamerHandle
3815
3890
  */
3816
- static isSessionActive(): boolean {
3817
- return inv<boolean>('0xD83C2B94E7508980', rai());
3891
+ static canViewGamerUserContent(): [any, number] {
3892
+ const result = inv<[number, number]>('0x246545C37C27A717', pvi());
3893
+ return [result[0], result[1]];
3818
3894
  }
3819
3895
 
3820
3896
  /**
3821
- * @param animScene
3897
+ * @param p0
3822
3898
  * @returns
3823
3899
  */
3824
- static animSceneToNet(animScene: AnimScene): number {
3825
- return inv<number>('0xE0D73CDDEA79DDCD', animScene.handle, rai());
3900
+ static isParticipantActive(p0: number): boolean {
3901
+ return !!inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
3826
3902
  }
3827
3903
 
3828
3904
  /**
3905
+ * @param p0
3829
3906
  * @returns
3830
3907
  */
3831
- static getRank(): number {
3832
- return inv<number>('0x32C90CDFAF40514C', rai());
3908
+ static getNumCreatedMissionPeds(p0: boolean): number {
3909
+ return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
3833
3910
  }
3834
3911
 
3835
3912
  /**
3836
- * @param message
3837
- * @returns gamerHandle
3913
+ * _NETWORK_GET_A* - _NETWORK_GET_D*
3914
+ *
3915
+ * @param ped
3916
+ * @returns p1
3838
3917
  */
3839
- static addFriend(message: string | null): [boolean, number] {
3840
- const result = inv<[boolean, number]>('0x8E02D73914064223', pvi(), message, rai());
3841
- return [!!result[0], result[1]];
3918
+ static N_0x6CF82A7F65A5AD5F(ped: Ped): [Player | null, number] {
3919
+ const result = inv<[number, number]>('0x6CF82A7F65A5AD5F', ped.handle, pvi(), rai());
3920
+ return [createFromHandle<Player>('Player', result[0]), result[1]];
3842
3921
  }
3843
3922
 
3844
3923
  /**
3845
- * @param p0
3924
+ * @param p1
3846
3925
  * @returns gamerHandle
3847
3926
  */
3848
- static N_0x16EFB123C4451032(p0: number): [boolean, number] {
3849
- const result = inv<[boolean, number]>('0x16EFB123C4451032', p0, pvi(), rai());
3850
- return [!!result[0], result[1]];
3927
+ static getGamerStatus(p1: number): [number, number] {
3928
+ const result = inv<[number, number]>('0xDDAEB478E58F8DEA', pvi(), p1, rai());
3929
+ return [result[0], result[1]];
3851
3930
  }
3852
3931
 
3853
3932
  /**
3854
- * Return the local Participant ID
3933
+ * Returns result of session request:
3934
+ * 0 - NOT_FOUND
3935
+ * 1 - IN_PROGRESS
3936
+ * 2 - TIMEOUT
3937
+ * 3 - PLAYER_OFFLINE
3938
+ * 4 - GANG_MEMBERS_CHANGED
3939
+ * 5 - PLAYER_CANCELLED
3940
+ * 6 - PLAYER_SET_TOO_LARGE
3941
+ * 7 - MATCH_ACCEPTED
3942
+ * 8 - OTHER
3855
3943
  *
3856
- * @returns
3944
+ * @returns sessionRequestId; p1
3857
3945
  */
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');
3946
+ static sessionGetSessionRequestResult(): [number, number, number] {
3947
+ const result = inv<[number, number, number]>('0x0DD051B1BF4B8BD6', pvi(), pvi(), rai());
3948
+ return [result[0], result[1], result[2]];
3864
3949
  }
3865
3950
 
3866
- /**
3867
- * @param volume
3868
- * @param p1
3869
- * @param originalWeight
3870
- * @param p3
3871
- * @param p4
3872
- */
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);
3951
+ static N_0xA63E4F050F20021F(): void {
3952
+ inv<void>('0xA63E4F050F20021F');
3875
3953
  }
3876
3954
 
3877
3955
  /**
3956
+ * @param amount
3878
3957
  * @returns
3879
3958
  */
3880
- static N_0xBF8276E51761F9DA(): number {
3881
- return inv<number>('0xBF8276E51761F9DA', rai());
3959
+ static canRegisterMissionObjects(amount: number): boolean {
3960
+ return !!inv<boolean>('0x800DD4721A8B008B', amount, rai());
3882
3961
  }
3883
3962
 
3884
3963
  /**
3885
- * Note: this native was added in build 1311.23
3886
- *
3964
+ * @param description
3887
3965
  * @returns
3888
3966
  */
3889
- static N_0x316FD416C432C761(): boolean {
3890
- return inv<boolean>('0x316FD416C432C761', rai());
3967
+ static ugcReleaseCachedDescription(description: string | number): boolean {
3968
+ return !!inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
3891
3969
  }
3892
3970
 
3893
3971
  /**
3894
- * nullsub, doesn't do anything
3895
- *
3896
- * @returns
3972
+ * @param toggle
3897
3973
  */
3898
- static N_0xEC089F84A9C16C62(): any {
3899
- return inv<number>('0xEC089F84A9C16C62');
3974
+ static setFriendlyFireOption(toggle: boolean): void {
3975
+ inv<void>('0xF808475FA571D823', toggle);
3900
3976
  }
3901
3977
 
3902
3978
  /**
3903
- * @param netId
3904
- * @returns
3979
+ * @returns sessionRequestId
3905
3980
  */
3906
- static getRopeIdFromNetworkId(netId: number): number {
3907
- return inv<number>('0xEB1A4DD8352EC828', netId, rai());
3981
+ static sessionTransitionToSession(): [any, number] {
3982
+ const result = inv<[number, number]>('0xF20B18A330E6DB5C', pvi());
3983
+ return [result[0], result[1]];
3908
3984
  }
3909
3985
 
3910
3986
  /**
3911
- * @param ugcRequestId
3987
+ * Hardcoded to return false.
3988
+ *
3912
3989
  * @returns
3913
3990
  */
3914
- static ugcDidRequestSucceed(ugcRequestId: number): any {
3915
- return inv<number>('0x0B6009A90B8495F1', ugcRequestId);
3991
+ static isPromotionEnabled(): any {
3992
+ return inv<number>('0x8FF6059DA26E688A');
3916
3993
  }
3917
3994
 
3918
3995
  /**
3996
+ * @param playersToTake
3997
+ * @param maxInstancePlayers
3998
+ * @param sessionFlags
3999
+ * @param bucketId
3919
4000
  * @returns
3920
4001
  */
3921
- static getNetworkTimeAccurate(): number {
3922
- return inv<number>('0x89023FBBF9200E9F', rai());
4002
+ static autoSessionSplitSession(playersToTake: number, maxInstancePlayers: number, sessionFlags: number, bucketId: number): any {
4003
+ return inv<number>('0xC223D299C670413D', playersToTake, maxInstancePlayers, sessionFlags, bucketId);
3923
4004
  }
3924
4005
 
3925
4006
  /**
3926
4007
  * @param p0
3927
4008
  * @returns
3928
4009
  */
3929
- static getNumCreatedMissionVehicles(p0: boolean): number {
3930
- return inv<number>('0x0CD9AB83489430EA', p0, rai());
4010
+ static N_0x923346025512DFB7(p0: any): any {
4011
+ return inv<number>('0x923346025512DFB7', p0);
3931
4012
  }
3932
4013
 
3933
- static showAccountUpgradeUi(): void {
3934
- inv<void>('0x83FE8D7229593017');
4014
+ /**
4015
+ * @returns args
4016
+ */
4017
+ static resurrectLocalPlayer2(): number {
4018
+ const result = inv<number>('0x4154B7D8C75E5DCF', pvi());
4019
+ return result;
3935
4020
  }
3936
4021
 
3937
4022
  /**
3938
- * Hardcoded to return false.
4023
+ * Only used in R* Script net_stable_manager
3939
4024
  *
3940
- * @returns
4025
+ * @param threadId
4026
+ * @returns pedMax; vehicleMax; unkMax; pedMin; vehicleMin; unkMin
3941
4027
  */
3942
- static isInSessionLobby(): any {
3943
- return inv<number>('0xC5196C42DE19F646');
4028
+ static getReservedMissionEntitiesForThread(threadId: number): [number, number, number, number, number, number] {
4029
+ const result = inv<[number, number, number, number, number, number]>('0x99AAC89C510DEB0D', threadId, pvi(), pvi(), pvi(), pvi(), pvi(), pvi());
4030
+ return [result[0], result[1], result[2], result[3], result[4], result[5]];
3944
4031
  }
3945
4032
 
3946
4033
  /**
3947
- * Always returns a null string.
3948
- *
3949
- * @returns gamerHandle
4034
+ * @param p0
4035
+ * @returns
3950
4036
  */
3951
- static getGamertagFromHandle(): [string | null, number] {
3952
- const result = inv<[string, number]>('0x426141162EBE5CDB', pvi(), ras());
3953
- return [result[0], result[1]];
4037
+ static N_0xD7BAD4062074B9C1(p0: any): boolean {
4038
+ return !!inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
3954
4039
  }
3955
4040
 
3956
4041
  /**
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.
4042
+ * @param hour
4043
+ * @param minute
4044
+ * @param second
4045
+ * @param transitionTime
4046
+ * @param pauseClock
3961
4047
  */
3962
- static objToNet(object: Prop): number {
3963
- return inv<number>('0x99BFDC94A603E541', object.handle, rai());
4048
+ static clockTimeOverride(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean): void {
4049
+ inv<void>('0x669E223E64B1903C', hour, minute, second, transitionTime, pauseClock);
3964
4050
  }
3965
4051
 
3966
4052
  /**
3967
- * @param p0
3968
- * @returns
4053
+ * @param netId
4054
+ * @param player
4055
+ * @param toggle
3969
4056
  */
3970
- static requestJoin(p0: any): number {
3971
- return inv<number>('0xE483BB6BE686F632', p0, rai());
4057
+ static setNetworkIdAlwaysExistsForPlayer(netId: number, player: Player, toggle: boolean): void {
4058
+ inv<void>('0xA8A024587329F36A', netId, player.handle, toggle);
3972
4059
  }
3973
4060
 
3974
4061
  /**
3975
- * Note: this native was added in build 1311.23
4062
+ * Note: this native was added in build 1311.16
3976
4063
  *
3977
- * @param p0
3978
4064
  * @returns
3979
4065
  */
3980
- static N_0x4835413EA6F9C9CD(p0: boolean): number {
3981
- return inv<number>('0x4835413EA6F9C9CD', p0, rai());
4066
+ static isObjectReassignmentInProgress(): boolean {
4067
+ return !!inv<boolean>('0x8FE9EB11EC9CC23A', rai());
3982
4068
  }
3983
4069
 
3984
4070
  /**
3985
- * Returns ugcRequestId
3986
- *
3987
- * @param contentId
3988
- * @param latestVersion
3989
- * @param contentTypeName
4071
+ * @param scriptName
4072
+ * @param instanceId
4073
+ * @param position
3990
4074
  * @returns
3991
4075
  */
3992
- static ugcQueryByContentId(contentId: string | null, latestVersion: boolean, contentTypeName: string | null): number {
3993
- return inv<number>('0x69D22E183580113F', contentId, latestVersion, contentTypeName, rai());
4076
+ static getNumScriptParticipants(scriptName: string | null, instanceId: number, position: string | number): number {
4077
+ return inv<number>('0x3658E8CD94FC121A', scriptName, instanceId, _h(position), rai());
3994
4078
  }
3995
4079
 
3996
4080
  /**
3997
4081
  * @param p0
4082
+ * @returns
3998
4083
  */
3999
- static N_0x3034C77C79A58880(p0: boolean): void {
4000
- inv<void>('0x3034C77C79A58880', p0);
4084
+ static N_0x6C27442A225A241A(p0: number): number {
4085
+ return inv<number>('0x6C27442A225A241A', p0, rai());
4001
4086
  }
4002
4087
 
4003
4088
  /**
4004
- * @param paramName
4005
- * @returns
4089
+ * @param p0
4090
+ * @param p1
4006
4091
  */
4007
- static getLaunchParamValue(paramName: string | null): string | null {
4008
- return inv<string>('0x65E65CA6A0FE59D4', paramName, ras());
4092
+ static spawnConfigSetTuningFloat(p0: string | number, p1: number): void {
4093
+ inv<void>('0x0608326F7B98C08D', _h(p0), f(p1));
4009
4094
  }
4010
4095
 
4011
4096
  /**
4012
- * @param p0
4097
+ * @param p1
4098
+ * @returns outData
4013
4099
  */
4014
- static N_0xCF23AB5BD47B384D(p0: any): void {
4015
- inv<void>('0xCF23AB5BD47B384D', p0);
4100
+ static N_0x7BCA0A3972708436(p1: number): [number, number] {
4101
+ const result = inv<[number, number]>('0x7BCA0A3972708436', pvi(), p1, rai());
4102
+ return [result[0], result[1]];
4016
4103
  }
4017
4104
 
4018
4105
  /**
4019
- * Note: this native was added in build 1311.23
4106
+ * Hardcoded to return zero.
4020
4107
  *
4021
4108
  * @param p0
4022
4109
  * @param p1
4023
4110
  * @param p2
4024
- */
4025
- static N_0x3CBD6565D9C3B133(p0: number, p1: number, p2: number): void {
4026
- inv<void>('0x3CBD6565D9C3B133', p0, p1, f(p2));
4027
- }
4028
-
4029
- /**
4030
4111
  * @returns
4031
4112
  */
4032
- static hasReceivedHostBroadcastData(): boolean {
4033
- return inv<boolean>('0x5D10B3795F3FC886', rai());
4113
+ static getDisplaynamesFromHandles(p0: any, p1: any, p2: any): number {
4114
+ return inv<number>('0x58CC181719256197', p0, p1, p2, rai());
4034
4115
  }
4035
4116
 
4036
4117
  /**
4037
- * @param languageId
4038
4118
  * @returns
4039
4119
  */
4040
- static ugcIsLanguageSupported(languageId: number): boolean {
4041
- return inv<boolean>('0xF53E48461B71EECB', languageId, rai());
4120
+ static isHostOfThisScript(): boolean {
4121
+ return !!inv<boolean>('0x83CD99A1E6061AB5', rai());
4042
4122
  }
4043
4123
 
4044
4124
  /**
4125
+ * @param p0
4126
+ * @param index
4045
4127
  * @returns
4046
4128
  */
4047
- static actionPlatformInvite(): any {
4048
- return inv<number>('0x3B82ACC3F4B6240C');
4129
+ static ugcQueryGetLanguage(p0: any, index: number): number {
4130
+ return inv<number>('0x97764E8AC6487A9A', p0, index, rai());
4049
4131
  }
4050
4132
 
4051
4133
  /**
4052
- * nullsub, doesn't do anything
4134
+ * Note: this native was added in build 1355.30
4053
4135
  *
4054
- * @returns
4136
+ * @param p0
4055
4137
  */
4056
- static dumpNetIfConfig(): any {
4057
- return inv<number>('0xAEDF1BC1C133D6E3');
4138
+ static N_0x422F9D6D6C7BC290(p0: number): void {
4139
+ inv<void>('0x422F9D6D6C7BC290', p0);
4058
4140
  }
4059
4141
 
4060
4142
  /**
4143
+ * @param propSet
4061
4144
  * @returns
4062
4145
  */
4063
- static sessionIsTransitioning(): any {
4064
- return inv<number>('0xF2CBC969C4F090C7');
4146
+ static propsetToNet(propSet: PropSet): number {
4147
+ return inv<number>('0x74F99EF7EF503398', propSet.handle, rai());
4065
4148
  }
4066
4149
 
4067
4150
  /**
4068
4151
  * @param p0
4069
- * @param index
4070
- * @param p2
4071
- * @returns
4072
4152
  */
4073
- static ugcQueryGetVersion(p0: any, index: number, p2: number): number {
4074
- return inv<number>('0x63E9DCBC8B0931ED', p0, index, p2, rai());
4153
+ static N_0x5CD3AAD8FF9ED121(p0: any): void {
4154
+ inv<void>('0x5CD3AAD8FF9ED121', p0);
4075
4155
  }
4076
4156
 
4077
4157
  /**
4078
- * @param p0
4079
- * @param p1
4158
+ * @param netId
4159
+ * @returns
4080
4160
  */
4081
- static N_0x3F0ABAE38A0515AD(p0: number, p1: number): void {
4082
- inv<void>('0x3F0ABAE38A0515AD', p0, p1);
4161
+ static netToAnimScene(netId: number): AnimScene | null {
4162
+ return createFromHandle<AnimScene>('AnimScene', inv<number>('0xD7F6781A0ABAF6FB', netId, rai()));
4083
4163
  }
4084
4164
 
4085
4165
  /**
4086
- * Subtracts the second argument from the first, then returns whether the result is negative.
4087
- *
4088
- * @param timeA
4089
- * @param timeB
4166
+ * @param p0
4167
+ * @param index
4090
4168
  * @returns
4091
4169
  */
4092
- static isTimeLessThan(timeA: number, timeB: number): boolean {
4093
- return inv<boolean>('0xCB2CF5148012C8D0', timeA, timeB, rai());
4170
+ static ugcQueryGetContentHasPlayerRecord(p0: any, index: number): any {
4171
+ return inv<number>('0xF794765390A6DCA5', p0, index);
4172
+ }
4173
+
4174
+ static N_0x814729078AED6D30(): void {
4175
+ inv<void>('0x814729078AED6D30');
4094
4176
  }
4095
4177
 
4096
4178
  /**
4097
- * Old name: _NETWORK_GET_UNRELIABLE_RESEND_COUNT_FOR_PLAYER
4098
- *
4099
- * @param player
4100
4179
  * @returns
4101
4180
  */
4102
- static getUnreliableResendCount(player: Player): number {
4103
- return inv<number>('0x3765C3A3E8192E10', player.handle, rai());
4181
+ static isSignedOnline(): boolean {
4182
+ return !!inv<boolean>('0x1077788E268557C2', rai());
4104
4183
  }
4105
4184
 
4106
4185
  /**
4107
- * Note: this native was added in build 1311.23
4108
- *
4109
- * @param p0
4110
4186
  * @returns
4111
4187
  */
4112
- static N_0x106CBDD5077DEDE1(p0: boolean): number {
4113
- return inv<number>('0x106CBDD5077DEDE1', p0, rai());
4188
+ static isInSpectatorMode(): boolean {
4189
+ return !!inv<boolean>('0x048746E388762E11', rai());
4114
4190
  }
4115
4191
 
4116
4192
  /**
@@ -4202,7 +4278,7 @@ export class Network {
4202
4278
  * @returns
4203
4279
  */
4204
4280
  static requestControlOfEntity(entity: Entity): boolean {
4205
- return inv<boolean>('0xB69317BF5E782347', entity.handle, rai());
4281
+ return !!inv<boolean>('0xB69317BF5E782347', entity.handle, rai());
4206
4282
  }
4207
4283
 
4208
4284
  /**
@@ -4210,7 +4286,7 @@ export class Network {
4210
4286
  * @returns
4211
4287
  */
4212
4288
  static N_0xD7D0DF27CB1765B5(p0: number): boolean {
4213
- return inv<boolean>('0xD7D0DF27CB1765B5', p0, rai());
4289
+ return !!inv<boolean>('0xD7D0DF27CB1765B5', p0, rai());
4214
4290
  }
4215
4291
 
4216
4292
  /**
@@ -4228,7 +4304,7 @@ export class Network {
4228
4304
  * @returns
4229
4305
  */
4230
4306
  static arePlayersInSameTutorialSession(player: Player, index: number): boolean {
4231
- return inv<boolean>('0x9DE986FC9A87C474', player.handle, index, rai());
4307
+ return !!inv<boolean>('0x9DE986FC9A87C474', player.handle, index, rai());
4232
4308
  }
4233
4309
 
4234
4310
  static clearFoundGamers(): void {
@@ -4345,7 +4421,7 @@ export class Network {
4345
4421
  * @returns
4346
4422
  */
4347
4423
  static isPlayerInSpectatorMode(player: Player): boolean {
4348
- return inv<boolean>('0x5B709519997ECF0F', player.handle, rai());
4424
+ return !!inv<boolean>('0x5B709519997ECF0F', player.handle, rai());
4349
4425
  }
4350
4426
 
4351
4427
  /**
@@ -4363,14 +4439,14 @@ export class Network {
4363
4439
  * @returns
4364
4440
  */
4365
4441
  static hasControlOfPickup(pickup: Pickup): boolean {
4366
- return inv<boolean>('0x5BC9495F0B3B6FA6', pickup.handle, rai());
4442
+ return !!inv<boolean>('0x5BC9495F0B3B6FA6', pickup.handle, rai());
4367
4443
  }
4368
4444
 
4369
4445
  /**
4370
4446
  * @returns
4371
4447
  */
4372
4448
  static N_0x67CCDF74C4DF7169(): boolean {
4373
- return inv<boolean>('0x67CCDF74C4DF7169', rai());
4449
+ return !!inv<boolean>('0x67CCDF74C4DF7169', rai());
4374
4450
  }
4375
4451
 
4376
4452
  /**
@@ -4390,416 +4466,340 @@ export class Network {
4390
4466
  return inv<number>('0x4FE932E84FE932E8', rai());
4391
4467
  }
4392
4468
 
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);
4469
+ static clearClockTimeOverride(): void {
4470
+ inv<void>('0xD972DF67326F966E');
4449
4471
  }
4450
4472
 
4451
- /**
4452
- * @returns
4453
- */
4454
- static sessionIsAnyRequestInProgress(): any {
4455
- return inv<number>('0xBAFFDE5F953720D9');
4473
+ static N_0xC8B6D18E22484643(): void {
4474
+ inv<void>('0xC8B6D18E22484643');
4456
4475
  }
4457
4476
 
4458
4477
  /**
4459
4478
  * @param p0
4460
4479
  * @param p1
4461
- * @param p2
4462
- * @param p3
4463
- * @param p4
4464
- * @param p5
4465
- * @returns
4466
4480
  */
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()));
4481
+ static N_0xDC6AD5C046F33AB4(p0: boolean, p1: boolean): void {
4482
+ inv<void>('0xDC6AD5C046F33AB4', p0, p1);
4477
4483
  }
4478
4484
 
4479
4485
  /**
4480
- * Note: this native was added in build 1311.23
4481
- *
4486
+ * @param entity
4482
4487
  * @returns
4483
4488
  */
4484
- static N_0x062842D61D0D53FD(): boolean {
4485
- return inv<boolean>('0x062842D61D0D53FD', rai());
4489
+ static hasControlOfEntity(entity: Entity): boolean {
4490
+ return !!inv<boolean>('0x01BF60A500E28887', entity.handle, rai());
4486
4491
  }
4487
4492
 
4488
4493
  /**
4489
- * @param p0
4494
+ * @param player
4495
+ * @returns
4490
4496
  */
4491
- static N_0xFF36F36B07E69059(p0: any): void {
4492
- inv<void>('0xFF36F36B07E69059', p0);
4497
+ static getUniqueIntForPlayer(player: Player): number {
4498
+ return inv<number>('0x07F723401B9D921C', player.handle, rai());
4493
4499
  }
4494
4500
 
4495
4501
  /**
4496
- * @param flags
4502
+ * @param tunableContext
4503
+ * @param tunableName
4497
4504
  * @returns
4498
4505
  */
4499
- static sessionSetPlayerFlags(flags: number): any {
4500
- return inv<number>('0x0AE241A4A9ADEEEC', flags);
4506
+ static accessTunableBool(tunableContext: string | number, tunableName: string | number): boolean {
4507
+ return !!inv<boolean>('0xAA6A47A573ABB75A', _h(tunableContext), _h(tunableName), rai());
4501
4508
  }
4502
4509
 
4503
4510
  /**
4504
- * @param contentId
4505
- * @param dataSize
4506
- * @param p4
4507
- * @param flags
4508
- * @returns gamerHandle; data
4511
+ * @returns gamerHandle
4509
4512
  */
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
+ static removeFriend(): [any, number] {
4514
+ const result = inv<[number, number]>('0x55F618F68AB854D3', pvi());
4515
+ return [result[0], result[1]];
4513
4516
  }
4514
4517
 
4515
- static N_0x61BFBAA795E712AD(): void {
4516
- inv<void>('0x61BFBAA795E712AD');
4518
+ static N_0x6C7E04E9DE451789(): void {
4519
+ inv<void>('0x6C7E04E9DE451789');
4517
4520
  }
4518
4521
 
4519
4522
  /**
4520
- * @param playerSlot
4521
- * @param personaPhotoLocalCacheType
4522
4523
  * @returns
4523
4524
  */
4524
- static localPlayerPedshotTextureDownloadRequest(playerSlot: number, personaPhotoLocalCacheType: number): number {
4525
- return inv<number>('0x6E2FD8CF7EB10E53', playerSlot, personaPhotoLocalCacheType, rai());
4525
+ static N_0x0B6B4507AC5EA8B8(): boolean {
4526
+ return !!inv<boolean>('0x0B6B4507AC5EA8B8', rai());
4526
4527
  }
4527
4528
 
4528
4529
  /**
4529
- * Hardcoded to return zero.
4530
- *
4531
- * @returns
4530
+ * @param netID
4531
+ * @param toggle
4532
4532
  */
4533
- static N_0x5133CF81924F1129(): number {
4534
- return inv<number>('0x5133CF81924F1129', rai());
4533
+ static activateDamageTrackerOnNetworkId(netID: number, toggle: boolean): void {
4534
+ inv<void>('0xD45B1FFCCD52FF19', netID, toggle);
4535
4535
  }
4536
4536
 
4537
4537
  /**
4538
- * Returns the Player associated to a given Ped when in an online session.
4539
- *
4540
- * @param ped
4541
- * @returns
4538
+ * *NETWORK_SPAWN_CONFIG**
4542
4539
  */
4543
- static getPlayerIndexFromPed(ped: Ped): Player | null {
4544
- return createFromHandle<Player>('Player', inv<number>('0x6C0E2E0125610278', ped.handle, rai()));
4540
+ static N_0x6CEE2E30021DAEC6(): void {
4541
+ inv<void>('0x6CEE2E30021DAEC6');
4542
+ }
4543
+
4544
+ static N_0x5B9C6AC118FD4774(): void {
4545
+ inv<void>('0x5B9C6AC118FD4774');
4545
4546
  }
4546
4547
 
4547
4548
  /**
4548
- * @param netID
4549
+ * @param player
4550
+ * @param trackedPlayer
4549
4551
  * @returns
4550
4552
  */
4551
- static doesNetworkIdExist(netID: number): boolean {
4552
- return inv<boolean>('0x38CE16C96BD11344', netID, rai());
4553
+ static isTrackedPlayerVisible(player: Player, trackedPlayer: Player): any {
4554
+ return inv<number>('0xE525878A35B9EEBD', player.handle, trackedPlayer.handle);
4555
+ }
4556
+
4557
+ static activityResetToIdle(): void {
4558
+ inv<void>('0x3FE141FDB990E3D1');
4553
4559
  }
4554
4560
 
4555
4561
  /**
4556
- * @param local
4557
- * @param remote
4558
- * @param instanceId
4562
+ * @param p0
4563
+ * @returns
4559
4564
  */
4560
- static setLocalPlayerVisibleInCutscene(local: boolean, remote: boolean, instanceId: number): void {
4561
- inv<void>('0xD1065D68947E7B6E', local, remote, instanceId);
4565
+ static hasControlOfPickupPlacement(p0: any): boolean {
4566
+ return !!inv<boolean>('0x51EABCF2786515AB', p0, rai());
4562
4567
  }
4563
4568
 
4564
4569
  /**
4565
- * Params: p5 = 50.f, p6 = 0 in R* Script net_fetch (NET_FETCH_CLIENT_UPDATE_PED_ROLE_CLUE_IDLE)
4570
+ * Converts the specified entity into a local entity, removing it from the networked pool. This will only work if you're the owner of the entity.
4566
4571
  *
4567
- * @param pos
4568
- * @param p5
4569
- * @param p6
4570
- * @returns p0; p1
4572
+ * @param entity The entity to un-network
4571
4573
  */
4572
- static N_0x880A7202301E282B(pos: Vector3, p5: number, p6: any): [boolean, number, number] {
4573
- const result = inv<[boolean, number, number]>('0x880A7202301E282B', pvi(), pvi(), f(pos.x), f(pos.y), f(pos.z), f(p5), p6, rai());
4574
- return [!!result[0], result[1], result[2]];
4574
+ static unregisterNetworkedEntity(entity: Entity): void {
4575
+ inv<void>('0xE31A04513237DC89', entity.handle);
4575
4576
  }
4576
4577
 
4577
4578
  /**
4578
- * Note: this native was added in build 1491.50
4579
- *
4580
- * @param p0
4581
- * @returns
4579
+ * nullsub, doesn't do anything
4582
4580
  */
4583
- static N_0xDBDF80673BBA3D65(p0: number): boolean {
4584
- return inv<boolean>('0xDBDF80673BBA3D65', p0, rai());
4581
+ static showPsnUgcRestriction(): void {
4582
+ inv<void>('0x5C497525F803486B');
4585
4583
  }
4586
4584
 
4587
4585
  /**
4588
4586
  * @param p0
4587
+ * @param p1
4588
+ * @returns
4589
4589
  */
4590
- static N_0x9F24A34863FD35DA(p0: any): void {
4591
- inv<void>('0x9F24A34863FD35DA', p0);
4590
+ static ugcQueryGetPosixUpdatedDate(p0: any, p1: any): number {
4591
+ return inv<number>('0x21A99A72B00D8002', p0, p1, rai());
4592
4592
  }
4593
4593
 
4594
- static clearPlatformInvite(): void {
4595
- inv<void>('0xA4484173759749B1');
4594
+ /**
4595
+ * @param index
4596
+ * @returns
4597
+ */
4598
+ static hasRosPrivilege(index: number): boolean {
4599
+ return !!inv<boolean>('0xA699957E60D80214', index, rai());
4596
4600
  }
4597
4601
 
4598
4602
  /**
4599
- * @param toggle
4600
- * @param p2
4601
- * @returns p1
4603
+ * @returns
4602
4604
  */
4603
- static autoSessionSetAllowedToMerge(toggle: boolean, p2: number): number {
4604
- const result = inv<number>('0x63246A24F5747510', toggle, pvi(), p2);
4605
- return result;
4605
+ static isSessionStarted(): boolean {
4606
+ return !!inv<boolean>('0x9DE624D2FC4B603F', rai());
4606
4607
  }
4607
4608
 
4608
4609
  /**
4609
- * @returns
4610
+ * @param toggle
4610
4611
  */
4611
- static getTotalNumPlayers(): number {
4612
- return inv<number>('0xCF61D4B4702EE9EB', rai());
4612
+ static setLocalPlayerSyncLookAt(toggle: boolean): void {
4613
+ inv<void>('0x524FF0AEFF9C3973', toggle);
4613
4614
  }
4614
4615
 
4615
4616
  /**
4616
- * Note: this native was added in build 1311.23
4617
- *
4618
- * @param p0
4619
- * @returns
4617
+ * @returns gamerHandle
4620
4618
  */
4621
- static N_0x744BFBB0CA908161(p0: boolean): number {
4622
- return inv<number>('0x744BFBB0CA908161', p0, rai());
4619
+ static showProfileUi(): number {
4620
+ const result = inv<number>('0x859ED1CEA343FCA8', pvi());
4621
+ return result;
4623
4622
  }
4624
4623
 
4625
4624
  /**
4626
4625
  * @param player
4627
- * @returns
4626
+ * @param toggle
4628
4627
  */
4629
- static isPlayerActive(player: Player): boolean {
4630
- return inv<boolean>('0xB8DFD30D6973E135', player.handle, rai());
4628
+ static setPlayerVisibleLocally(player: Player, toggle: boolean): void {
4629
+ inv<void>('0xFAA10F1FAFB11AF2', player.handle, toggle);
4631
4630
  }
4632
4631
 
4633
4632
  /**
4634
- * @returns
4633
+ * *NETWORK_SPAWN_CONFIG**
4634
+ *
4635
+ * @param nsctf
4635
4636
  */
4636
- static getPlatformInviteId(): number {
4637
- return inv<number>('0x9BCF28FB5D65A9BE', rai());
4637
+ static N_0x5D3C528B7A7DF836(nsctf: string | number): void {
4638
+ inv<void>('0x5D3C528B7A7DF836', _h(nsctf));
4638
4639
  }
4639
4640
 
4640
4641
  /**
4641
- * @param p0
4642
- * @param index
4643
4642
  * @returns
4644
4643
  */
4645
- static ugcQueryGetOwnerId(p0: any, index: number): string | null {
4646
- return inv<string>('0xF9F0B3028431967B', p0, index, ras());
4644
+ static autoSessionIsAutoWarpDisabled(): any {
4645
+ return inv<number>('0xE258570E0C116A66');
4647
4646
  }
4648
4647
 
4649
4648
  /**
4650
- * @param tunableContext
4651
- * @param tunableName
4652
- * @param defaultValue
4653
4649
  * @returns
4654
4650
  */
4655
- static tryAccessTunableFloatHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
4656
- return inv<number>('0xA18393089C05E49C', _h(tunableContext), _h(tunableName), f(defaultValue), raf());
4651
+ static didGetGamerStatusSucceed(): any {
4652
+ return inv<number>('0x5AE17C6B0134B7F1');
4657
4653
  }
4658
4654
 
4659
4655
  /**
4656
+ * @param p0
4657
+ * @param p1
4658
+ * @param p2
4659
+ * @param p3
4660
+ * @param p4
4660
4661
  * @returns
4661
4662
  */
4662
- static hasNetworkTimeStarted(): boolean {
4663
- return inv<boolean>('0x46718ACEEDEAFC84', rai());
4663
+ static isSphereVisibleToAnotherMachine(p0: any, p1: any, p2: any, p3: any, p4: any): boolean {
4664
+ return !!inv<boolean>('0xD82CF8E64C8729D8', p0, p1, p2, p3, p4, rai());
4664
4665
  }
4665
4666
 
4666
4667
  /**
4667
- * Hardcoded to return false.
4668
- *
4668
+ * @param p0
4669
4669
  * @returns
4670
4670
  */
4671
- static isInPlatformParty(): boolean {
4672
- return inv<boolean>('0x2FC5650B0271CB57', rai());
4671
+ static checkCommunicationPrivileges(p0: number): boolean {
4672
+ return !!inv<boolean>('0x83F28CE49FBBFFBA', p0, rai());
4673
4673
  }
4674
4674
 
4675
4675
  /**
4676
- * Return the local Participant ID. This native is exactly the same as 'PARTICIPANT_ID' native.
4677
- *
4678
- * @returns
4676
+ * Note: this native was added in build 1355.30
4679
4677
  */
4680
- static participantIdToInt(): number {
4681
- return inv<number>('0x57A3BDDAD8E5AA0A', rai());
4678
+ static N_0x40FEDB13870042F1(): void {
4679
+ inv<void>('0x40FEDB13870042F1');
4682
4680
  }
4683
4681
 
4684
4682
  /**
4685
- * @param toggle
4686
- * @param pos
4683
+ * @param player1
4684
+ * @param player2
4685
+ * @returns
4687
4686
  */
4688
- static setInStaticSpectatorMode(toggle: boolean, pos: Vector3): void {
4689
- inv<void>('0xFBF1ECFB39A77B5F', toggle, f(pos.x), f(pos.y), f(pos.z));
4687
+ static N_0xFE53B1F8D43F19BF(player1: Player, player2: Player): number {
4688
+ return inv<number>('0xFE53B1F8D43F19BF', player1.handle, player2.handle, rai());
4690
4689
  }
4691
4690
 
4692
4691
  /**
4693
- * @param p0
4692
+ * @param id
4694
4693
  * @returns
4695
4694
  */
4696
- static requestControlOfPickupPlacement(p0: any): boolean {
4697
- return inv<boolean>('0x56ED2C48558DAB78', p0, rai());
4695
+ static cloudDidRequestSucceed(id: number): boolean {
4696
+ return !!inv<boolean>('0x3A3D5568AF297CD5', id, rai());
4698
4697
  }
4699
4698
 
4700
4699
  /**
4701
- * @param entity
4700
+ * @param player
4701
+ * @returns
4702
4702
  */
4703
- static registerEntityAsNetworked(entity: Entity): void {
4704
- inv<void>('0x06FAACD625D80CAA', entity.handle);
4703
+ static isPlayerConnected(player: Player): boolean {
4704
+ return !!inv<boolean>('0x93DC1BE4E1ABE9D1', player.handle, rai());
4705
4705
  }
4706
4706
 
4707
4707
  /**
4708
- * Session flag 'SF_PRIVATE' is set internally
4709
- * p1 represents max amount of players in private session
4708
+ * Hardcoded to return false.
4710
4709
  *
4711
- * @param flags
4712
- * @param numPlayers
4713
- * @param userHash
4714
- * @returns sessionRequestId
4710
+ * @returns gamerHandle
4715
4711
  */
4716
- static sessionRequestSessionPrivate(flags: number, numPlayers: number, userHash: number): [any, number] {
4717
- const result = inv<[number, number]>('0x39A8EF7AF29A192C', flags, numPlayers, userHash, pvi());
4712
+ static isPendingFriend(): [any, number] {
4713
+ const result = inv<[number, number]>('0x0BE73DA6984A6E33', pvi());
4718
4714
  return [result[0], result[1]];
4719
4715
  }
4720
4716
 
4721
4717
  /**
4722
- * @param textureDownloadId
4718
+ * Note: this native was added in build 1311.23
4719
+ *
4720
+ * @param p0
4723
4721
  */
4724
- static textureDownloadRelease(textureDownloadId: number): void {
4725
- inv<void>('0x487EB90B98E9FB19', textureDownloadId);
4722
+ static N_0xA7670F7991099680(p0: number): void {
4723
+ inv<void>('0xA7670F7991099680', p0);
4726
4724
  }
4727
4725
 
4728
4726
  /**
4729
- * Only used in R* Script net_rolling_playlist
4727
+ * @param instanceId
4730
4728
  */
4731
- static sessionPlaylistGoToNextContent(): void {
4732
- inv<void>('0xBDE605F925B07127');
4729
+ static setLocalPlayerPendingFastInstanceId(instanceId: number): void {
4730
+ inv<void>('0x007FF852DCF49DA4', instanceId);
4733
4731
  }
4734
4732
 
4735
4733
  /**
4736
- * Note: this native was added in build 1311.23
4737
- *
4738
- * @returns sessionId
4734
+ * @param p0
4739
4735
  */
4740
- static sessionGetSessionId(): number {
4741
- const result = inv<number>('0xE9B356C330C0A806', pvi());
4742
- return result;
4736
+ static N_0xF342F6BD0A8287D5(p0: any): void {
4737
+ inv<void>('0xF342F6BD0A8287D5', p0);
4743
4738
  }
4744
4739
 
4745
4740
  /**
4746
4741
  * @returns
4747
4742
  */
4748
- static autoSessionSplitSessionSuccessful(): any {
4749
- return inv<number>('0x6D87BA8EF15226CD');
4743
+ static isFindingGamers(): boolean {
4744
+ return !!inv<boolean>('0xDDDF64C91BFCF0AA', rai());
4750
4745
  }
4751
4746
 
4752
4747
  /**
4753
- * @param ugcRequestId
4754
- * @returns
4748
+ * Returns textureDownloadId
4749
+ *
4750
+ * @param filePath
4751
+ * @param name
4752
+ * @param p3
4753
+ * @returns gamerHandle
4755
4754
  */
4756
- static ugcHasRequestFinished(ugcRequestId: number): any {
4757
- return inv<number>('0xA9EB4D606076615D', ugcRequestId);
4755
+ static textureDownloadRequest(filePath: string | null, name: string | null, p3: boolean): [number, number] {
4756
+ const result = inv<[number, number]>('0x16160DA74A8E74A2', pvi(), filePath, name, p3, rai());
4757
+ return [result[0], result[1]];
4758
4758
  }
4759
4759
 
4760
4760
  /**
4761
- * @returns sessionRequestId
4761
+ * @returns gamerHandle
4762
4762
  */
4763
- static sessionIsRequestInProgress(): [any, number] {
4764
- const result = inv<[number, number]>('0x8FB7C254CFCBF78E', pvi());
4765
- return [result[0], result[1]];
4763
+ static isFriendHandleOnline(): [boolean, number] {
4764
+ const result = inv<[boolean, number]>('0xE348D1404BD80146', pvi(), rai());
4765
+ return [!!result[0], result[1]];
4766
4766
  }
4767
4767
 
4768
4768
  /**
4769
- * Adds the first argument to the second.
4770
- *
4771
- * @param timeA
4772
- * @param timeB
4773
- * @returns
4769
+ * @param netId
4770
+ * @returns weaponHash: Refer to [enum: eWeaponHash]
4774
4771
  */
4775
- static getTimeOffset(timeA: number, timeB: number): number {
4776
- return inv<number>('0x017008CCDAD48503', timeA, timeB, rai());
4772
+ static getDestroyerOfNetworkId(netId: number): [number, number] {
4773
+ const result = inv<[number, number]>('0x7A1ADEEF01740A24', netId, pvi(), rai());
4774
+ return [result[0], result[1]];
4777
4775
  }
4778
4776
 
4779
4777
  /**
4780
- * @param p0
4778
+ * Returns value of fwuiCachedSetting "general.onlineNotificationsInStoryMode"
4779
+ *
4781
4780
  * @returns
4782
4781
  */
4783
- static N_0xC028B3F52C707C49(p0: any): boolean {
4784
- return inv<boolean>('0xC028B3F52C707C49', p0, rai());
4782
+ static areOnlineNotificationsShownInStoryMode(): boolean {
4783
+ return !!inv<boolean>('0xF5C5929E07512F80', rai());
4785
4784
  }
4786
4785
 
4787
4786
  /**
4788
- * nullsub, doesn't do anything
4787
+ * Subtracts the second argument from the first.
4789
4788
  *
4789
+ * @param timeA
4790
+ * @param timeB
4790
4791
  * @returns
4791
4792
  */
4792
- static N_0xC964FCD3D1720697(): any {
4793
- return inv<number>('0xC964FCD3D1720697');
4793
+ static getTimeDifference(timeA: number, timeB: number): number {
4794
+ return inv<number>('0xA2C6FC031D46FFF0', timeA, timeB, rai());
4794
4795
  }
4795
4796
 
4796
4797
  /**
4797
4798
  * @param p0
4798
- * @param p1
4799
4799
  * @returns
4800
4800
  */
4801
- static ugcQueryGetPublished(p0: any, p1: any): any {
4802
- return inv<number>('0x9993F1E11944A3DD', p0, p1);
4801
+ static N_0xD1FFB246F4E088AC(p0: number): boolean {
4802
+ return !!inv<boolean>('0xD1FFB246F4E088AC', p0, rai());
4803
4803
  }
4804
4804
 
4805
4805
  }