@nativewrappers/redm-codegen 0.0.5 → 0.0.6

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 (213) hide show
  1. package/dist/classes/AnimScene.d.ts +126 -126
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +184 -184
  4. package/dist/classes/BaseModel.d.ts +17 -17
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +25 -25
  7. package/dist/classes/BaseTask.d.ts +12 -12
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +14 -14
  10. package/dist/classes/Cam.d.ts +94 -94
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +126 -126
  13. package/dist/classes/Entity.d.ts +471 -471
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +672 -672
  16. package/dist/classes/PedTask.d.ts +155 -155
  17. package/dist/classes/PedTask.d.ts.map +1 -1
  18. package/dist/classes/PedTask.js +204 -204
  19. package/dist/classes/PersChar.d.ts +9 -9
  20. package/dist/classes/PersChar.d.ts.map +1 -1
  21. package/dist/classes/PersChar.js +21 -21
  22. package/dist/classes/Pickup.d.ts +5 -5
  23. package/dist/classes/Pickup.d.ts.map +1 -1
  24. package/dist/classes/Pickup.js +9 -9
  25. package/dist/classes/Player.d.ts +687 -687
  26. package/dist/classes/Player.d.ts.map +1 -1
  27. package/dist/classes/Player.js +1013 -1013
  28. package/dist/classes/Prop.d.ts +87 -87
  29. package/dist/classes/Prop.d.ts.map +1 -1
  30. package/dist/classes/Prop.js +121 -121
  31. package/dist/classes/PropSet.d.ts +4 -4
  32. package/dist/classes/PropSet.d.ts.map +1 -1
  33. package/dist/classes/PropSet.js +6 -6
  34. package/dist/classes/VehicleTask.d.ts +17 -17
  35. package/dist/classes/VehicleTask.d.ts.map +1 -1
  36. package/dist/classes/VehicleTask.js +21 -21
  37. package/dist/classes/Weapon.d.ts +306 -306
  38. package/dist/classes/Weapon.d.ts.map +1 -1
  39. package/dist/classes/Weapon.js +411 -411
  40. package/dist/namespaces/Animscene.d.ts +59 -59
  41. package/dist/namespaces/Animscene.d.ts.map +1 -1
  42. package/dist/namespaces/Animscene.js +77 -77
  43. package/dist/namespaces/Audio.d.ts +569 -569
  44. package/dist/namespaces/Audio.d.ts.map +1 -1
  45. package/dist/namespaces/Audio.js +728 -728
  46. package/dist/namespaces/Bounty.d.ts +70 -70
  47. package/dist/namespaces/Bounty.d.ts.map +1 -1
  48. package/dist/namespaces/Bounty.js +115 -115
  49. package/dist/namespaces/Brain.d.ts +15 -15
  50. package/dist/namespaces/Brain.d.ts.map +1 -1
  51. package/dist/namespaces/Brain.js +20 -20
  52. package/dist/namespaces/CamStatics.d.ts +399 -399
  53. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  54. package/dist/namespaces/CamStatics.js +574 -574
  55. package/dist/namespaces/Clock.d.ts +51 -51
  56. package/dist/namespaces/Clock.d.ts.map +1 -1
  57. package/dist/namespaces/Clock.js +73 -73
  58. package/dist/namespaces/Collection.d.ts +76 -76
  59. package/dist/namespaces/Collection.d.ts.map +1 -1
  60. package/dist/namespaces/Collection.js +108 -108
  61. package/dist/namespaces/Companion.d.ts +22 -22
  62. package/dist/namespaces/Companion.d.ts.map +1 -1
  63. package/dist/namespaces/Companion.js +30 -30
  64. package/dist/namespaces/Compendium.d.ts +38 -38
  65. package/dist/namespaces/Compendium.d.ts.map +1 -1
  66. package/dist/namespaces/Compendium.js +52 -52
  67. package/dist/namespaces/Crashlog.d.ts +10 -10
  68. package/dist/namespaces/Crashlog.d.ts.map +1 -1
  69. package/dist/namespaces/Crashlog.js +14 -14
  70. package/dist/namespaces/Crew.d.ts +9 -9
  71. package/dist/namespaces/Crew.d.ts.map +1 -1
  72. package/dist/namespaces/Crew.js +14 -14
  73. package/dist/namespaces/Databinding.d.ts +177 -177
  74. package/dist/namespaces/Databinding.d.ts.map +1 -1
  75. package/dist/namespaces/Databinding.js +271 -271
  76. package/dist/namespaces/Dlc.d.ts +5 -5
  77. package/dist/namespaces/Dlc.d.ts.map +1 -1
  78. package/dist/namespaces/Dlc.js +9 -9
  79. package/dist/namespaces/EntityStatics.d.ts +193 -193
  80. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  81. package/dist/namespaces/EntityStatics.js +263 -263
  82. package/dist/namespaces/Fire.d.ts +7 -7
  83. package/dist/namespaces/Fire.d.ts.map +1 -1
  84. package/dist/namespaces/Fire.js +9 -9
  85. package/dist/namespaces/Graphics.d.ts +820 -820
  86. package/dist/namespaces/Graphics.d.ts.map +1 -1
  87. package/dist/namespaces/Graphics.js +1118 -1118
  88. package/dist/namespaces/Hud.d.ts +494 -494
  89. package/dist/namespaces/Hud.d.ts.map +1 -1
  90. package/dist/namespaces/Hud.js +789 -789
  91. package/dist/namespaces/Inventory.d.ts +180 -180
  92. package/dist/namespaces/Inventory.d.ts.map +1 -1
  93. package/dist/namespaces/Inventory.js +239 -239
  94. package/dist/namespaces/Itemdatabase.d.ts +78 -78
  95. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  96. package/dist/namespaces/Itemdatabase.js +106 -106
  97. package/dist/namespaces/Map.d.ts +156 -156
  98. package/dist/namespaces/Map.d.ts.map +1 -1
  99. package/dist/namespaces/Map.js +207 -207
  100. package/dist/namespaces/Minigame.d.ts +78 -78
  101. package/dist/namespaces/Minigame.d.ts.map +1 -1
  102. package/dist/namespaces/Minigame.js +116 -116
  103. package/dist/namespaces/Missiondata.d.ts +15 -15
  104. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  105. package/dist/namespaces/Missiondata.js +23 -23
  106. package/dist/namespaces/Network.d.ts +636 -636
  107. package/dist/namespaces/Network.d.ts.map +1 -1
  108. package/dist/namespaces/Network.js +915 -915
  109. package/dist/namespaces/Object.d.ts +121 -121
  110. package/dist/namespaces/Object.d.ts.map +1 -1
  111. package/dist/namespaces/Object.js +162 -162
  112. package/dist/namespaces/Pad.d.ts +94 -94
  113. package/dist/namespaces/Pad.d.ts.map +1 -1
  114. package/dist/namespaces/Pad.js +127 -127
  115. package/dist/namespaces/Perschar.d.ts +44 -44
  116. package/dist/namespaces/Perschar.d.ts.map +1 -1
  117. package/dist/namespaces/Perschar.js +68 -68
  118. package/dist/namespaces/Physics.d.ts +158 -158
  119. package/dist/namespaces/Physics.d.ts.map +1 -1
  120. package/dist/namespaces/Physics.js +207 -207
  121. package/dist/namespaces/PlayerStatics.d.ts +127 -127
  122. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  123. package/dist/namespaces/PlayerStatics.js +177 -177
  124. package/dist/namespaces/Population.d.ts +75 -75
  125. package/dist/namespaces/Population.d.ts.map +1 -1
  126. package/dist/namespaces/Population.js +101 -101
  127. package/dist/namespaces/Posse.d.ts +38 -38
  128. package/dist/namespaces/Posse.d.ts.map +1 -1
  129. package/dist/namespaces/Posse.js +62 -62
  130. package/dist/namespaces/Propset.d.ts +30 -30
  131. package/dist/namespaces/Propset.d.ts.map +1 -1
  132. package/dist/namespaces/Propset.js +38 -38
  133. package/dist/namespaces/Shapetest.d.ts +11 -11
  134. package/dist/namespaces/Shapetest.d.ts.map +1 -1
  135. package/dist/namespaces/Shapetest.js +13 -13
  136. package/dist/namespaces/Stats.d.ts +88 -88
  137. package/dist/namespaces/Stats.d.ts.map +1 -1
  138. package/dist/namespaces/Stats.js +123 -123
  139. package/dist/namespaces/Streaming.d.ts +58 -58
  140. package/dist/namespaces/Streaming.d.ts.map +1 -1
  141. package/dist/namespaces/Streaming.js +92 -92
  142. package/dist/namespaces/Task.d.ts +62 -62
  143. package/dist/namespaces/Task.d.ts.map +1 -1
  144. package/dist/namespaces/Task.js +90 -90
  145. package/dist/namespaces/Telemetry.d.ts +172 -172
  146. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  147. package/dist/namespaces/Telemetry.js +240 -240
  148. package/dist/namespaces/Uifeed.d.ts +15 -15
  149. package/dist/namespaces/Uifeed.d.ts.map +1 -1
  150. package/dist/namespaces/Uifeed.js +24 -24
  151. package/dist/namespaces/Voice.d.ts +38 -38
  152. package/dist/namespaces/Voice.d.ts.map +1 -1
  153. package/dist/namespaces/Voice.js +56 -56
  154. package/dist/namespaces/Water.d.ts +27 -27
  155. package/dist/namespaces/Water.d.ts.map +1 -1
  156. package/dist/namespaces/Water.js +41 -41
  157. package/dist/namespaces/WeaponStatics.d.ts +250 -250
  158. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  159. package/dist/namespaces/WeaponStatics.js +346 -346
  160. package/package.json +1 -1
  161. package/src/classes/AnimScene.ts +199 -199
  162. package/src/classes/BaseModel.ts +29 -29
  163. package/src/classes/BaseTask.ts +15 -15
  164. package/src/classes/Cam.ts +135 -135
  165. package/src/classes/Entity.ts +687 -687
  166. package/src/classes/PedTask.ts +223 -223
  167. package/src/classes/PersChar.ts +24 -24
  168. package/src/classes/Pickup.ts +10 -10
  169. package/src/classes/Player.ts +1024 -1024
  170. package/src/classes/Prop.ts +136 -136
  171. package/src/classes/PropSet.ts +7 -7
  172. package/src/classes/VehicleTask.ts +23 -23
  173. package/src/classes/Weapon.ts +429 -429
  174. package/src/namespaces/Animscene.ts +86 -86
  175. package/src/namespaces/Audio.ts +804 -804
  176. package/src/namespaces/Bounty.ts +131 -131
  177. package/src/namespaces/Brain.ts +22 -22
  178. package/src/namespaces/CamStatics.ts +599 -599
  179. package/src/namespaces/Clock.ts +82 -82
  180. package/src/namespaces/Collection.ts +109 -109
  181. package/src/namespaces/Companion.ts +34 -34
  182. package/src/namespaces/Compendium.ts +59 -59
  183. package/src/namespaces/Crashlog.ts +16 -16
  184. package/src/namespaces/Crew.ts +16 -16
  185. package/src/namespaces/Databinding.ts +286 -286
  186. package/src/namespaces/Dlc.ts +9 -9
  187. package/src/namespaces/EntityStatics.ts +279 -279
  188. package/src/namespaces/Fire.ts +10 -10
  189. package/src/namespaces/Graphics.ts +1196 -1196
  190. package/src/namespaces/Hud.ts +799 -799
  191. package/src/namespaces/Inventory.ts +245 -245
  192. package/src/namespaces/Itemdatabase.ts +118 -118
  193. package/src/namespaces/Map.ts +215 -215
  194. package/src/namespaces/Minigame.ts +132 -132
  195. package/src/namespaces/Missiondata.ts +27 -27
  196. package/src/namespaces/Network.ts +951 -951
  197. package/src/namespaces/Object.ts +171 -171
  198. package/src/namespaces/Pad.ts +127 -127
  199. package/src/namespaces/Perschar.ts +72 -72
  200. package/src/namespaces/Physics.ts +231 -231
  201. package/src/namespaces/PlayerStatics.ts +202 -202
  202. package/src/namespaces/Population.ts +114 -114
  203. package/src/namespaces/Posse.ts +62 -62
  204. package/src/namespaces/Propset.ts +42 -42
  205. package/src/namespaces/Shapetest.ts +14 -14
  206. package/src/namespaces/Stats.ts +139 -139
  207. package/src/namespaces/Streaming.ts +104 -104
  208. package/src/namespaces/Task.ts +100 -100
  209. package/src/namespaces/Telemetry.ts +265 -265
  210. package/src/namespaces/Uifeed.ts +27 -27
  211. package/src/namespaces/Voice.ts +65 -65
  212. package/src/namespaces/Water.ts +47 -47
  213. package/src/namespaces/WeaponStatics.ts +365 -365
@@ -662,278 +662,248 @@ export class Network {
662
662
  }
663
663
 
664
664
  /**
665
- * gets the object id of a network id
665
+ * Old name: _NETWORK_GET_AVERAGE_PACKET_LOSS_FOR_PLAYER
666
666
  *
667
- * @param netHandle
668
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
667
+ * @param player
668
+ * @returns
669
669
  */
