@nativewrappers/redm-codegen 0.0.3 → 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 (313) hide show
  1. package/dist/classes/AnimScene.d.ts +135 -135
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +208 -208
  4. package/dist/classes/BaseModel.d.ts +21 -21
  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 +23 -23
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +27 -27
  10. package/dist/classes/Cam.d.ts +98 -98
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +134 -134
  13. package/dist/classes/Entity.d.ts +385 -380
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +498 -489
  16. package/dist/classes/Interior.d.ts +5 -5
  17. package/dist/classes/Interior.d.ts.map +1 -1
  18. package/dist/classes/Interior.js +8 -8
  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 +336 -336
  23. package/dist/classes/Ped.d.ts.map +1 -1
  24. package/dist/classes/Ped.js +495 -495
  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 +255 -255
  29. package/dist/classes/PedTask.d.ts.map +1 -1
  30. package/dist/classes/PedTask.js +345 -345
  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 +29 -29
  34. package/dist/classes/Pickup.d.ts +8 -8
  35. package/dist/classes/Pickup.d.ts.map +1 -1
  36. package/dist/classes/Pickup.js +15 -15
  37. package/dist/classes/Player.d.ts +713 -709
  38. package/dist/classes/Player.d.ts.map +1 -1
  39. package/dist/classes/Player.js +979 -973
  40. package/dist/classes/Prop.d.ts +115 -115
  41. package/dist/classes/Prop.d.ts.map +1 -1
  42. package/dist/classes/Prop.js +160 -160
  43. package/dist/classes/PropSet.d.ts +5 -5
  44. package/dist/classes/PropSet.d.ts.map +1 -1
  45. package/dist/classes/PropSet.js +6 -6
  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 +9 -9
  53. package/dist/classes/VehicleTask.d.ts.map +1 -1
  54. package/dist/classes/VehicleTask.js +12 -12
  55. package/dist/classes/Volume.d.ts +56 -56
  56. package/dist/classes/Volume.d.ts.map +1 -1
  57. package/dist/classes/Volume.js +84 -84
  58. package/dist/classes/Weapon.d.ts +354 -354
  59. package/dist/classes/Weapon.d.ts.map +1 -1
  60. package/dist/classes/Weapon.js +464 -464
  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 +49 -49
  68. package/dist/namespaces/Animscene.d.ts.map +1 -1
  69. package/dist/namespaces/Animscene.js +67 -67
  70. package/dist/namespaces/Audio.d.ts +447 -447
  71. package/dist/namespaces/Audio.d.ts.map +1 -1
  72. package/dist/namespaces/Audio.js +635 -635
  73. package/dist/namespaces/CamStatics.d.ts +441 -441
  74. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  75. package/dist/namespaces/CamStatics.js +675 -675
  76. package/dist/namespaces/Collection.d.ts +6 -6
  77. package/dist/namespaces/Collection.d.ts.map +1 -1
  78. package/dist/namespaces/Collection.js +11 -11
  79. package/dist/namespaces/Companion.d.ts +22 -22
  80. package/dist/namespaces/Companion.d.ts.map +1 -1
  81. package/dist/namespaces/Companion.js +30 -30
  82. package/dist/namespaces/Compapp.js +1 -1
  83. package/dist/namespaces/Compendium.d.ts +82 -82
  84. package/dist/namespaces/Compendium.d.ts.map +1 -1
  85. package/dist/namespaces/Compendium.js +115 -115
  86. package/dist/namespaces/Crashlog.js +9 -9
  87. package/dist/namespaces/Crew.js +4 -4
  88. package/dist/namespaces/Databinding.d.ts +164 -164
  89. package/dist/namespaces/Databinding.d.ts.map +1 -1
  90. package/dist/namespaces/Databinding.js +232 -232
  91. package/dist/namespaces/Datafile.js +4 -4
  92. package/dist/namespaces/Decorator.d.ts +19 -19
  93. package/dist/namespaces/Decorator.d.ts.map +1 -1
  94. package/dist/namespaces/Decorator.js +34 -34
  95. package/dist/namespaces/Dlc.d.ts +5 -5
  96. package/dist/namespaces/Dlc.d.ts.map +1 -1
  97. package/dist/namespaces/Dlc.js +9 -9
  98. package/dist/namespaces/EntityStatics.d.ts +119 -119
  99. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  100. package/dist/namespaces/EntityStatics.js +164 -164
  101. package/dist/namespaces/Event.js +4 -4
  102. package/dist/namespaces/Fire.d.ts +89 -89
  103. package/dist/namespaces/Fire.d.ts.map +1 -1
  104. package/dist/namespaces/Fire.js +115 -115
  105. package/dist/namespaces/Flock.js +2 -2
  106. package/dist/namespaces/Gang.js +2 -2
  107. package/dist/namespaces/GoogleAnalytics.js +2 -2
  108. package/dist/namespaces/Graphics.d.ts +375 -375
  109. package/dist/namespaces/Graphics.d.ts.map +1 -1
  110. package/dist/namespaces/Graphics.js +569 -569
  111. package/dist/namespaces/Hud.d.ts +507 -507
  112. package/dist/namespaces/Hud.d.ts.map +1 -1
  113. package/dist/namespaces/Hud.js +706 -706
  114. package/dist/namespaces/Ik.js +1 -1
  115. package/dist/namespaces/Interaction.js +3 -3
  116. package/dist/namespaces/InteriorStatics.js +2 -2
  117. package/dist/namespaces/Inventory.d.ts +159 -159
  118. package/dist/namespaces/Inventory.d.ts.map +1 -1
  119. package/dist/namespaces/Inventory.js +214 -214
  120. package/dist/namespaces/Itemdatabase.d.ts +5 -5
  121. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  122. package/dist/namespaces/Itemdatabase.js +10 -10
  123. package/dist/namespaces/Itemset.js +2 -2
  124. package/dist/namespaces/Law.d.ts +1 -1
  125. package/dist/namespaces/Law.d.ts.map +1 -1
  126. package/dist/namespaces/Law.js +19 -19
  127. package/dist/namespaces/Localization.js +1 -1
  128. package/dist/namespaces/Map.d.ts +173 -173
  129. package/dist/namespaces/Map.d.ts.map +1 -1
  130. package/dist/namespaces/Map.js +240 -240
  131. package/dist/namespaces/Minigame.d.ts +17 -17
  132. package/dist/namespaces/Minigame.d.ts.map +1 -1
  133. package/dist/namespaces/Minigame.js +25 -25
  134. package/dist/namespaces/Misc.d.ts +3 -3
  135. package/dist/namespaces/Misc.d.ts.map +1 -1
  136. package/dist/namespaces/Misc.js +35 -35
  137. package/dist/namespaces/Missiondata.d.ts +15 -15
  138. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  139. package/dist/namespaces/Missiondata.js +24 -24
  140. package/dist/namespaces/Money.js +3 -3
  141. package/dist/namespaces/Netshopping.d.ts +58 -58
  142. package/dist/namespaces/Netshopping.d.ts.map +1 -1
  143. package/dist/namespaces/Netshopping.js +89 -89
  144. package/dist/namespaces/Network.d.ts +694 -694
  145. package/dist/namespaces/Network.d.ts.map +1 -1
  146. package/dist/namespaces/Network.js +1129 -1129
  147. package/dist/namespaces/Object.d.ts +142 -142
  148. package/dist/namespaces/Object.d.ts.map +1 -1
  149. package/dist/namespaces/Object.js +195 -195
  150. package/dist/namespaces/Pad.d.ts +101 -101
  151. package/dist/namespaces/Pad.d.ts.map +1 -1
  152. package/dist/namespaces/Pad.js +142 -142
  153. package/dist/namespaces/Pathfind.js +10 -10
  154. package/dist/namespaces/PedStatics.d.ts +20 -20
  155. package/dist/namespaces/PedStatics.d.ts.map +1 -1
  156. package/dist/namespaces/PedStatics.js +36 -36
  157. package/dist/namespaces/Perschar.d.ts +49 -49
  158. package/dist/namespaces/Perschar.d.ts.map +1 -1
  159. package/dist/namespaces/Perschar.js +76 -76
  160. package/dist/namespaces/Physics.d.ts +89 -89
  161. package/dist/namespaces/Physics.d.ts.map +1 -1
  162. package/dist/namespaces/Physics.js +125 -125
  163. package/dist/namespaces/PlayerStatics.d.ts +139 -139
  164. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  165. package/dist/namespaces/PlayerStatics.js +200 -200
  166. package/dist/namespaces/Population.d.ts +75 -75
  167. package/dist/namespaces/Population.d.ts.map +1 -1
  168. package/dist/namespaces/Population.js +101 -101
  169. package/dist/namespaces/Posse.d.ts +54 -54
  170. package/dist/namespaces/Posse.d.ts.map +1 -1
  171. package/dist/namespaces/Posse.js +86 -86
  172. package/dist/namespaces/Replay.d.ts +1 -1
  173. package/dist/namespaces/Replay.d.ts.map +1 -1
  174. package/dist/namespaces/Replay.js +2 -2
  175. package/dist/namespaces/Scripts.d.ts +1 -1
  176. package/dist/namespaces/Scripts.d.ts.map +1 -1
  177. package/dist/namespaces/Scripts.js +12 -12
  178. package/dist/namespaces/Socialclub.js +8 -8
  179. package/dist/namespaces/Socialclubfeed.js +1 -1
  180. package/dist/namespaces/Spactionproxy.js +4 -4
  181. package/dist/namespaces/Stats.d.ts +197 -197
  182. package/dist/namespaces/Stats.d.ts.map +1 -1
  183. package/dist/namespaces/Stats.js +285 -285
  184. package/dist/namespaces/Streaming.d.ts +46 -46
  185. package/dist/namespaces/Streaming.d.ts.map +1 -1
  186. package/dist/namespaces/Streaming.js +79 -79
  187. package/dist/namespaces/Task.d.ts +138 -138
  188. package/dist/namespaces/Task.d.ts.map +1 -1
  189. package/dist/namespaces/Task.js +204 -204
  190. package/dist/namespaces/Telemetry.d.ts +212 -212
  191. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  192. package/dist/namespaces/Telemetry.js +308 -308
  193. package/dist/namespaces/Txd.js +1 -1
  194. package/dist/namespaces/Uiapps.d.ts +25 -25
  195. package/dist/namespaces/Uiapps.d.ts.map +1 -1
  196. package/dist/namespaces/Uiapps.js +36 -36
  197. package/dist/namespaces/Uievents.js +1 -1
  198. package/dist/namespaces/Uifeed.d.ts +15 -15
  199. package/dist/namespaces/Uifeed.d.ts.map +1 -1
  200. package/dist/namespaces/Uifeed.js +25 -25
  201. package/dist/namespaces/Uistickyfeed.d.ts +16 -16
  202. package/dist/namespaces/Uistickyfeed.d.ts.map +1 -1
  203. package/dist/namespaces/Uistickyfeed.js +21 -21
  204. package/dist/namespaces/Unlock.js +5 -5
  205. package/dist/namespaces/VehicleStatics.js +12 -12
  206. package/dist/namespaces/Voice.d.ts +38 -38
  207. package/dist/namespaces/Voice.d.ts.map +1 -1
  208. package/dist/namespaces/Voice.js +61 -61
  209. package/dist/namespaces/VolumeStatics.d.ts +161 -161
  210. package/dist/namespaces/VolumeStatics.d.ts.map +1 -1
  211. package/dist/namespaces/VolumeStatics.js +217 -217
  212. package/dist/namespaces/Water.d.ts +27 -27
  213. package/dist/namespaces/Water.d.ts.map +1 -1
  214. package/dist/namespaces/Water.js +41 -41
  215. package/dist/namespaces/WeaponStatics.d.ts +274 -274
  216. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  217. package/dist/namespaces/WeaponStatics.js +390 -390
  218. package/dist/namespaces/Zone.d.ts +7 -7
  219. package/dist/namespaces/Zone.d.ts.map +1 -1
  220. package/dist/namespaces/Zone.js +9 -9
  221. package/dist/types/NativeAliases.d.ts +3 -1
  222. package/dist/types/NativeAliases.d.ts.map +1 -1
  223. package/dist/types/NativeAliases.js +3 -1
  224. package/package.json +1 -1
  225. package/src/classes/AnimScene.ts +227 -227
  226. package/src/classes/BaseModel.ts +36 -36
  227. package/src/classes/BaseTask.ts +29 -29
  228. package/src/classes/Cam.ts +143 -143
  229. package/src/classes/Entity.ts +517 -506
  230. package/src/classes/Interior.ts +8 -8
  231. package/src/classes/ItemSet.ts +3 -3
  232. package/src/classes/Ped.ts +512 -512
  233. package/src/classes/PedModel.ts +2 -2
  234. package/src/classes/PedTask.ts +429 -429
  235. package/src/classes/PersChar.ts +35 -35
  236. package/src/classes/Pickup.ts +16 -16
  237. package/src/classes/Player.ts +995 -988
  238. package/src/classes/Prop.ts +177 -177
  239. package/src/classes/PropSet.ts +6 -6
  240. package/src/classes/Vehicle.ts +147 -147
  241. package/src/classes/VehicleModel.ts +2 -2
  242. package/src/classes/VehicleTask.ts +13 -13
  243. package/src/classes/Volume.ts +91 -91
  244. package/src/classes/Weapon.ts +489 -489
  245. package/src/namespaces/Aicoverpoint.ts +40 -40
  246. package/src/namespaces/Aitransport.ts +104 -104
  247. package/src/namespaces/Animscene.ts +74 -74
  248. package/src/namespaces/Audio.ts +647 -647
  249. package/src/namespaces/CamStatics.ts +768 -768
  250. package/src/namespaces/Collection.ts +12 -12
  251. package/src/namespaces/Companion.ts +34 -34
  252. package/src/namespaces/Compapp.ts +1 -1
  253. package/src/namespaces/Compendium.ts +120 -120
  254. package/src/namespaces/Crashlog.ts +9 -9
  255. package/src/namespaces/Crew.ts +4 -4
  256. package/src/namespaces/Databinding.ts +249 -249
  257. package/src/namespaces/Datafile.ts +4 -4
  258. package/src/namespaces/Decorator.ts +37 -37
  259. package/src/namespaces/Dlc.ts +9 -9
  260. package/src/namespaces/EntityStatics.ts +172 -172
  261. package/src/namespaces/Event.ts +4 -4
  262. package/src/namespaces/Fire.ts +127 -127
  263. package/src/namespaces/Flock.ts +2 -2
  264. package/src/namespaces/Gang.ts +2 -2
  265. package/src/namespaces/GoogleAnalytics.ts +2 -2
  266. package/src/namespaces/Graphics.ts +583 -583
  267. package/src/namespaces/Hud.ts +741 -741
  268. package/src/namespaces/Ik.ts +1 -1
  269. package/src/namespaces/Interaction.ts +3 -3
  270. package/src/namespaces/InteriorStatics.ts +2 -2
  271. package/src/namespaces/Inventory.ts +236 -236
  272. package/src/namespaces/Itemdatabase.ts +11 -11
  273. package/src/namespaces/Itemset.ts +2 -2
  274. package/src/namespaces/Law.ts +20 -20
  275. package/src/namespaces/Localization.ts +1 -1
  276. package/src/namespaces/Map.ts +256 -256
  277. package/src/namespaces/Minigame.ts +29 -29
  278. package/src/namespaces/Misc.ts +38 -38
  279. package/src/namespaces/Missiondata.ts +28 -28
  280. package/src/namespaces/Money.ts +3 -3
  281. package/src/namespaces/Netshopping.ts +99 -99
  282. package/src/namespaces/Network.ts +1165 -1165
  283. package/src/namespaces/Object.ts +214 -214
  284. package/src/namespaces/Pad.ts +150 -150
  285. package/src/namespaces/Pathfind.ts +10 -10
  286. package/src/namespaces/PedStatics.ts +42 -42
  287. package/src/namespaces/Perschar.ts +78 -78
  288. package/src/namespaces/Physics.ts +141 -141
  289. package/src/namespaces/PlayerStatics.ts +228 -228
  290. package/src/namespaces/Population.ts +114 -114
  291. package/src/namespaces/Posse.ts +87 -87
  292. package/src/namespaces/Replay.ts +3 -3
  293. package/src/namespaces/Scripts.ts +13 -13
  294. package/src/namespaces/Socialclub.ts +8 -8
  295. package/src/namespaces/Socialclubfeed.ts +1 -1
  296. package/src/namespaces/Spactionproxy.ts +4 -4
  297. package/src/namespaces/Stats.ts +293 -293
  298. package/src/namespaces/Streaming.ts +93 -93
  299. package/src/namespaces/Task.ts +228 -228
  300. package/src/namespaces/Telemetry.ts +322 -322
  301. package/src/namespaces/Txd.ts +1 -1
  302. package/src/namespaces/Uiapps.ts +43 -43
  303. package/src/namespaces/Uievents.ts +1 -1
  304. package/src/namespaces/Uifeed.ts +28 -28
  305. package/src/namespaces/Uistickyfeed.ts +23 -23
  306. package/src/namespaces/Unlock.ts +5 -5
  307. package/src/namespaces/VehicleStatics.ts +12 -12
  308. package/src/namespaces/Voice.ts +70 -70
  309. package/src/namespaces/VolumeStatics.ts +222 -222
  310. package/src/namespaces/Water.ts +47 -47
  311. package/src/namespaces/WeaponStatics.ts +402 -402
  312. package/src/namespaces/Zone.ts +10 -10
  313. package/src/types/NativeAliases.ts +6 -1