670
- static netToObj(netHandle: number): Prop | null {
671
- return createFromHandle<Prop>('Prop', inv<number>('0xD8515F5FEA14CB3F', netHandle, rai()));
670
+ static getAveragePacketLoss(player: Player): number {
671
+ return inv<number>('0x350C23949E43686C', player.handle, raf());
672
672
  }
673
673
 
674
674
  /**
675
- * Note: this native was added in build 1311.23
676
- *
677
- * @param ctx
678
- * @param ec
679
- * @param ex
680
- * @param ro
675
+ * @returns hour; minute; second
681
676
  */
682
- static N_0x19447FCAE97704DC(ctx: string | number, ec: number, ex: boolean, ro: boolean): void {
683
- inv<void>('0x19447FCAE97704DC', _h(ctx), ec, ex, ro);
677
+ static getGlobalClock(): [boolean, number, number, number] {
678
+ const result = inv<[boolean, number, number, number]>('0x11A7ADCD629E170F', pvi(), pvi(), pvi(), rai());
679
+ return [!!result[0], result[1], result[2], result[3]];
684
680
  }
685
681
 
686
682
  /**
687
- * Hardcoded to return zero.
688
- *
683
+ * @param player
689
684
  * @returns
690
685
  */
691
- static getPromotionDlgSeenCount(): number {
692
- return inv<number>('0x2FB53C631A49BE92', rai());
686
+ static isPlayerAParticipant(player: Player): boolean {
687
+ return !!inv<boolean>('0x3CA58F6CB7CBD784', player.handle, rai());
693
688
  }
694
689
 
695
690
  /**
696
- * @param waterDepthLevel
691
+ * @returns
697
692
  */
698
- static spawnConfigSetLevelWaterDepth(waterDepthLevel: number): void {
699
- inv<void>('0xBDCC671B911040F9', waterDepthLevel);
693
+ static getXp(): number {
694
+ return inv<number>('0xDB438CC9BC6F4022', rai());
700
695
  }
701
696
 
702
697
  /**
698
+ * @param p0
699
+ * @param index
703
700
  * @returns
704
701
  */
705
- static N_0x41452E8A3B9C0C4B(): number {
706
- return inv<number>('0x41452E8A3B9C0C4B', rai());
702
+ static ugcQueryGetPlaylistName(p0: any, index: number): string | null {
703
+ return inv<string>('0xCAF50048C8D0FBA0', p0, index, ras());
707
704
  }
708
705
 
709
- /**
710
- * If you are host, returns true else returns false.
711
- *
712
- * @returns
713
- */
714
- static isHost(): boolean {
715
- return !!inv<boolean>('0x8DB296B814EDDA07', rai());
706
+ static N_0xD39A72AE5EBD57E5(): void {
707
+ inv<void>('0xD39A72AE5EBD57E5');
716
708
  }
717
709
 
718
710
  /**
719
- * @returns p0
711
+ * @param p0
720
712
  */
721
- static N_0xA6F1BAABFF6AD7B9(): number {
722
- const result = inv<number>('0xA6F1BAABFF6AD7B9', pvi());
723
- return result;
713
+ static N_0xD42C543F73233041(p0: boolean): void {
714
+ inv<void>('0xD42C543F73233041', p0);
724
715
  }
725
716
 
726
- /**
727
- * @returns
728
- */
729
- static spawnConfigSearchInProgress(): any {
730
- return inv<number>('0x89EC2FC89ECB1005');
717
+ static N_0xE5FF65CFF5160752(): void {
718
+ inv<void>('0xE5FF65CFF5160752');
731
719
  }
732
720
 
733
721
  /**
734
- * @param pos
722
+ * @param player
723
+ * @param reportType
724
+ * @param description
725
+ * @param horseName
735
726
  */
736
- static N_0x2686BD9566B65EDA(pos: Vector3): void {
737
- inv<void>('0x2686BD9566B65EDA', f(pos.x), f(pos.y), f(pos.z));
727
+ static reportPlayer(player: Player, reportType: number, description: string | null, horseName: string | null): void {
728
+ inv<void>('0xA197C35F73AC0F12', player.handle, reportType, description, horseName);
738
729
  }
739
730
 
740
731
  /**
741
- * Note: this native was added in build 1311.23
742
- *
743
- * @param p0
744
- * @returns
732
+ * @returns p0
745
733
  */
746
- static N_0x9E5A47744C0F0376(p0: number): boolean {
747
- return !!inv<boolean>('0x9E5A47744C0F0376', p0, rai());
734
+ static getSizeOfPlayerBroadcastDataStorage(): [number, number] {
735
+ const result = inv<[number, number]>('0x690806BC83BC8CA2', pvi(), rai());
736
+ return [result[0], result[1]];
748
737
  }
749
738
 
750
739
  /**
751
- * @param p0
752
- * @param p1
753
- * @param p2
754
740
  * @returns
755
741
  */
756
- static N_0xC0CFFDA87C2C163D(p0: number, p1: any, p2: number): any {
757
- return inv<number>('0xC0CFFDA87C2C163D', p0, p1, p2);
742
+ static N_0x3E4A16BC669E71B3(): boolean {
743
+ return !!inv<boolean>('0x3E4A16BC669E71B3', rai());
758
744
  }
759
745
 
760
746
  /**
761
- * @param amount
747
+ * @returns
762
748
  */
763
- static reserveNetworkMissionPickups(amount: number): void {
764
- inv<void>('0x4D40E7D749BC6E6D', amount);
749
+ static getNumParticipants(): number {
750
+ return inv<number>('0x18D0456E86604654', rai());
765
751
  }
766
752
 
767
- /**
768
- * Note: this native was added in build 1311.23
769
- *
770
- * @param p0
771
- */
772
- static N_0xD3B6EBC6C3D77D44(p0: number): void {
773
- inv<void>('0xD3B6EBC6C3D77D44', p0);
753
+ static autoSessionFinishInstance(): void {
754
+ inv<void>('0xBB51299166B844F3');
774
755
  }
775
756
 
776
757
  /**
777
- * @param p1
778
- * @param p2
779
- * @param p3
780
- * @param p5
781
- * @returns p0; p4
758
+ * @returns
782
759
  */
783
- static ugcTextureDownloadRequest(p1: any, p2: any, p3: any, p5: boolean): [number, number, number] {
784
- const result = inv<[number, number, number]>('0x308F96458B7087CC', pvi(), p1, p2, p3, pvi(), p5, rai());
785
- return [result[0], result[1], result[2]];
760
+ static getThisScriptIsNetworkScript(): boolean {
761
+ return !!inv<boolean>('0x2910669969E9535E', rai());
786
762
  }
787
763
 
788
764
  /**
789
- * p0 appears to be for MP
790
- *
791
765
  * @param p0
792
- * @returns
766
+ * @param index
767
+ * @returns p2
793
768
  */
794
- static getNumReservedMissionPeds(p0: boolean): number {
795
- return inv<number>('0x1F13D5AE5CB17E17', p0, rai());
769
+ static ugcQueryGetDate(p0: any, index: number): number {
770
+ const result = inv<number>('0xE0CB4AB15CB32710', p0, index, pvi());
771
+ return result;
796
772
  }
797
773
 
798
774
  /**
799
- * @returns
775
+ * @param amount
800
776
  */
801
- static isInSession(): boolean {
802
- return !!inv<boolean>('0xCA97246103B63917', rai());
777
+ static reserveNetworkMissionVehicles(amount: number): void {
778
+ inv<void>('0x76B02E21ED27A469', amount);
803
779
  }
804
780
 
805
781
  /**
782
+ * @param player1
783
+ * @param player2
806
784
  * @returns
807
785
  */
808
- static isTunableCloudRequestPending(): boolean {
809
- return !!inv<boolean>('0x0467C11ED88B7D28', rai());
786
+ static N_0x862C5040F4888741(player1: Player, player2: Player): boolean {
787
+ return !!inv<boolean>('0x862C5040F4888741', player1.handle, player2.handle, rai());
810
788
  }
811
789
 
812
790
  /**
813
- * Old name: _NETWORK_IS_CONNECTION_ENDPOINT_RELAY_SERVER
814
- *
815
791
  * @param player
816
- * @returns
792
+ * @param damageMultiplier
817
793
  */
818
- static isConnectedViaRelay(player: Player): boolean {
819
- return !!inv<boolean>('0x16D3D49902F697BB', player.handle, rai());
794
+ static setLocalPlayerDamageMultiplierForPlayer(player: Player, damageMultiplier: number): void {
795
+ inv<void>('0xD041A32992A55F84', player.handle, f(damageMultiplier));
820
796
  }
821
797
 
822
798
  /**
823
- * @param p0
824
799
  * @param toggle
825
800
  */
826
- static setDoorUnnetworked(p0: any, toggle: boolean): void {
827
- inv<void>('0xC1E1A3D5ED7617B8', p0, toggle);
801
+ static disableLeaveRemotePedBehind(toggle: boolean): void {
802
+ inv<void>('0xC505036A35AFD01B', toggle);
828
803
  }
829
804
 
830
805
  /**
831
- * @param pos
832
- * @param heading
833
- * @param p4
834
- * @param p5
835
- * @param p6
836
- * @param p7
806
+ * @param netHandle
807
+ * @param p1
837
808
  */
838
- static resurrectLocalPlayer(pos: Vector3, heading: number, p4: number, p5: boolean, p6: any, p7: boolean): void {
839
- inv<void>('0xEA23C49EAA83ACFB', f(pos.x), f(pos.y), f(pos.z), f(heading), p4, p5, p6, p7);
809
+ static N_0x894B5ECAB45D2342(netHandle: number, p1: any): void {
810
+ inv<void>('0x894B5ECAB45D2342', netHandle, p1);
840
811
  }
841
812
 
842
813
  /**
843
- * @returns sessionRequestId
814
+ * @param name
844
815
  */
845
- static sessionLeftQueueOrRequestedSession(): [any, number] {
846
- const result = inv<[number, number]>('0xECE6A0C1B59CD8BE', pvi());
847
- return [result[0], result[1]];
816
+ static textureDownloadReleaseByName(name: string | null): void {
817
+ inv<void>('0x7A17B7981560FFA5', name);
848
818
  }
849
819
 
850
820
  /**
851
- * @param flags Refer to [enum: eSessionFlags]
821
+ * @param ugcRequestId
852
822
  * @returns
853
823
  */
854
- static sessionRemoveSessionFlags(flags: number): any {
855
- return inv<number>('0x78335E12DB0BF961', flags);
824
+ static ugcIsRequestPending(ugcRequestId: number): any {
825
+ return inv<number>('0xF4AC4FA844FD559A', ugcRequestId);
856
826
  }
857
827
 
858
828
  /**
859
- * @returns
829
+ * Only used in fm_race_controller R* Script (PROCESS_LOCAL_PLAYER_INIT)
830
+ *
831
+ * @param p0
860
832
  */
861
- static haveRosBannedPriv(): boolean {
862
- return !!inv<boolean>('0x8020A73847E0CA7D', rai());
833
+ static N_0xBC7D36946D19E60E(p0: boolean): void {
834
+ inv<void>('0xBC7D36946D19E60E', p0);
863
835
  }
864
836
 
865
837
  /**
866
- * @param p0
867
- * @returns
838
+ * @param setting
868
839
  */
869
- static N_0xCA58D4FD20D70F24(p0: any): number {
870
- return inv<number>('0xCA58D4FD20D70F24', p0, rai());
840
+ static N_0x704F92B3AF20D857(setting: boolean): void {
841
+ inv<void>('0x704F92B3AF20D857', setting);
871
842
  }
872
843
 
873
844
  /**
845
+ * @param p0
846
+ * @param p1
874
847
  * @returns
875
848
  */
876
- static refreshCurrentFriendPage(): any {
877
- return inv<number>('0x1F51F367B710A832');
849
+ static ugcQueryGetPosixPublishedDate(p0: any, p1: any): number {
850
+ return inv<number>('0x104080CA9E519B00', p0, p1, rai());
878
851
  }
879
852
 
880
853
  /**
881
- * Same Native Handler as VEH_TO_NET, PED_TO_NET, OBJ_TO_NET and NETWORK_GET_NETWORK_ID_FROM_ENTITY
882
- *
883
- * @param handle
884
854
  * @returns
885
855
  */
886
- static N_0xF260AF6F43953316(handle: number): number {
887
- return inv<number>('0xF260AF6F43953316', handle, rai());
856
+ static getSocialMatchmakingAllowed(): any {
857
+ return inv<number>('0xD0541EF28E9C4783');
888
858
  }
889
859
 
890
860
  /**
891
- * @returns
861
+ * @param toggle
892
862
  */
893
- static N_0xA94ECE191D90637A(): number {
894
- return inv<number>('0xA94ECE191D90637A', rai());
863
+ static setSocialMatchmakingAllowed(toggle: boolean): void {
864
+ inv<void>('0x777D0571A466B520', toggle);
895
865
  }
896
866
 
897
867
  /**
898
868
  * @param p0
869
+ * @param p1
870
+ * @param p2
899
871
  * @returns
900
872
  */
901
- static getNumReservedMissionPickups(p0: boolean): number {
902
- return inv<number>('0x62BE3ECC79FBD004', p0, rai());
873
+ static N_0x77B299E8799B1332(p0: any, p1: any, p2: any): any {
874
+ return inv<number>('0x77B299E8799B1332', p0, p1, p2);
903
875
  }
904
876
 
905
877
  /**
906
- * @param toggle
878
+ * @param p0
879
+ * @returns
907
880
  */
908
- static allowAllEntityFadingForInstances(toggle: boolean): void {
909
- inv<void>('0x4B05B97BA46F419D', toggle);
881
+ static N_0xE59F4924BD3A718D(p0: number): string | null {
882
+ return inv<string>('0xE59F4924BD3A718D', p0, ras());
910
883
  }
911
884
 
912
885
  /**
913
- * @param netId
886
+ * @param p0
887
+ * @returns
914
888
  */
915
- static preventNetworkIdMigration(netId: number): void {
916
- inv<void>('0x7182EDDA1EE7DB5A', netId);
889
+ static checkUserContentPrivileges(p0: number): boolean {
890
+ return !!inv<boolean>('0x595F028698072DD9', p0, rai());
917
891
  }
918
892
 
919
893
  /**
920
- * Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials.
921
- *
894
+ * @param player
922
895
  * @returns
923
896
  */
924
- static hasValidRosCredentials(): boolean {
925
- return !!inv<boolean>('0x85443FF4C328F53B', rai());
897
+ static getPlayerFastInstanceId(player: Player): number {
898
+ return inv<number>('0xD9267375834C5EAB', player.handle, rai());
926
899
  }
927
900
 
928
901
  /**
929
- * @param ped_amt
930
- * @param vehicle_amt
931
- * @param object_amt
932
- * @param pickup_amt
933
- * @returns
902
+ * @returns hours; minutes; seconds
934
903
  */
935
- static canRegisterMissionEntities(ped_amt: number, vehicle_amt: number, object_amt: number, pickup_amt: number): boolean {
936
- return !!inv<boolean>('0x69778E7564BADE6D', ped_amt, vehicle_amt, object_amt, pickup_amt, rai());
904
+ static getGlobalMultiplayerClock(): [number, number, number] {
905
+ const result = inv<[number, number, number]>('0x6D03BFBD643B2A02', pvi(), pvi(), pvi());
906
+ return [result[0], result[1], result[2]];
937
907
  }
938
908
 
939
909
  /**
@@ -1071,429 +1041,267 @@ export class Network {
1071
1041
  return createFromHandle<Entity>('Entity', inv<number>('0x4538EE7C321590BC', networkId, rai()));
1072
1042
  }
1073
1043
 
1074
- /**
1075
- * @param amount
1076
- * @returns
1077
- */
1078
- static canRegisterMissionVehicles(amount: number): boolean {
1079
- return !!inv<boolean>('0x7277F1F2E085EE74', amount, rai());
1044
+ static N_0x9B39B0555CC692B5(): void {
1045
+ inv<void>('0x9B39B0555CC692B5');
1080
1046
  }
1081
1047
 
1082
1048
  /**
1083
- * Takes the specified time and writes it to the structure specified in the second argument. struct date_time
1084
- * {
1085
- * int year;
1086
- * int PADDING1;
1087
- * int month;
1088
- * int PADDING2;
1089
- * int day;
1090
- * int PADDING3;
1091
- * int hour;
1092
- * int PADDING4;
1093
- * int minute;
1094
- * int PADDING5;
1095
- * int second;
1096
- * int PADDING6;
1097
- * };
1098
- *
1099
- * @param posixTime
1100
- * @returns timeStructure
1049
+ * @param p0
1050
+ * @returns
1101
1051
  */
1102
- static convertPosixTime(posixTime: number): number {
1103
- const result = inv<number>('0xAC97AF97FA68E5D5', posixTime, pvi());
1104
- return result;
1052
+ static N_0xE79BA3BC265895DA(p0: number): string | null {
1053
+ return inv<string>('0xE79BA3BC265895DA', p0, ras());
1105
1054
  }
1106
1055
 
1107
1056
  /**
1108
- * @param ugcRequestId
1109
- * @returns
1057
+ * @param netPlaylistActivity
1110
1058
  */
1111
- static N_0xCD53E6CBF609C012(ugcRequestId: number): boolean {
1112
- return !!inv<boolean>('0xCD53E6CBF609C012', ugcRequestId, rai());
1059
+ static activitySetCurrent(netPlaylistActivity: number): void {
1060
+ inv<void>('0x9ADAC065D9F6706F', netPlaylistActivity);
1113
1061
  }
1114
1062
 
1115
1063
  /**
1116
- * @param p0
1117
- * @param index
1064
+ * @param queueGroup
1118
1065
  * @returns
1119
1066
  */
1120
- static ugcQueryGetMissionDescHash(p0: any, index: number): number {
1121
- return (inv<number>('0xA6BF569956C60A60', p0, index, rai())) & 0xFFFFFFFF;
1067
+ static sessionIsRequestInProgressByQueueGroup(queueGroup: number): any {
1068
+ return inv<number>('0x9E762A595CF88E4A', queueGroup);
1122
1069
  }
1123
1070
 
1124
1071
  /**
1125
- * Note: this native was added in build 1311.23
1126
- *
1127
- * @param p0
1072
+ * @returns
1128
1073
  */
1129
- static N_0x335AF56613CA0F49(p0: number): void {
1130
- inv<void>('0x335AF56613CA0F49', p0);
1074
+ static pedmugshotGetStatus(): number {
1075
+ return inv<number>('0xCBAC13F065C47596', rai());
1131
1076
  }
1132
1077
 
1133
1078
  /**
1134
- * @param p0
1135
1079
  * @returns
1136
1080
  */
1137
- static N_0xE10F2D7715ABABEC(p0: any): any {
1138
- return inv<number>('0xE10F2D7715ABABEC', p0);
1081
+ static getTunableCloudCrc(): number {
1082
+ return inv<number>('0x10BD227A753B0D84', rai());
1139
1083
  }
1140
1084
 
1141
1085
  /**
1142
- * Note: this native was added in build 1311.23
1086
+ * Returns true if the passed value is less than 32.
1087
+ *
1088
+ * @param player
1089
+ * @returns
1143
1090
  */
1144
- static N_0xFD8112109A96877C(): void {
1145
- inv<void>('0xFD8112109A96877C');
1091
+ static isPlayerIndexValid(player: Player): any {
1092
+ return inv<number>('0x255A5EF65EDA9167', player.handle);
1146
1093
  }
1147
1094
 
1148
1095
  /**
1149
- * Always returns 80
1150
- *
1096
+ * @param entity
1151
1097
  * @returns
1152
1098
  */
1153
- static getMaxNumNetworkPickups(): number {
1154
- return inv<number>('0xA72835064DD63E4C', rai());
1099
+ static getEntityIsNetworked(entity: Entity): boolean {
1100
+ return !!inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
1155
1101
  }
1156
1102
 
1157
1103
  /**
1158
- * Old name: _NETWORK_GET_AVERAGE_LATENCY_FOR_PLAYER
1159
- *
1160
- * @param player
1161
- * @returns
1104
+ * @param vehicle
1105
+ * @returns Returns the network id for the specified `vehicle`, or `0` if the vehicle isn't networked.
1162
1106
  */
1163
- static getAverageLatency(player: Player): number {
1164
- return inv<number>('0xD414BE129BB81B32', player.handle, raf());
1107
+ static vehToNet(vehicle: Vehicle): number {
1108
+ return inv<number>('0xB4C94523F023419C', vehicle.handle, rai());
1165
1109
  }
1166
1110
 
1167
1111
  /**
1168
- * @param netId
1169
- * @param toggle
1112
+ * Only used in R* SP Scripts
1113
+ *
1114
+ * @param player
1115
+ * @param personaPhotoLocalCacheType
1116
+ * @returns
1170
1117
  */
1171
- static setNetworkIdExistsOnAllMachines(netId: number, toggle: boolean): void {
1172
- inv<void>('0xE05E81A888FA63C8', netId, toggle);
1118
+ static requestPedshotTextureLocalBackupDownload(player: number, personaPhotoLocalCacheType: number): string | null {
1119
+ return inv<string>('0x356F9FB0698C1FEB', player, personaPhotoLocalCacheType, ras());
1173
1120
  }
1174
1121
 
1175
1122
  /**
1176
- * @param completed
1177
- * @returns
1123
+ * @param p0
1178
1124
  */
1179
- static setCompletedMpIntroFlowOnCurrentSlot(completed: boolean): any {
1180
- return inv<number>('0x2C5BD9A43987AA27', completed);
1125
+ static N_0xE5634491A58C2703(p0: number): void {
1126
+ inv<void>('0xE5634491A58C2703', f(p0));
1181
1127
  }
1182
1128
 
1183
1129
  /**
1184
- * Only used in R* SP Script map_app_event_handler
1185
- *
1130
+ * @param p0
1186
1131
  * @param p1
1187
- * @returns gamerHandle
1132
+ * @param p2
1133
+ * @param p3
1134
+ * @returns
1188
1135
  */
1189
- static requestPedshotTextureLocalDownload(p1: number): [string | null, number] {
1190
- const result = inv<[string, number]>('0xCAF4CA2F87779F8F', pvi(), p1, ras());
1191
- return [result[0], result[1]];
1136
+ static N_0x64A36BA85CE01A81(p0: any, p1: any, p2: any, p3: any): any {
1137
+ return inv<number>('0x64A36BA85CE01A81', p0, p1, p2, p3);
1192
1138
  }
1193
1139
 
1194
1140
  /**
1195
- * @returns
1141
+ * @returns sessionRequestId
1196
1142
  */
1197
- static autoSessionIsProcessingSessionSplit(): any {
1198
- return inv<number>('0xA021095C983F20D8');
1143
+ static sessionIsSessionRequestIdValid(): [any, number] {
1144
+ const result = inv<[number, number]>('0x2F54B146D3EDCE4D', pvi());
1145
+ return [result[0], result[1]];
1199
1146
  }
1200
1147
 
1201
1148
  /**
1202
1149
  * @returns
1203
1150
  */
1204
- static N_0x1413B6BF27AB7A95(): number {
1205
- return inv<number>('0x1413B6BF27AB7A95', rai());
1151
+ static isResettingPopulation(): any {
1152
+ return inv<number>('0x1BB50CD340A996E6');
1206
1153
  }
1207
1154
 
1208
1155
  /**
1209
- * nullsub, doesn't do anything
1156
+ * Note: this native was added in build 1311.23
1210
1157
  *
1211
- * @param player
1158
+ * @param p0
1159
+ * @returns
1212
1160
  */
1213
- static showChatRestrictionMsc(player: Player): void {
1214
- inv<void>('0x6BFF5F84102DF80A', player.handle);
1161
+ static N_0x039B692B3318FAB6(p0: boolean): number {
1162
+ return inv<number>('0x039B692B3318FAB6', p0, rai());
1215
1163
  }
1216
1164
 
1217
1165
  /**
1218
- * Returns false if pedshot push failed
1166
+ * Always returns 60
1219
1167
  *
1220
- * @param texture
1221
- * @param personaPhotoType
1222
- * @param formatIndex
1223
1168
  * @returns
1224
1169
  */
1225
- static personaPhotoWriteScProfile(texture: string | null, personaPhotoType: number, formatIndex: number): any {
1226
- return inv<number>('0xB72999D3120599DF', texture, personaPhotoType, formatIndex);
1170
+ static getMaxNumNetworkObjects(): number {
1171
+ return inv<number>('0xC7BE335216B5EC7C', rai());
1227
1172
  }
1228
1173
 
1229
1174
  /**
1230
- * @param p0
1231
- * @param p1
1175
+ * Checks if the user has ROS privilege 14.
1176
+ *
1232
1177
  * @returns
1233
1178
  */
1234
- static N_0x271F95E55C663B8B(p0: any, p1: any): any {
1235
- return inv<number>('0x271F95E55C663B8B', p0, p1);
1179
+ static ugcHasPrivilege(): any {
1180
+ return inv<number>('0x6506BFA755FB209C');
1236
1181
  }
1237
1182
 
1238
1183
  /**
1239
- * @returns
1184
+ * @param networkId
1185
+ * @param bStopCloning
1240
1186
  */
1241
- static sessionGetSessionFlags(): number {
1242
- return inv<number>('0x51F33DBC1A41CBFD', rai());
1187
+ static setNetworkIdStopCloning(networkId: number, bStopCloning: boolean): void {
1188
+ inv<void>('0x9ED3108D6847760A', networkId, bStopCloning);
1243
1189
  }
1244
1190
 
1245
1191
  /**
1246
- * Note: this native was added in build 1311.23
1192
+ * Returns CGameConfig->ConfigOnlineServices->RosTitleName (see gameconfig.xml)
1247
1193
  *
1248
1194
  * @returns
1249
1195
  */
1250
- static N_0x039AD6B57D5179FF(): number {
1251
- return inv<number>('0x039AD6B57D5179FF', rai());
1196
+ static getRosTitleName(): string | null {
1197
+ return inv<string>('0xAC6153A0722F524C', ras());
1252
1198
  }
1253
1199
 
1254
1200
  /**
1255
- * Old name: _NETWORK_GET_NUM_UNACKED_FOR_PLAYER
1256
- *
1257
- * @param player
1258
1201
  * @returns
1259
1202
  */
1260
- static getNumUnackedReliables(player: Player): number {
1261
- return inv<number>('0xFF8FCF9FFC458A1C', player.handle, rai());
1203
+ static getScriptStatus(): number {
1204
+ return inv<number>('0x57D158647A6BFABF', rai());
1262
1205
  }
1263
1206
 
1264
1207
  /**
1265
- * @param entity
1266
- * @param toggle
1208
+ * @param p0
1209
+ * @param p1
1210
+ * @param p2
1211
+ * @param p3
1267
1212
  */
1268
- static allowEntityFadingForInstances(entity: Entity, toggle: boolean): void {
1269
- inv<void>('0xF3354D6CA46F419D', entity.handle, toggle);
1213
+ static setNetworkIdVisibleInCutscene(p0: any, p1: any, p2: any, p3: any): void {
1214
+ inv<void>('0xA6928482543022B4', p0, p1, p2, p3);
1270
1215
  }
1271
1216
 
1272
1217
  /**
1273
- * Only used in R* Script startup_clip
1218
+ * @param amount
1274
1219
  */
1275
- static N_0xFD4272A137703449(): void {
1276
- inv<void>('0xFD4272A137703449');
1220
+ static reserveNetworkMissionObjects(amount: number): void {
1221
+ inv<void>('0x4E5C93BD0C32FBF8', amount);
1277
1222
  }
1278
1223
 
1279
1224
  /**
1225
+ * @param entity
1280
1226
  * @param player
1281
- * @param type
1227
+ * @returns p2
1282
1228
  */
1283
- static N_0x51951DE06C0D1C40(player: Player, type: number): void {
1284
- inv<void>('0x51951DE06C0D1C40', player.handle, type);
1229
+ static N_0x75FC34A2BA345BD1(entity: Entity, player: Player): [boolean, number] {
1230
+ const result = inv<[boolean, number]>('0x75FC34A2BA345BD1', entity.handle, player.handle, pvi(), rai());
1231
+ return [!!result[0], result[1]];
1285
1232
  }
1286
1233
 
1287
1234
  /**
1288
- * @param p0
1289
1235
  * @returns
1290
1236
  */
1291
- static N_0x5ED39DA62BEB1330(p0: number): any {
1292
- return inv<number>('0x5ED39DA62BEB1330', p0);
1237
+ static autoSessionIsAllowedToMerge(): any {
1238
+ return inv<number>('0xAADED99A6B268A27');
1293
1239
  }
1294
1240
 
1295
1241
  /**
1296
1242
  * @param p0
1297
- * @param index
1243
+ * @param p1
1244
+ * @param p2
1298
1245
  * @returns
1299
1246
  */
1300
- static ugcQueryGetName(p0: any, index: number): string | null {
1301
- return inv<string>('0x2D053EA815702DD1', p0, index, ras());
1247
+ static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
1248
+ return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
1302
1249
  }
1303
1250
 
1304
1251
  /**
1305
- * @param p0
1306
- * @param index
1252
+ * Hardcoded to return false.
1253
+ *
1307
1254
  * @returns
1308
1255
  */
1309
- static ugcQueryGetBookMarked(p0: any, index: number): any {
1310
- return inv<number>('0x98539FC453AEA639', p0, index);
1256
+ static shouldShowPromotionDlg(): any {
1257
+ return inv<number>('0xDA4B1A479C414FB2');
1311
1258
  }
1312
1259
 
1313
1260
  /**
1314
- * @param entity
1315
- * @param timer
1316
- * @param p2
1261
+ * @param amount
1317
1262
  */
1318
- static setNetworkRespotTimer(entity: Entity, timer: number, p2: boolean): void {
1319
- inv<void>('0x442B4347B6EC36E8', entity.handle, timer, p2);
1263
+ static reserveNetworkMissionPeds(amount: number): void {
1264
+ inv<void>('0xB60FEBA45333D36F', amount);
1320
1265
  }
1321
1266
 
1322
1267
  /**
1323
- * @returns gamerHandle
1268
+ * @param pos
1269
+ * @param heading
1324
1270
  */
1325
- static getGamertagFromFriend(): [string | null, number] {
1326
- const result = inv<[string, number]>('0x5659D87BE674AB17', pvi(), ras());
1327
- return [result[0], result[1]];
1271
+ static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
1272
+ inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
1328
1273
  }
1329
1274
 
1330
1275
  /**
1331
- * @param player
1332
- * @returns
1276
+ * @param paramName
1277
+ * @param value
1333
1278
  */
1334
- static getPlayerWaypointIsActive(player: Player): any {
1335
- return inv<number>('0xDCC4B7F7112E8AB7', player.handle);
1279
+ static setLaunchParamValue(paramName: string | null, value: string | null): void {
1280
+ inv<void>('0x668AF6E4933AC13F', paramName, value);
1336
1281
  }
1337
1282
 
1338
1283
  /**
1339
- * @param inviteIndex
1340
- * @returns
1284
+ * @returns gamerHandle
1341
1285
  */
1342
- static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
1343
- return !!inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
1286
+ static canViewGamerUserContent(): [any, number] {
1287
+ const result = inv<[number, number]>('0x246545C37C27A717', pvi());
1288
+ return [result[0], result[1]];
1344
1289
  }
1345
1290
 
1346
1291
  /**
1347
- * @param netID
1292
+ * @param p0
1293
+ * @returns
1348
1294
  */
1349
- static disableProximityMigration(netID: number): void {
1350
- inv<void>('0x407091CF6037118E', netID);
1295
+ static isParticipantActive(p0: number): boolean {
1296
+ return !!inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
1351
1297
  }
1352
1298
 
1353
1299
  /**
1354
1300
  * @param p0
1355
- * @param p1
1356
- * @param dataSize
1357
- * @returns outData
1301
+ * @returns
1358
1302
  */
1359
- static getRecentGamerNames(p0: number, p1: number, dataSize: number): [any, number] {
1360
- const result = inv<[number, number]>('0xFEFCC345CE357453', p0, p1, pvi(), dataSize);
1361
- return [result[0], result[1]];
1362
- }
1363
-
1364
- /**
1365
- * @returns
1366
- */
1367
- static isInTutorialSession(): boolean {
1368
- return !!inv<boolean>('0xADA24309FE08DACF', rai());
1369
- }
1370
-
1371
- /**
1372
- * @param tunableContext
1373
- * @param tunableName
1374
- * @returns value
1375
- */
1376
- static accessTunableInt(tunableContext: string | number, tunableName: string | number): [boolean, number] {
1377
- const result = inv<[boolean, number]>('0x8BE1146DFD5D4468', _h(tunableContext), _h(tunableName), pvi(), rai());
1378
- return [!!result[0], result[1]];
1379
- }
1380
-
1381
- /**
1382
- * @param tunableContext
1383
- * @param tunableName
1384
- * @param defaultValue
1385
- * @returns
1386
- */
1387
- static tryAccessTunableIntHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
1388
- return inv<number>('0xA25E006B36719774', _h(tunableContext), _h(tunableName), defaultValue, rai());
1389
- }
1390
-
1391
- /**
1392
- * @param tunableContext
1393
- * @param tunableName
1394
- * @param defaultValue
1395
- * @returns
1396
- */
1397
- static tryAccessTunableBoolHash(tunableContext: string | number, tunableName: string | number, defaultValue: boolean): boolean {
1398
- return !!inv<boolean>('0xB2AD5D29A99D4B26', _h(tunableContext), _h(tunableName), defaultValue, rai());
1399
- }
1400
-
1401
- /**
1402
- * @param seed
1403
- */
1404
- static seedRandomNumberGenerator(seed: number): void {
1405
- inv<void>('0xF1B84178F8674195', seed);
1406
- }
1407
-
1408
- /**
1409
- * @param netId
1410
- * @returns
1411
- */
1412
- static isNetworkIdOwnedByParticipant(netId: number): boolean {
1413
- return !!inv<boolean>('0xA1607996431332DF', netId, rai());
1414
- }
1415
-
1416
- /**
1417
- * @param scriptName
1418
- * @param p1
1419
- * @param p2
1420
- * @returns
1421
- */
1422
- static getHostOfScript(scriptName: string | null, p1: number, p2: number): Player | null {
1423
- return createFromHandle<Player>('Player', inv<number>('0x1D6A14F1F9A736FC', scriptName, p1, p2, rai()));
1424
- }
1425
-
1426
- static spawnConfigSetCancelSearch(): void {
1427
- inv<void>('0x765E60A1DCB8B1CE');
1428
- }
1429
-
1430
- /**
1431
- * @param player
1432
- * @returns
1433
- */
1434
- static getPlayerIndex(player: Player): number {
1435
- return inv<number>('0x24FB80D107371267', player.handle, rai());
1436
- }
1437
-
1438
- /**
1439
- * @param ugcRequestId
1440
- * @returns
1441
- */
1442
- static ugcQueryGetContentNum(ugcRequestId: number): number {
1443
- return inv<number>('0x76160E0396142765', ugcRequestId, rai());
1444
- }
1445
-
1446
- /**
1447
- * @param ctx
1448
- * @param lh
1449
- * @param ec
1450
- * @param h
1451
- */
1452
- static alert(ctx: string | number, lh: string | number, ec: number, h: number): void {
1453
- inv<void>('0x1BAA028F52EED310', _h(ctx), _h(lh), ec, h);
1454
- }
1455
-
1456
- /**
1457
- * @param contentId
1458
- * @returns
1459
- */
1460
- static ugcIsBookMarked(contentId: string | null): boolean {
1461
- return !!inv<boolean>('0xE42D1042F09865FE', contentId, rai());
1462
- }
1463
-
1464
- /**
1465
- * @returns p0
1466
- */
1467
- static autoSessionCanSplitSession(): [any, number] {
1468
- const result = inv<[number, number]>('0xE404BFF0ABA23CDC', pvi());
1469
- return [result[0], result[1]];
1470
- }
1471
-
1472
- /**
1473
- * _NETWORK_A* - _NETWORK_C*
1474
- *
1475
- * @param p0
1476
- */
1477
- static N_0x34BC1E79546BA543(p0: boolean): void {
1478
- inv<void>('0x34BC1E79546BA543', p0);
1479
- }
1480
-
1481
- /**
1482
- * @param count
1483
- * @returns data
1484
- */
1485
- static getGamerSessionFromHandle(count: number): [any, number] {
1486
- const result = inv<[number, number]>('0xFBDFE1C1356E12E8', pvi(), count);
1487
- return [result[0], result[1]];
1488
- }
1489
-
1490
- /**
1491
- * @param p0
1492
- * @param p1
1493
- * @param p2
1494
- */
1495
- static registerHostBroadcastVariables(p0: any, p1: any, p2: any): void {
1496
- inv<void>('0x3E9B2F01C50DF595', p0, p1, p2);
1303
+ static getNumCreatedMissionPeds(p0: boolean): number {
1304
+ return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
1497
1305
  }
1498
1306
 
1499
1307
  /**
@@ -1637,292 +1445,152 @@ export class Network {
1637
1445
  }
1638
1446
 
1639
1447
  /**
1640
- * @returns
1448
+ * _NETWORK_GET_A* - _NETWORK_GET_D*
1449
+ *
1450
+ * @param ped
1451
+ * @returns p1
1641
1452
  */
1642
- static N_0x18B94666CF610AEB(): boolean {
1643
- return !!inv<boolean>('0x18B94666CF610AEB', rai());
1453
+ static N_0x6CF82A7F65A5AD5F(ped: Ped): [Player | null, number] {
1454
+ const result = inv<[number, number]>('0x6CF82A7F65A5AD5F', ped.handle, pvi(), rai());
1455
+ return [createFromHandle<Player>('Player', result[0]), result[1]];
1644
1456
  }
1645
1457
 
1646
1458
  /**
1647
- * p0 appears to be for MP
1459
+ * @param p1
1460
+ * @returns gamerHandle
1461
+ */
1462
+ static getGamerStatus(p1: number): [number, number] {
1463
+ const result = inv<[number, number]>('0xDDAEB478E58F8DEA', pvi(), p1, rai());
1464
+ return [result[0], result[1]];
1465
+ }
1466
+
1467
+ /**
1468
+ * Returns result of session request:
1469
+ * 0 - NOT_FOUND
1470
+ * 1 - IN_PROGRESS
1471
+ * 2 - TIMEOUT
1472
+ * 3 - PLAYER_OFFLINE
1473
+ * 4 - GANG_MEMBERS_CHANGED
1474
+ * 5 - PLAYER_CANCELLED
1475
+ * 6 - PLAYER_SET_TOO_LARGE
1476
+ * 7 - MATCH_ACCEPTED
1477
+ * 8 - OTHER
1648
1478
  *
1649
- * @param p0
1650
- * @returns
1479
+ * @returns sessionRequestId; p1
1651
1480
  */
1652
- static getNumReservedMissionObjects(p0: boolean): number {
1653
- return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
1481
+ static sessionGetSessionRequestResult(): [number, number, number] {
1482
+ const result = inv<[number, number, number]>('0x0DD051B1BF4B8BD6', pvi(), pvi(), rai());
1483
+ return [result[0], result[1], result[2]];
1484
+ }
1485
+
1486
+ static N_0xA63E4F050F20021F(): void {
1487
+ inv<void>('0xA63E4F050F20021F');
1654
1488
  }
1655
1489
 
1656
1490
  /**
1491
+ * @param amount
1657
1492
  * @returns
1658
1493
  */
1659
- static hasSocialClubAccount(): boolean {
1660
- return !!inv<boolean>('0x67A5589628E0CFF6', rai());
1494
+ static canRegisterMissionObjects(amount: number): boolean {
1495
+ return !!inv<boolean>('0x800DD4721A8B008B', amount, rai());
1661
1496
  }
1662
1497
 
1663
1498
  /**
1664
- * @param netHandle
1665
- * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
1499
+ * @param description
1500
+ * @returns
1666
1501
  */
1667
- static netToPed(netHandle: number): Ped | null {
1668
- return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
1502
+ static ugcReleaseCachedDescription(description: string | number): boolean {
1503
+ return !!inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
1669
1504
  }
1670
1505
 
1671
1506
  /**
1672
- * 0 = succeeded
1673
- * 1 = pending
1674
- * 2 = failed
1675
- *
1676
- * @param textureDownloadId
1677
- * @returns
1507
+ * @param toggle
1678
1508
  */
1679
- static getStatusOfTextureDownload(textureDownloadId: number): number {
1680
- return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
1509
+ static setFriendlyFireOption(toggle: boolean): void {
1510
+ inv<void>('0xF808475FA571D823', toggle);
1681
1511
  }
1682
1512
 
1683
1513
  /**
1684
- * @returns gamerHandle
1514
+ * @returns sessionRequestId
1685
1515
  */
1686
- static N_0xF23A6D6C11D8EC15(): [boolean, number] {
1687
- const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
1688
- return [!!result[0], result[1]];
1516
+ static sessionTransitionToSession(): [any, number] {
1517
+ const result = inv<[number, number]>('0xF20B18A330E6DB5C', pvi());
1518
+ return [result[0], result[1]];
1689
1519
  }
1690
1520
 
1691
1521
  /**
1692
- * Always returns 40
1522
+ * Hardcoded to return false.
1693
1523
  *
1694
1524
  * @returns
1695
1525
  */
1696
- static getMaxNumNetworkVehicles(): number {
1697
- return inv<number>('0x0AFCE529F69B21FF', rai());
1526
+ static isPromotionEnabled(): any {
1527
+ return inv<number>('0x8FF6059DA26E688A');
1698
1528
  }
1699
1529
 
1700
1530
  /**
1701
- * @param netId
1702
- * @param p1
1703
- * @param p2
1531
+ * @param playersToTake
1532
+ * @param maxInstancePlayers
1533
+ * @param sessionFlags
1534
+ * @param bucketId
1535
+ * @returns
1704
1536
  */
1705
- static keepNetworkIdInFastInstance(netId: number, p1: boolean, p2: number): void {
1706
- inv<void>('0xE1BC73D6815BA361', netId, p1, p2);
1537
+ static autoSessionSplitSession(playersToTake: number, maxInstancePlayers: number, sessionFlags: number, bucketId: number): any {
1538
+ return inv<number>('0xC223D299C670413D', playersToTake, maxInstancePlayers, sessionFlags, bucketId);
1707
1539
  }
1708
1540
 
1709
1541
  /**
1710
- * @returns gamerHandle
1542
+ * @param p0
1543
+ * @returns
1711
1544
  */
1712
- static isHandleValid(): [boolean, number] {
1713
- const result = inv<[boolean, number]>('0x6F79B93B0A8E4133', pvi(), rai());
1714
- return [!!result[0], result[1]];
1545
+ static N_0x923346025512DFB7(p0: any): any {
1546
+ return inv<number>('0x923346025512DFB7', p0);
1715
1547
  }
1716
1548
 
1717
1549
  /**
1718
- * @param p0
1719
- * @returns p1
1550
+ * @returns args
1720
1551
  */
1721
- static N_0x691E4DE5309EAEFC(p0: any): number {
1722
- const result = inv<number>('0x691E4DE5309EAEFC', p0, pvi());
1552
+ static resurrectLocalPlayer2(): number {
1553
+ const result = inv<number>('0x4154B7D8C75E5DCF', pvi());
1723
1554
  return result;
1724
1555
  }
1725
1556
 
1726
1557
  /**
1727
- * @param entity
1728
- * @returns
1558
+ * Only used in R* Script net_stable_manager
1559
+ *
1560
+ * @param threadId
1561
+ * @returns pedMax; vehicleMax; unkMax; pedMin; vehicleMin; unkMin
1729
1562
  */
1730
- static getNetworkIdFromEntity(entity: Entity): number {
1731
- return inv<number>('0xA11700682F3AD45C', entity.handle, rai());
1563
+ static getReservedMissionEntitiesForThread(threadId: number): [number, number, number, number, number, number] {
1564
+ const result = inv<[number, number, number, number, number, number]>('0x99AAC89C510DEB0D', threadId, pvi(), pvi(), pvi(), pvi(), pvi(), pvi());
1565
+ return [result[0], result[1], result[2], result[3], result[4], result[5]];
1732
1566
  }
1733
1567
 
1734
1568
  /**
1735
- * Only used in SP R* Script dominoes_sp: p1 = 0
1736
- *
1737
- * @param player
1738
- * @param p1
1739
- */
1740
- static N_0x02C4C6C2900D84DF(player: Player, p1: any): void {
1741
- inv<void>('0x02C4C6C2900D84DF', player.handle, p1);
1742
- }
1743
-
1744
- /**
1745
- * @returns
1746
- */
1747
- static isSessionActive(): boolean {
1748
- return !!inv<boolean>('0xD83C2B94E7508980', rai());
1749
- }
1750
-
1751
- /**
1752
- * @param animScene
1753
- * @returns
1754
- */
1755
- static animSceneToNet(animScene: AnimScene): number {
1756
- return inv<number>('0xE0D73CDDEA79DDCD', animScene.handle, rai());
1757
- }
1758
-
1759
- /**
1760
- * @returns
1761
- */
1762
- static getRank(): number {
1763
- return inv<number>('0x32C90CDFAF40514C', rai());
1764
- }
1765
-
1766
- /**
1767
- * @param message
1768
- * @returns gamerHandle
1769
- */
1770
- static addFriend(message: string | null): [boolean, number] {
1771
- const result = inv<[boolean, number]>('0x8E02D73914064223', pvi(), message, rai());
1772
- return [!!result[0], result[1]];
1773
- }
1774
-
1775
- /**
1776
- * @returns
1777
- */
1778
- static N_0xB389289F031F059A(): number {
1779
- return inv<number>('0xB389289F031F059A', rai());
1780
- }
1781
-
1782
- /**
1783
- * Subtracts the first argument from the second, then returns whether the result is negative.
1784
- *
1785
- * @param timeA
1786
- * @param timeB
1787
- * @returns
1788
- */
1789
- static isTimeMoreThan(timeA: number, timeB: number): boolean {
1790
- return !!inv<boolean>('0xDE350F8651E4346C', timeA, timeB, rai());
1791
- }
1792
-
1793
- /**
1794
- * @returns
1795
- */
1796
- static pedmugshotRequestSend(): any {
1797
- return inv<number>('0xFBC30B70B3CDB87E');
1798
- }
1799
-
1800
- /**
1801
- * Old name: _NETWORK_SET_PASSIVE_MODE_OPTION
1802
- *
1803
- * @param toggle
1804
- */
1805
- static setPlayerIsPassive(toggle: boolean): void {
1806
- inv<void>('0x9C25E8EC4C535FBD', toggle);
1807
- }
1808
-
1809
- /**
1810
- * Seems to always return 0, but it's used in quite a few loops. for (num3 = 0; num3 < NETWORK::0xCCD8C02D(); num3++)
1811
- * {
1812
- * if (NETWORK::NETWORK_IS_PARTICIPANT_ACTIVE(PLAYER::0x98F3B274(num3)) != 0)
1813
- * {
1814
- * var num5 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::0x98F3B274(num3));
1815
- *
1816
- * @returns
1817
- */
1818
- static getMaxNumParticipants(): number {
1819
- return inv<number>('0xA6C90FBC38E395EE', rai());
1820
- }
1821
-
1822
- /**
1823
- * @param ropeId
1824
- * @returns
1825
- */
1826
- static getNetworkIdFromRopeId(ropeId: number): number {
1827
- return inv<number>('0x42871327315EDAE8', ropeId, rai());
1828
- }
1829
-
1830
- /**
1831
- * @param ugcRequestId
1832
- * @returns
1833
- */
1834
- static ugcQueryWasForceCancelled(ugcRequestId: number): any {
1835
- return inv<number>('0xF8F0705E77A0E705', ugcRequestId);
1836
- }
1837
-
1838
- /**
1839
- * @param p0
1840
- */
1841
- static ugcSetQueryDataFromOffline(p0: boolean): void {
1842
- inv<void>('0xF98DDE0A8ED09323', p0);
1843
- }
1844
-
1845
- /**
1846
- * @returns gamerHandle
1847
- */
1848
- static isFriendHandleInSameTitle(): [boolean, number] {
1849
- const result = inv<[boolean, number]>('0x665161D250850A9F', pvi(), rai());
1850
- return [!!result[0], result[1]];
1851
- }
1852
-
1853
- /**
1854
- * @param p0
1855
- * @returns
1856
- */
1857
- static N_0xE8E633215471BB5D(p0: any): number {
1858
- return inv<number>('0xE8E633215471BB5D', p0, rai());
1859
- }
1860
-
1861
- /**
1862
- * Note: this native was added in build 1311.23
1863
- *
1864
1569
  * @param p0
1865
1570
  * @returns
1866
1571
  */
1867
- static N_0x917AD74BDCF8B6E9(p0: boolean): number {
1868
- return inv<number>('0x917AD74BDCF8B6E9', p0, rai());
1869
- }
1870
-
1871
- /**
1872
- * nullsub, doesn't do anything
1873
- *
1874
- * @param p0
1875
- */
1876
- static N_0x0CC28C08613BA9E5(p0: number): void {
1877
- inv<void>('0x0CC28C08613BA9E5', p0);
1572
+ static N_0xD7BAD4062074B9C1(p0: any): boolean {
1573
+ return !!inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
1878
1574
  }
1879
1575
 
1880
1576
  /**
1881
- * Old name: _IS_ENTITY_GHOSTED_TO_LOCAL_PLAYER
1882
- *
1883
- * @param entity
1884
- * @returns
1577
+ * @param hour
1578
+ * @param minute
1579
+ * @param second
1580
+ * @param transitionTime
1581
+ * @param pauseClock
1885
1582
  */
1886
- static isEntityAGhost(entity: Entity): boolean {
1887
- return !!inv<boolean>('0x21D04D7BC538C146', entity.handle, rai());
1888
- }
1889
-
1890
- static clearGetGamerStatus(): void {
1891
- inv<void>('0x86E0660E4F5C956D');
1583
+ static clockTimeOverride(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean): void {
1584
+ inv<void>('0x669E223E64B1903C', hour, minute, second, transitionTime, pauseClock);
1892
1585
  }
1893
1586
 
1894
1587
  /**
1588
+ * @param netId
1895
1589
  * @param player
1896
- * @param entity
1897
- * @returns p2
1898
- */
1899
- static getAssistedDamageOfEntity(player: Player, entity: Entity): [boolean, number] {
1900
- const result = inv<[boolean, number]>('0x4CACA84440FA26F6', player.handle, entity.handle, pvi(), rai());
1901
- return [!!result[0], result[1]];
1902
- }
1903
-
1904
- /**
1905
- * flags:
1906
- * enum eSessionRequestOptionFlags
1907
- * {
1908
- * SESSION_REQUEST_OPTION_FLAG_INCLUDE_GANG_MEMBERS = (1 << 1),
1909
- * SESSION_REQUEST_OPTION_FLAG_LEADER_KEEPS_GANG = (1 << 7),
1910
- * }; seamlessType:
1911
- * enum eSeamlessType
1912
- * {
1913
- * SEAMLESS_TYPE_NORMAL,
1914
- * SEAMLESS_TYPE_PVE,
1915
- * SEAMLESS_TYPE_DEV,
1916
- * SEAMLESS_TYPE_NO_SEAMLESS
1917
- * };
1918
- *
1919
- * @param flags
1920
- * @param seamlessType
1921
- * @returns sessionRequestId
1590
+ * @param toggle
1922
1591
  */
1923
- static requestSessionSeamless(flags: number, seamlessType: number): [any, number] {
1924
- const result = inv<[number, number]>('0x04019AE4956D4393', flags, seamlessType, pvi());
1925
- return [result[0], result[1]];
1592
+ static setNetworkIdAlwaysExistsForPlayer(netId: number, player: Player, toggle: boolean): void {
1593
+ inv<void>('0xA8A024587329F36A', netId, player.handle, toggle);
1926
1594
  }
1927
1595
 
1928
1596
  /**
@@ -3270,248 +2938,278 @@ export class Network {
3270
2938
  }
3271
2939
 
3272
2940
  /**
3273
- * Old name: _NETWORK_GET_AVERAGE_PACKET_LOSS_FOR_PLAYER
2941
+ * gets the object id of a network id
3274
2942
  *
3275
- * @param player
3276
- * @returns
2943
+ * @param netHandle
2944
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
3277
2945
  */
3278
- static getAveragePacketLoss(player: Player): number {
3279
- return inv<number>('0x350C23949E43686C', player.handle, raf());
2946
+ static netToObj(netHandle: number): Prop | null {
2947
+ return createFromHandle<Prop>('Prop', inv<number>('0xD8515F5FEA14CB3F', netHandle, rai()));
3280
2948
  }
3281
2949
 
3282
2950
  /**
3283
- * @returns hour; minute; second
2951
+ * Note: this native was added in build 1311.23
2952
+ *
2953
+ * @param ctx
2954
+ * @param ec
2955
+ * @param ex
2956
+ * @param ro
3284
2957
  */
3285
- static getGlobalClock(): [boolean, number, number, number] {
3286
- const result = inv<[boolean, number, number, number]>('0x11A7ADCD629E170F', pvi(), pvi(), pvi(), rai());
3287
- return [!!result[0], result[1], result[2], result[3]];
2958
+ static N_0x19447FCAE97704DC(ctx: string | number, ec: number, ex: boolean, ro: boolean): void {
2959
+ inv<void>('0x19447FCAE97704DC', _h(ctx), ec, ex, ro);
3288
2960
  }
3289
2961
 
3290
2962
  /**
3291
- * @param player
2963
+ * Hardcoded to return zero.
2964
+ *
3292
2965
  * @returns
3293
2966
  */
3294
- static isPlayerAParticipant(player: Player): boolean {
3295
- return !!inv<boolean>('0x3CA58F6CB7CBD784', player.handle, rai());
2967
+ static getPromotionDlgSeenCount(): number {
2968
+ return inv<number>('0x2FB53C631A49BE92', rai());
3296
2969
  }
3297
2970
 
3298
2971
  /**
3299
- * @returns
2972
+ * @param waterDepthLevel
3300
2973
  */
3301
- static getXp(): number {
3302
- return inv<number>('0xDB438CC9BC6F4022', rai());
2974
+ static spawnConfigSetLevelWaterDepth(waterDepthLevel: number): void {
2975
+ inv<void>('0xBDCC671B911040F9', waterDepthLevel);
3303
2976
  }
3304
2977
 
3305
2978
  /**
3306
- * @param p0
3307
- * @param index
3308
2979
  * @returns
3309
2980
  */
3310
- static ugcQueryGetPlaylistName(p0: any, index: number): string | null {
3311
- return inv<string>('0xCAF50048C8D0FBA0', p0, index, ras());
2981
+ static N_0x41452E8A3B9C0C4B(): number {
2982
+ return inv<number>('0x41452E8A3B9C0C4B', rai());
3312
2983
  }
3313
2984
 
3314
- static N_0xD39A72AE5EBD57E5(): void {
3315
- inv<void>('0xD39A72AE5EBD57E5');
2985
+ /**
2986
+ * If you are host, returns true else returns false.
2987
+ *
2988
+ * @returns
2989
+ */
2990
+ static isHost(): boolean {
2991
+ return !!inv<boolean>('0x8DB296B814EDDA07', rai());
3316
2992
  }
3317
2993
 
3318
2994
  /**
3319
- * @param p0
2995
+ * @returns p0
3320
2996
  */
3321
- static N_0xD42C543F73233041(p0: boolean): void {
3322
- inv<void>('0xD42C543F73233041', p0);
2997
+ static N_0xA6F1BAABFF6AD7B9(): number {
2998
+ const result = inv<number>('0xA6F1BAABFF6AD7B9', pvi());
2999
+ return result;
3323
3000
  }
3324
3001
 
3325
- static N_0xE5FF65CFF5160752(): void {
3326
- inv<void>('0xE5FF65CFF5160752');
3002
+ /**
3003
+ * @returns
3004
+ */
3005
+ static spawnConfigSearchInProgress(): any {
3006
+ return inv<number>('0x89EC2FC89ECB1005');
3327
3007
  }
3328
3008
 
3329
3009
  /**
3330
- * @param player
3331
- * @param reportType
3332
- * @param description
3333
- * @param horseName
3010
+ * @param pos
3334
3011
  */
3335
- static reportPlayer(player: Player, reportType: number, description: string | null, horseName: string | null): void {
3336
- inv<void>('0xA197C35F73AC0F12', player.handle, reportType, description, horseName);
3012
+ static N_0x2686BD9566B65EDA(pos: Vector3): void {
3013
+ inv<void>('0x2686BD9566B65EDA', f(pos.x), f(pos.y), f(pos.z));
3337
3014
  }
3338
3015
 
3339
3016
  /**
3340
- * @returns p0
3017
+ * Note: this native was added in build 1311.23
3018
+ *
3019
+ * @param p0
3020
+ * @returns
3341
3021
  */
3342
- static getSizeOfPlayerBroadcastDataStorage(): [number, number] {
3343
- const result = inv<[number, number]>('0x690806BC83BC8CA2', pvi(), rai());
3344
- return [result[0], result[1]];
3022
+ static N_0x9E5A47744C0F0376(p0: number): boolean {
3023
+ return !!inv<boolean>('0x9E5A47744C0F0376', p0, rai());
3345
3024
  }
3346
3025
 
3347
3026
  /**
3027
+ * @param p0
3028
+ * @param p1
3029
+ * @param p2
3348
3030
  * @returns
3349
3031
  */
3350
- static N_0x3E4A16BC669E71B3(): boolean {
3351
- return !!inv<boolean>('0x3E4A16BC669E71B3', rai());
3032
+ static N_0xC0CFFDA87C2C163D(p0: number, p1: any, p2: number): any {
3033
+ return inv<number>('0xC0CFFDA87C2C163D', p0, p1, p2);
3352
3034
  }
3353
3035
 
3354
3036
  /**
3355
- * @returns
3037
+ * @param amount
3356
3038
  */
3357
- static getNumParticipants(): number {
3358
- return inv<number>('0x18D0456E86604654', rai());
3039
+ static reserveNetworkMissionPickups(amount: number): void {
3040
+ inv<void>('0x4D40E7D749BC6E6D', amount);
3359
3041
  }
3360
3042
 
3361
- static autoSessionFinishInstance(): void {
3362
- inv<void>('0xBB51299166B844F3');
3043
+ /**
3044
+ * Note: this native was added in build 1311.23
3045
+ *
3046
+ * @param p0
3047
+ */
3048
+ static N_0xD3B6EBC6C3D77D44(p0: number): void {
3049
+ inv<void>('0xD3B6EBC6C3D77D44', p0);
3363
3050
  }
3364
3051
 
3365
3052
  /**
3366
- * @returns
3053
+ * @param p1
3054
+ * @param p2
3055
+ * @param p3
3056
+ * @param p5
3057
+ * @returns p0; p4
3367
3058
  */
3368
- static getThisScriptIsNetworkScript(): boolean {
3369
- return !!inv<boolean>('0x2910669969E9535E', rai());
3059
+ static ugcTextureDownloadRequest(p1: any, p2: any, p3: any, p5: boolean): [number, number, number] {
3060
+ const result = inv<[number, number, number]>('0x308F96458B7087CC', pvi(), p1, p2, p3, pvi(), p5, rai());
3061
+ return [result[0], result[1], result[2]];
3370
3062
  }
3371
3063
 
3372
3064
  /**
3065
+ * p0 appears to be for MP
3066
+ *
3373
3067
  * @param p0
3374
- * @param index
3375
- * @returns p2
3068
+ * @returns
3376
3069
  */
3377
- static ugcQueryGetDate(p0: any, index: number): number {
3378
- const result = inv<number>('0xE0CB4AB15CB32710', p0, index, pvi());
3379
- return result;
3070
+ static getNumReservedMissionPeds(p0: boolean): number {
3071
+ return inv<number>('0x1F13D5AE5CB17E17', p0, rai());
3380
3072
  }
3381
3073
 
3382
3074
  /**
3383
- * @param amount
3075
+ * @returns
3384
3076
  */
3385
- static reserveNetworkMissionVehicles(amount: number): void {
3386
- inv<void>('0x76B02E21ED27A469', amount);
3077
+ static isInSession(): boolean {
3078
+ return !!inv<boolean>('0xCA97246103B63917', rai());
3387
3079
  }
3388
3080
 
3389
3081
  /**
3390
- * @param player1
3391
- * @param player2
3392
3082
  * @returns
3393
3083
  */
3394
- static N_0x862C5040F4888741(player1: Player, player2: Player): boolean {
3395
- return !!inv<boolean>('0x862C5040F4888741', player1.handle, player2.handle, rai());
3084
+ static isTunableCloudRequestPending(): boolean {
3085
+ return !!inv<boolean>('0x0467C11ED88B7D28', rai());
3396
3086
  }
3397
3087
 
3398
3088
  /**
3089
+ * Old name: _NETWORK_IS_CONNECTION_ENDPOINT_RELAY_SERVER
3090
+ *
3399
3091
  * @param player
3400
- * @param damageMultiplier
3092
+ * @returns
3401
3093
  */
3402
- static setLocalPlayerDamageMultiplierForPlayer(player: Player, damageMultiplier: number): void {
3403
- inv<void>('0xD041A32992A55F84', player.handle, f(damageMultiplier));
3094
+ static isConnectedViaRelay(player: Player): boolean {
3095
+ return !!inv<boolean>('0x16D3D49902F697BB', player.handle, rai());
3404
3096
  }
3405
3097
 
3406
3098
  /**
3099
+ * @param p0
3407
3100
  * @param toggle
3408
3101
  */
3409
- static disableLeaveRemotePedBehind(toggle: boolean): void {
3410
- inv<void>('0xC505036A35AFD01B', toggle);
3102
+ static setDoorUnnetworked(p0: any, toggle: boolean): void {
3103
+ inv<void>('0xC1E1A3D5ED7617B8', p0, toggle);
3411
3104
  }
3412
3105
 
3413
3106
  /**
3414
- * @param netHandle
3415
- * @param p1
3107
+ * @param pos
3108
+ * @param heading
3109
+ * @param p4
3110
+ * @param p5
3111
+ * @param p6
3112
+ * @param p7
3416
3113
  */
3417
- static N_0x894B5ECAB45D2342(netHandle: number, p1: any): void {
3418
- inv<void>('0x894B5ECAB45D2342', netHandle, p1);
3114
+ static resurrectLocalPlayer(pos: Vector3, heading: number, p4: number, p5: boolean, p6: any, p7: boolean): void {
3115
+ inv<void>('0xEA23C49EAA83ACFB', f(pos.x), f(pos.y), f(pos.z), f(heading), p4, p5, p6, p7);
3419
3116
  }
3420
3117
 
3421
3118
  /**
3422
- * @param name
3119
+ * @returns sessionRequestId
3423
3120
  */
3424
- static textureDownloadReleaseByName(name: string | null): void {
3425
- inv<void>('0x7A17B7981560FFA5', name);
3121
+ static sessionLeftQueueOrRequestedSession(): [any, number] {
3122
+ const result = inv<[number, number]>('0xECE6A0C1B59CD8BE', pvi());
3123
+ return [result[0], result[1]];
3426
3124
  }
3427
3125
 
3428
3126
  /**
3429
- * @param ugcRequestId
3127
+ * @param flags Refer to [enum: eSessionFlags]
3430
3128
  * @returns
3431
3129
  */
3432
- static ugcIsRequestPending(ugcRequestId: number): any {
3433
- return inv<number>('0xF4AC4FA844FD559A', ugcRequestId);
3130
+ static sessionRemoveSessionFlags(flags: number): any {
3131
+ return inv<number>('0x78335E12DB0BF961', flags);
3434
3132
  }
3435
3133
 
3436
3134
  /**
3437
- * Only used in fm_race_controller R* Script (PROCESS_LOCAL_PLAYER_INIT)
3438
- *
3439
- * @param p0
3135
+ * @returns
3440
3136
  */
3441
- static N_0xBC7D36946D19E60E(p0: boolean): void {
3442
- inv<void>('0xBC7D36946D19E60E', p0);
3137
+ static haveRosBannedPriv(): boolean {
3138
+ return !!inv<boolean>('0x8020A73847E0CA7D', rai());
3443
3139
  }
3444
3140
 
3445
3141
  /**
3446
- * @param setting
3142
+ * @param p0
3143
+ * @returns
3447
3144
  */
3448
- static N_0x704F92B3AF20D857(setting: boolean): void {
3449
- inv<void>('0x704F92B3AF20D857', setting);
3145
+ static N_0xCA58D4FD20D70F24(p0: any): number {
3146
+ return inv<number>('0xCA58D4FD20D70F24', p0, rai());
3450
3147
  }
3451
3148
 
3452
3149
  /**
3453
- * @param p0
3454
- * @param p1
3455
3150
  * @returns
3456
3151
  */
3457
- static ugcQueryGetPosixPublishedDate(p0: any, p1: any): number {
3458
- return inv<number>('0x104080CA9E519B00', p0, p1, rai());
3152
+ static refreshCurrentFriendPage(): any {
3153
+ return inv<number>('0x1F51F367B710A832');
3459
3154
  }
3460
3155
 
3461
3156
  /**
3157
+ * Same Native Handler as VEH_TO_NET, PED_TO_NET, OBJ_TO_NET and NETWORK_GET_NETWORK_ID_FROM_ENTITY
3158
+ *
3159
+ * @param handle
3462
3160
  * @returns
3463
3161
  */
3464
- static getSocialMatchmakingAllowed(): any {
3465
- return inv<number>('0xD0541EF28E9C4783');
3162
+ static N_0xF260AF6F43953316(handle: number): number {
3163
+ return inv<number>('0xF260AF6F43953316', handle, rai());
3466
3164
  }
3467
3165
 
3468
3166
  /**
3469
- * @param toggle
3167
+ * @returns
3470
3168
  */
3471
- static setSocialMatchmakingAllowed(toggle: boolean): void {
3472
- inv<void>('0x777D0571A466B520', toggle);
3169
+ static N_0xA94ECE191D90637A(): number {
3170
+ return inv<number>('0xA94ECE191D90637A', rai());
3473
3171
  }
3474
3172
 
3475
3173
  /**
3476
3174
  * @param p0
3477
- * @param p1
3478
- * @param p2
3479
3175
  * @returns
3480
3176
  */
3481
- static N_0x77B299E8799B1332(p0: any, p1: any, p2: any): any {
3482
- return inv<number>('0x77B299E8799B1332', p0, p1, p2);
3177
+ static getNumReservedMissionPickups(p0: boolean): number {
3178
+ return inv<number>('0x62BE3ECC79FBD004', p0, rai());
3483
3179
  }
3484
3180
 
3485
3181
  /**
3486
- * @param p0
3487
- * @returns
3182
+ * @param toggle
3488
3183
  */
3489
- static N_0xE59F4924BD3A718D(p0: number): string | null {
3490
- return inv<string>('0xE59F4924BD3A718D', p0, ras());
3184
+ static allowAllEntityFadingForInstances(toggle: boolean): void {
3185
+ inv<void>('0x4B05B97BA46F419D', toggle);
3491
3186
  }
3492
3187
 
3493
3188
  /**
3494
- * @param p0
3495
- * @returns
3189
+ * @param netId
3496
3190
  */
3497
- static checkUserContentPrivileges(p0: number): boolean {
3498
- return !!inv<boolean>('0x595F028698072DD9', p0, rai());
3191
+ static preventNetworkIdMigration(netId: number): void {
3192
+ inv<void>('0x7182EDDA1EE7DB5A', netId);
3499
3193
  }
3500
3194
 
3501
3195
  /**
3502
- * @param player
3196
+ * Returns whether the signed-in user has valid Rockstar Online Services (ROS) credentials.
3197
+ *
3503
3198
  * @returns
3504
3199
  */
3505
- static getPlayerFastInstanceId(player: Player): number {
3506
- return inv<number>('0xD9267375834C5EAB', player.handle, rai());
3200
+ static hasValidRosCredentials(): boolean {
3201
+ return !!inv<boolean>('0x85443FF4C328F53B', rai());
3507
3202
  }
3508
3203
 
3509
3204
  /**
3510
- * @returns hours; minutes; seconds
3205
+ * @param ped_amt
3206
+ * @param vehicle_amt
3207
+ * @param object_amt
3208
+ * @param pickup_amt
3209
+ * @returns
3511
3210
  */
3512
- static getGlobalMultiplayerClock(): [number, number, number] {
3513
- const result = inv<[number, number, number]>('0x6D03BFBD643B2A02', pvi(), pvi(), pvi());
3514
- return [result[0], result[1], result[2]];
3211
+ static canRegisterMissionEntities(ped_amt: number, vehicle_amt: number, object_amt: number, pickup_amt: number): boolean {
3212
+ return !!inv<boolean>('0x69778E7564BADE6D', ped_amt, vehicle_amt, object_amt, pickup_amt, rai());
3515
3213
  }
3516
3214
 
3517
3215
  /**
@@ -3646,416 +3344,718 @@ export class Network {
3646
3344
  return inv<number>('0x3B39236746714134', player.handle, rai());
3647
3345
  }
3648
3346
 
3649
- static N_0x9B39B0555CC692B5(): void {
3650
- inv<void>('0x9B39B0555CC692B5');
3651
- }
3652
-
3653
3347
  /**
3654
- * @param p0
3348
+ * @param amount
3655
3349
  * @returns
3656
3350
  */
3657
- static N_0xE79BA3BC265895DA(p0: number): string | null {
3658
- return inv<string>('0xE79BA3BC265895DA', p0, ras());
3351
+ static canRegisterMissionVehicles(amount: number): boolean {
3352
+ return !!inv<boolean>('0x7277F1F2E085EE74', amount, rai());
3659
3353
  }
3660
3354
 
3661
3355
  /**
3662
- * @param netPlaylistActivity
3356
+ * Takes the specified time and writes it to the structure specified in the second argument. struct date_time
3357
+ * {
3358
+ * int year;
3359
+ * int PADDING1;
3360
+ * int month;
3361
+ * int PADDING2;
3362
+ * int day;
3363
+ * int PADDING3;
3364
+ * int hour;
3365
+ * int PADDING4;
3366
+ * int minute;
3367
+ * int PADDING5;
3368
+ * int second;
3369
+ * int PADDING6;
3370
+ * };
3371
+ *
3372
+ * @param posixTime
3373
+ * @returns timeStructure
3663
3374
  */
3664
- static activitySetCurrent(netPlaylistActivity: number): void {
3665
- inv<void>('0x9ADAC065D9F6706F', netPlaylistActivity);
3375
+ static convertPosixTime(posixTime: number): number {
3376
+ const result = inv<number>('0xAC97AF97FA68E5D5', posixTime, pvi());
3377
+ return result;
3666
3378
  }
3667
3379
 
3668
3380
  /**
3669
- * @param queueGroup
3381
+ * @param ugcRequestId
3670
3382
  * @returns
3671
3383
  */
3672
- static sessionIsRequestInProgressByQueueGroup(queueGroup: number): any {
3673
- return inv<number>('0x9E762A595CF88E4A', queueGroup);
3384
+ static N_0xCD53E6CBF609C012(ugcRequestId: number): boolean {
3385
+ return !!inv<boolean>('0xCD53E6CBF609C012', ugcRequestId, rai());
3674
3386
  }
3675
3387
 
3676
3388
  /**
3389
+ * @param p0
3390
+ * @param index
3677
3391
  * @returns
3678
3392
  */
3679
- static pedmugshotGetStatus(): number {
3680
- return inv<number>('0xCBAC13F065C47596', rai());
3393
+ static ugcQueryGetMissionDescHash(p0: any, index: number): number {
3394
+ return (inv<number>('0xA6BF569956C60A60', p0, index, rai())) & 0xFFFFFFFF;
3681
3395
  }
3682
3396
 
3683
3397
  /**
3684
- * @returns
3398
+ * Note: this native was added in build 1311.23
3399
+ *
3400
+ * @param p0
3685
3401
  */
3686
- static getTunableCloudCrc(): number {
3687
- return inv<number>('0x10BD227A753B0D84', rai());
3402
+ static N_0x335AF56613CA0F49(p0: number): void {
3403
+ inv<void>('0x335AF56613CA0F49', p0);
3688
3404
  }
3689
3405
 
3690
3406
  /**
3691
- * Returns true if the passed value is less than 32.
3692
- *
3693
- * @param player
3407
+ * @param p0
3694
3408
  * @returns
3695
3409
  */
3696
- static isPlayerIndexValid(player: Player): any {
3697
- return inv<number>('0x255A5EF65EDA9167', player.handle);
3410
+ static N_0xE10F2D7715ABABEC(p0: any): any {
3411
+ return inv<number>('0xE10F2D7715ABABEC', p0);
3698
3412
  }
3699
3413
 
3700
3414
  /**
3701
- * @param entity
3702
- * @returns
3415
+ * Note: this native was added in build 1311.23
3703
3416
  */
3704
- static getEntityIsNetworked(entity: Entity): boolean {
3705
- return !!inv<boolean>('0xC7827959479DCC78', entity.handle, rai());
3417
+ static N_0xFD8112109A96877C(): void {
3418
+ inv<void>('0xFD8112109A96877C');
3706
3419
  }
3707
3420
 
3708
3421
  /**
3709
- * @param vehicle
3710
- * @returns Returns the network id for the specified `vehicle`, or `0` if the vehicle isn't networked.
3422
+ * Always returns 80
3423
+ *
3424
+ * @returns
3711
3425
  */
3712
- static vehToNet(vehicle: Vehicle): number {
3713
- return inv<number>('0xB4C94523F023419C', vehicle.handle, rai());
3426
+ static getMaxNumNetworkPickups(): number {
3427
+ return inv<number>('0xA72835064DD63E4C', rai());
3714
3428
  }
3715
3429
 
3716
3430
  /**
3717
- * Only used in R* SP Scripts
3431
+ * Old name: _NETWORK_GET_AVERAGE_LATENCY_FOR_PLAYER
3718
3432
  *
3719
3433
  * @param player
3720
- * @param personaPhotoLocalCacheType
3721
3434
  * @returns
3722
3435
  */
3723
- static requestPedshotTextureLocalBackupDownload(player: number, personaPhotoLocalCacheType: number): string | null {
3724
- return inv<string>('0x356F9FB0698C1FEB', player, personaPhotoLocalCacheType, ras());
3436
+ static getAverageLatency(player: Player): number {
3437
+ return inv<number>('0xD414BE129BB81B32', player.handle, raf());
3725
3438
  }
3726
3439
 
3727
3440
  /**
3728
- * @param p0
3441
+ * @param netId
3442
+ * @param toggle
3729
3443
  */
3730
- static N_0xE5634491A58C2703(p0: number): void {
3731
- inv<void>('0xE5634491A58C2703', f(p0));
3444
+ static setNetworkIdExistsOnAllMachines(netId: number, toggle: boolean): void {
3445
+ inv<void>('0xE05E81A888FA63C8', netId, toggle);
3732
3446
  }
3733
3447
 
3734
3448
  /**
3735
- * @param p0
3736
- * @param p1
3737
- * @param p2
3738
- * @param p3
3449
+ * @param completed
3739
3450
  * @returns
3740
3451
  */
3741
- static N_0x64A36BA85CE01A81(p0: any, p1: any, p2: any, p3: any): any {
3742
- return inv<number>('0x64A36BA85CE01A81', p0, p1, p2, p3);
3452
+ static setCompletedMpIntroFlowOnCurrentSlot(completed: boolean): any {
3453
+ return inv<number>('0x2C5BD9A43987AA27', completed);
3743
3454
  }
3744
3455
 
3745
3456
  /**
3746
- * @returns sessionRequestId
3457
+ * Only used in R* SP Script map_app_event_handler
3458
+ *
3459
+ * @param p1
3460
+ * @returns gamerHandle
3747
3461
  */
3748
- static sessionIsSessionRequestIdValid(): [any, number] {
3749
- const result = inv<[number, number]>('0x2F54B146D3EDCE4D', pvi());
3462
+ static requestPedshotTextureLocalDownload(p1: number): [string | null, number] {
3463
+ const result = inv<[string, number]>('0xCAF4CA2F87779F8F', pvi(), p1, ras());
3750
3464
  return [result[0], result[1]];
3751
3465
  }
3752
3466
 
3753
3467
  /**
3754
3468
  * @returns
3755
3469
  */
3756
- static isResettingPopulation(): any {
3757
- return inv<number>('0x1BB50CD340A996E6');
3470
+ static autoSessionIsProcessingSessionSplit(): any {
3471
+ return inv<number>('0xA021095C983F20D8');
3758
3472
  }
3759
3473
 
3760
3474
  /**
3761
- * Note: this native was added in build 1311.23
3762
- *
3763
- * @param p0
3764
3475
  * @returns
3765
3476
  */
3766
- static N_0x039B692B3318FAB6(p0: boolean): number {
3767
- return inv<number>('0x039B692B3318FAB6', p0, rai());
3477
+ static N_0x1413B6BF27AB7A95(): number {
3478
+ return inv<number>('0x1413B6BF27AB7A95', rai());
3768
3479
  }
3769
3480
 
3770
3481
  /**
3771
- * Always returns 60
3482
+ * nullsub, doesn't do anything
3772
3483
  *
3773
- * @returns
3484
+ * @param player
3774
3485
  */
3775
- static getMaxNumNetworkObjects(): number {
3776
- return inv<number>('0xC7BE335216B5EC7C', rai());
3486
+ static showChatRestrictionMsc(player: Player): void {
3487
+ inv<void>('0x6BFF5F84102DF80A', player.handle);
3777
3488
  }
3778
3489
 
3779
3490
  /**
3780
- * Checks if the user has ROS privilege 14.
3491
+ * Returns false if pedshot push failed
3781
3492
  *
3493
+ * @param texture
3494
+ * @param personaPhotoType
3495
+ * @param formatIndex
3782
3496
  * @returns
3783
3497
  */
3784
- static ugcHasPrivilege(): any {
3785
- return inv<number>('0x6506BFA755FB209C');
3498
+ static personaPhotoWriteScProfile(texture: string | null, personaPhotoType: number, formatIndex: number): any {
3499
+ return inv<number>('0xB72999D3120599DF', texture, personaPhotoType, formatIndex);
3786
3500
  }
3787
3501
 
3788
3502
  /**
3789
- * @param networkId
3790
- * @param bStopCloning
3503
+ * @param p0
3504
+ * @param p1
3505
+ * @returns
3791
3506
  */
3792
- static setNetworkIdStopCloning(networkId: number, bStopCloning: boolean): void {
3793
- inv<void>('0x9ED3108D6847760A', networkId, bStopCloning);
3507
+ static N_0x271F95E55C663B8B(p0: any, p1: any): any {
3508
+ return inv<number>('0x271F95E55C663B8B', p0, p1);
3794
3509
  }
3795
3510
 
3796
3511
  /**
3797
- * Returns CGameConfig->ConfigOnlineServices->RosTitleName (see gameconfig.xml)
3798
- *
3799
3512
  * @returns
3800
3513
  */
3801
- static getRosTitleName(): string | null {
3802
- return inv<string>('0xAC6153A0722F524C', ras());
3514
+ static sessionGetSessionFlags(): number {
3515
+ return inv<number>('0x51F33DBC1A41CBFD', rai());
3803
3516
  }
3804
3517
 
3805
3518
  /**
3519
+ * Note: this native was added in build 1311.23
3520
+ *
3806
3521
  * @returns
3807
3522
  */
3808
- static getScriptStatus(): number {
3809
- return inv<number>('0x57D158647A6BFABF', rai());
3523
+ static N_0x039AD6B57D5179FF(): number {
3524
+ return inv<number>('0x039AD6B57D5179FF', rai());
3810
3525
  }
3811
3526
 
3812
3527
  /**
3813
- * @param p0
3814
- * @param p1
3815
- * @param p2
3816
- * @param p3
3528
+ * Old name: _NETWORK_GET_NUM_UNACKED_FOR_PLAYER
3529
+ *
3530
+ * @param player
3531
+ * @returns
3817
3532
  */
3818
- static setNetworkIdVisibleInCutscene(p0: any, p1: any, p2: any, p3: any): void {
3819
- inv<void>('0xA6928482543022B4', p0, p1, p2, p3);
3533
+ static getNumUnackedReliables(player: Player): number {
3534
+ return inv<number>('0xFF8FCF9FFC458A1C', player.handle, rai());
3820
3535
  }
3821
3536
 
3822
3537
  /**
3823
- * @param amount
3538
+ * @param entity
3539
+ * @param toggle
3824
3540
  */
3825
- static reserveNetworkMissionObjects(amount: number): void {
3826
- inv<void>('0x4E5C93BD0C32FBF8', amount);
3541
+ static allowEntityFadingForInstances(entity: Entity, toggle: boolean): void {
3542
+ inv<void>('0xF3354D6CA46F419D', entity.handle, toggle);
3827
3543
  }
3828
3544
 
3829
3545
  /**
3830
- * @param entity
3831
- * @param player
3832
- * @returns p2
3546
+ * Only used in R* Script startup_clip
3833
3547
  */
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]];
3548
+ static N_0xFD4272A137703449(): void {
3549
+ inv<void>('0xFD4272A137703449');
3837
3550
  }
3838
3551
 
3839
3552
  /**
3840
- * @returns
3553
+ * @param player
3554
+ * @param type
3841
3555
  */
3842
- static autoSessionIsAllowedToMerge(): any {
3843
- return inv<number>('0xAADED99A6B268A27');
3556
+ static N_0x51951DE06C0D1C40(player: Player, type: number): void {
3557
+ inv<void>('0x51951DE06C0D1C40', player.handle, type);
3844
3558
  }
3845
3559
 
3846
3560
  /**
3847
3561
  * @param p0
3848
- * @param p1
3849
- * @param p2
3850
3562
  * @returns
3851
3563
  */
3852
- static N_0x7A8E8DF782B47EB0(p0: any, p1: any, p2: any): any {
3853
- return inv<number>('0x7A8E8DF782B47EB0', p0, p1, p2);
3564
+ static N_0x5ED39DA62BEB1330(p0: number): any {
3565
+ return inv<number>('0x5ED39DA62BEB1330', p0);
3854
3566
  }
3855
3567
 
3856
3568
  /**
3857
- * Hardcoded to return false.
3858
- *
3569
+ * @param p0
3570
+ * @param index
3859
3571
  * @returns
3860
3572
  */
3861
- static shouldShowPromotionDlg(): any {
3862
- return inv<number>('0xDA4B1A479C414FB2');
3863
- }
3864
-
3865
- /**
3866
- * @param amount
3867
- */
3868
- static reserveNetworkMissionPeds(amount: number): void {
3869
- inv<void>('0xB60FEBA45333D36F', amount);
3573
+ static ugcQueryGetName(p0: any, index: number): string | null {
3574
+ return inv<string>('0x2D053EA815702DD1', p0, index, ras());
3870
3575
  }
3871
3576
 
3872
3577
  /**
3873
- * @param pos
3874
- * @param heading
3578
+ * @param p0
3579
+ * @param index
3580
+ * @returns
3875
3581
  */
3876
- static spawnConfigAddSpawnPoint(pos: Vector3, heading: number): void {
3877
- inv<void>('0xFD1AC0B3858F224C', f(pos.x), f(pos.y), f(pos.z), f(heading));
3582
+ static ugcQueryGetBookMarked(p0: any, index: number): any {
3583
+ return inv<number>('0x98539FC453AEA639', p0, index);
3878
3584
  }
3879
3585
 
3880
3586
  /**
3881
- * @param paramName
3882
- * @param value
3587
+ * @param entity
3588
+ * @param timer
3589
+ * @param p2
3883
3590
  */
3884
- static setLaunchParamValue(paramName: string | null, value: string | null): void {
3885
- inv<void>('0x668AF6E4933AC13F', paramName, value);
3591
+ static setNetworkRespotTimer(entity: Entity, timer: number, p2: boolean): void {
3592
+ inv<void>('0x442B4347B6EC36E8', entity.handle, timer, p2);
3886
3593
  }
3887
3594
 
3888
3595
  /**
3889
3596
  * @returns gamerHandle
3890
3597
  */
3891
- static canViewGamerUserContent(): [any, number] {
3892
- const result = inv<[number, number]>('0x246545C37C27A717', pvi());
3598
+ static getGamertagFromFriend(): [string | null, number] {
3599
+ const result = inv<[string, number]>('0x5659D87BE674AB17', pvi(), ras());
3893
3600
  return [result[0], result[1]];
3894
3601
  }
3895
3602
 
3896
3603
  /**
3897
- * @param p0
3604
+ * @param player
3898
3605
  * @returns
3899
3606
  */
3900
- static isParticipantActive(p0: number): boolean {
3901
- return !!inv<boolean>('0x6FF8FF40B6357D45', p0, rai());
3607
+ static getPlayerWaypointIsActive(player: Player): any {
3608
+ return inv<number>('0xDCC4B7F7112E8AB7', player.handle);
3902
3609
  }
3903
3610
 
3904
3611
  /**
3905
- * @param p0
3612
+ * @param inviteIndex
3906
3613
  * @returns
3907
3614
  */
3908
- static getNumCreatedMissionPeds(p0: boolean): number {
3909
- return inv<number>('0xCB215C4B56A7FAE7', p0, rai());
3615
+ static N_0x981146E5C9CE9250(inviteIndex: number): boolean {
3616
+ return !!inv<boolean>('0x981146E5C9CE9250', inviteIndex, rai());
3910
3617
  }
3911
3618
 
3912
3619
  /**
3913
- * _NETWORK_GET_A* - _NETWORK_GET_D*
3914
- *
3915
- * @param ped
3916
- * @returns p1
3620
+ * @param netID
3917
3621
  */
3918
- static N_0x6CF82A7F65A5AD5F(ped: Ped): [Player | null, number] {
3919
- const result = inv<[number, number]>('0x6CF82A7F65A5AD5F', ped.handle, pvi(), rai());
3920
- return [createFromHandle<Player>('Player', result[0]), result[1]];
3622
+ static disableProximityMigration(netID: number): void {
3623
+ inv<void>('0x407091CF6037118E', netID);
3921
3624
  }
3922
3625
 
3923
3626
  /**
3627
+ * @param p0
3924
3628
  * @param p1
3925
- * @returns gamerHandle
3629
+ * @param dataSize
3630
+ * @returns outData
3926
3631
  */
3927
- static getGamerStatus(p1: number): [number, number] {
3928
- const result = inv<[number, number]>('0xDDAEB478E58F8DEA', pvi(), p1, rai());
3632
+ static getRecentGamerNames(p0: number, p1: number, dataSize: number): [any, number] {
3633
+ const result = inv<[number, number]>('0xFEFCC345CE357453', p0, p1, pvi(), dataSize);
3929
3634
  return [result[0], result[1]];
3930
3635
  }
3931
3636
 
3932
3637
  /**
3933
- * Returns result of session request:
3934
- * 0 - NOT_FOUND
3935
- * 1 - IN_PROGRESS
3936
- * 2 - TIMEOUT
3937
- * 3 - PLAYER_OFFLINE
3938
- * 4 - GANG_MEMBERS_CHANGED
3939
- * 5 - PLAYER_CANCELLED
3940
- * 6 - PLAYER_SET_TOO_LARGE
3941
- * 7 - MATCH_ACCEPTED
3942
- * 8 - OTHER
3943
- *
3944
- * @returns sessionRequestId; p1
3638
+ * @returns
3945
3639
  */
3946
- static sessionGetSessionRequestResult(): [number, number, number] {
3947
- const result = inv<[number, number, number]>('0x0DD051B1BF4B8BD6', pvi(), pvi(), rai());
3948
- return [result[0], result[1], result[2]];
3949
- }
3950
-
3951
- static N_0xA63E4F050F20021F(): void {
3952
- inv<void>('0xA63E4F050F20021F');
3640
+ static isInTutorialSession(): boolean {
3641
+ return !!inv<boolean>('0xADA24309FE08DACF', rai());
3953
3642
  }
3954
3643
 
3955
3644
  /**
3956
- * @param amount
3957
- * @returns
3645
+ * @param tunableContext
3646
+ * @param tunableName
3647
+ * @returns value
3958
3648
  */
3959
- static canRegisterMissionObjects(amount: number): boolean {
3960
- return !!inv<boolean>('0x800DD4721A8B008B', amount, rai());
3649
+ static accessTunableInt(tunableContext: string | number, tunableName: string | number): [boolean, number] {
3650
+ const result = inv<[boolean, number]>('0x8BE1146DFD5D4468', _h(tunableContext), _h(tunableName), pvi(), rai());
3651
+ return [!!result[0], result[1]];
3961
3652
  }
3962
3653
 
3963
3654
  /**
3964
- * @param description
3655
+ * @param tunableContext
3656
+ * @param tunableName
3657
+ * @param defaultValue
3965
3658
  * @returns
3966
3659
  */
3967
- static ugcReleaseCachedDescription(description: string | number): boolean {
3968
- return !!inv<boolean>('0x5A34CD9C3C5BEC44', _h(description), rai());
3660
+ static tryAccessTunableIntHash(tunableContext: string | number, tunableName: string | number, defaultValue: number): number {
3661
+ return inv<number>('0xA25E006B36719774', _h(tunableContext), _h(tunableName), defaultValue, rai());
3969
3662
  }
3970
3663
 
3971
3664
  /**
3972
- * @param toggle
3665
+ * @param tunableContext
3666
+ * @param tunableName
3667
+ * @param defaultValue
3668
+ * @returns
3973
3669
  */
3974
- static setFriendlyFireOption(toggle: boolean): void {
3975
- inv<void>('0xF808475FA571D823', toggle);
3670
+ static tryAccessTunableBoolHash(tunableContext: string | number, tunableName: string | number, defaultValue: boolean): boolean {
3671
+ return !!inv<boolean>('0xB2AD5D29A99D4B26', _h(tunableContext), _h(tunableName), defaultValue, rai());
3976
3672
  }
3977
3673
 
3978
3674
  /**
3979
- * @returns sessionRequestId
3675
+ * @param seed
3980
3676
  */
3981
- static sessionTransitionToSession(): [any, number] {
3982
- const result = inv<[number, number]>('0xF20B18A330E6DB5C', pvi());
3983
- return [result[0], result[1]];
3677
+ static seedRandomNumberGenerator(seed: number): void {
3678
+ inv<void>('0xF1B84178F8674195', seed);
3984
3679
  }
3985
3680
 
3986
3681
  /**
3987
- * Hardcoded to return false.
3988
- *
3682
+ * @param netId
3989
3683
  * @returns
3990
3684
  */
3991
- static isPromotionEnabled(): any {
3992
- return inv<number>('0x8FF6059DA26E688A');
3685
+ static isNetworkIdOwnedByParticipant(netId: number): boolean {
3686
+ return !!inv<boolean>('0xA1607996431332DF', netId, rai());
3993
3687
  }
3994
3688
 
3995
3689
  /**
3996
- * @param playersToTake
3997
- * @param maxInstancePlayers
3998
- * @param sessionFlags
3999
- * @param bucketId
3690
+ * @param scriptName
3691
+ * @param p1
3692
+ * @param p2
4000
3693
  * @returns
4001
3694
  */
4002
- static autoSessionSplitSession(playersToTake: number, maxInstancePlayers: number, sessionFlags: number, bucketId: number): any {
4003
- return inv<number>('0xC223D299C670413D', playersToTake, maxInstancePlayers, sessionFlags, bucketId);
3695
+ static getHostOfScript(scriptName: string | null, p1: number, p2: number): Player | null {
3696
+ return createFromHandle<Player>('Player', inv<number>('0x1D6A14F1F9A736FC', scriptName, p1, p2, rai()));
3697
+ }
3698
+
3699
+ static spawnConfigSetCancelSearch(): void {
3700
+ inv<void>('0x765E60A1DCB8B1CE');
4004
3701
  }
4005
3702
 
4006
3703
  /**
4007
- * @param p0
3704
+ * @param player
4008
3705
  * @returns
4009
3706
  */
4010
- static N_0x923346025512DFB7(p0: any): any {
4011
- return inv<number>('0x923346025512DFB7', p0);
3707
+ static getPlayerIndex(player: Player): number {
3708
+ return inv<number>('0x24FB80D107371267', player.handle, rai());
4012
3709
  }
4013
3710
 
4014
3711
  /**
4015
- * @returns args
3712
+ * @param ugcRequestId
3713
+ * @returns
4016
3714
  */
4017
- static resurrectLocalPlayer2(): number {
4018
- const result = inv<number>('0x4154B7D8C75E5DCF', pvi());
4019
- return result;
3715
+ static ugcQueryGetContentNum(ugcRequestId: number): number {
3716
+ return inv<number>('0x76160E0396142765', ugcRequestId, rai());
4020
3717
  }
4021
3718
 
4022
3719
  /**
4023
- * Only used in R* Script net_stable_manager
3720
+ * @param ctx
3721
+ * @param lh
3722
+ * @param ec
3723
+ * @param h
3724
+ */
3725
+ static alert(ctx: string | number, lh: string | number, ec: number, h: number): void {
3726
+ inv<void>('0x1BAA028F52EED310', _h(ctx), _h(lh), ec, h);
3727
+ }
3728
+
3729
+ /**
3730
+ * @param contentId
3731
+ * @returns
3732
+ */
3733
+ static ugcIsBookMarked(contentId: string | null): boolean {
3734
+ return !!inv<boolean>('0xE42D1042F09865FE', contentId, rai());
3735
+ }
3736
+
3737
+ /**
3738
+ * @returns p0
3739
+ */
3740
+ static autoSessionCanSplitSession(): [any, number] {
3741
+ const result = inv<[number, number]>('0xE404BFF0ABA23CDC', pvi());
3742
+ return [result[0], result[1]];
3743
+ }
3744
+
3745
+ /**
3746
+ * _NETWORK_A* - _NETWORK_C*
4024
3747
  *
4025
- * @param threadId
4026
- * @returns pedMax; vehicleMax; unkMax; pedMin; vehicleMin; unkMin
3748
+ * @param p0
4027
3749
  */
4028
- static getReservedMissionEntitiesForThread(threadId: number): [number, number, number, number, number, number] {
4029
- const result = inv<[number, number, number, number, number, number]>('0x99AAC89C510DEB0D', threadId, pvi(), pvi(), pvi(), pvi(), pvi(), pvi());
4030
- return [result[0], result[1], result[2], result[3], result[4], result[5]];
3750
+ static N_0x34BC1E79546BA543(p0: boolean): void {
3751
+ inv<void>('0x34BC1E79546BA543', p0);
3752
+ }
3753
+
3754
+ /**
3755
+ * @param count
3756
+ * @returns data
3757
+ */
3758
+ static getGamerSessionFromHandle(count: number): [any, number] {
3759
+ const result = inv<[number, number]>('0xFBDFE1C1356E12E8', pvi(), count);
3760
+ return [result[0], result[1]];
4031
3761
  }
4032
3762
 
4033
3763
  /**
4034
3764
  * @param p0
3765
+ * @param p1
3766
+ * @param p2
3767
+ */
3768
+ static registerHostBroadcastVariables(p0: any, p1: any, p2: any): void {
3769
+ inv<void>('0x3E9B2F01C50DF595', p0, p1, p2);
3770
+ }
3771
+
3772
+ /**
4035
3773
  * @returns
4036
3774
  */
4037
- static N_0xD7BAD4062074B9C1(p0: any): boolean {
4038
- return !!inv<boolean>('0xD7BAD4062074B9C1', p0, rai());
3775
+ static N_0x18B94666CF610AEB(): boolean {
3776
+ return !!inv<boolean>('0x18B94666CF610AEB', rai());
4039
3777
  }
4040
3778
 
4041
3779
  /**
4042
- * @param hour
4043
- * @param minute
4044
- * @param second
4045
- * @param transitionTime
4046
- * @param pauseClock
3780
+ * p0 appears to be for MP
3781
+ *
3782
+ * @param p0
3783
+ * @returns
4047
3784
  */
4048
- static clockTimeOverride(hour: number, minute: number, second: number, transitionTime: number, pauseClock: boolean): void {
4049
- inv<void>('0x669E223E64B1903C', hour, minute, second, transitionTime, pauseClock);
3785
+ static getNumReservedMissionObjects(p0: boolean): number {
3786
+ return inv<number>('0xAA81B5F10BC43AC2', p0, rai());
3787
+ }
3788
+
3789
+ /**
3790
+ * @returns
3791
+ */
3792
+ static hasSocialClubAccount(): boolean {
3793
+ return !!inv<boolean>('0x67A5589628E0CFF6', rai());
3794
+ }
3795
+
3796
+ /**
3797
+ * @param netHandle
3798
+ * @returns Returns the `entity` handle for the `netHandle` or `0` if the entity doesn't exist.
3799
+ */
3800
+ static netToPed(netHandle: number): Ped | null {
3801
+ return createFromHandle<Ped>('Ped', inv<number>('0xBDCD95FC216A8B3E', netHandle, rai()));
3802
+ }
3803
+
3804
+ /**
3805
+ * 0 = succeeded
3806
+ * 1 = pending
3807
+ * 2 = failed
3808
+ *
3809
+ * @param textureDownloadId
3810
+ * @returns
3811
+ */
3812
+ static getStatusOfTextureDownload(textureDownloadId: number): number {
3813
+ return inv<number>('0x8BD6C6DEA20E82C6', textureDownloadId, rai());
3814
+ }
3815
+
3816
+ /**
3817
+ * @returns gamerHandle
3818
+ */
3819
+ static N_0xF23A6D6C11D8EC15(): [boolean, number] {
3820
+ const result = inv<[boolean, number]>('0xF23A6D6C11D8EC15', pvi(), rai());
3821
+ return [!!result[0], result[1]];
3822
+ }
3823
+
3824
+ /**
3825
+ * Always returns 40
3826
+ *
3827
+ * @returns
3828
+ */
3829
+ static getMaxNumNetworkVehicles(): number {
3830
+ return inv<number>('0x0AFCE529F69B21FF', rai());
4050
3831
  }
4051
3832
 
4052
3833
  /**
4053
3834
  * @param netId
3835
+ * @param p1
3836
+ * @param p2
3837
+ */
3838
+ static keepNetworkIdInFastInstance(netId: number, p1: boolean, p2: number): void {
3839
+ inv<void>('0xE1BC73D6815BA361', netId, p1, p2);
3840
+ }
3841
+
3842
+ /**
3843
+ * @returns gamerHandle
3844
+ */
3845
+ static isHandleValid(): [boolean, number] {
3846
+ const result = inv<[boolean, number]>('0x6F79B93B0A8E4133', pvi(), rai());
3847
+ return [!!result[0], result[1]];
3848
+ }
3849
+
3850
+ /**
3851
+ * @param p0
3852
+ * @returns p1
3853
+ */
3854
+ static N_0x691E4DE5309EAEFC(p0: any): number {
3855
+ const result = inv<number>('0x691E4DE5309EAEFC', p0, pvi());
3856
+ return result;
3857
+ }
3858
+
3859
+ /**
3860
+ * @param entity
3861
+ * @returns
3862
+ */
3863
+ static getNetworkIdFromEntity(entity: Entity): number {
3864
+ return inv<number>('0xA11700682F3AD45C', entity.handle, rai());
3865
+ }
3866
+
3867
+ /**
3868
+ * Only used in SP R* Script dominoes_sp: p1 = 0
3869
+ *
4054
3870
  * @param player
3871
+ * @param p1
3872
+ */
3873
+ static N_0x02C4C6C2900D84DF(player: Player, p1: any): void {
3874
+ inv<void>('0x02C4C6C2900D84DF', player.handle, p1);
3875
+ }
3876
+
3877
+ /**
3878
+ * @returns
3879
+ */
3880
+ static isSessionActive(): boolean {
3881
+ return !!inv<boolean>('0xD83C2B94E7508980', rai());
3882
+ }
3883
+
3884
+ /**
3885
+ * @param animScene
3886
+ * @returns
3887
+ */
3888
+ static animSceneToNet(animScene: AnimScene): number {
3889
+ return inv<number>('0xE0D73CDDEA79DDCD', animScene.handle, rai());
3890
+ }
3891
+
3892
+ /**
3893
+ * @returns
3894
+ */
3895
+ static getRank(): number {
3896
+ return inv<number>('0x32C90CDFAF40514C', rai());
3897
+ }
3898
+
3899
+ /**
3900
+ * @param message
3901
+ * @returns gamerHandle
3902
+ */
3903
+ static addFriend(message: string | null): [boolean, number] {
3904
+ const result = inv<[boolean, number]>('0x8E02D73914064223', pvi(), message, rai());
3905
+ return [!!result[0], result[1]];
3906
+ }
3907
+
3908
+ /**
3909
+ * @returns
3910
+ */
3911
+ static N_0xB389289F031F059A(): number {
3912
+ return inv<number>('0xB389289F031F059A', rai());
3913
+ }
3914
+
3915
+ /**
3916
+ * Subtracts the first argument from the second, then returns whether the result is negative.
3917
+ *
3918
+ * @param timeA
3919
+ * @param timeB
3920
+ * @returns
3921
+ */
3922
+ static isTimeMoreThan(timeA: number, timeB: number): boolean {
3923
+ return !!inv<boolean>('0xDE350F8651E4346C', timeA, timeB, rai());
3924
+ }
3925
+
3926
+ /**
3927
+ * @returns
3928
+ */
3929
+ static pedmugshotRequestSend(): any {
3930
+ return inv<number>('0xFBC30B70B3CDB87E');
3931
+ }
3932
+
3933
+ /**
3934
+ * Old name: _NETWORK_SET_PASSIVE_MODE_OPTION
3935
+ *
4055
3936
  * @param toggle
4056
3937
  */
4057
- static setNetworkIdAlwaysExistsForPlayer(netId: number, player: Player, toggle: boolean): void {
4058
- inv<void>('0xA8A024587329F36A', netId, player.handle, toggle);
3938
+ static setPlayerIsPassive(toggle: boolean): void {
3939
+ inv<void>('0x9C25E8EC4C535FBD', toggle);
3940
+ }
3941
+
3942
+ /**
3943
+ * Seems to always return 0, but it's used in quite a few loops. for (num3 = 0; num3 < NETWORK::0xCCD8C02D(); num3++)
3944
+ * {
3945
+ * if (NETWORK::NETWORK_IS_PARTICIPANT_ACTIVE(PLAYER::0x98F3B274(num3)) != 0)
3946
+ * {
3947
+ * var num5 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::0x98F3B274(num3));
3948
+ *
3949
+ * @returns
3950
+ */
3951
+ static getMaxNumParticipants(): number {
3952
+ return inv<number>('0xA6C90FBC38E395EE', rai());
3953
+ }
3954
+
3955
+ /**
3956
+ * @param ropeId
3957
+ * @returns
3958
+ */
3959
+ static getNetworkIdFromRopeId(ropeId: number): number {
3960
+ return inv<number>('0x42871327315EDAE8', ropeId, rai());
3961
+ }
3962
+
3963
+ /**
3964
+ * @param ugcRequestId
3965
+ * @returns
3966
+ */
3967
+ static ugcQueryWasForceCancelled(ugcRequestId: number): any {
3968
+ return inv<number>('0xF8F0705E77A0E705', ugcRequestId);
3969
+ }
3970
+
3971
+ /**
3972
+ * @param p0
3973
+ */
3974
+ static ugcSetQueryDataFromOffline(p0: boolean): void {
3975
+ inv<void>('0xF98DDE0A8ED09323', p0);
3976
+ }
3977
+
3978
+ /**
3979
+ * @returns gamerHandle
3980
+ */
3981
+ static isFriendHandleInSameTitle(): [boolean, number] {
3982
+ const result = inv<[boolean, number]>('0x665161D250850A9F', pvi(), rai());
3983
+ return [!!result[0], result[1]];
3984
+ }
3985
+
3986
+ /**
3987
+ * @param p0
3988
+ * @returns
3989
+ */
3990
+ static N_0xE8E633215471BB5D(p0: any): number {
3991
+ return inv<number>('0xE8E633215471BB5D', p0, rai());
3992
+ }
3993
+
3994
+ /**
3995
+ * Note: this native was added in build 1311.23
3996
+ *
3997
+ * @param p0
3998
+ * @returns
3999
+ */
4000
+ static N_0x917AD74BDCF8B6E9(p0: boolean): number {
4001
+ return inv<number>('0x917AD74BDCF8B6E9', p0, rai());
4002
+ }
4003
+
4004
+ /**
4005
+ * nullsub, doesn't do anything
4006
+ *
4007
+ * @param p0
4008
+ */
4009
+ static N_0x0CC28C08613BA9E5(p0: number): void {
4010
+ inv<void>('0x0CC28C08613BA9E5', p0);
4011
+ }
4012
+
4013
+ /**
4014
+ * Old name: _IS_ENTITY_GHOSTED_TO_LOCAL_PLAYER
4015
+ *
4016
+ * @param entity
4017
+ * @returns
4018
+ */
4019
+ static isEntityAGhost(entity: Entity): boolean {
4020
+ return !!inv<boolean>('0x21D04D7BC538C146', entity.handle, rai());
4021
+ }
4022
+
4023
+ static clearGetGamerStatus(): void {
4024
+ inv<void>('0x86E0660E4F5C956D');
4025
+ }
4026
+
4027
+ /**
4028
+ * @param player
4029
+ * @param entity
4030
+ * @returns p2
4031
+ */
4032
+ static getAssistedDamageOfEntity(player: Player, entity: Entity): [boolean, number] {
4033
+ const result = inv<[boolean, number]>('0x4CACA84440FA26F6', player.handle, entity.handle, pvi(), rai());
4034
+ return [!!result[0], result[1]];
4035
+ }
4036
+
4037
+ /**
4038
+ * flags:
4039
+ * enum eSessionRequestOptionFlags
4040
+ * {
4041
+ * SESSION_REQUEST_OPTION_FLAG_INCLUDE_GANG_MEMBERS = (1 << 1),
4042
+ * SESSION_REQUEST_OPTION_FLAG_LEADER_KEEPS_GANG = (1 << 7),
4043
+ * }; seamlessType:
4044
+ * enum eSeamlessType
4045
+ * {
4046
+ * SEAMLESS_TYPE_NORMAL,
4047
+ * SEAMLESS_TYPE_PVE,
4048
+ * SEAMLESS_TYPE_DEV,
4049
+ * SEAMLESS_TYPE_NO_SEAMLESS
4050
+ * };
4051
+ *
4052
+ * @param flags
4053
+ * @param seamlessType
4054
+ * @returns sessionRequestId
4055
+ */
4056
+ static requestSessionSeamless(flags: number, seamlessType: number): [any, number] {
4057
+ const result = inv<[number, number]>('0x04019AE4956D4393', flags, seamlessType, pvi());
4058
+ return [result[0], result[1]];
4059
4059
  }
4060
4060
 
4061
4061
  /**