@@ -21,7 +21,7 @@ export class Network {
21
21
  * @returns
22
22
  */
23
23
  static ugcDidDescriptionRequestSucceed(description: string | number): boolean {
24
- return inv<boolean>('0x162C23CA83ED0A62', _h(description), rai());
24
+ return !!inv<boolean>('0x162C23CA83ED0A62', _h(description), rai());
25
25
  }
26
26
 
27
27
  /**
@@ -118,146 +118,78 @@ export class Network {
118
118
  return inv<number>('0xF302AB9D978352EE', entity.handle, rai());
119
119
  }
120
120
 
121
- static disableRealtimeMultiplayer(): void {
122
- inv<void>('0x236905C700FDB54D');
123
- }
124
-
125
- /**
126
- * @param volume
127
- */
128
- static spawnConfigRemoveExclusionVolume(volume: Volume): void {
129
- inv<void>('0xA35E7BF20FA269E0', volume.handle);
130
- }
131
-
132
- /**
133
- * @param tunableContext
134
- * @param tunableName
135
- * @returns
136
- */
137
- static doesTunableExist(tunableContext: string | number, tunableName: string | number): boolean {
138
- return inv<boolean>('0x85E5F8B9B898B20A', _h(tunableContext), _h(tunableName), rai());
139
- }
140
-
141
- /**
142
- * Note: this native was added in build 1311.23
143
- *
144
- * @param p0
145
- * @returns
146
- */
147
- static N_0x982D7AD755B8F62C(p0: boolean): number {
148
- return inv<number>('0x982D7AD755B8F62C', p0, rai());
149
- }
150
-
151
- static startSoloTutorialSession(): void {
152
- inv<void>('0x17E0198B3882C2CB');
153
- }
154
-
155
- /**
156
- * @param p0
157
- * @param p2
158
- * @param p3
159
- * @returns p1
160
- */
161
- static setRichPresence(p0: number, p2: number, p3: number): number {
162
- const result = inv<number>('0x1DCCACDCFC569362', p0, pvi(), p2, p3);
163
- return result;
164
- }
165
-
166
121
  /**
122
+ * @param contentTypeName
123
+ * @param contentId
124
+ * @param fileId
125
+ * @param fileVersion
126
+ * @param languageId
167
127
  * @returns
168
128
  */
169
- static pedmugshotTake(): any {
170
- return inv<number>('0xCD954F330693F5F2');
171
- }
172
-
173
- /**
174
- * @param entity
175
- */
176
- static N_0xBB1EC8C2EEF33BAA(entity: Entity): void {
177
- inv<void>('0xBB1EC8C2EEF33BAA', entity.handle);
129
+ static ugcRequestContentDataFromParams(contentTypeName: string | null, contentId: string | null, fileId: number, fileVersion: number, languageId: number): number {
130
+ return inv<number>('0x7FD2990AF016795E', contentTypeName, contentId, fileId, fileVersion, languageId, rai());
178
131
  }
179
132
 
180
133
  /**
181
- * @returns
134
+ * @param maxNumMissionParticipants
135
+ * @param p1
136
+ * @param instanceId
182
137
  */
183
- static haveOnlinePrivileges(): boolean {
184
- return inv<boolean>('0x25CB5A9F37BFD063', rai());
138
+ static setThisScriptIsNetworkScript(maxNumMissionParticipants: number, p1: boolean, instanceId: number): void {
139
+ inv<void>('0x1CA59E306ECB80A5', maxNumMissionParticipants, p1, instanceId);
185
140
  }
186
141
 
187
142
  /**
143
+ * Stadia only; always returns -1 on other platforms. p0 may be a BOOL.
144
+ *
188
145
  * @param p0
189
- * @param index
190
- * @returns
191
- */
192
- static ugcQueryGetRootContentId(p0: any, index: number): string | null {
193
- return inv<string>('0x566CEB0542EF5ECF', p0, index, ras());
194
- }
195
-
196
- /**
197
146
  * @returns
198
147
  */
199
- static didFindGamersSucceed(): any {
200
- return inv<number>('0xF9B83B77929D8863');
201
- }
202
-
203
- static N_0x0BF90CBB6B72977B(): void {
204
- inv<void>('0x0BF90CBB6B72977B');
148
+ static N_0x3E8CCE6769DB5F34(p0: number): number {
149
+ return inv<number>('0x3E8CCE6769DB5F34', p0, rai());
205
150
  }
206
151
 
207
152
  /**
208
- * @returns gamerHandle
153
+ * @returns gamerHandle1; gamerHandle2
209
154
  */
210
- static getLocalHandle(): number {
211
- const result = inv<number>('0xE86051786B66CD8E', pvi());
212
- return result;
155
+ static arePlayersInSamePlatformParty(): [any, number, number] {
156
+ const result = inv<[number, number, number]>('0x11820D1AE80DEA39', pvi(), pvi());
157
+ return [result[0], result[1], result[2]];
213
158
  }
214
159
 
215
160
  /**
216
- * nullsub, doesn't do anything
217
- *
218
- * @param p0
161
+ * @param hour
162
+ * @param minute
163
+ * @param second
164
+ * @param transitionTime
165
+ * @param pauseClock
166
+ * @param clockwise
219
167
  */
220
- static N_0x2C4E98DDA475364F(p0: string | null): void {
221
- inv<void>('0x2C4E98DDA475364F', p0);
168
+ static clockTimeOverride2(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean, clockwise: boolean): void {
169
+ inv<void>('0xE28C13ECC36FF14E', hour, minute, second, transitionTime, pauseClock, clockwise);
222
170
  }
223
171
 
224
172
  /**
225
- * @param entity
173
+ * @param player
226
174
  * @returns
227
175
  */
228
- static getGlobalEntityFlags(entity: Entity): number {
229
- return inv<number>('0xDD7806FD0543BC3D', entity.handle, rai());
176
+ static isPlayerConcealed(player: Player): boolean {
177
+ return !!inv<boolean>('0x919B3C98ED8292F9', player.handle, rai());
230
178
  }
231
179
 
232
180
  /**
233
181
  * @param description
234
182
  * @returns
235
183
  */
236
- static ugcHasDescriptionRequestFinished(description: string | number): boolean {
237
- return inv<boolean>('0xEBFA8D50ADDC54C4', _h(description), rai());
238
- }
239
-
240
- /**
241
- * @returns
242
- */
243
- static canSessionEnd(): boolean {
244
- return inv<boolean>('0x4EEBC3694E49C572', rai());
245
- }
246
-
247
- /**
248
- * @returns
249
- */
250
- static hasCurrentGetGamerStatusStarted(): any {
251
- return inv<number>('0x25189F9908E9CD65');
184
+ static ugcRequestCachedDescription(description: string | number): number {
185
+ return inv<number>('0x5E0165278F6339EE', _h(description), rai());
252
186
  }
253
187
 
254
188
  /**
255
- * @param enabled
256
- * @param flagIndex
257
189
  * @returns
258
190
  */
259
- static setMpMissionFlagOnCurrentSlot(enabled: boolean, flagIndex: number): any {
260
- return inv<number>('0x86FD10251A7118A4', enabled, flagIndex);
191
+ static sessionLeaveSession(): boolean {
192
+ return !!inv<boolean>('0x17C21B7319A05047', rai());
261
193
  }
262
194
 
263
195
  /**
@@ -265,103 +197,65 @@ export class Network {
265
197
  *
266
198
  * @returns
267
199
  */
268
- static isInPlatformPartyChat(): boolean {
269
- return inv<boolean>('0xFD8B834A8BA05048', rai());
270
- }
271
-
272
- /**
273
- * @param friendIndex
274
- * @returns gamerHandle
275
- */
276
- static handleFromFriend(friendIndex: number): number {
277
- const result = inv<number>('0xD45CB817D7E177D2', friendIndex, pvi());
278
- return result;
200
+ static isCustomUpsellEnabled(): any {
201
+ return inv<number>('0x78A9535AF83715C6');
279
202
  }
280
203
 
281
204
  /**
282
205
  * @returns
283
206
  */
284
- static commerceStoreIsEnabled(): boolean {
285
- return inv<boolean>('0xDBC754CB6CCB9378', rai());
286
- }
287
-
288
- /**
289
- * @param p0
290
- */
291
- static N_0xA95470DA137587F5(p0: boolean): void {
292
- inv<void>('0xA95470DA137587F5', p0);
207
+ static getNetworkTime(): number {
208
+ return inv<number>('0x7A5487FE9FAA6B48', rai());
293
209
  }
294
210
 
295
211
  /**
296
- * @param netId
212
+ * @param threadId
297
213
  * @returns
298
214
  */
299
- static hasControlOfNetworkId(netId: number): boolean {
300
- return inv<boolean>('0x4D36070FE0215186', netId, rai());
301
- }
302
-
303
- /**
304
- * @param flags
305
- */
306
- static spawnConfigSetFlags(flags: number): void {
307
- inv<void>('0xF94A0D5B254375DF', flags);
215
+ static getInstanceIdOfThread(threadId: number): number {
216
+ return inv<number>('0xFB9ECED5B68F3B78', threadId, rai());
308
217
  }
309
218
 
310
219
  /**
311
- * Same as NETWORK_GET_AVERAGE_LATENCY (0xD414BE129BB81B32) Old name: _NETWORK_GET_AVERAGE_LATENCY_FOR_PLAYER_2
312
- *
313
- * @param player
314
- * @returns
220
+ * @param configProperty
221
+ * @param include
222
+ * @param weight
315
223
  */
316
- static getAveragePing(player: Player): number {
317
- return inv<number>('0x0E3A041ED6AC2B45', player.handle, raf());
224
+ static spawnConfigAddPropertyPreference(configProperty: number, include: boolean, weight: number): void {
225
+ inv<void>('0xEB6027FD1B4600D5', configProperty, include, f(weight));
318
226
  }
319
227
 
320
228
  /**
321
229
  * @param p0
322
230
  * @returns
323
231
  */
324
- static getNumCreatedMissionObjects(p0: boolean): number {
325
- return inv<number>('0x12B6281B6C6706C0', p0, rai());
326
- }
327
-
328
- /**
329
- * Note: this native was added in build 1311.16 GET_NUM_*
330
- *
331
- * @returns
332
- */
333
- static N_0x02B3CDD652B3CDD6(): number {
334
- return inv<number>('0x02B3CDD652B3CDD6', rai());
232
+ static N_0xDCA4A74135E1DEA5(p0: any): boolean {
233
+ return !!inv<boolean>('0xDCA4A74135E1DEA5', p0, rai());
335
234
  }
336
235
 
337
236
  /**
338
- * nullsub, doesn't do anything
237
+ * @returns gamerHandle
339
238
  */
340
- static N_0x2CD41AC000E6F611(): void {
341
- inv<void>('0x2CD41AC000E6F611');
239
+ static getPlayerFromGamerHandle(): [Player | null, number] {
240
+ const result = inv<[number, number]>('0xCE5F689CF5A0A49D', pvi(), rai());
241
+ return [createFromHandle<Player>('Player', result[0]), result[1]];
342
242
  }
343
243
 
344
244
  /**
245
+ * Returns the amount of players connected in the current session. Only works when connected to a session/server.
246
+ *
345
247
  * @returns
346
248
  */
347
- static sessionGetSessionType(): number {
348
- return inv<number>('0xF0C0C94B404206FA', rai());
249
+ static getNumConnectedPlayers(): number {
250
+ return inv<number>('0xA4A79DD2D9600654', rai());
349
251
  }
350
252
 
351
253
  /**
254
+ * @param netId
352
255
  * @returns
353
256
  */
354
- static isClockTimeOverridden(): boolean {
355
- return inv<boolean>('0xD7C95D322FF57522', rai());
356
- }
357
-
358
- /**
359
- * @param player
360
- * @returns gamerHandle
361
- */
362
- static handleFromPlayer(player: Player): number {
363
- const result = inv<number>('0x388EB2B86C73B6B3', player.handle, pvi());
364
- return result;
257
+ static getEntityFromNetworkId(netId: number): Entity | null {
258
+ return createFromHandle<Entity>('Entity', inv<number>('0xCE4E5D9B0A4FF560', netId, rai()));
365
259
  }
366
260
 
367
261
  /**
@@ -383,7 +277,7 @@ export class Network {
383
277
  * @returns
384
278
  */
385
279
  static canRegisterMissionPeds(amount: number): boolean {
386
- return inv<boolean>('0xBCBF4FEF9FA5D781', amount, rai());
280
+ return !!inv<boolean>('0xBCBF4FEF9FA5D781', amount, rai());
387
281
  }
388
282
 
389
283
  /**
@@ -490,7 +384,7 @@ export class Network {
490
384
  * @returns
491
385
  */
492
386
  static N_0x5F328FC909F0E0FF(p0: number, p1: number, p2: number, p3: number): boolean {
493
- return inv<boolean>('0x5F328FC909F0E0FF', p0, p1, p2, p3, rai());
387
+ return !!inv<boolean>('0x5F328FC909F0E0FF', p0, p1, p2, p3, rai());
494
388
  }
495
389
 
496
390
  /**
@@ -549,7 +443,7 @@ export class Network {
549
443
  * @returns
550
444
  */
551
445
  static isScriptActive(scriptName: string | null, p1: number, p2: boolean, p3: number): boolean {
552
- return inv<boolean>('0x9D40DF90FAD26098', scriptName, p1, p2, p3, rai());
446
+ return !!inv<boolean>('0x9D40DF90FAD26098', scriptName, p1, p2, p3, rai());
553
447
  }
554
448
 
555
449
  /**
@@ -639,130 +533,132 @@ export class Network {
639
533
  }
640
534
 
641
535
  /**
642
- * @returns gamerHandle
536
+ * @param entity
537
+ * @returns
643
538
  */
644
- static canReceiveInviteFromHandle(): [any, number] {
645
- const result = inv<[number, number]>('0xF23D6475640D29EB', pvi());
646
- return [result[0], result[1]];
539
+ static hasEntityBeenRegisteredWithThisThread(entity: Entity): boolean {
540
+ return !!inv<boolean>('0xB07D3185E11657A5', entity.handle, rai());
647
541
  }
648
542
 
649
543
  /**
650
- * @param player
651
- * @param p1
544
+ * @param entity
545
+ * @param toggle
652
546
  */
653
- static addPlayerToRecentGamersList(player: Player, p1: number): void {
654
- inv<void>('0x157D8F3DE12B307F', player.handle, p1);
547
+ static setEntityGhostedToLocalPlayer(entity: Entity, toggle: boolean): void {
548
+ inv<void>('0xEE5AE9956743BA20', entity.handle, toggle);
655
549
  }
656
550
 
657
551
  /**
658
- * @returns
552
+ * @param player
553
+ * @returns weaponHash: Refer to [enum: eWeaponHash]
659
554
  */
660
- static N_0x232E1EB23CDB313C(): boolean {
661
- return inv<boolean>('0x232E1EB23CDB313C', rai());
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]];
662
558
  }
663
559
 
664
560
  /**
665
- * Note: this native was added in build 1311.23
666
- *
667
- * @returns sessionId1; sessionId2
561
+ * @param p0
562
+ * @returns
668
563
  */
669
- static sessionAreSessionIdsEqual(): [boolean, number, number] {
670
- const result = inv<[boolean, number, number]>('0x4DEC5000F7B508F0', pvi(), pvi(), rai());
671
- return [!!result[0], result[1], result[2]];
564
+ static getNumCreatedMissionPickups(p0: boolean): number {
565
+ return inv<number>('0xD2BA051B94CA9BCC', p0, rai());
672
566
  }
673
567
 
674
568
  /**
675
- * @returns
569
+ * @param entity
570
+ * @param p1
571
+ * @param p2
572
+ * @param p3
676
573
  */
677
- static isTutorialSessionChangePending(): boolean {
678
- return inv<boolean>('0x35F0B98A8387274D', rai());
574
+ static setEntityVisibleInCutscene(entity: Entity, p1: boolean, p2: boolean, p3: number): void {
575
+ inv<void>('0xE0031D3C8F36AB82', entity.handle, p1, p2, p3);
679
576
  }
680
577
 
681
- static ugcReleaseAllCachedDescriptions(): void {
682
- inv<void>('0x68103E2247887242');
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]];
683
587
  }
684
588
 
685
589
  /**
686
- * @param animScene
687
590
  * @returns
688
591
  */
689
- static requestControlOfAnimScene(animScene: AnimScene): any {
690
- return inv<number>('0xAAA92B631B13F614', animScene.handle);
691
- }
692
-
693
- static setMissionFinished(): void {
694
- inv<void>('0x3B3D11CD9FFCDFC9');
592
+ static N_0xCC4E72C339461ED1(): any {
593
+ return inv<number>('0xCC4E72C339461ED1');
695
594
  }
696
595
 
697
596
  /**
698
- * Note: this native was added in build 1311.23
597
+ * nullsub, doesn't do anything
699
598
  *
700
- * @param p0
701
599
  * @returns
702
600
  */
703
- static N_0x1E4E097D71D449FB(p0: boolean): number {
704
- return inv<number>('0x1E4E097D71D449FB', p0, rai());
601
+ static N_0x160F0CE6D76A39C9(): any {
602
+ return inv<number>('0x160F0CE6D76A39C9');
705
603
  }
706
604
 
707
605
  /**
708
- * Note: this native was added in build 1311.23
606
+ * Old name: _NETWORK_GET_OLDEST_RESEND_COUNT_FOR_PLAYER
709
607
  *
710
- * @param p0
608
+ * @param player
609
+ * @returns
711
610
  */
712
- static N_0xC1968045EEB563B7(p0: number): void {
713
- inv<void>('0xC1968045EEB563B7', p0);
611
+ static getHighestReliableResendCount(player: Player): number {
612
+ return inv<number>('0x52C1EADAF7B10302', player.handle, rai());
714
613
  }
715
614
 
716
615
  /**
717
- * Old name: _CLEAR_LAUNCH_PARAMS
616
+ * Checks for session flag 'SF_PRIVATE'
617
+ *
618
+ * @returns
718
619
  */
719
- static clearServiceEventArguments(): void {
720
- inv<void>('0x966DD84FB6A46017');
620
+ static sessionIsPrivate(): boolean {
621
+ return !!inv<boolean>('0xCEF70AA5B3F89BA1', rai());
721
622
  }
722
623
 
723
624
  /**
724
- * Old name: _NETWORK_ALLOW_LOCAL_ENTITY_ATTACHMENT
725
- *
726
- * @param entity
727
625
  * @param toggle
728
626
  */
729
- static allowRemoteAttachmentModification(entity: Entity, toggle: boolean): void {
730
- inv<void>('0x267C78C60E806B9A', entity.handle, toggle);
627
+ static autoSessionSetAllowedToSplit(toggle: boolean): void {
628
+ inv<void>('0x0A428058079EE65C', toggle);
629
+ }
630
+
631
+ static N_0x19B52C20B5C4757C(): void {
632
+ inv<void>('0x19B52C20B5C4757C');
731
633
  }
732
634
 
733
635
  /**
734
- * @param volume
636
+ * @returns sessionRequestId
735
637
  */
736
- static spawnConfigAddExclusionVolume(volume: Volume): void {
737
- inv<void>('0xEEB7818B1D307212', volume.handle);
638
+ static sessionIsNsrrSuccess(): [any, number] {
639
+ const result = inv<[number, number]>('0x0F44A5C78D114922', pvi());
640
+ return [result[0], result[1]];
738
641
  }
739
642
 
740
643
  /**
741
- * Note: this native was added in build 1436.31
742
- *
743
- * @param p0
744
644
  * @returns
745
645
  */
746
- static N_0x78271BC02AE9AF83(p0: number): number {
747
- return inv<number>('0x78271BC02AE9AF83', p0, rai());
646
+ static isPlatformInvitePending(): any {
647
+ return inv<number>('0xFC4165C9165C166F');
748
648
  }
749
649
 
750
650
  /**
751
- * @param netID
752
651
  * @returns
753
652
  */
754
- static isDamageTrackerActiveOnNetworkId(netID: number): boolean {
755
- return inv<boolean>('0x6E192E33AD436366', netID, rai());
653
+ static isInMpCutscene(): boolean {
654
+ return !!inv<boolean>('0x6CC27C9FA2040220', rai());
756
655
  }
757
656
 
758
657
  /**
759
- * Always returns -1. Seems to be XB1 specific.
760
- *
761
- * @returns gamerHandle
658
+ * @returns
762
659
  */
763
- static startUserContentPermissionsCheck(): [number, number] {
764
- const result = inv<[number, number]>('0xDEB2B99A1AF1A2A6', pvi(), rai());
765
- return [result[0], result[1]];
660
+ static N_0x273E04A3A7AD1F2D(): boolean {
661
+ return !!inv<boolean>('0x273E04A3A7AD1F2D', rai());
766
662
  }
767
663
 
768
664
  /**
@@ -816,7 +712,7 @@ export class Network {
816
712
  * @returns
817
713
  */
818
714
  static isHost(): boolean {
819
- return inv<boolean>('0x8DB296B814EDDA07', rai());
715
+ return !!inv<boolean>('0x8DB296B814EDDA07', rai());
820
716
  }
821
717
 
822
718
  /**
@@ -848,7 +744,7 @@ export class Network {
848
744
  * @returns
849
745
  */
850
746
  static N_0x9E5A47744C0F0376(p0: number): boolean {
851
- return inv<boolean>('0x9E5A47744C0F0376', p0, rai());
747
+ return !!inv<boolean>('0x9E5A47744C0F0376', p0, rai());
852
748
  }
853
749
 
854
750
  /**
@@ -903,14 +799,14 @@ export class Network {
903
799
  * @returns
904
800
  */
905
801
  static isInSession(): boolean {
906
- return inv<boolean>('0xCA97246103B63917', rai());
802
+ return !!inv<boolean>('0xCA97246103B63917', rai());
907
803
  }
908
804
 
909
805
  /**
910
806
  * @returns
911
807
  */
912
808
  static isTunableCloudRequestPending(): boolean {
913
- return inv<boolean>('0x0467C11ED88B7D28', rai());
809
+ return !!inv<boolean>('0x0467C11ED88B7D28', rai());
914
810
  }
915
811
 
916
812
  /**
@@ -920,7 +816,7 @@ export class Network {
920
816
  * @returns
921
817
  */
922
818
  static isConnectedViaRelay(player: Player): boolean {
923
- return inv<boolean>('0x16D3D49902F697BB', player.handle, rai());
819
+ return !!inv<boolean>('0x16D3D49902F697BB', player.handle, rai());
924
820
  }
925
821
 
926
822
  /**
@@ -963,7 +859,7 @@ export class Network {
963
859
  * @returns
964
860
  */
965
861
  static haveRosBannedPriv(): boolean {
966
- return inv<boolean>('0x8020A73847E0CA7D', rai());
862
+ return !!inv<boolean>('0x8020A73847E0CA7D', rai());
967
863
  }
968
864
 
969
865
  /**
@@ -1026,7 +922,7 @@ export class Network {
1026
922
  * @returns
1027
923
  */
1028
924
  static hasValidRosCredentials(): boolean {
1029
- return inv<boolean>('0x85443FF4C328F53B', rai());
925
+ return !!inv<boolean>('0x85443FF4C328F53B', rai());
1030
926
  }
1031
927
 
1032
928
  /**
@@ -1037,139 +933,142 @@ export class Network {
1037
933
  * @returns
1038
934
  */
1039
935
  static canRegisterMissionEntities(ped_amt: number, vehicle_amt: number, object_amt: number, pickup_amt: number): boolean {
1040
- 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());
1041
937
  }
1042
938
 
1043
939
  /**
940
+ * @param description
941
+ * @param length
1044
942
  * @returns
1045
943
  */
1046
- static didRecentGamerNamesRequestSucceed(): any {
1047
- return inv<number>('0x12AEB56B489415C5');
944
+ static ugcGetCachedDescription(description: string | number, length: number): string | null {
945
+ return inv<string>('0x40F7E66472DF3E5C', _h(description), length, ras());
1048
946
  }
1049
947
 
1050
948
  /**
1051
- * @returns sessionRequestId
949
+ * @param toggle
1052
950
  */
1053
- static sessionCancelRequest(): [any, number] {
1054
- const result = inv<[number, number]>('0xE72E5C1289BD1F40', pvi());
1055
- return [result[0], result[1]];
951
+ static N_0x780A13F780A13F1B(toggle: boolean): void {
952
+ inv<void>('0x780A13F780A13F1B', toggle);
1056
953
  }
1057
954
 
1058
955
  /**
1059
- * @param message
956
+ * @param p1
1060
957
  * @returns gamerHandle
1061
958
  */
1062
- static N_0x5759160AC17C13CE(message: string | null): number {
1063
- const result = inv<number>('0x5759160AC17C13CE', pvi(), message);
1064
- 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]];
1065
962
  }
1066
963
 
1067
964
  /**
1068
- * @param id
1069
- * @returns
965
+ * @param setting
1070
966
  */
1071
- static cloudHasRequestCompleted(id: number): boolean {
1072
- return inv<boolean>('0x4C61B39930D045DA', id, rai());
967
+ static N_0xE3AB5EEFCB6671A2(setting: number): void {
968
+ inv<void>('0xE3AB5EEFCB6671A2', setting);
1073
969
  }
1074
970
 
1075
971
  /**
1076
- * nullsub, doesn't do anything
972
+ * @param p0
973
+ * @returns
1077
974
  */
1078
- static N_0xACC44768AF229042(): void {
1079
- inv<void>('0xACC44768AF229042');
975
+ static N_0x3AA0CDC63696166D(p0: number): boolean {
976
+ return !!inv<boolean>('0x3AA0CDC63696166D', p0, rai());
1080
977
  }
1081
978
 
1082
979
  /**
1083
- * Hardcoded to return zero. ==== PS4 specific info ==== Returns some sort of unavailable reason:
1084
- * -1 = REASON_INVALID
1085
- * 0 = REASON_OTHER
1086
- * 1 = REASON_SYSTEM_UPDATE
1087
- * 2 = REASON_GAME_UPDATE
1088
- * 3 = REASON_SIGNED_OUT
1089
- * 4 = REASON_AGE
1090
- * 5 = REASON_CONNECTION =================================
1091
- *
980
+ * @param p0
981
+ * @param p1
1092
982
  * @returns
1093
983
  */
1094
- static getNpUnavailableReason(): number {
1095
- return inv<number>('0x74FB3E29E6D10FA9', rai());
984
+ static N_0xE39600E50D608693(p0: any, p1: any): boolean {
985
+ return !!inv<boolean>('0xE39600E50D608693', p0, p1, rai());
1096
986
  }
1097
987
 
1098
988
  /**
1099
- * @param netId
989
+ * @param flags Refer to [enum: eSessionFlags]
1100
990
  * @returns
1101
991
  */
1102
- static netToPropset(netId: number): PropSet | null {
1103
- return createFromHandle<PropSet>('PropSet', inv<number>('0xD08066E00D26C448', netId, rai()));
992
+ static sessionAddSessionFlags(flags: number): any {
993
+ return inv<number>('0xE546BDA1B3E288EE', flags);
1104
994
  }
1105
995
 
1106
996
  /**
1107
- * @param paramName
997
+ * @param p0
998
+ * @param playerCount
999
+ * @returns
1108
1000
  */
1109
- static clearLaunchParam(paramName: string | null): void {
1110
- inv<void>('0x782C94DB6469634D', paramName);
1001
+ static requestRecentGamerNames(p0: number, playerCount: number): any {
1002
+ return inv<number>('0x6D206D383BB5F6B1', p0, playerCount);
1111
1003
  }
1112
1004
 
1113
1005
  /**
1114
- * @param p0
1006
+ * @returns
1115
1007
  */
1116
- static N_0x603469298A4308AF(p0: boolean): void {
1117
- inv<void>('0x603469298A4308AF', p0);
1008
+ static getHostOfThisScript(): Player | null {
1009
+ return createFromHandle<Player>('Player', inv<number>('0xC7B4D79B01FA7A5C', rai()));
1118
1010
  }
1119
1011
 
1120
1012
  /**
1121
- * @param player
1013
+ * @param animScene
1122
1014
  * @returns
1123
1015
  */
1124
- static isAimCamActive(player: Player): any {
1125
- return inv<number>('0x8E7CE19219669AEB', player.handle);
1016
+ static hasControlOfAnimScene(animScene: AnimScene): any {
1017
+ return inv<number>('0x26A5C12FACFF8724', animScene.handle);
1126
1018
  }
1127
1019
 
1128
1020
  /**
1129
- * Note: scripts seem to indicate that this was renamed to NETWORK_IS_PLAYER_IN_MP_FAST_INSTANCE
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
1130
1023
  *
1131
- * @param player
1132
- * @returns
1024
+ * @param flags
1025
+ * @param seamlessType
1026
+ * @param userHash
1027
+ * @returns sessionRequestId
1133
1028
  */
1134
- static isPlayerInMpCutscene(player: Player): boolean {
1135
- return inv<boolean>('0x63F9EE203C3619F2', player.handle, rai());
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]];
1136
1032
  }
1137
1033
 
1138
1034
  /**
1139
- * @param time
1035
+ * @returns
1140
1036
  */
1141
- static setLocalPlayerInvincibleTime(time: number): void {
1142
- inv<void>('0x2D95C7E2D7E07307', time);
1037
+ static hasCompletedMpIntroFlowOnCurrentSlot(): any {
1038
+ return inv<number>('0xDD73C9838CE7181D');
1143
1039
  }
1144
1040
 
1145
1041
  /**
1146
- * @param p0
1147
- * @returns
1042
+ * @param configProperty
1043
+ * @param include
1148
1044
  */
1149
- static N_0x3F2EE18A3E294801(p0: number): number {
1150
- return inv<number>('0x3F2EE18A3E294801', p0, rai());
1045
+ static spawnConfigAddPropertyScripted(configProperty: number, include: boolean): void {
1046
+ inv<void>('0x44D59EC597BBF348', configProperty, include);
1151
1047
  }
1152
1048
 
1153
1049
  /**
1154
- * @param player
1050
+ * @param p0
1051
+ * @returns
1155
1052
  */
1156
- static N_0x7B3FF2D193628126(player: Player): void {
1157
- inv<void>('0x7B3FF2D193628126', player.handle);
1053
+ static N_0xA2837A5E21FB5A58(p0: any): boolean {
1054
+ return !!inv<boolean>('0xA2837A5E21FB5A58', p0, rai());
1158
1055
  }
1159
1056
 
1160
1057
  /**
1161
- * @param milliseconds
1058
+ * @returns
1162
1059
  */
1163
- static clearClockOverrideOvertime(milliseconds: number): void {
1164
- inv<void>('0x65F040D91001ED4B', milliseconds);
1060
+ static N_0x0E54D4DA6018FF8E(): boolean {
1061
+ return !!inv<boolean>('0x0E54D4DA6018FF8E', rai());
1165
1062
  }
1166
1063
 
1167
1064
  /**
1168
- * @param player
1065
+ * Returns the entity associated with the given network ID.
1066
+ *
1067
+ * @param networkId
1169
1068
  * @returns
1170
1069
  */
1171
- static getPlayerTutorialSessionInstance(player: Player): number {
1172
- 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()));
1173
1072
  }
1174
1073
 
1175
1074
  /**
@@ -1177,7 +1076,7 @@ export class Network {
1177
1076
  * @returns
1178
1077
  */
1179
1078
  static canRegisterMissionVehicles(amount: number): boolean {
1180
- return inv<boolean>('0x7277F1F2E085EE74', amount, rai());
1079
+ return !!inv<boolean>('0x7277F1F2E085EE74', amount, rai());
1181
1080
  }
1182
1081
 
1183
1082
  /**
@@ -1210,7 +1109,7 @@ export class Network {
1210
1109
  * @returns
1211
1110
  */
1212
1111
  static N_0xCD53E6CBF609C012(ugcRequestId: number): boolean {
1213
- return inv<boolean>('0xCD53E6CBF609C012', ugcRequestId, rai());
1112
+ return !!inv<boolean>('0xCD53E6CBF609C012', ugcRequestId, rai());
1214
1113
  }
1215
1114
 
1216
1115
  /**
@@ -1441,7 +1340,7 @@ export class Network {
1441
1340
  * @returns
1442
1341
  */
1443
1342
  static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
1444
- return inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
1343
+ return !!inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
1445
1344
  }
1446
1345
 
1447
1346
  /**
@@ -1466,7 +1365,7 @@ export class Network {
1466
1365
  * @returns
1467
1366
  */
1468
1367
  static isInTutorialSession(): boolean {
1469
- return inv<boolean>('0xADA24309FE08DACF', rai());
1368
+ return !!inv<boolean>('0xADA24309FE08DACF', rai());
1470
1369
  }
1471
1370
 
1472
1371
  /**
@@ -1496,7 +1395,7 @@ export class Network {
1496
1395
  * @returns
1497
1396
  */
1498
1397
  static tryAccessTunableBoolHash(tunableContext: string | number, tunableName: string | number, defaultValue: boolean): boolean {
1499
- return inv<boolean>('0xB2AD5D29A99D4B26', _h(tunableContext), _h(tunableName), defaultValue, rai());
1398
+ return !!inv<boolean>('0xB2AD5D29A99D4B26', _h(tunableContext), _h(tunableName), defaultValue, rai());
1500
1399
  }
1501
1400
 
1502
1401
  /**
@@ -1511,7 +1410,7 @@ export class Network {
1511
1410
  * @returns
1512
1411
  */
1513
1412
  static isNetworkIdOwnedByParticipant(netId: number): boolean {
1514
- return inv<boolean>('0xA1607996431332DF', netId, rai());
1413
+ return !!inv<boolean>('0xA1607996431332DF', netId, rai());
1515
1414
  }
1516
1415
 
1517
1416
  /**
@@ -1559,7 +1458,7 @@ export class Network {
1559
1458
  * @returns
1560
1459
  */
1561
1460
  static ugcIsBookMarked(contentId: string | null): boolean {
1562
- return inv<boolean>('0xE42D1042F09865FE', contentId, rai());
1461
+ return !!inv<boolean>('0xE42D1042F09865FE', contentId, rai());
1563
1462
  }
1564
1463
 
1565
1464
  /**
@@ -1598,64 +1497,204 @@ export class Network {
1598
1497
  }
1599
1498
 
1600
1499
  /**
1601
- * @returns
1500
+ * _NETWORK_GET_A* - _NETWORK_GET_D*
1501
+ *
1502
+ * @param player
1503
+ * @param ped
1504
+ * @returns p2
1602
1505
  */
1603
- static N_0x18B94666CF610AEB(): boolean {
1604
- return inv<boolean>('0x18B94666CF610AEB', rai());
1506
+ static N_0x236321F1178A5446(player: Player, ped: Ped): [boolean, number] {
1507
+ const result = inv<[boolean, number]>('0x236321F1178A5446', player.handle, ped.handle, pvi(), rai());
1508
+ return [!!result[0], result[1]];
1605
1509
  }
1606
1510
 
1607
1511
  /**
1608
- * p0 appears to be for MP
1512
+ * Must be called from a background script, otherwise it will do nothing.
1609
1513
  *
1610
- * @param p0
1611
- * @returns
1514
+ * @param entity
1515
+ * @param p1
1612
1516
  */
1613
- static getNumReservedMissionObjects(p0: boolean): number {
1614
- return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
1517
+ static N_0x979765465A6F25FC(entity: Entity, p1: boolean): void {
1518
+ inv<void>('0x979765465A6F25FC', entity.handle, p1);
1615
1519
  }
1616
1520
 
1617
1521
  /**
1618
- * @returns
1522
+ * @param player
1523
+ * @param p1
1619
1524
  */
1620
- static hasSocialClubAccount(): boolean {
1621
- return inv<boolean>('0x67A5589628E0CFF6', rai());
1525
+ static N_0x5A91BCEF74944E93(player: Player, p1: number): void {
1526
+ inv<void>('0x5A91BCEF74944E93', player.handle, f(p1));
1622
1527
  }
1623
1528
 
1624
1529
  /**
1625
- * @param netHandle
1626
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
1530
+ * @param params
1627
1531
  */
1628
- static netToPed(netHandle: number): Ped | null {
1629
- return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
1532
+ static setLaunchParamString(params: string | null): void {
1533
+ inv<void>('0xDFFC15AA63D04AAB', params);
1630
1534
  }
1631
1535
 
1632
1536
  /**
1633
- * 0 = succeeded
1634
- * 1 = pending
1635
- * 2 = failed
1537
+ * Note: this native was added in build 1311.23
1636
1538
  *
1637
- * @param textureDownloadId
1638
- * @returns
1539
+ * @param p0
1540
+ * @param p1
1639
1541
  */
1640
- static getStatusOfTextureDownload(textureDownloadId: number): number {
1641
- return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
1542
+ static N_0x0D183D8490EE4366(p0: number, p1: number): void {
1543
+ inv<void>('0x0D183D8490EE4366', p0, p1);
1642
1544
  }
1643
1545
 
1644
1546
  /**
1645
- * @returns gamerHandle
1547
+ * Note: this native was added in build 1311.23
1548
+ *
1549
+ * @param p0
1550
+ * @returns
1646
1551
  */
1647
- static N_0xF23A6D6C11D8EC15(): [boolean, number] {
1648
- const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
1649
- return [!!result[0], result[1]];
1552
+ static N_0xF8DC69DC1AD19072(p0: boolean): number {
1553
+ return inv<number>('0xF8DC69DC1AD19072', p0, rai());
1650
1554
  }
1651
1555
 
1652
1556
  /**
1653
- * Always returns 40
1654
- *
1655
1557
  * @returns
1656
1558
  */
1657
- static getMaxNumNetworkVehicles(): number {
1658
- return inv<number>('0x0AFCE529F69B21FF', rai());
1559
+ static N_0xA47D48D06AA5A188(): boolean {
1560
+ return !!inv<boolean>('0xA47D48D06AA5A188', rai());
1561
+ }
1562
+
1563
+ /**
1564
+ * @returns
1565
+ */
1566
+ static getCloudTimeAsInt(): number {
1567
+ return inv<number>('0x9A73240B49945C76', rai());
1568
+ }
1569
+
1570
+ /**
1571
+ * *GET_LAUNCH_PARAM*(RESPOT?)*
1572
+ * Name is probably invalid since this native only reads data from parsed entity.
1573
+ *
1574
+ * @param entity
1575
+ * @returns
1576
+ */
1577
+ static N_0x26A867C0B7A456D1(entity: Entity): boolean {
1578
+ return !!inv<boolean>('0x26A867C0B7A456D1', entity.handle, rai());
1579
+ }
1580
+
1581
+ /**
1582
+ * @param netHandle
1583
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
1584
+ */
1585
+ static netToVeh(netHandle: number): Vehicle | null {
1586
+ return createFromHandle<Vehicle>('Vehicle', inv<number>('0x367B936610BA360C', netHandle, rai()));
1587
+ }
1588
+
1589
+ /**
1590
+ * @returns sessionRequestId
1591
+ */
1592
+ static N_0xAFA14F98327791CE(): [boolean, number] {
1593
+ const result = inv<[boolean, number]>('0xAFA14F98327791CE', pvi(), rai());
1594
+ return [!!result[0], result[1]];
1595
+ }
1596
+
1597
+ /**
1598
+ * @returns
1599
+ */
1600
+ static N_0xDA1BFED8582F61F0(): boolean {
1601
+ return !!inv<boolean>('0xDA1BFED8582F61F0', rai());
1602
+ }
1603
+
1604
+ /**
1605
+ * Note: this native was added in build 1311.23
1606
+ *
1607
+ * @param p0
1608
+ * @returns
1609
+ */
1610
+ static N_0xBAF7E2979442B29F(p0: boolean): number {
1611
+ return inv<number>('0xBAF7E2979442B29F', p0, rai());
1612
+ }
1613
+
1614
+ /**
1615
+ * @returns
1616
+ */
1617
+ static isCloudAvailable(): boolean {
1618
+ return !!inv<boolean>('0x9A4CF4F48AD77302', rai());
1619
+ }
1620
+
1621
+ /**
1622
+ * @param p0
1623
+ * @param p1
1624
+ * @param p2
1625
+ */
1626
+ static registerPlayerBroadcastVariables(p0: any, p1: any, p2: any): void {
1627
+ inv<void>('0x3364AA97340CA215', p0, p1, p2);
1628
+ }
1629
+
1630
+ /**
1631
+ * _NETWORK_IS_T* - _NETWORK_RE*
1632
+ *
1633
+ * @returns
1634
+ */
1635
+ static isPreviousUploadPending(): any {
1636
+ return inv<number>('0xA21E3BAD0A42D199');
1637
+ }
1638
+
1639
+ /**
1640
+ * @returns
1641
+ */
1642
+ static N_0x18B94666CF610AEB(): boolean {
1643
+ return !!inv<boolean>('0x18B94666CF610AEB', rai());
1644
+ }
1645
+
1646
+ /**
1647
+ * p0 appears to be for MP
1648
+ *
1649
+ * @param p0
1650
+ * @returns
1651
+ */
1652
+ static getNumReservedMissionObjects(p0: boolean): number {
1653
+ return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
1654
+ }
1655
+
1656
+ /**
1657
+ * @returns
1658
+ */
1659
+ static hasSocialClubAccount(): boolean {
1660
+ return !!inv<boolean>('0x67A5589628E0CFF6', rai());
1661
+ }
1662
+
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()));
1669
+ }
1670
+
1671
+ /**
1672
+ * 0 = succeeded
1673
+ * 1 = pending
1674
+ * 2 = failed
1675
+ *
1676
+ * @param textureDownloadId
1677
+ * @returns
1678
+ */
1679
+ static getStatusOfTextureDownload(textureDownloadId: number): number {
1680
+ return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
1681
+ }
1682
+
1683
+ /**
1684
+ * @returns gamerHandle
1685
+ */
1686
+ static N_0xF23A6D6C11D8EC15(): [boolean, number] {
1687
+ const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
1688
+ return [!!result[0], result[1]];
1689
+ }
1690
+
1691
+ /**
1692
+ * Always returns 40
1693
+ *
1694
+ * @returns
1695
+ */
1696
+ static getMaxNumNetworkVehicles(): number {
1697
+ return inv<number>('0x0AFCE529F69B21FF', rai());
1659
1698
  }
1660
1699
 
1661
1700
  /**
@@ -1706,7 +1745,7 @@ export class Network {
1706
1745
  * @returns
1707
1746
  */
1708
1747
  static isSessionActive(): boolean {
1709
- return inv<boolean>('0xD83C2B94E7508980', rai());
1748
+ return !!inv<boolean>('0xD83C2B94E7508980', rai());
1710
1749
  }
1711
1750
 
1712
1751
  /**
@@ -1748,7 +1787,7 @@ export class Network {
1748
1787
  * @returns
1749
1788
  */
1750
1789
  static isTimeMoreThan(timeA: number, timeB: number): boolean {
1751
- return inv<boolean>('0xDE350F8651E4346C', timeA, timeB, rai());
1790
+ return !!inv<boolean>('0xDE350F8651E4346C', timeA, timeB, rai());
1752
1791
  }
1753
1792
 
1754
1793
  /**
@@ -1845,7 +1884,7 @@ export class Network {
1845
1884
  * @returns
1846
1885
  */
1847
1886
  static isEntityAGhost(entity: Entity): boolean {
1848
- return inv<boolean>('0x21D04D7BC538C146', entity.handle, rai());
1887
+ return !!inv<boolean>('0x21D04D7BC538C146', entity.handle, rai());
1849
1888
  }
1850
1889
 
1851
1890
  static clearGetGamerStatus(): void {
@@ -1932,7 +1971,7 @@ export class Network {
1932
1971
  * @returns
1933
1972
  */
1934
1973
  static N_0x316FD416C432C761(): boolean {
1935
- return inv<boolean>('0x316FD416C432C761', rai());
1974
+ return !!inv<boolean>('0x316FD416C432C761', rai());
1936
1975
  }
1937
1976
 
1938
1977
  /**
@@ -2075,7 +2114,7 @@ export class Network {
2075
2114
  * @returns
2076
2115
  */
2077
2116
  static hasReceivedHostBroadcastData(): boolean {
2078
- return inv<boolean>('0x5D10B3795F3FC886', rai());
2117
+ return !!inv<boolean>('0x5D10B3795F3FC886', rai());
2079
2118
  }
2080
2119
 
2081
2120
  /**
@@ -2083,7 +2122,7 @@ export class Network {
2083
2122
  * @returns
2084
2123
  */
2085
2124
  static ugcIsLanguageSupported(languageId: number): boolean {
2086
- return inv<boolean>('0xF53E48461B71EECB', languageId, rai());
2125
+ return !!inv<boolean>('0xF53E48461B71EECB', languageId, rai());
2087
2126
  }
2088
2127
 
2089
2128
  /**
@@ -2135,7 +2174,7 @@ export class Network {
2135
2174
  * @returns
2136
2175
  */
2137
2176
  static isTimeLessThan(timeA: number, timeB: number): boolean {
2138
- return inv<boolean>('0xCB2CF5148012C8D0', timeA, timeB, rai());
2177
+ return !!inv<boolean>('0xCB2CF5148012C8D0', timeA, timeB, rai());
2139
2178
  }
2140
2179
 
2141
2180
  /**
@@ -2158,132 +2197,6 @@ export class Network {
2158
2197
  return inv<number>('0x106CBDD5077DEDE1', p0, rai());
2159
2198
  }
2160
2199
 
2161
- /**
2162
- * @param featureId
2163
- * @returns
2164
- */
2165
- static isFeatureSupported(featureId: number): any {
2166
- return inv<number>('0x9C725D149622BFDE', featureId);
2167
- }
2168
-
2169
- /**
2170
- * On PC this returns true if gamerHandle is a valid handle.
2171
- *
2172
- * @returns gamerHandle
2173
- */
2174
- static canAddFriend(): [any, number] {
2175
- const result = inv<[number, number]>('0x99ABE9BF9DADA162', pvi());
2176
- return [result[0], result[1]];
2177
- }
2178
-
2179
- /**
2180
- * Note: this native was added in build 1311.23
2181
- */
2182
- static N_0x7673C0D2C5CDAC55(): void {
2183
- inv<void>('0x7673C0D2C5CDAC55');
2184
- }
2185
-
2186
- /**
2187
- * Always returns 110
2188
- *
2189
- * @returns
2190
- */
2191
- static getMaxNumNetworkPeds(): number {
2192
- return inv<number>('0x0C1F7D49C39D2289', rai());
2193
- }
2194
-
2195
- /**
2196
- * Returns textureDownloadId
2197
- *
2198
- * @param p1
2199
- * @param name
2200
- * @param p3
2201
- * @returns gamerHandle
2202
- */
2203
- static mugshotTextureDownloadRequest(p1: number, name: string | null, p3: boolean): [number, number] {
2204
- const result = inv<[number, number]>('0x9B5DB6CEAFAA10BB', pvi(), p1, name, p3, rai());
2205
- return [result[0], result[1]];
2206
- }
2207
-
2208
- /**
2209
- * @returns gamerHandle
2210
- */
2211
- static isFriend(): [boolean, number] {
2212
- const result = inv<[boolean, number]>('0x1A24A179F9B31654', pvi(), rai());
2213
- return [!!result[0], result[1]];
2214
- }
2215
-
2216
- /**
2217
- * @returns
2218
- */
2219
- static isRecentGamerNamesRequestInProgress(): any {
2220
- return inv<number>('0x4664D213A0CCAF40');
2221
- }
2222
-
2223
- /**
2224
- * @param scriptHash
2225
- * @param p1
2226
- * @param p2
2227
- * @param p3
2228
- * @returns
2229
- */
2230
- static isScriptActiveByHash(scriptHash: string | number, p1: number, p2: boolean, p3: number): any {
2231
- return inv<number>('0x1B89BC43B6E69107', _h(scriptHash), p1, p2, p3);
2232
- }
2233
-
2234
- static N_0x564552C6AF1EEAB1(): void {
2235
- inv<void>('0x564552C6AF1EEAB1');
2236
- }
2237
-
2238
- /**
2239
- * @returns
2240
- */
2241
- static hasPendingInviteFailure(): any {
2242
- return inv<number>('0xD0498AD30E16B6BD');
2243
- }
2244
-
2245
- /**
2246
- * @param entity
2247
- * @returns
2248
- */
2249
- static requestControlOfEntity(entity: Entity): boolean {
2250
- return inv<boolean>('0xB69317BF5E782347', entity.handle, rai());
2251
- }
2252
-
2253
- /**
2254
- * @param p0
2255
- * @returns
2256
- */
2257
- static N_0xD7D0DF27CB1765B5(p0: number): boolean {
2258
- return inv<boolean>('0xD7D0DF27CB1765B5', p0, rai());
2259
- }
2260
-
2261
- /**
2262
- * @returns
2263
- */
2264
- static canRefreshFriendPage(): any {
2265
- return inv<number>('0x1AF5E28E64A76A9F');
2266
- }
2267
-
2268
- /**
2269
- * Old name: _NETWORK_IS_PLAYER_EQUAL_TO_INDEX
2270
- *
2271
- * @param player
2272
- * @param index
2273
- * @returns
2274
- */
2275
- static arePlayersInSameTutorialSession(player: Player, index: number): boolean {
2276
- return inv<boolean>('0x9DE986FC9A87C474', player.handle, index, rai());
2277
- }
2278
-
2279
- static clearFoundGamers(): void {
2280
- inv<void>('0x6D14CCEE1B40381A');
2281
- }
2282
-
2283
- static preventScriptHostMigration(): void {
2284
- inv<void>('0x2302C0264EA58D31');
2285
- }
2286
-
2287
2200
  static N_0x49CF17A564918E8D(): void {
2288
2201
  inv<void>('0x49CF17A564918E8D');
2289
2202
  }
@@ -2385,7 +2298,7 @@ export class Network {
2385
2298
  * @returns
2386
2299
  */
2387
2300
  static requestControlOfNetworkId(netId: number): boolean {
2388
- return inv<boolean>('0xA670B3662FAFFBD0', netId, rai());
2301
+ return !!inv<boolean>('0xA670B3662FAFFBD0', netId, rai());
2389
2302
  }
2390
2303
 
2391
2304
  /**
@@ -2433,7 +2346,7 @@ export class Network {
2433
2346
  * @returns
2434
2347
  */
2435
2348
  static commerceStoreIsOpen(): boolean {
2436
- return inv<boolean>('0xCE5E79D9E303628E', rai());
2349
+ return !!inv<boolean>('0xCE5E79D9E303628E', rai());
2437
2350
  }
2438
2351
 
2439
2352
  /**
@@ -2511,7 +2424,7 @@ export class Network {
2511
2424
  * @returns
2512
2425
  */
2513
2426
  static isSphereVisibleToPlayer(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): boolean {
2514
- return inv<boolean>('0xDC3A310219E5DA62', p0, p1, p2, p3, p4, p5, rai());
2427
+ return !!inv<boolean>('0xDC3A310219E5DA62', p0, p1, p2, p3, p4, p5, rai());
2515
2428
  }
2516
2429
 
2517
2430
  /**
@@ -2528,7 +2441,7 @@ export class Network {
2528
2441
  * @returns
2529
2442
  */
2530
2443
  static N_0x062842D61D0D53FD(): boolean {
2531
- return inv<boolean>('0x062842D61D0D53FD', rai());
2444
+ return !!inv<boolean>('0x062842D61D0D53FD', rai());
2532
2445
  }
2533
2446
 
2534
2447
  /**
@@ -2571,480 +2484,527 @@ export class Network {
2571
2484
  return inv<number>('0x6E2FD8CF7EB10E53', playerSlot, personaPhotoLocalCacheType, rai());
2572
2485
  }
2573
2486
 
2574
- static clearClockTimeOverride(): void {
2575
- inv<void>('0xD972DF67326F966E');
2576
- }
2577
-
2578
- static N_0xC8B6D18E22484643(): void {
2579
- inv<void>('0xC8B6D18E22484643');
2580
- }
2581
-
2582
2487
  /**
2583
- * @param p0
2584
- * @param p1
2488
+ * Hardcoded to return zero.
2489
+ *
2490
+ * @returns
2585
2491
  */
2586
- static N_0xDC6AD5C046F33AB4(p0: boolean, p1: boolean): void {
2587
- inv<void>('0xDC6AD5C046F33AB4', p0, p1);
2492
+ static N_0x5133CF81924F1129(): number {
2493
+ return inv<number>('0x5133CF81924F1129', rai());
2588
2494
  }
2589
2495
 
2590
2496
  /**
2591
- * @param entity
2497
+ * Returns the Player associated to a given Ped when in an online session.
2498
+ *
2499
+ * @param ped
2592
2500
  * @returns
2593
2501
  */
2594
- static hasControlOfEntity(entity: Entity): boolean {
2595
- return inv<boolean>('0x01BF60A500E28887', entity.handle, rai());
2502
+ static getPlayerIndexFromPed(ped: Ped): Player | null {
2503
+ return createFromHandle<Player>('Player', inv<number>('0x6C0E2E0125610278', ped.handle, rai()));
2596
2504
  }
2597
2505
 
2598
2506
  /**
2599
- * @param player
2507
+ * @param netID
2600
2508
  * @returns
2601
2509
  */
2602
- static getUniqueIntForPlayer(player: Player): number {
2603
- return inv<number>('0x07F723401B9D921C', player.handle, rai());
2510
+ static doesNetworkIdExist(netID: number): boolean {
2511
+ return !!inv<boolean>('0x38CE16C96BD11344', netID, rai());
2604
2512
  }
2605
2513
 
2606
2514
  /**
2607
- * @param tunableContext
2608
- * @param tunableName
2609
- * @returns
2515
+ * @param local
2516
+ * @param remote
2517
+ * @param instanceId
2610
2518
  */
2611
- static accessTunableBool(tunableContext: string | number, tunableName: string | number): boolean {
2612
- return inv<boolean>('0xAA6A47A573ABB75A', _h(tunableContext), _h(tunableName), rai());
2519
+ static setLocalPlayerVisibleInCutscene(local: boolean, remote: boolean, instanceId: number): void {
2520
+ inv<void>('0xD1065D68947E7B6E', local, remote, instanceId);
2613
2521
  }
2614
2522
 
2615
2523
  /**
2616
- * @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
2617
2530
  */
2618
- static removeFriend(): [any, number] {
2619
- const result = inv<[number, number]>('0x55F618F68AB854D3', pvi());
2620
- return [result[0], result[1]];
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]];
2621
2534
  }
2622
2535
 
2623
- static N_0x6C7E04E9DE451789(): void {
2624
- inv<void>('0x6C7E04E9DE451789');
2536
+ /**
2537
+ * Note: this native was added in build 1491.50
2538
+ *
2539
+ * @param p0
2540
+ * @returns
2541
+ */
2542
+ static N_0xDBDF80673BBA3D65(p0: number): boolean {
2543
+ return !!inv<boolean>('0xDBDF80673BBA3D65', p0, rai());
2625
2544
  }
2626
2545
 
2627
2546
  /**
2628
- * @returns
2547
+ * @param p0
2629
2548
  */
2630
- static N_0x0B6B4507AC5EA8B8(): boolean {
2631
- return inv<boolean>('0x0B6B4507AC5EA8B8', rai());
2549
+ static N_0x9F24A34863FD35DA(p0: any): void {
2550
+ inv<void>('0x9F24A34863FD35DA', p0);
2551
+ }
2552
+
2553
+ static clearPlatformInvite(): void {
2554
+ inv<void>('0xA4484173759749B1');
2632
2555
  }
2633
2556
 
2634
2557
  /**
2635
- * @param netID
2636
2558
  * @param toggle
2559
+ * @param p2
2560
+ * @returns p1
2637
2561
  */
2638
- static activateDamageTrackerOnNetworkId(netID: number, toggle: boolean): void {
2639
- inv<void>('0xD45B1FFCCD52FF19', netID, toggle);
2562
+ static autoSessionSetAllowedToMerge(toggle: boolean, p2: number): number {
2563
+ const result = inv<number>('0x63246A24F5747510', toggle, pvi(), p2);
2564
+ return result;
2640
2565
  }
2641
2566
 
2642
2567
  /**
2643
- * *NETWORK_SPAWN_CONFIG**
2568
+ * @returns
2644
2569
  */
2645
- static N_0x6CEE2E30021DAEC6(): void {
2646
- inv<void>('0x6CEE2E30021DAEC6');
2570
+ static getTotalNumPlayers(): number {
2571
+ return inv<number>('0xCF61D4B4702EE9EB', rai());
2647
2572
  }
2648
2573
 
2649
- static N_0x5B9C6AC118FD4774(): void {
2650
- inv<void>('0x5B9C6AC118FD4774');
2574
+ /**
2575
+ * Note: this native was added in build 1311.23
2576
+ *
2577
+ * @param p0
2578
+ * @returns
2579
+ */
2580
+ static N_0x744BFBB0CA908161(p0: boolean): number {
2581
+ return inv<number>('0x744BFBB0CA908161', p0, rai());
2651
2582
  }
2652
2583
 
2653
2584
  /**
2654
2585
  * @param player
2655
- * @param trackedPlayer
2656
2586
  * @returns
2657
2587
  */
2658
- static isTrackedPlayerVisible(player: Player, trackedPlayer: Player): any {
2659
- return inv<number>('0xE525878A35B9EEBD', player.handle, trackedPlayer.handle);
2588
+ static isPlayerActive(player: Player): boolean {
2589
+ return !!inv<boolean>('0xB8DFD30D6973E135', player.handle, rai());
2660
2590
  }
2661
2591
 
2662
- static activityResetToIdle(): void {
2663
- inv<void>('0x3FE141FDB990E3D1');
2592
+ /**
2593
+ * @returns
2594
+ */
2595
+ static getPlatformInviteId(): number {
2596
+ return inv<number>('0x9BCF28FB5D65A9BE', rai());
2664
2597
  }
2665
2598
 
2666
2599
  /**
2667
2600
  * @param p0
2601
+ * @param index
2668
2602
  * @returns
2669
2603
  */
2670
- static hasControlOfPickupPlacement(p0: any): boolean {
2671
- return inv<boolean>('0x51EABCF2786515AB', p0, rai());
2604
+ static ugcQueryGetOwnerId(p0: any, index: number): string | null {
2605
+ return inv<string>('0xF9F0B3028431967B', p0, index, ras());
2672
2606
  }
2673
2607
 
2674
2608
  /**
2675
- * 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.
2676
- *
2677
- * @param entity The entity to un-network
2609
+ * @param tunableContext
2610
+ * @param tunableName
2611
+ * @param defaultValue
2612
+ * @returns
2678
2613
  */
2679
- static unregisterNetworkedEntity(entity: Entity): void {
2680
- inv<void>('0xE31A04513237DC89', entity.handle);
2614
+ static tryAccessTunableFloatHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
2615
+ return inv<number>('0xA18393089C05E49C', _h(tunableContext), _h(tunableName), f(defaultValue), raf());
2681
2616
  }
2682
2617
 
2683
2618
  /**
2684
- * nullsub, doesn't do anything
2619
+ * @returns
2685
2620
  */
2686
- static showPsnUgcRestriction(): void {
2687
- inv<void>('0x5C497525F803486B');
2621
+ static hasNetworkTimeStarted(): boolean {
2622
+ return !!inv<boolean>('0x46718ACEEDEAFC84', rai());
2688
2623
  }
2689
2624
 
2690
2625
  /**
2691
- * @param p0
2692
- * @param p1
2626
+ * Hardcoded to return false.
2627
+ *
2693
2628
  * @returns
2694
2629
  */
2695
- static ugcQueryGetPosixUpdatedDate(p0: any, p1: any): number {
2696
- return inv<number>('0x21A99A72B00D8002', p0, p1, rai());
2630
+ static isInPlatformParty(): boolean {
2631
+ return !!inv<boolean>('0x2FC5650B0271CB57', rai());
2697
2632
  }
2698
2633
 
2699
2634
  /**
2700
- * @param index
2635
+ * Return the local Participant ID. This native is exactly the same as 'PARTICIPANT_ID' native.
2636
+ *
2701
2637
  * @returns
2702
2638
  */
2703
- static hasRosPrivilege(index: number): boolean {
2704
- return inv<boolean>('0xA699957E60D80214', index, rai());
2639
+ static participantIdToInt(): number {
2640
+ return inv<number>('0x57A3BDDAD8E5AA0A', rai());
2705
2641
  }
2706
2642
 
2707
2643
  /**
2644
+ * @param toggle
2645
+ * @param pos
2646
+ */
2647
+ static setInStaticSpectatorMode(toggle: boolean, pos: Vector3): void {
2648
+ inv<void>('0xFBF1ECFB39A77B5F', toggle, f(pos.x), f(pos.y), f(pos.z));
2649
+ }
2650
+
2651
+ /**
2652
+ * @param p0
2708
2653
  * @returns
2709
2654
  */
2710
- static isSessionStarted(): boolean {
2711
- return inv<boolean>('0x9DE624D2FC4B603F', rai());
2655
+ static requestControlOfPickupPlacement(p0: any): boolean {
2656
+ return !!inv<boolean>('0x56ED2C48558DAB78', p0, rai());
2712
2657
  }
2713
2658
 
2714
2659
  /**
2715
- * @param toggle
2660
+ * @param entity
2716
2661
  */
2717
- static setLocalPlayerSyncLookAt(toggle: boolean): void {
2718
- inv<void>('0x524FF0AEFF9C3973', toggle);
2662
+ static registerEntityAsNetworked(entity: Entity): void {
2663
+ inv<void>('0x06FAACD625D80CAA', entity.handle);
2719
2664
  }
2720
2665
 
2721
2666
  /**
2722
- * @returns gamerHandle
2667
+ * Session flag 'SF_PRIVATE' is set internally
2668
+ * p1 represents max amount of players in private session
2669
+ *
2670
+ * @param flags
2671
+ * @param numPlayers
2672
+ * @param userHash
2673
+ * @returns sessionRequestId
2723
2674
  */
2724
- static showProfileUi(): number {
2725
- const result = inv<number>('0x859ED1CEA343FCA8', pvi());
2726
- return result;
2675
+ static sessionRequestSessionPrivate(flags: number, numPlayers: number, userHash: number): [any, number] {
2676
+ const result = inv<[number, number]>('0x39A8EF7AF29A192C', flags, numPlayers, userHash, pvi());
2677
+ return [result[0], result[1]];
2727
2678
  }
2728
2679
 
2729
2680
  /**
2730
- * @param player
2731
- * @param toggle
2681
+ * @param textureDownloadId
2732
2682
  */
2733
- static setPlayerVisibleLocally(player: Player, toggle: boolean): void {
2734
- inv<void>('0xFAA10F1FAFB11AF2', player.handle, toggle);
2683
+ static textureDownloadRelease(textureDownloadId: number): void {
2684
+ inv<void>('0x487EB90B98E9FB19', textureDownloadId);
2735
2685
  }
2736
2686
 
2737
2687
  /**
2738
- * *NETWORK_SPAWN_CONFIG**
2688
+ * Only used in R* Script net_rolling_playlist
2689
+ */
2690
+ static sessionPlaylistGoToNextContent(): void {
2691
+ inv<void>('0xBDE605F925B07127');
2692
+ }
2693
+
2694
+ /**
2695
+ * Note: this native was added in build 1311.23
2739
2696
  *
2740
- * @param nsctf
2697
+ * @returns sessionId
2741
2698
  */
2742
- static N_0x5D3C528B7A7DF836(nsctf: string | number): void {
2743
- inv<void>('0x5D3C528B7A7DF836', _h(nsctf));
2699
+ static sessionGetSessionId(): number {
2700
+ const result = inv<number>('0xE9B356C330C0A806', pvi());
2701
+ return result;
2744
2702
  }
2745
2703
 
2746
2704
  /**
2747
2705
  * @returns
2748
2706
  */
2749
- static autoSessionIsAutoWarpDisabled(): any {
2750
- return inv<number>('0xE258570E0C116A66');
2707
+ static autoSessionSplitSessionSuccessful(): any {
2708
+ return inv<number>('0x6D87BA8EF15226CD');
2751
2709
  }
2752
2710
 
2753
2711
  /**
2712
+ * @param ugcRequestId
2754
2713
  * @returns
2755
2714
  */
2756
- static didGetGamerStatusSucceed(): any {
2757
- return inv<number>('0x5AE17C6B0134B7F1');
2715
+ static ugcHasRequestFinished(ugcRequestId: number): any {
2716
+ return inv<number>('0xA9EB4D606076615D', ugcRequestId);
2758
2717
  }
2759
2718
 
2760
2719
  /**
2761
- * @param p0
2762
- * @param p1
2763
- * @param p2
2764
- * @param p3
2765
- * @param p4
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.
2729
+ *
2730
+ * @param timeA
2731
+ * @param timeB
2766
2732
  * @returns
2767
2733
  */
2768
- static isSphereVisibleToAnotherMachine(p0: any, p1: any, p2: any, p3: any, p4: any): boolean {
2769
- return inv<boolean>('0xD82CF8E64C8729D8', p0, p1, p2, p3, p4, rai());
2734
+ static getTimeOffset(timeA: number, timeB: number): number {
2735
+ return inv<number>('0x017008CCDAD48503', timeA, timeB, rai());
2770
2736
  }
2771
2737
 
2772
2738
  /**
2773
2739
  * @param p0
2774
2740
  * @returns
2775
2741
  */
2776
- static checkCommunicationPrivileges(p0: number): boolean {
2777
- return inv<boolean>('0x83F28CE49FBBFFBA', p0, rai());
2742
+ static N_0xC028B3F52C707C49(p0: any): boolean {
2743
+ return !!inv<boolean>('0xC028B3F52C707C49', p0, rai());
2778
2744
  }
2779
2745
 
2780
2746
  /**
2781
- * Note: this native was added in build 1355.30
2747
+ * nullsub, doesn't do anything
2748
+ *
2749
+ * @returns
2782
2750
  */
2783
- static N_0x40FEDB13870042F1(): void {
2784
- inv<void>('0x40FEDB13870042F1');
2751
+ static N_0xC964FCD3D1720697(): any {
2752
+ return inv<number>('0xC964FCD3D1720697');
2785
2753
  }
2786
2754
 
2787
2755
  /**
2788
- * @param player1
2789
- * @param player2
2756
+ * @param p0
2757
+ * @param p1
2790
2758
  * @returns
2791
2759
  */
2792
- static N_0xFE53B1F8D43F19BF(player1: Player, player2: Player): number {
2793
- return inv<number>('0xFE53B1F8D43F19BF', player1.handle, player2.handle, 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');
2794
2766
  }
2795
2767
 
2796
2768
  /**
2797
- * @param id
2798
- * @returns
2769
+ * @param volume
2799
2770
  */
2800
- static cloudDidRequestSucceed(id: number): boolean {
2801
- return inv<boolean>('0x3A3D5568AF297CD5', id, rai());
2771
+ static spawnConfigRemoveExclusionVolume(volume: Volume): void {
2772
+ inv<void>('0xA35E7BF20FA269E0', volume.handle);
2802
2773
  }
2803
2774
 
2804
2775
  /**
2805
- * @param player
2776
+ * @param tunableContext
2777
+ * @param tunableName
2806
2778
  * @returns
2807
2779
  */
2808
- static isPlayerConnected(player: Player): boolean {
2809
- return inv<boolean>('0x93DC1BE4E1ABE9D1', player.handle, rai());
2780
+ static doesTunableExist(tunableContext: string | number, tunableName: string | number): boolean {
2781
+ return !!inv<boolean>('0x85E5F8B9B898B20A', _h(tunableContext), _h(tunableName), rai());
2810
2782
  }
2811
2783
 
2812
2784
  /**
2813
- * Hardcoded to return false.
2785
+ * Note: this native was added in build 1311.23
2814
2786
  *
2815
- * @returns gamerHandle
2787
+ * @param p0
2788
+ * @returns
2816
2789
  */
2817
- static isPendingFriend(): [any, number] {
2818
- const result = inv<[number, number]>('0x0BE73DA6984A6E33', pvi());
2819
- return [result[0], result[1]];
2790
+ static N_0x982D7AD755B8F62C(p0: boolean): number {
2791
+ return inv<number>('0x982D7AD755B8F62C', p0, rai());
2792
+ }
2793
+
2794
+ static startSoloTutorialSession(): void {
2795
+ inv<void>('0x17E0198B3882C2CB');
2820
2796
  }
2821
2797
 
2822
2798
  /**
2823
- * Note: this native was added in build 1311.23
2824
- *
2825
2799
  * @param p0
2800
+ * @param p2
2801
+ * @param p3
2802
+ * @returns p1
2826
2803
  */
2827
- static N_0xA7670F7991099680(p0: number): void {
2828
- inv<void>('0xA7670F7991099680', p0);
2804
+ static setRichPresence(p0: number, p2: number, p3: number): number {
2805
+ const result = inv<number>('0x1DCCACDCFC569362', p0, pvi(), p2, p3);
2806
+ return result;
2829
2807
  }
2830
2808
 
2831
2809
  /**
2832
- * @param instanceId
2810
+ * @returns
2833
2811
  */
2834
- static setLocalPlayerPendingFastInstanceId(instanceId: number): void {
2835
- inv<void>('0x007FF852DCF49DA4', instanceId);
2812
+ static pedmugshotTake(): any {
2813
+ return inv<number>('0xCD954F330693F5F2');
2836
2814
  }
2837
2815
 
2838
2816
  /**
2839
- * @param p0
2817
+ * @param entity
2840
2818
  */
2841
- static N_0xF342F6BD0A8287D5(p0: any): void {
2842
- inv<void>('0xF342F6BD0A8287D5', p0);
2819
+ static N_0xBB1EC8C2EEF33BAA(entity: Entity): void {
2820
+ inv<void>('0xBB1EC8C2EEF33BAA', entity.handle);
2843
2821
  }
2844
2822
 
2845
2823
  /**
2846
2824
  * @returns
2847
2825
  */
2848
- static isFindingGamers(): boolean {
2849
- return inv<boolean>('0xDDDF64C91BFCF0AA', rai());
2826
+ static haveOnlinePrivileges(): boolean {
2827
+ return !!inv<boolean>('0x25CB5A9F37BFD063', rai());
2850
2828
  }
2851
2829
 
2852
2830
  /**
2853
- * Returns textureDownloadId
2854
- *
2855
- * @param filePath
2856
- * @param name
2857
- * @param p3
2858
- * @returns gamerHandle
2831
+ * @param p0
2832
+ * @param index
2833
+ * @returns
2859
2834
  */
2860
- static textureDownloadRequest(filePath: string | null, name: string | null, p3: boolean): [number, number] {
2861
- const result = inv<[number, number]>('0x16160DA74A8E74A2', pvi(), filePath, name, p3, rai());
2862
- return [result[0], result[1]];
2835
+ static ugcQueryGetRootContentId(p0: any, index: number): string | null {
2836
+ return inv<string>('0x566CEB0542EF5ECF', p0, index, ras());
2863
2837
  }
2864
2838
 
2865
2839
  /**
2866
- * @returns gamerHandle
2840
+ * @returns
2867
2841
  */
2868
- static isFriendHandleOnline(): [boolean, number] {
2869
- const result = inv<[boolean, number]>('0xE348D1404BD80146', pvi(), rai());
2870
- return [!!result[0], result[1]];
2842
+ static didFindGamersSucceed(): any {
2843
+ return inv<number>('0xF9B83B77929D8863');
2844
+ }
2845
+
2846
+ static N_0x0BF90CBB6B72977B(): void {
2847
+ inv<void>('0x0BF90CBB6B72977B');
2871
2848
  }
2872
2849
 
2873
2850
  /**
2874
- * @param netId
2875
- * @returns weaponHash: Refer to [enum: eWeaponHash]
2851
+ * @returns gamerHandle
2876
2852
  */
2877
- static getDestroyerOfNetworkId(netId: number): [number, number] {
2878
- const result = inv<[number, number]>('0x7A1ADEEF01740A24', netId, pvi(), rai());
2879
- return [result[0], result[1]];
2853
+ static getLocalHandle(): number {
2854
+ const result = inv<number>('0xE86051786B66CD8E', pvi());
2855
+ return result;
2880
2856
  }
2881
2857
 
2882
2858
  /**
2883
- * Returns value of fwuiCachedSetting "general.onlineNotificationsInStoryMode"
2859
+ * nullsub, doesn't do anything
2884
2860
  *
2861
+ * @param p0
2862
+ */
2863
+ static N_0x2C4E98DDA475364F(p0: string | null): void {
2864
+ inv<void>('0x2C4E98DDA475364F', p0);
2865
+ }
2866
+
2867
+ /**
2868
+ * @param entity
2885
2869
  * @returns
2886
2870
  */
2887
- static areOnlineNotificationsShownInStoryMode(): boolean {
2888
- return inv<boolean>('0xF5C5929E07512F80', rai());
2871
+ static getGlobalEntityFlags(entity: Entity): number {
2872
+ return inv<number>('0xDD7806FD0543BC3D', entity.handle, rai());
2889
2873
  }
2890
2874
 
2891
2875
  /**
2892
- * Subtracts the second argument from the first.
2893
- *
2894
- * @param timeA
2895
- * @param timeB
2876
+ * @param description
2896
2877
  * @returns
2897
2878
  */
2898
- static getTimeDifference(timeA: number, timeB: number): number {
2899
- return inv<number>('0xA2C6FC031D46FFF0', timeA, timeB, rai());
2879
+ static ugcHasDescriptionRequestFinished(description: string | number): boolean {
2880
+ return !!inv<boolean>('0xEBFA8D50ADDC54C4', _h(description), rai());
2900
2881
  }
2901
2882
 
2902
2883
  /**
2903
- * @param p0
2904
2884
  * @returns
2905
2885
  */
2906
- static N_0xD1FFB246F4E088AC(p0: number): boolean {
2907
- return inv<boolean>('0xD1FFB246F4E088AC', p0, rai());
2886
+ static canSessionEnd(): boolean {
2887
+ return !!inv<boolean>('0x4EEBC3694E49C572', rai());
2908
2888
  }
2909
2889
 
2910
2890
  /**
2911
- * @param contentTypeName
2912
- * @param contentId
2913
- * @param fileId
2914
- * @param fileVersion
2915
- * @param languageId
2916
2891
  * @returns
2917
2892
  */
2918
- static ugcRequestContentDataFromParams(contentTypeName: string | null, contentId: string | null, fileId: number, fileVersion: number, languageId: number): number {
2919
- return inv<number>('0x7FD2990AF016795E', contentTypeName, contentId, fileId, fileVersion, languageId, rai());
2893
+ static hasCurrentGetGamerStatusStarted(): any {
2894
+ return inv<number>('0x25189F9908E9CD65');
2920
2895
  }
2921
2896
 
2922
2897
  /**
2923
- * @param maxNumMissionParticipants
2924
- * @param p1
2925
- * @param instanceId
2898
+ * @param enabled
2899
+ * @param flagIndex
2900
+ * @returns
2926
2901
  */
2927
- static setThisScriptIsNetworkScript(maxNumMissionParticipants: number, p1: boolean, instanceId: number): void {
2928
- inv<void>('0x1CA59E306ECB80A5', maxNumMissionParticipants, p1, instanceId);
2902
+ static setMpMissionFlagOnCurrentSlot(enabled: boolean, flagIndex: number): any {
2903
+ return inv<number>('0x86FD10251A7118A4', enabled, flagIndex);
2929
2904
  }
2930
2905
 
2931
2906
  /**
2932
- * Stadia only; always returns -1 on other platforms. p0 may be a BOOL.
2907
+ * Hardcoded to return false.
2933
2908
  *
2934
- * @param p0
2935
2909
  * @returns
2936
2910
  */
2937
- static N_0x3E8CCE6769DB5F34(p0: number): number {
2938
- return inv<number>('0x3E8CCE6769DB5F34', p0, rai());
2911
+ static isInPlatformPartyChat(): boolean {
2912
+ return !!inv<boolean>('0xFD8B834A8BA05048', rai());
2939
2913
  }
2940
2914
 
2941
2915
  /**
2942
- * @returns gamerHandle1; gamerHandle2
2916
+ * @param friendIndex
2917
+ * @returns gamerHandle
2943
2918
  */
2944
- static arePlayersInSamePlatformParty(): [any, number, number] {
2945
- const result = inv<[number, number, number]>('0x11820D1AE80DEA39', pvi(), pvi());
2946
- return [result[0], result[1], result[2]];
2919
+ static handleFromFriend(friendIndex: number): number {
2920
+ const result = inv<number>('0xD45CB817D7E177D2', friendIndex, pvi());
2921
+ return result;
2947
2922
  }
2948
2923
 
2949
2924
  /**
2950
- * @param hour
2951
- * @param minute
2952
- * @param second
2953
- * @param transitionTime
2954
- * @param pauseClock
2955
- * @param clockwise
2925
+ * @returns
2956
2926
  */
2957
- static clockTimeOverride2(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean, clockwise: boolean): void {
2958
- inv<void>('0xE28C13ECC36FF14E', hour, minute, second, transitionTime, pauseClock, clockwise);
2927
+ static commerceStoreIsEnabled(): boolean {
2928
+ return !!inv<boolean>('0xDBC754CB6CCB9378', rai());
2959
2929
  }
2960
2930
 
2961
2931
  /**
2962
- * @param player
2963
- * @returns
2932
+ * @param p0
2964
2933
  */
2965
- static isPlayerConcealed(player: Player): boolean {
2966
- return inv<boolean>('0x919B3C98ED8292F9', player.handle, rai());
2934
+ static N_0xA95470DA137587F5(p0: boolean): void {
2935
+ inv<void>('0xA95470DA137587F5', p0);
2967
2936
  }
2968
2937
 
2969
2938
  /**
2970
- * @param description
2939
+ * @param netId
2971
2940
  * @returns
2972
2941
  */
2973
- static ugcRequestCachedDescription(description: string | number): number {
2974
- return inv<number>('0x5E0165278F6339EE', _h(description), rai());
2942
+ static hasControlOfNetworkId(netId: number): boolean {
2943
+ return !!inv<boolean>('0x4D36070FE0215186', netId, rai());
2975
2944
  }
2976
2945
 
2977
2946
  /**
2978
- * @returns
2947
+ * @param flags
2979
2948
  */
2980
- static sessionLeaveSession(): boolean {
2981
- return inv<boolean>('0x17C21B7319A05047', rai());
2949
+ static spawnConfigSetFlags(flags: number): void {
2950
+ inv<void>('0xF94A0D5B254375DF', flags);
2982
2951
  }
2983
2952
 
2984
2953
  /**
2985
- * Hardcoded to return false.
2954
+ * Same as NETWORK_GET_AVERAGE_LATENCY (0xD414BE129BB81B32) Old name: _NETWORK_GET_AVERAGE_LATENCY_FOR_PLAYER_2
2986
2955
  *
2956
+ * @param player
2987
2957
  * @returns
2988
2958
  */
2989
- static isCustomUpsellEnabled(): any {
2990
- return inv<number>('0x78A9535AF83715C6');
2959
+ static getAveragePing(player: Player): number {
2960
+ return inv<number>('0x0E3A041ED6AC2B45', player.handle, raf());
2991
2961
  }
2992
2962
 
2993
2963
  /**
2964
+ * @param p0
2994
2965
  * @returns
2995
2966
  */
2996
- static getNetworkTime(): number {
2997
- return inv<number>('0x7A5487FE9FAA6B48', rai());
2967
+ static getNumCreatedMissionObjects(p0: boolean): number {
2968
+ return inv<number>('0x12B6281B6C6706C0', p0, rai());
2998
2969
  }
2999
2970
 
3000
2971
  /**
3001
- * @param threadId
2972
+ * Note: this native was added in build 1311.16 GET_NUM_*
2973
+ *
3002
2974
  * @returns
3003
2975
  */
3004
- static getInstanceIdOfThread(threadId: number): number {
3005
- return inv<number>('0xFB9ECED5B68F3B78', threadId, rai());
2976
+ static N_0x02B3CDD652B3CDD6(): number {
2977
+ return inv<number>('0x02B3CDD652B3CDD6', rai());
3006
2978
  }
3007
2979
 
3008
2980
  /**
3009
- * @param configProperty
3010
- * @param include
3011
- * @param weight
2981
+ * nullsub, doesn't do anything
3012
2982
  */
3013
- static spawnConfigAddPropertyPreference(configProperty: number, include: boolean, weight: number): void {
3014
- inv<void>('0xEB6027FD1B4600D5', configProperty, include, f(weight));
2983
+ static N_0x2CD41AC000E6F611(): void {
2984
+ inv<void>('0x2CD41AC000E6F611');
3015
2985
  }
3016
2986
 
3017
2987
  /**
3018
- * @param p0
3019
2988
  * @returns
3020
2989
  */
3021
- static N_0xDCA4A74135E1DEA5(p0: any): boolean {
3022
- return inv<boolean>('0xDCA4A74135E1DEA5', p0, rai());
3023
- }
3024
-
3025
- /**
3026
- * @returns gamerHandle
3027
- */
3028
- static getPlayerFromGamerHandle(): [Player | null, number] {
3029
- const result = inv<[number, number]>('0xCE5F689CF5A0A49D', pvi(), rai());
3030
- return [createFromHandle<Player>('Player', result[0]), result[1]];
2990
+ static sessionGetSessionType(): number {
2991
+ return inv<number>('0xF0C0C94B404206FA', rai());
3031
2992
  }
3032
2993
 
3033
2994
  /**
3034
- * Returns the amount of players connected in the current session. Only works when connected to a session/server.
3035
- *
3036
2995
  * @returns
3037
2996
  */
3038
- static getNumConnectedPlayers(): number {
3039
- return inv<number>('0xA4A79DD2D9600654', rai());
2997
+ static isClockTimeOverridden(): boolean {
2998
+ return !!inv<boolean>('0xD7C95D322FF57522', rai());
3040
2999
  }
3041
3000
 
3042
3001
  /**
3043
- * @param netId
3044
- * @returns
3002
+ * @param player
3003
+ * @returns gamerHandle
3045
3004
  */
3046
- static getEntityFromNetworkId(netId: number): Entity | null {
3047
- return createFromHandle<Entity>('Entity', inv<number>('0xCE4E5D9B0A4FF560', netId, rai()));
3005
+ static handleFromPlayer(player: Player): number {
3006
+ const result = inv<number>('0x388EB2B86C73B6B3', player.handle, pvi());
3007
+ return result;
3048
3008
  }
3049
3009
 
3050
3010
  /**
@@ -3097,7 +3057,7 @@ export class Network {
3097
3057
  * @returns
3098
3058
  */
3099
3059
  static ugcIsDescriptionRequestInProgress(description: string | number): boolean {
3100
- return inv<boolean>('0x2D5DC831176D0114', _h(description), rai());
3060
+ return !!inv<boolean>('0x2D5DC831176D0114', _h(description), rai());
3101
3061
  }
3102
3062
 
3103
3063
  /**
@@ -3119,7 +3079,7 @@ export class Network {
3119
3079
  * @returns
3120
3080
  */
3121
3081
  static isGameInProgress(): boolean {
3122
- return inv<boolean>('0x10FAB35428CCC9D7', rai());
3082
+ return !!inv<boolean>('0x10FAB35428CCC9D7', rai());
3123
3083
  }
3124
3084
 
3125
3085
  /**
@@ -3183,132 +3143,130 @@ export class Network {
3183
3143
  }
3184
3144
 
3185
3145
  /**
3186
- * @param entity
3187
- * @returns
3188
- */
3189
- static hasEntityBeenRegisteredWithThisThread(entity: Entity): boolean {
3190
- return inv<boolean>('0xB07D3185E11657A5', entity.handle, rai());
3191
- }
3192
-
3193
- /**
3194
- * @param entity
3195
- * @param toggle
3146
+ * @returns gamerHandle
3196
3147
  */
3197
- static setEntityGhostedToLocalPlayer(entity: Entity, toggle: boolean): void {
3198
- inv<void>('0xEE5AE9956743BA20', entity.handle, toggle);
3148
+ static canReceiveInviteFromHandle(): [any, number] {
3149
+ const result = inv<[number, number]>('0xF23D6475640D29EB', pvi());
3150
+ return [result[0], result[1]];
3199
3151
  }
3200
3152
 
3201
3153
  /**
3202
3154
  * @param player
3203
- * @returns weaponHash: Refer to [enum: eWeaponHash]
3155
+ * @param p1
3204
3156
  */
3205
- static getEntityKillerOfPlayer(player: Player): [Entity | null, number] {
3206
- const result = inv<[number, number]>('0x42B2DAA6B596F5F8', player.handle, pvi(), rai());
3207
- return [createFromHandle<Entity>('Entity', result[0]), result[1]];
3157
+ static addPlayerToRecentGamersList(player: Player, p1: number): void {
3158
+ inv<void>('0x157D8F3DE12B307F', player.handle, p1);
3208
3159
  }
3209
3160
 
3210
3161
  /**
3211
- * @param p0
3212
3162
  * @returns
3213
3163
  */
3214
- static getNumCreatedMissionPickups(p0: boolean): number {
3215
- return inv<number>('0xD2BA051B94CA9BCC', p0, rai());
3164
+ static N_0x232E1EB23CDB313C(): boolean {
3165
+ return !!inv<boolean>('0x232E1EB23CDB313C', rai());
3216
3166
  }
3217
3167
 
3218
3168
  /**
3219
- * @param entity
3220
- * @param p1
3221
- * @param p2
3222
- * @param p3
3169
+ * Note: this native was added in build 1311.23
3170
+ *
3171
+ * @returns sessionId1; sessionId2
3223
3172
  */
3224
- static setEntityVisibleInCutscene(entity: Entity, p1: boolean, p2: boolean, p3: number): void {
3225
- inv<void>('0xE0031D3C8F36AB82', entity.handle, p1, p2, p3);
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]];
3226
3176
  }
3227
3177
 
3228
3178
  /**
3229
- * Hardcoded to return -1.
3230
- *
3231
- * @param p1
3232
- * @returns p0
3179
+ * @returns
3233
3180
  */
3234
- static displaynamesFromHandlesStart(p1: any): [number, number] {
3235
- const result = inv<[number, number]>('0xD66C9E72B3CC4982', pvi(), p1, rai());
3236
- return [result[0], result[1]];
3181
+ static isTutorialSessionChangePending(): boolean {
3182
+ return !!inv<boolean>('0x35F0B98A8387274D', rai());
3183
+ }
3184
+
3185
+ static ugcReleaseAllCachedDescriptions(): void {
3186
+ inv<void>('0x68103E2247887242');
3237
3187
  }
3238
3188
 
3239
3189
  /**
3190
+ * @param animScene
3240
3191
  * @returns
3241
3192
  */
3242
- static N_0xCC4E72C339461ED1(): any {
3243
- return inv<number>('0xCC4E72C339461ED1');
3193
+ static requestControlOfAnimScene(animScene: AnimScene): any {
3194
+ return inv<number>('0xAAA92B631B13F614', animScene.handle);
3195
+ }
3196
+
3197
+ static setMissionFinished(): void {
3198
+ inv<void>('0x3B3D11CD9FFCDFC9');
3244
3199
  }
3245
3200
 
3246
3201
  /**
3247
- * nullsub, doesn't do anything
3202
+ * Note: this native was added in build 1311.23
3248
3203
  *
3204
+ * @param p0
3249
3205
  * @returns
3250
3206
  */
3251
- static N_0x160F0CE6D76A39C9(): any {
3252
- return inv<number>('0x160F0CE6D76A39C9');
3207
+ static N_0x1E4E097D71D449FB(p0: boolean): number {
3208
+ return inv<number>('0x1E4E097D71D449FB', p0, rai());
3253
3209
  }
3254
3210
 
3255
3211
  /**
3256
- * Old name: _NETWORK_GET_OLDEST_RESEND_COUNT_FOR_PLAYER
3212
+ * Note: this native was added in build 1311.23
3257
3213
  *
3258
- * @param player
3259
- * @returns
3214
+ * @param p0
3260
3215
  */
3261
- static getHighestReliableResendCount(player: Player): number {
3262
- return inv<number>('0x52C1EADAF7B10302', player.handle, rai());
3216
+ static N_0xC1968045EEB563B7(p0: number): void {
3217
+ inv<void>('0xC1968045EEB563B7', p0);
3263
3218
  }
3264
3219
 
3265
3220
  /**
3266
- * Checks for session flag 'SF_PRIVATE'
3267
- *
3268
- * @returns
3221
+ * Old name: _CLEAR_LAUNCH_PARAMS
3269
3222
  */
3270
- static sessionIsPrivate(): boolean {
3271
- return inv<boolean>('0xCEF70AA5B3F89BA1', rai());
3223
+ static clearServiceEventArguments(): void {
3224
+ inv<void>('0x966DD84FB6A46017');
3272
3225
  }
3273
3226
 
3274
3227
  /**
3228
+ * Old name: _NETWORK_ALLOW_LOCAL_ENTITY_ATTACHMENT
3229
+ *
3230
+ * @param entity
3275
3231
  * @param toggle
3276
3232
  */
3277
- static autoSessionSetAllowedToSplit(toggle: boolean): void {
3278
- inv<void>('0x0A428058079EE65C', toggle);
3279
- }
3280
-
3281
- static N_0x19B52C20B5C4757C(): void {
3282
- inv<void>('0x19B52C20B5C4757C');
3233
+ static allowRemoteAttachmentModification(entity: Entity, toggle: boolean): void {
3234
+ inv<void>('0x267C78C60E806B9A', entity.handle, toggle);
3283
3235
  }
3284
3236
 
3285
3237
  /**
3286
- * @returns sessionRequestId
3238
+ * @param volume
3287
3239
  */
3288
- static sessionIsNsrrSuccess(): [any, number] {
3289
- const result = inv<[number, number]>('0x0F44A5C78D114922', pvi());
3290
- return [result[0], result[1]];
3240
+ static spawnConfigAddExclusionVolume(volume: Volume): void {
3241
+ inv<void>('0xEEB7818B1D307212', volume.handle);
3291
3242
  }
3292
3243
 
3293
3244
  /**
3245
+ * Note: this native was added in build 1436.31
3246
+ *
3247
+ * @param p0
3294
3248
  * @returns
3295
3249
  */
3296
- static isPlatformInvitePending(): any {
3297
- return inv<number>('0xFC4165C9165C166F');
3250
+ static N_0x78271BC02AE9AF83(p0: number): number {
3251
+ return inv<number>('0x78271BC02AE9AF83', p0, rai());
3298
3252
  }
3299
3253
 
3300
3254
  /**
3255
+ * @param netID
3301
3256
  * @returns
3302
3257
  */
3303
- static isInMpCutscene(): boolean {
3304
- return inv<boolean>('0x6CC27C9FA2040220', rai());
3258
+ static isDamageTrackerActiveOnNetworkId(netID: number): boolean {
3259
+ return !!inv<boolean>('0x6E192E33AD436366', netID, rai());
3305
3260
  }
3306
3261
 
3307
3262
  /**
3308
- * @returns
3263
+ * Always returns -1. Seems to be XB1 specific.
3264
+ *
3265
+ * @returns gamerHandle
3309
3266
  */
3310
- static N_0x273E04A3A7AD1F2D(): boolean {
3311
- return inv<boolean>('0x273E04A3A7AD1F2D', rai());
3267
+ static startUserContentPermissionsCheck(): [number, number] {
3268
+ const result = inv<[number, number]>('0xDEB2B99A1AF1A2A6', pvi(), rai());
3269
+ return [result[0], result[1]];
3312
3270
  }
3313
3271
 
3314
3272
  /**
@@ -3334,7 +3292,7 @@ export class Network {
3334
3292
  * @returns
3335
3293
  */
3336
3294
  static isPlayerAParticipant(player: Player): boolean {
3337
- return inv<boolean>('0x3CA58F6CB7CBD784', player.handle, rai());
3295
+ return !!inv<boolean>('0x3CA58F6CB7CBD784', player.handle, rai());
3338
3296
  }
3339
3297
 
3340
3298
  /**
@@ -3390,7 +3348,7 @@ export class Network {
3390
3348
  * @returns
3391
3349
  */
3392
3350
  static N_0x3E4A16BC669E71B3(): boolean {
3393
- return inv<boolean>('0x3E4A16BC669E71B3', rai());
3351
+ return !!inv<boolean>('0x3E4A16BC669E71B3', rai());
3394
3352
  }
3395
3353
 
3396
3354
  /**
@@ -3408,7 +3366,7 @@ export class Network {
3408
3366
  * @returns
3409
3367
  */
3410
3368
  static getThisScriptIsNetworkScript(): boolean {
3411
- return inv<boolean>('0x2910669969E9535E', rai());
3369
+ return !!inv<boolean>('0x2910669969E9535E', rai());
3412
3370
  }
3413
3371
 
3414
3372
  /**
@@ -3434,7 +3392,7 @@ export class Network {
3434
3392
  * @returns
3435
3393
  */
3436
3394
  static N_0x862C5040F4888741(player1: Player, player2: Player): boolean {
3437
- return inv<boolean>('0x862C5040F4888741', player1.handle, player2.handle, rai());
3395
+ return !!inv<boolean>('0x862C5040F4888741', player1.handle, player2.handle, rai());
3438
3396
  }
3439
3397
 
3440
3398
  /**
@@ -3537,7 +3495,7 @@ export class Network {
3537
3495
  * @returns
3538
3496
  */
3539
3497
  static checkUserContentPrivileges(p0: number): boolean {
3540
- return inv<boolean>('0x595F028698072DD9', p0, rai());
3498
+ return !!inv<boolean>('0x595F028698072DD9', p0, rai());
3541
3499
  }
3542
3500
 
3543
3501
  /**
@@ -3557,138 +3515,135 @@ export class Network {
3557
3515
  }
3558
3516
 
3559
3517
  /**
3560
- * @param description
3561
- * @param length
3562
- * @returns
3563
- */
3564
- static ugcGetCachedDescription(description: string | number, length: number): string | null {
3565
- return inv<string>('0x40F7E66472DF3E5C', _h(description), length, ras());
3566
- }
3567
-
3568
- /**
3569
- * @param toggle
3518
+ * @returns
3570
3519
  */
3571
- static N_0x780A13F780A13F1B(toggle: boolean): void {
3572
- inv<void>('0x780A13F780A13F1B', toggle);
3520
+ static didRecentGamerNamesRequestSucceed(): any {
3521
+ return inv<number>('0x12AEB56B489415C5');
3573
3522
  }
3574
3523
 
3575
3524
  /**
3576
- * @param p1
3577
- * @returns gamerHandle
3525
+ * @returns sessionRequestId
3578
3526
  */
3579
- static requestPedshotTextureMultiplayerDownload(p1: number): [string | null, number] {
3580
- const result = inv<[string, number]>('0xB5C4B18B12A2AF23', pvi(), p1, ras());
3527
+ static sessionCancelRequest(): [any, number] {
3528
+ const result = inv<[number, number]>('0xE72E5C1289BD1F40', pvi());
3581
3529
  return [result[0], result[1]];
3582
3530
  }
3583
3531
 
3584
3532
  /**
3585
- * @param setting
3533
+ * @param message
3534
+ * @returns gamerHandle
3586
3535
  */
3587
- static N_0xE3AB5EEFCB6671A2(setting: number): void {
3588
- inv<void>('0xE3AB5EEFCB6671A2', setting);
3536
+ static N_0x5759160AC17C13CE(message: string | null): number {
3537
+ const result = inv<number>('0x5759160AC17C13CE', pvi(), message);
3538
+ return result;
3589
3539
  }
3590
3540
 
3591
3541
  /**
3592
- * @param p0
3542
+ * @param id
3593
3543
  * @returns
3594
3544
  */
3595
- static N_0x3AA0CDC63696166D(p0: number): boolean {
3596
- return inv<boolean>('0x3AA0CDC63696166D', p0, rai());
3545
+ static cloudHasRequestCompleted(id: number): boolean {
3546
+ return !!inv<boolean>('0x4C61B39930D045DA', id, rai());
3597
3547
  }
3598
3548
 
3599
3549
  /**
3600
- * @param p0
3601
- * @param p1
3602
- * @returns
3550
+ * nullsub, doesn't do anything
3603
3551
  */
3604
- static N_0xE39600E50D608693(p0: any, p1: any): boolean {
3605
- return inv<boolean>('0xE39600E50D608693', p0, p1, rai());
3552
+ static N_0xACC44768AF229042(): void {
3553
+ inv<void>('0xACC44768AF229042');
3606
3554
  }
3607
3555
 
3608
3556
  /**
3609
- * @param flags Refer to [enum: eSessionFlags]
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
+ *
3610
3566
  * @returns
3611
3567
  */
3612
- static sessionAddSessionFlags(flags: number): any {
3613
- return inv<number>('0xE546BDA1B3E288EE', flags);
3568
+ static getNpUnavailableReason(): number {
3569
+ return inv<number>('0x74FB3E29E6D10FA9', rai());
3614
3570
  }
3615
3571
 
3616
3572
  /**
3617
- * @param p0
3618
- * @param playerCount
3573
+ * @param netId
3619
3574
  * @returns
3620
3575
  */
3621
- static requestRecentGamerNames(p0: number, playerCount: number): any {
3622
- return inv<number>('0x6D206D383BB5F6B1', p0, playerCount);
3576
+ static netToPropset(netId: number): PropSet | null {
3577
+ return createFromHandle<PropSet>('PropSet', inv<number>('0xD08066E00D26C448', netId, rai()));
3623
3578
  }
3624
3579
 
3625
3580
  /**
3626
- * @returns
3581
+ * @param paramName
3627
3582
  */
3628
- static getHostOfThisScript(): Player | null {
3629
- return createFromHandle<Player>('Player', inv<number>('0xC7B4D79B01FA7A5C', rai()));
3583
+ static clearLaunchParam(paramName: string | null): void {
3584
+ inv<void>('0x782C94DB6469634D', paramName);
3630
3585
  }
3631
3586
 
3632
3587
  /**
3633
- * @param animScene
3634
- * @returns
3588
+ * @param p0
3635
3589
  */
3636
- static hasControlOfAnimScene(animScene: AnimScene): any {
3637
- return inv<number>('0x26A5C12FACFF8724', animScene.handle);
3590
+ static N_0x603469298A4308AF(p0: boolean): void {
3591
+ inv<void>('0x603469298A4308AF', p0);
3638
3592
  }
3639
3593
 
3640
3594
  /**
3641
- * Equivalent to NETWORK_REQUEST_SESSION_SEAMLESS if userHash == 0.
3642
- * Otherwise it is equivalent to NETWORK_SESSION_REQUEST_SESSION_COMPETITIVE(flags, MATCHTYPE_SEAMLESS, userHash, 0, sessionRequestId); p1 is unused
3643
- *
3644
- * @param flags
3645
- * @param seamlessType
3646
- * @param userHash
3647
- * @returns sessionRequestId
3595
+ * @param player
3596
+ * @returns
3648
3597
  */
3649
- static sessionRequestSessionSeamless(flags: number, seamlessType: number, userHash: number): [any, number] {
3650
- const result = inv<[number, number]>('0x2989E131FDE37E97', flags, seamlessType, userHash, pvi());
3651
- return [result[0], result[1]];
3598
+ static isAimCamActive(player: Player): any {
3599
+ return inv<number>('0x8E7CE19219669AEB', player.handle);
3652
3600
  }
3653
3601
 
3654
3602
  /**
3603
+ * Note: scripts seem to indicate that this was renamed to NETWORK_IS_PLAYER_IN_MP_FAST_INSTANCE
3604
+ *
3605
+ * @param player
3655
3606
  * @returns
3656
3607
  */
3657
- static hasCompletedMpIntroFlowOnCurrentSlot(): any {
3658
- return inv<number>('0xDD73C9838CE7181D');
3608
+ static isPlayerInMpCutscene(player: Player): boolean {
3609
+ return !!inv<boolean>('0x63F9EE203C3619F2', player.handle, rai());
3659
3610
  }
3660
3611
 
3661
3612
  /**
3662
- * @param configProperty
3663
- * @param include
3613
+ * @param time
3664
3614
  */
3665
- static spawnConfigAddPropertyScripted(configProperty: number, include: boolean): void {
3666
- inv<void>('0x44D59EC597BBF348', configProperty, include);
3615
+ static setLocalPlayerInvincibleTime(time: number): void {
3616
+ inv<void>('0x2D95C7E2D7E07307', time);
3667
3617
  }
3668
3618
 
3669
3619
  /**
3670
3620
  * @param p0
3671
3621
  * @returns
3672
3622
  */
3673
- static N_0xA2837A5E21FB5A58(p0: any): boolean {
3674
- return inv<boolean>('0xA2837A5E21FB5A58', p0, rai());
3623
+ static N_0x3F2EE18A3E294801(p0: number): number {
3624
+ return inv<number>('0x3F2EE18A3E294801', p0, rai());
3675
3625
  }
3676
3626
 
3677
3627
  /**
3678
- * @returns
3628
+ * @param player
3679
3629
  */
3680
- static N_0x0E54D4DA6018FF8E(): boolean {
3681
- return inv<boolean>('0x0E54D4DA6018FF8E', rai());
3630
+ static N_0x7B3FF2D193628126(player: Player): void {
3631
+ inv<void>('0x7B3FF2D193628126', player.handle);
3682
3632
  }
3683
3633
 
3684
3634
  /**
3685
- * Returns the entity associated with the given network ID.
3686
- *
3687
- * @param networkId
3635
+ * @param milliseconds
3636
+ */
3637
+ static clearClockOverrideOvertime(milliseconds: number): void {
3638
+ inv<void>('0x65F040D91001ED4B', milliseconds);
3639
+ }
3640
+
3641
+ /**
3642
+ * @param player
3688
3643
  * @returns
3689
3644
  */
3690
- static N_0x4538EE7C321590BC(networkId: number): Entity | null {
3691
- return createFromHandle<Entity>('Entity', inv<number>('0x4538EE7C321590BC', networkId, rai()));
3645
+ static getPlayerTutorialSessionInstance(player: Player): number {
3646
+ return inv<number>('0x3B39236746714134', player.handle, rai());
3692
3647
  }
3693
3648
 
3694
3649
  static N_0x9B39B0555CC692B5(): void {
@@ -3747,7 +3702,7 @@ export class Network {
3747
3702
  * @returns
3748
3703
  */
3749
3704
  static getEntityIsNetworked(entity: Entity): boolean {
3750
- return inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
3705
+ return !!inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
3751
3706
  }
3752
3707
 
3753
3708
  /**
@@ -3868,230 +3823,90 @@ export class Network {
3868
3823
  * @param amount
3869
3824
  */
3870
3825
  static reserveNetworkMissionObjects(amount: number): void {
3871
- inv<void>('0x4E5C93BD0C32FBF8', amount);
3872
- }
3873
-
3874
- /**
3875
- * @param entity
3876
- * @param player
3877
- * @returns p2
3878
- */
3879
- static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
3880
- const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
3881
- return [!!result[0], result[1]];
3882
- }
3883
-
3884
- /**
3885
- * @returns
3886
- */
3887
- static autoSessionIsAllowedToMerge(): any {
3888
- return inv<number>('0xAADED99A6B268A27');
3889
- }
3890
-
3891
- /**
3892
- * @param p0
3893
- * @param p1
3894
- * @param p2
3895
- * @returns
3896
- */
3897
- static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
3898
- return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
3899
- }
3900
-
3901
- /**
3902
- * Hardcoded to return false.
3903
- *
3904
- * @returns
3905
- */
3906
- static shouldShowPromotionDlg(): any {
3907
- return inv<number>('0xDA4B1A479C414FB2');
3908
- }
3909
-
3910
- /**
3911
- * @param amount
3912
- */
3913
- static reserveNetworkMissionPeds(amount: number): void {
3914
- inv<void>('0xB60FEBA45333D36F', amount);
3915
- }
3916
-
3917
- /**
3918
- * @param pos
3919
- * @param heading
3920
- */
3921
- static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
3922
- inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
3923
- }
3924
-
3925
- /**
3926
- * @param paramName
3927
- * @param value
3928
- */
3929
- static setLaunchParamValue(paramName: string | null, value: string | null): void {
3930
- inv<void>('0x668AF6E4933AC13F', paramName, value);
3931
- }
3932
-
3933
- /**
3934
- * @returns gamerHandle
3935
- */
3936
- static canViewGamerUserContent(): [any, number] {
3937
- const result = inv<[number, number]>('0x246545C37C27A717', pvi());
3938
- return [result[0], result[1]];
3939
- }
3940
-
3941
- /**
3942
- * @param p0
3943
- * @returns
3944
- */
3945
- static isParticipantActive(p0: number): boolean {
3946
- return inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
3947
- }
3948
-
3949
- /**
3950
- * @param p0
3951
- * @returns
3952
- */
3953
- static getNumCreatedMissionPeds(p0: boolean): number {
3954
- return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
3955
- }
3956
-
3957
- /**
3958
- * _NETWORK_GET_A* - _NETWORK_GET_D*
3959
- *
3960
- * @param player
3961
- * @param ped
3962
- * @returns p2
3963
- */
3964
- static N_0x236321F1178A5446(player: Player, ped: Ped): [boolean, number] {
3965
- const result = inv<[boolean, number]>('0x236321F1178A5446', player.handle, ped.handle, pvi(), rai());
3966
- return [!!result[0], result[1]];
3967
- }
3968
-
3969
- /**
3970
- * Must be called from a background script, otherwise it will do nothing.
3971
- *
3972
- * @param entity
3973
- * @param p1
3974
- */
3975
- static N_0x979765465A6F25FC(entity: Entity, p1: boolean): void {
3976
- inv<void>('0x979765465A6F25FC', entity.handle, p1);
3977
- }
3978
-
3979
- /**
3980
- * @param player
3981
- * @param p1
3982
- */
3983
- static N_0x5A91BCEF74944E93(player: Player, p1: number): void {
3984
- inv<void>('0x5A91BCEF74944E93', player.handle, f(p1));
3985
- }
3986
-
3987
- /**
3988
- * @param params
3989
- */
3990
- static setLaunchParamString(params: string | null): void {
3991
- inv<void>('0xDFFC15AA63D04AAB', params);
3992
- }
3993
-
3994
- /**
3995
- * Note: this native was added in build 1311.23
3996
- *
3997
- * @param p0
3998
- * @param p1
3999
- */
4000
- static N_0x0D183D8490EE4366(p0: number, p1: number): void {
4001
- inv<void>('0x0D183D8490EE4366', p0, p1);
4002
- }
4003
-
4004
- /**
4005
- * Note: this native was added in build 1311.23
4006
- *
4007
- * @param p0
4008
- * @returns
4009
- */
4010
- static N_0xF8DC69DC1AD19072(p0: boolean): number {
4011
- return inv<number>('0xF8DC69DC1AD19072', p0, rai());
3826
+ inv<void>('0x4E5C93BD0C32FBF8', amount);
4012
3827
  }
4013
3828
 
4014
3829
  /**
4015
- * @returns
3830
+ * @param entity
3831
+ * @param player
3832
+ * @returns p2
4016
3833
  */
4017
- static N_0xA47D48D06AA5A188(): boolean {
4018
- return inv<boolean>('0xA47D48D06AA5A188', rai());
3834
+ static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
3835
+ const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
3836
+ return [!!result[0], result[1]];
4019
3837
  }
4020
3838
 
4021
3839
  /**
4022
3840
  * @returns
4023
3841
  */
4024
- static getCloudTimeAsInt(): number {
4025
- return inv<number>('0x9A73240B49945C76', rai());
3842
+ static autoSessionIsAllowedToMerge(): any {
3843
+ return inv<number>('0xAADED99A6B268A27');
4026
3844
  }
4027
3845
 
4028
3846
  /**
4029
- * *GET_LAUNCH_PARAM*(RESPOT?)*
4030
- * Name is probably invalid since this native only reads data from parsed entity.
4031
- *
4032
- * @param entity
3847
+ * @param p0
3848
+ * @param p1
3849
+ * @param p2
4033
3850
  * @returns
4034
3851
  */
4035
- static N_0x26A867C0B7A456D1(entity: Entity): boolean {
4036
- return inv<boolean>('0x26A867C0B7A456D1', entity.handle, rai());
3852
+ static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
3853
+ return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
4037
3854
  }
4038
3855
 
4039
3856
  /**
4040
- * @param netHandle
4041
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
3857
+ * Hardcoded to return false.
3858
+ *
3859
+ * @returns
4042
3860
  */
4043
- static netToVeh(netHandle: number): Vehicle | null {
4044
- return createFromHandle<Vehicle>('Vehicle', inv<number>('0x367B936610BA360C', netHandle, rai()));
3861
+ static shouldShowPromotionDlg(): any {
3862
+ return inv<number>('0xDA4B1A479C414FB2');
4045
3863
  }
4046
3864
 
4047
3865
  /**
4048
- * @returns sessionRequestId
3866
+ * @param amount
4049
3867
  */
4050
- static N_0xAFA14F98327791CE(): [boolean, number] {
4051
- const result = inv<[boolean, number]>('0xAFA14F98327791CE', pvi(), rai());
4052
- return [!!result[0], result[1]];
3868
+ static reserveNetworkMissionPeds(amount: number): void {
3869
+ inv<void>('0xB60FEBA45333D36F', amount);
4053
3870
  }
4054
3871
 
4055
3872
  /**
4056
- * @returns
3873
+ * @param pos
3874
+ * @param heading
4057
3875
  */
4058
- static N_0xDA1BFED8582F61F0(): boolean {
4059
- return inv<boolean>('0xDA1BFED8582F61F0', rai());
3876
+ static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
3877
+ inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
4060
3878
  }
4061
3879
 
4062
3880
  /**
4063
- * Note: this native was added in build 1311.23
4064
- *
4065
- * @param p0
4066
- * @returns
3881
+ * @param paramName
3882
+ * @param value
4067
3883
  */
4068
- static N_0xBAF7E2979442B29F(p0: boolean): number {
4069
- return inv<number>('0xBAF7E2979442B29F', p0, rai());
3884
+ static setLaunchParamValue(paramName: string | null, value: string | null): void {
3885
+ inv<void>('0x668AF6E4933AC13F', paramName, value);
4070
3886
  }
4071
3887
 
4072
3888
  /**
4073
- * @returns
3889
+ * @returns gamerHandle
4074
3890
  */
4075
- static isCloudAvailable(): boolean {
4076
- return inv<boolean>('0x9A4CF4F48AD77302', rai());
3891
+ static canViewGamerUserContent(): [any, number] {
3892
+ const result = inv<[number, number]>('0x246545C37C27A717', pvi());
3893
+ return [result[0], result[1]];
4077
3894
  }
4078
3895
 
4079
3896
  /**
4080
3897
  * @param p0
4081
- * @param p1
4082
- * @param p2
3898
+ * @returns
4083
3899
  */
4084
- static registerPlayerBroadcastVariables(p0: any, p1: any, p2: any): void {
4085
- inv<void>('0x3364AA97340CA215', p0, p1, p2);
3900
+ static isParticipantActive(p0: number): boolean {
3901
+ return !!inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
4086
3902
  }
4087
3903
 
4088
3904
  /**
4089
- * _NETWORK_IS_T* - _NETWORK_RE*
4090
- *
3905
+ * @param p0
4091
3906
  * @returns
4092
3907
  */
4093
- static isPreviousUploadPending(): any {
4094
- return inv<number>('0xA21E3BAD0A42D199');
3908
+ static getNumCreatedMissionPeds(p0: boolean): number {
3909
+ return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
4095
3910
  }
4096
3911
 
4097
3912
  /**
@@ -4142,7 +3957,7 @@ export class Network {
4142
3957
  * @returns
4143
3958
  */
4144
3959
  static canRegisterMissionObjects(amount: number): boolean {
4145
- return inv<boolean>('0x800DD4721A8B008B', amount, rai());
3960
+ return !!inv<boolean>('0x800DD4721A8B008B', amount, rai());
4146
3961
  }
4147
3962
 
4148
3963
  /**
@@ -4150,7 +3965,7 @@ export class Network {
4150
3965
  * @returns
4151
3966
  */
4152
3967
  static ugcReleaseCachedDescription(description: string | number): boolean {
4153
- return inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
3968
+ return !!inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
4154
3969
  }
4155
3970
 
4156
3971
  /**
@@ -4220,7 +4035,7 @@ export class Network {
4220
4035
  * @returns
4221
4036
  */
4222
4037
  static N_0xD7BAD4062074B9C1(p0: any): boolean {
4223
- return inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
4038
+ return !!inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
4224
4039
  }
4225
4040
 
4226
4041
  /**
@@ -4249,7 +4064,7 @@ export class Network {
4249
4064
  * @returns
4250
4065
  */
4251
4066
  static isObjectReassignmentInProgress(): boolean {
4252
- return inv<boolean>('0x8FE9EB11EC9CC23A', rai());
4067
+ return !!inv<boolean>('0x8FE9EB11EC9CC23A', rai());
4253
4068
  }
4254
4069
 
4255
4070
  /**
@@ -4303,7 +4118,7 @@ export class Network {
4303
4118
  * @returns
4304
4119
  */
4305
4120
  static isHostOfThisScript(): boolean {
4306
- return inv<boolean>('0x83CD99A1E6061AB5', rai());
4121
+ return !!inv<boolean>('0x83CD99A1E6061AB5', rai());
4307
4122
  }
4308
4123
 
4309
4124
  /**
@@ -4364,14 +4179,140 @@ export class Network {
4364
4179
  * @returns
4365
4180
  */
4366
4181
  static isSignedOnline(): boolean {
4367
- return inv<boolean>('0x1077788E268557C2', rai());
4182
+ return !!inv<boolean>('0x1077788E268557C2', rai());
4368
4183
  }
4369
4184
 
4370
4185
  /**
4371
4186
  * @returns
4372
4187
  */
4373
4188
  static isInSpectatorMode(): boolean {
4374
- return inv<boolean>('0x048746E388762E11', rai());
4189
+ return !!inv<boolean>('0x048746E388762E11', rai());
4190
+ }
4191
+
4192
+ /**
4193
+ * @param featureId
4194
+ * @returns
4195
+ */
4196
+ static isFeatureSupported(featureId: number): any {
4197
+ return inv<number>('0x9C725D149622BFDE', featureId);
4198
+ }
4199
+
4200
+ /**
4201
+ * On PC this returns true if gamerHandle is a valid handle.
4202
+ *
4203
+ * @returns gamerHandle
4204
+ */
4205
+ static canAddFriend(): [any, number] {
4206
+ const result = inv<[number, number]>('0x99ABE9BF9DADA162', pvi());
4207
+ return [result[0], result[1]];
4208
+ }
4209
+
4210
+ /**
4211
+ * Note: this native was added in build 1311.23
4212
+ */
4213
+ static N_0x7673C0D2C5CDAC55(): void {
4214
+ inv<void>('0x7673C0D2C5CDAC55');
4215
+ }
4216
+
4217
+ /**
4218
+ * Always returns 110
4219
+ *
4220
+ * @returns
4221
+ */
4222
+ static getMaxNumNetworkPeds(): number {
4223
+ return inv<number>('0x0C1F7D49C39D2289', rai());
4224
+ }
4225
+
4226
+ /**
4227
+ * Returns textureDownloadId
4228
+ *
4229
+ * @param p1
4230
+ * @param name
4231
+ * @param p3
4232
+ * @returns gamerHandle
4233
+ */
4234
+ static mugshotTextureDownloadRequest(p1: number, name: string | null, p3: boolean): [number, number] {
4235
+ const result = inv<[number, number]>('0x9B5DB6CEAFAA10BB', pvi(), p1, name, p3, rai());
4236
+ return [result[0], result[1]];
4237
+ }
4238
+
4239
+ /**
4240
+ * @returns gamerHandle
4241
+ */
4242
+ static isFriend(): [boolean, number] {
4243
+ const result = inv<[boolean, number]>('0x1A24A179F9B31654', pvi(), rai());
4244
+ return [!!result[0], result[1]];
4245
+ }
4246
+
4247
+ /**
4248
+ * @returns
4249
+ */
4250
+ static isRecentGamerNamesRequestInProgress(): any {
4251
+ return inv<number>('0x4664D213A0CCAF40');
4252
+ }
4253
+
4254
+ /**
4255
+ * @param scriptHash
4256
+ * @param p1
4257
+ * @param p2
4258
+ * @param p3
4259
+ * @returns
4260
+ */
4261
+ static isScriptActiveByHash(scriptHash: string | number, p1: number, p2: boolean, p3: number): any {
4262
+ return inv<number>('0x1B89BC43B6E69107', _h(scriptHash), p1, p2, p3);
4263
+ }
4264
+
4265
+ static N_0x564552C6AF1EEAB1(): void {
4266
+ inv<void>('0x564552C6AF1EEAB1');
4267
+ }
4268
+
4269
+ /**
4270
+ * @returns
4271
+ */
4272
+ static hasPendingInviteFailure(): any {
4273
+ return inv<number>('0xD0498AD30E16B6BD');
4274
+ }
4275
+
4276
+ /**
4277
+ * @param entity
4278
+ * @returns
4279
+ */
4280
+ static requestControlOfEntity(entity: Entity): boolean {
4281
+ return !!inv<boolean>('0xB69317BF5E782347', entity.handle, rai());
4282
+ }
4283
+
4284
+ /**
4285
+ * @param p0
4286
+ * @returns
4287
+ */
4288
+ static N_0xD7D0DF27CB1765B5(p0: number): boolean {
4289
+ return !!inv<boolean>('0xD7D0DF27CB1765B5', p0, rai());
4290
+ }
4291
+
4292
+ /**
4293
+ * @returns
4294
+ */
4295
+ static canRefreshFriendPage(): any {
4296
+ return inv<number>('0x1AF5E28E64A76A9F');
4297
+ }
4298
+
4299
+ /**
4300
+ * Old name: _NETWORK_IS_PLAYER_EQUAL_TO_INDEX
4301
+ *
4302
+ * @param player
4303
+ * @param index
4304
+ * @returns
4305
+ */
4306
+ static arePlayersInSameTutorialSession(player: Player, index: number): boolean {
4307
+ return !!inv<boolean>('0x9DE986FC9A87C474', player.handle, index, rai());
4308
+ }
4309
+
4310
+ static clearFoundGamers(): void {
4311
+ inv<void>('0x6D14CCEE1B40381A');
4312
+ }
4313
+
4314
+ static preventScriptHostMigration(): void {
4315
+ inv<void>('0x2302C0264EA58D31');
4375
4316
  }
4376
4317
 
4377
4318
  /**
@@ -4480,7 +4421,7 @@ export class Network {
4480
4421
  * @returns
4481
4422
  */
4482
4423
  static isPlayerInSpectatorMode(player: Player): boolean {
4483
- return inv<boolean>('0x5B709519997ECF0F', player.handle, rai());
4424
+ return !!inv<boolean>('0x5B709519997ECF0F', player.handle, rai());
4484
4425
  }
4485
4426
 
4486
4427
  /**
@@ -4498,14 +4439,14 @@ export class Network {
4498
4439
  * @returns
4499
4440
  */
4500
4441
  static hasControlOfPickup(pickup: Pickup): boolean {
4501
- return inv<boolean>('0x5BC9495F0B3B6FA6', pickup.handle, rai());
4442
+ return !!inv<boolean>('0x5BC9495F0B3B6FA6', pickup.handle, rai());
4502
4443
  }
4503
4444
 
4504
4445
  /**
4505
4446
  * @returns
4506
4447
  */
4507
4448
  static N_0x67CCDF74C4DF7169(): boolean {
4508
- return inv<boolean>('0x67CCDF74C4DF7169', rai());
4449
+ return !!inv<boolean>('0x67CCDF74C4DF7169', rai());
4509
4450
  }
4510
4451
 
4511
4452
  /**
@@ -4517,289 +4458,348 @@ export class Network {
4517
4458
  }
4518
4459
 
4519
4460
  /**
4520
- * Note: this native was added in build 1311.16
4521
- *
4461
+ * Note: this native was added in build 1311.16
4462
+ *
4463
+ * @returns
4464
+ */
4465
+ static getNumPeerNegotiationResponses(): number {
4466
+ return inv<number>('0x4FE932E84FE932E8', rai());
4467
+ }
4468
+
4469
+ static clearClockTimeOverride(): void {
4470
+ inv<void>('0xD972DF67326F966E');
4471
+ }
4472
+
4473
+ static N_0xC8B6D18E22484643(): void {
4474
+ inv<void>('0xC8B6D18E22484643');
4475
+ }
4476
+
4477
+ /**
4478
+ * @param p0
4479
+ * @param p1
4480
+ */
4481
+ static N_0xDC6AD5C046F33AB4(p0: boolean, p1: boolean): void {
4482
+ inv<void>('0xDC6AD5C046F33AB4', p0, p1);
4483
+ }
4484
+
4485
+ /**
4486
+ * @param entity
4487
+ * @returns
4488
+ */
4489
+ static hasControlOfEntity(entity: Entity): boolean {
4490
+ return !!inv<boolean>('0x01BF60A500E28887', entity.handle, rai());
4491
+ }
4492
+
4493
+ /**
4494
+ * @param player
4495
+ * @returns
4496
+ */
4497
+ static getUniqueIntForPlayer(player: Player): number {
4498
+ return inv<number>('0x07F723401B9D921C', player.handle, rai());
4499
+ }
4500
+
4501
+ /**
4502
+ * @param tunableContext
4503
+ * @param tunableName
4504
+ * @returns
4505
+ */
4506
+ static accessTunableBool(tunableContext: string | number, tunableName: string | number): boolean {
4507
+ return !!inv<boolean>('0xAA6A47A573ABB75A', _h(tunableContext), _h(tunableName), rai());
4508
+ }
4509
+
4510
+ /**
4511
+ * @returns gamerHandle
4512
+ */
4513
+ static removeFriend(): [any, number] {
4514
+ const result = inv<[number, number]>('0x55F618F68AB854D3', pvi());
4515
+ return [result[0], result[1]];
4516
+ }
4517
+
4518
+ static N_0x6C7E04E9DE451789(): void {
4519
+ inv<void>('0x6C7E04E9DE451789');
4520
+ }
4521
+
4522
+ /**
4522
4523
  * @returns
4523
4524
  */
4524
- static getNumPeerNegotiationResponses(): number {
4525
- return inv<number>('0x4FE932E84FE932E8', 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
  }