@sagl/server 0.0.0-stage → 0.1.0-next.51

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 (129) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +61 -2
  3. package/dist/actions.d.ts +46 -0
  4. package/dist/actions.js +80 -0
  5. package/dist/actions.js.map +1 -0
  6. package/dist/animations.d.ts +32 -0
  7. package/dist/animations.js +95 -0
  8. package/dist/animations.js.map +1 -0
  9. package/dist/audio.d.ts +180 -0
  10. package/dist/audio.js +353 -0
  11. package/dist/audio.js.map +1 -0
  12. package/dist/audio_effects.d.ts +219 -0
  13. package/dist/audio_effects.js +84 -0
  14. package/dist/audio_effects.js.map +1 -0
  15. package/dist/camera.d.ts +188 -0
  16. package/dist/camera.js +247 -0
  17. package/dist/camera.js.map +1 -0
  18. package/dist/claims.d.ts +27 -0
  19. package/dist/claims.js +48 -0
  20. package/dist/claims.js.map +1 -0
  21. package/dist/commands.d.ts +135 -0
  22. package/dist/commands.js +373 -0
  23. package/dist/commands.js.map +1 -0
  24. package/dist/console.d.ts +21 -0
  25. package/dist/console.js +100 -0
  26. package/dist/console.js.map +1 -0
  27. package/dist/constants.d.ts +654 -0
  28. package/dist/constants.js +657 -0
  29. package/dist/constants.js.map +1 -0
  30. package/dist/cutscene.d.ts +47 -0
  31. package/dist/cutscene.js +190 -0
  32. package/dist/cutscene.js.map +1 -0
  33. package/dist/draw.d.ts +106 -0
  34. package/dist/draw.js +132 -0
  35. package/dist/draw.js.map +1 -0
  36. package/dist/effects.d.ts +91 -0
  37. package/dist/effects.js +116 -0
  38. package/dist/effects.js.map +1 -0
  39. package/dist/gangzones.d.ts +47 -0
  40. package/dist/gangzones.js +122 -0
  41. package/dist/gangzones.js.map +1 -0
  42. package/dist/geo.d.ts +11 -0
  43. package/dist/geo.js +25 -0
  44. package/dist/geo.js.map +1 -0
  45. package/dist/hud.d.ts +159 -0
  46. package/dist/hud.js +247 -0
  47. package/dist/hud.js.map +1 -0
  48. package/dist/index.d.ts +40 -0
  49. package/dist/index.js +43 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/interaction.d.ts +81 -0
  52. package/dist/interaction.js +143 -0
  53. package/dist/interaction.js.map +1 -0
  54. package/dist/junctions.d.ts +1 -0
  55. package/dist/junctions.js +330 -0
  56. package/dist/junctions.js.map +1 -0
  57. package/dist/map.d.ts +55 -0
  58. package/dist/map.js +71 -0
  59. package/dist/map.js.map +1 -0
  60. package/dist/menu.d.ts +96 -0
  61. package/dist/menu.js +129 -0
  62. package/dist/menu.js.map +1 -0
  63. package/dist/mission.d.ts +482 -0
  64. package/dist/mission.js +1258 -0
  65. package/dist/mission.js.map +1 -0
  66. package/dist/models.d.ts +56 -0
  67. package/dist/models.js +71 -0
  68. package/dist/models.js.map +1 -0
  69. package/dist/modshop.d.ts +229 -0
  70. package/dist/modshop.js +904 -0
  71. package/dist/modshop.js.map +1 -0
  72. package/dist/modshop_data.d.ts +44 -0
  73. package/dist/modshop_data.js +287 -0
  74. package/dist/modshop_data.js.map +1 -0
  75. package/dist/native.d.ts +809 -0
  76. package/dist/native.js +27 -0
  77. package/dist/native.js.map +1 -0
  78. package/dist/objects.d.ts +249 -0
  79. package/dist/objects.js +455 -0
  80. package/dist/objects.js.map +1 -0
  81. package/dist/paint.d.ts +124 -0
  82. package/dist/paint.js +84 -0
  83. package/dist/paint.js.map +1 -0
  84. package/dist/paynspray.d.ts +44 -0
  85. package/dist/paynspray.js +177 -0
  86. package/dist/paynspray.js.map +1 -0
  87. package/dist/ped.d.ts +335 -0
  88. package/dist/ped.js +536 -0
  89. package/dist/ped.js.map +1 -0
  90. package/dist/player.d.ts +685 -0
  91. package/dist/player.js +1163 -0
  92. package/dist/player.js.map +1 -0
  93. package/dist/screeneffects.d.ts +99 -0
  94. package/dist/screeneffects.js +257 -0
  95. package/dist/screeneffects.js.map +1 -0
  96. package/dist/scripts.d.ts +69 -0
  97. package/dist/scripts.js +125 -0
  98. package/dist/scripts.js.map +1 -0
  99. package/dist/server.d.ts +713 -0
  100. package/dist/server.js +1080 -0
  101. package/dist/server.js.map +1 -0
  102. package/dist/shopblips.d.ts +9 -0
  103. package/dist/shopblips.js +30 -0
  104. package/dist/shopblips.js.map +1 -0
  105. package/dist/special.d.ts +33 -0
  106. package/dist/special.js +26 -0
  107. package/dist/special.js.map +1 -0
  108. package/dist/splash.d.ts +42 -0
  109. package/dist/splash.js +55 -0
  110. package/dist/splash.js.map +1 -0
  111. package/dist/text.d.ts +19 -0
  112. package/dist/text.js +25 -0
  113. package/dist/text.js.map +1 -0
  114. package/dist/ui.d.ts +141 -0
  115. package/dist/ui.js +243 -0
  116. package/dist/ui.js.map +1 -0
  117. package/dist/vehicle.d.ts +306 -0
  118. package/dist/vehicle.js +612 -0
  119. package/dist/vehicle.js.map +1 -0
  120. package/dist/vehiclecolors.d.ts +26 -0
  121. package/dist/vehiclecolors.js +49 -0
  122. package/dist/vehiclecolors.js.map +1 -0
  123. package/dist/world.d.ts +222 -0
  124. package/dist/world.js +227 -0
  125. package/dist/world.js.map +1 -0
  126. package/dist/zone.d.ts +89 -0
  127. package/dist/zone.js +140 -0
  128. package/dist/zone.js.map +1 -0
  129. package/package.json +33 -4
@@ -0,0 +1,809 @@
1
+ import type { EncodedEffect } from "./audio_effects.js";
2
+ export interface NativePlayerState {
3
+ id: number;
4
+ name: string;
5
+ skin: number;
6
+ ip: string;
7
+ viaProxy: boolean;
8
+ connectHost: string;
9
+ connectPort: number;
10
+ ping: number;
11
+ alive: boolean;
12
+ paused: boolean;
13
+ focused: boolean;
14
+ money: number;
15
+ wantedLevel: number;
16
+ maxWantedLevel: number;
17
+ radioNameHidden: boolean;
18
+ world: number;
19
+ interior: number;
20
+ weapon: number;
21
+ weapons: {
22
+ slot: number;
23
+ weapon: number;
24
+ ammo: number;
25
+ }[];
26
+ infiniteSprint: boolean;
27
+ fightingStyle: number;
28
+ skinAnimations: boolean;
29
+ stats: Record<string, number>;
30
+ /** The vehicle they are in, if any, and their seat (0 driver). */
31
+ vehicleId: number | null;
32
+ seat: number | null;
33
+ /** The vehicle they remote-control, if any. */
34
+ remoteVehicleId: number | null;
35
+ /** The vehicle they last drove, while it exists. */
36
+ lastVehicleId: number | null;
37
+ /** False until the player's first sync packet; position/health are 0 until then. */
38
+ hasState: boolean;
39
+ /** The buttons held (Key bits), as their last sync. */
40
+ keys: number;
41
+ /** m/s (a passenger: their vehicle's). */
42
+ velocity: {
43
+ x: number;
44
+ y: number;
45
+ z: number;
46
+ };
47
+ /** Their camera: where it looks (a unit vector) and where it is; null for passengers. */
48
+ cameraFront: {
49
+ x: number;
50
+ y: number;
51
+ z: number;
52
+ } | null;
53
+ cameraPosition: {
54
+ x: number;
55
+ y: number;
56
+ z: number;
57
+ } | null;
58
+ health: number;
59
+ armour: number;
60
+ x: number;
61
+ y: number;
62
+ z: number;
63
+ heading: number;
64
+ }
65
+ export type WeaponViolationReason = "notOwned" | "noAmmo" | "fireRate" | "position";
66
+ export interface NativeVehicleHit {
67
+ cause: "collision" | "weapon";
68
+ with: "world" | "ground" | "vehicle" | "ped" | "object" | null;
69
+ weapon: number;
70
+ otherVehicleId: number | null;
71
+ playerId: number | null;
72
+ pedId: number | null;
73
+ healthBefore: number;
74
+ health: number;
75
+ loss: number;
76
+ intensity: number;
77
+ position: {
78
+ x: number;
79
+ y: number;
80
+ z: number;
81
+ };
82
+ }
83
+ export interface NativePedStep {
84
+ kind: number;
85
+ x?: number;
86
+ y?: number;
87
+ z?: number;
88
+ pace?: number;
89
+ targetPlayer?: number;
90
+ targetPed?: number;
91
+ distance?: number;
92
+ ms?: number;
93
+ animBlock?: string;
94
+ animName?: string;
95
+ loop?: boolean;
96
+ vehicleId?: number;
97
+ seat?: number;
98
+ speed?: number;
99
+ driveStyle?: number;
100
+ }
101
+ export interface NativeDraw {
102
+ id: number;
103
+ remove?: boolean;
104
+ kind?: number;
105
+ x?: number;
106
+ y?: number;
107
+ width?: number;
108
+ height?: number;
109
+ text?: string;
110
+ font?: string;
111
+ size?: number;
112
+ color?: number;
113
+ outline?: number;
114
+ shadow?: number;
115
+ outlineColor?: number;
116
+ boxColor?: number;
117
+ boxPadding?: number;
118
+ align?: number;
119
+ layer?: number;
120
+ anchor?: number;
121
+ }
122
+ export interface NativeShot {
123
+ weapon: number;
124
+ origin: {
125
+ x: number;
126
+ y: number;
127
+ z: number;
128
+ };
129
+ target: {
130
+ x: number;
131
+ y: number;
132
+ z: number;
133
+ };
134
+ }
135
+ export interface NativeExplosion {
136
+ type: number;
137
+ weapon: number;
138
+ vehicleId: number;
139
+ position: {
140
+ x: number;
141
+ y: number;
142
+ z: number;
143
+ };
144
+ }
145
+ export interface NativeHit {
146
+ weapon: number;
147
+ bodyPart: number;
148
+ damage: number;
149
+ direction: number;
150
+ }
151
+ export interface NativeHooks {
152
+ join?(id: number): void;
153
+ quit?(id: number, reason: "quit" | "timeout" | "kicked"): void;
154
+ /** false vetoes; a number replaces the damage; anything else allows. */
155
+ /** attackerId null and attackerPedId set: a server ped hit them. */
156
+ damage?(victimId: number, attackerId: number | null, hit: NativeHit, attackerPedId?: number): boolean | number | void;
157
+ death?(id: number, killerId: number | null, weapon: number, killerPedId: number | null): void;
158
+ spawn?(id: number): void;
159
+ pause?(id: number, paused: boolean, focused: boolean): void;
160
+ enterVehicle?(playerId: number, vehicleId: number): void;
161
+ exitVehicle?(playerId: number, vehicleId: number): void;
162
+ zoneEnter?(playerId: number, zoneId: number): void;
163
+ zoneLeave?(playerId: number, zoneId: number): void;
164
+ zoneMove?(playerId: number, zoneId: number): void;
165
+ /** false refuses; a number replaces the station; anything else allows. */
166
+ radio?(playerId: number, vehicleId: number, station: number): boolean | number | void;
167
+ shoot?(playerId: number, shot: NativeShot): boolean | void;
168
+ weaponViolation?(playerId: number, reason: WeaponViolationReason, weapon: number): void;
169
+ explosion?(playerId: number, explosion: NativeExplosion): boolean | void;
170
+ vehicleDeath?(vehicleId: number, killerId: number | null): boolean | void;
171
+ vehicleHit?(vehicleId: number, hit: NativeVehicleHit): boolean | number | void;
172
+ vehicleRespawn?(vehicleId: number): void;
173
+ /** false keeps the old level; a number replaces the new one. */
174
+ wantedLevel?(playerId: number, level: number, old: number): boolean | number | void;
175
+ scriptMessage?(playerId: number, channel: string, data: string): void;
176
+ uiEvent?(playerId: number, event: NativeUiEvent): void;
177
+ objectHit?(playerId: number, id: number, damage: number, weapon: number): void;
178
+ pickupTouch?(playerId: number, id: number): void;
179
+ /** Their client script put an object in their hands (or took one away). */
180
+ playerAttach?(playerId: number, spec: Parameters<NativeServer["playerAttachment"]>[1]): void;
181
+ carjack?(jackerId: number, victimId: number, vehicleId: number): void;
182
+ playerInterior?(playerId: number, interior: number, old: number): void;
183
+ playerKeys?(playerId: number, keys: number, old: number): void;
184
+ playerAction?(playerId: number, id: string): void;
185
+ chat?(playerId: number, text: string): void;
186
+ dialogResponse?(playerId: number, id: number, response: boolean, listItem: number, input: string): void;
187
+ /** kind: 0 moved to `row`, 1 selected it, 2 backed out. */
188
+ gameMenuEvent?(playerId: number, id: number, kind: number, row: number): void;
189
+ cameraEvent?(playerId: number, id: number, step: number, kind: number): void;
190
+ documentResult?(playerId: number, id: number, button: number): void;
191
+ suggestRequest?(playerId: number, id: number, text: string): void;
192
+ interactionUse?(playerId: number, id: number, where: {
193
+ event: "use" | "reach" | "leave";
194
+ model: number;
195
+ x: number;
196
+ y: number;
197
+ z: number;
198
+ heading: number;
199
+ }): void;
200
+ cutsceneState?(playerId: number, id: number, state: "loaded" | "finished" | "failed" | "skipVote", skipped: boolean): void;
201
+ /** false vetoes; a number replaces the damage; anything else allows. */
202
+ pedDamage?(pedId: number, attackerId: number | null, hit: NativeHit, attackerPedId?: number): boolean | number | void;
203
+ pedDeath?(pedId: number, killerId: number | null, weapon: number, killerPedId: number | null): void;
204
+ pedOrder?(pedId: number, orderId: number, step: number, state: "stepDone" | "done" | "failed", reason: string): void;
205
+ pedViolation?(playerId: number, pedId: number, reason: string): void;
206
+ populationSpawn?(playerId: number, spawn: NativeAmbientSpawn): boolean | void;
207
+ }
208
+ export interface NativeUiEvent {
209
+ doc: number;
210
+ /** A UiEventType, or "error" (the document didn't open). */
211
+ type: string;
212
+ id: string;
213
+ value: string;
214
+ checked: boolean;
215
+ enter: boolean;
216
+ key: number;
217
+ fields: Record<string, string>;
218
+ }
219
+ export interface NativePedState {
220
+ id: number;
221
+ model: number;
222
+ /** A story character's name, or "". */
223
+ special: string;
224
+ world: number;
225
+ x: number;
226
+ y: number;
227
+ z: number;
228
+ heading: number;
229
+ health: number;
230
+ armour: number;
231
+ weapon: number;
232
+ dead: boolean;
233
+ ownerId: number | null;
234
+ behaviour: number;
235
+ vehicleId: number | null;
236
+ seat: number | null;
237
+ ambient: boolean;
238
+ }
239
+ export interface NativePopulation {
240
+ peds: boolean;
241
+ traffic: boolean;
242
+ density: number;
243
+ gangs: boolean;
244
+ police: boolean;
245
+ ambulance: boolean;
246
+ fire: boolean;
247
+ wanted: boolean;
248
+ evadeSeconds: number;
249
+ evadeDistance: number;
250
+ indicators: boolean;
251
+ }
252
+ export interface NativeAmbientSpawn {
253
+ vehicle: boolean;
254
+ vehicleModel: number;
255
+ position: {
256
+ x: number;
257
+ y: number;
258
+ z: number;
259
+ };
260
+ heading: number;
261
+ peds: {
262
+ model: number;
263
+ pedType: number;
264
+ weapon: number;
265
+ seat: number;
266
+ }[];
267
+ }
268
+ export interface NativeVehicleState {
269
+ id: number;
270
+ /** Tuning parts on it. */
271
+ components: number[];
272
+ /** -1: none. */
273
+ paintjob: number;
274
+ doorsLocked: boolean;
275
+ /** 0 the game's, 1 off, 2 on. */
276
+ engine: number;
277
+ lights: number;
278
+ searchlight: number;
279
+ smoke: number;
280
+ /** Held dirt: 0 each game's own, else 1 + tenths. */
281
+ dirt: number;
282
+ searchlightOn: boolean;
283
+ smokeOn: boolean;
284
+ indicators: number;
285
+ indicatorsOn: number;
286
+ /** Degrees. */
287
+ heading: number;
288
+ model: number;
289
+ x: number;
290
+ y: number;
291
+ z: number;
292
+ health: number;
293
+ wrecked: boolean;
294
+ ambient: boolean;
295
+ /** CDamageManager bytes (24), or [] when undamaged. */
296
+ damage: number[];
297
+ /** ms; 0: never respawns by itself. */
298
+ respawnDelay: number;
299
+ /** m/s, as last synced (0 once nobody has for a second). */
300
+ velocity: {
301
+ x: number;
302
+ y: number;
303
+ z: number;
304
+ };
305
+ /** What it tows. */
306
+ trailerId: number | null;
307
+ plate: string;
308
+ color1: number;
309
+ color2: number;
310
+ /** Radio station, -1 until chosen. */
311
+ radio: number;
312
+ world: number;
313
+ interior: number;
314
+ driverId: number | null;
315
+ /** Seat number -> player id. */
316
+ occupants: Record<string, number>;
317
+ /** Seat number -> server ped id. */
318
+ pedSeats: Record<string, number>;
319
+ }
320
+ export interface NativeGarageState {
321
+ id: number;
322
+ name: string;
323
+ type: number;
324
+ x: number;
325
+ y: number;
326
+ z: number;
327
+ /** The box: from (x, y) to (frontX, frontY) one way, to (sideX, sideY) the other; z to topZ. */
328
+ frontX: number;
329
+ frontY: number;
330
+ sideX: number;
331
+ sideY: number;
332
+ topZ: number;
333
+ open: boolean;
334
+ zoneId: number;
335
+ }
336
+ export interface NativeCullZone {
337
+ world?: number;
338
+ min: [number, number, number];
339
+ max: [number, number, number];
340
+ audio?: number;
341
+ attributes?: number;
342
+ mirror?: {
343
+ axis: number;
344
+ sign: number;
345
+ coord: number;
346
+ };
347
+ }
348
+ export interface NativeServerConfig {
349
+ port?: number;
350
+ name?: string;
351
+ maxPlayers?: number;
352
+ timeHour?: number;
353
+ timeMinute?: number;
354
+ timeFrozen?: boolean;
355
+ trustedProxies?: string[];
356
+ startMoney?: number;
357
+ weather?: number;
358
+ skinAnimations?: boolean;
359
+ gameEntrances?: boolean;
360
+ splash?: boolean;
361
+ carjacking?: boolean;
362
+ indicatorKeys?: boolean;
363
+ indicatorCancel?: boolean;
364
+ indicatorSound?: string;
365
+ clientFiles?: string;
366
+ }
367
+ export interface NativeServer {
368
+ start(): boolean;
369
+ service(timeoutMs?: number): void;
370
+ shutdown(): void;
371
+ setHooks(hooks: NativeHooks): void;
372
+ playerIds(): number[];
373
+ player(id: number): NativePlayerState | null;
374
+ setSkin(id: number, model: number): void;
375
+ setPosition(id: number, x: number, y: number, z: number, heading?: number): void;
376
+ setHealth(id: number, health: number, armour: number): void;
377
+ setMoney(id: number, money: number): void;
378
+ setWantedLevel(id: number, level: number): void;
379
+ paroleWantedLevel(id: number): void;
380
+ setMaxWantedLevel(id: number, level: number): void;
381
+ setRemoteControl(id: number, vehicleId: number, detonate: boolean): boolean;
382
+ /** id -1: everyone. */
383
+ sendMessage(id: number, text: string, color?: number, markdown?: boolean): void;
384
+ kick(id: number, reason?: string): void;
385
+ getTime(world?: number): {
386
+ hour: number;
387
+ minute: number;
388
+ frozen: boolean;
389
+ };
390
+ setTime(hour: number, minute: number, world?: number): void;
391
+ freezeTime(frozen: boolean, world?: number): void;
392
+ getWeather(world?: number): number;
393
+ setWeather(weather: number, world?: number): void;
394
+ worldSynced(world: number): boolean;
395
+ trafficLights(world: number): {
396
+ northSouth: number;
397
+ eastWest: number;
398
+ pedestrians: number;
399
+ fixed: boolean;
400
+ timing: {
401
+ green: number;
402
+ yellow: number;
403
+ walk: number;
404
+ flashing: number;
405
+ };
406
+ };
407
+ setTrafficLights(northSouth: number, eastWest: number, pedestrians: number, world: number): void;
408
+ holdTrafficLights(world: number): void;
409
+ defineAction(id: string, label: string, key: string): void;
410
+ removeAction(id: string): void;
411
+ resumeTrafficLights(world: number): void;
412
+ setTrafficTiming(green: number, yellow: number, walk: number, flashing: number, world: number): void;
413
+ setWorldSynced(world: number, synced: boolean): void;
414
+ createCullZone(zone: NativeCullZone): number;
415
+ destroyCullZone(id: number): boolean;
416
+ randomSkin(): number;
417
+ /** Heading in radians; colours < 0 are random. Returns the id, or 0. */
418
+ createVehicle(model: number, x: number, y: number, z: number, heading: number, color1: number, color2: number, radio: number, world: number, ambient: boolean, respawnDelayMs: number, plate?: string): number;
419
+ setPlayerWorld(id: number, world: number): void;
420
+ giveWeapon(id: number, weapon: number, ammo: number): boolean;
421
+ setStat(id: number, stat: number, value: number): boolean;
422
+ clearStat(id: number, stat: number): void;
423
+ setInfiniteSprint(id: number, infinite: boolean): void;
424
+ setFightingStyle(id: number, style: number): void;
425
+ setDrunkLevel(id: number, level: number): void;
426
+ renamePlayer(playerId: number, name: string): boolean;
427
+ setScore(playerId: number, score: number): void;
428
+ towVehicle(vehicleId: number, trailerId: number): boolean;
429
+ setStuntBonus(playerId: number, on: boolean): void;
430
+ crimeReport(playerId: number, crime: number, x: number, y: number, z: number): void;
431
+ gangZone(playerId: number, z: {
432
+ id: number;
433
+ remove: boolean;
434
+ minX: number;
435
+ minY: number;
436
+ maxX: number;
437
+ maxY: number;
438
+ color: number;
439
+ flashing: boolean;
440
+ flashColor: number;
441
+ }): void;
442
+ spectate(playerId: number, kind: number, targetId: number): void;
443
+ setVisibleFor(playerId: number, viewerId: number, visible: boolean): void;
444
+ setPlayerWeather(playerId: number, weather: number | null): void;
445
+ worldBounds(playerId: number, on: boolean, minX: number, maxX: number, minY: number, maxY: number): void;
446
+ nameTag(viewerId: number, playerId: number, hidden: boolean, text: string, color: number | null): void;
447
+ nameTagOptions(viewerId: number, distance: number, lineOfSight: boolean, ids: boolean, bars: boolean): void;
448
+ putInVehicle(id: number, vehicleId: number, seat: number): void;
449
+ setSkinAnimations(id: number, skin: boolean): void;
450
+ setWeaponAmmo(id: number, weapon: number, ammo: number): boolean;
451
+ removeWeapon(id: number, weapon: number): void;
452
+ resetWeapons(id: number): void;
453
+ setCurrentWeapon(id: number, weapon: number): void;
454
+ removeFromVehicle(id: number, jump?: boolean): void;
455
+ setVehicleWorld(id: number, world: number): void;
456
+ placeVehicle(id: number, x: number, y: number, z: number, heading: number): void;
457
+ vehicleComponent(id: number, part: number, add: boolean): boolean;
458
+ vehicleLocked(id: number, locked: boolean, playerId?: number, clear?: boolean): void;
459
+ vehicleParams(id: number, engine: number, lights: number, searchlight: number, smoke: number, indicators: number, dirt?: number): void;
460
+ vehiclePaintjob(id: number, paintjob: number): boolean;
461
+ setPlayerInterior(id: number, interior: number): void;
462
+ commandTree(playerId: number, tree: string): void;
463
+ clearChat(playerId: number): void;
464
+ explosion(playerId: number, x: number, y: number, z: number, type: number): void;
465
+ playerAttachment(toPlayerId: number, spec: {
466
+ playerId: number;
467
+ slot: number;
468
+ remove?: boolean;
469
+ model?: number;
470
+ bone?: number;
471
+ ox?: number;
472
+ oy?: number;
473
+ oz?: number;
474
+ rx?: number;
475
+ ry?: number;
476
+ rz?: number;
477
+ sx?: number;
478
+ sy?: number;
479
+ sz?: number;
480
+ }): void;
481
+ dialog(playerId: number, spec: {
482
+ id: number;
483
+ hide?: boolean;
484
+ style?: number;
485
+ title?: string;
486
+ body?: string;
487
+ button1?: string;
488
+ button2?: string;
489
+ markdown?: boolean;
490
+ }): void;
491
+ documentView(playerId: number, spec: {
492
+ id: number;
493
+ close?: boolean;
494
+ title?: string;
495
+ file?: string;
496
+ buttons?: string;
497
+ requireEnd?: boolean;
498
+ closable?: boolean;
499
+ }): void;
500
+ vehiclePalette(playerId: number, colors: number[]): void;
501
+ vehiclePaint(id: number, spec: {
502
+ type?: string;
503
+ shader?: string;
504
+ params?: string;
505
+ values?: number[];
506
+ slots?: number;
507
+ livery?: string;
508
+ liveryMapping?: number;
509
+ liveryScale?: number;
510
+ liveryOpacity?: number;
511
+ liveryMultiply?: boolean;
512
+ } | null): void;
513
+ screenEffect(playerId: number, spec: {
514
+ id: number;
515
+ remove?: boolean;
516
+ file?: string;
517
+ params?: string;
518
+ values?: number[];
519
+ order?: number;
520
+ fadeMs?: number;
521
+ }): void;
522
+ gameMenu(playerId: number, spec: {
523
+ id: number;
524
+ hide?: boolean;
525
+ title?: string;
526
+ rows?: string;
527
+ row?: number;
528
+ footer?: string;
529
+ hints?: string;
530
+ columns?: number;
531
+ image?: string;
532
+ }): void;
533
+ checkpoint(playerId: number, spec: {
534
+ race: boolean;
535
+ enabled: boolean;
536
+ x?: number;
537
+ y?: number;
538
+ z?: number;
539
+ size?: number;
540
+ type?: number;
541
+ nextX?: number;
542
+ nextY?: number;
543
+ nextZ?: number;
544
+ }): void;
545
+ suggestions(playerId: number, id: number, start: number, list: string[]): void;
546
+ setVehicleInterior(id: number, interior: number): void;
547
+ setWorldView(viewer: number, target: number, visible: boolean): void;
548
+ worldSees(viewer: number, target: number): boolean;
549
+ setRadioNameHidden(id: number, hidden: boolean): void;
550
+ destroyVehicle(id: number): boolean;
551
+ vehicle(id: number): NativeVehicleState | null;
552
+ vehicleIds(): number[];
553
+ setVehicleColors(id: number, color1: number, color2: number): void;
554
+ repairVehicle(id: number): void;
555
+ setVehicleHealth(id: number, health: number): boolean;
556
+ /** The CDamageManager bytes (24), or [] for none. */
557
+ setVehicleDamage(id: number, damage: number[]): boolean;
558
+ respawnVehicle(id: number): void;
559
+ setVehiclePlate(id: number, plate: string): boolean;
560
+ setClientScript(name: string, code: string): void;
561
+ setClientScriptFile(path: string): boolean;
562
+ setBranding(logo: string, primary: number, secondary: number, background: string, showName: boolean): string;
563
+ rescanClientFiles(): number;
564
+ clientFiles(): {
565
+ path: string;
566
+ size: number;
567
+ sha256: string;
568
+ }[];
569
+ /** player: their id, or -1 for everyone. */
570
+ setMapMarker(player: number, id: string, x: number, y: number, icon: number, color: number, label: string): void;
571
+ removeMapMarker(player: number, id: string): void;
572
+ setMapOverlay(player: number, id: string, x1: number, y1: number, x2: number, y2: number, image: Buffer, opacity: number, layer: number): void;
573
+ setMapOverlayFile(player: number, id: string, x1: number, y1: number, x2: number, y2: number, file: string, opacity: number, layer: number): boolean;
574
+ removeMapOverlay(player: number, id: string): void;
575
+ setMapWorld(player: number, visible: boolean, background: number): void;
576
+ removeClientScript(name: string): boolean;
577
+ sendScriptMessage(id: number, channel: string, data: string): void;
578
+ broadcastScriptMessage(channel: string, data: string): void;
579
+ setVehicleRespawnDelay(id: number, ms: number): void;
580
+ createPed(model: number | string, x: number, y: number, z: number, heading: number, world: number, weapon: number, health: number, behaviour: number, visibleTo?: number[] | null, controller?: number | null): number;
581
+ destroyPed(id: number): boolean;
582
+ releasePed(id: number): boolean;
583
+ releaseVehicle(id: number): boolean;
584
+ population(world: number): NativePopulation;
585
+ pedIds(): number[];
586
+ setPopulation(world: number, settings: Partial<NativePopulation>): void;
587
+ ped(id: number): NativePedState | null;
588
+ orderPed(pedId: number, steps: NativePedStep[]): number;
589
+ cancelPedOrder(pedId: number): void;
590
+ pedSay(pedId: number, context: number, subtitle: string, ms: number, to: number[] | null, dialogue?: string, effects?: EncodedEffect[]): void;
591
+ playerSay(playerId: number, dialogue: string, subtitle: string, ms: number, to: number[] | null, effects?: EncodedEffect[]): void;
592
+ dialogueMs(key: string): number;
593
+ subtitle(playerId: number, text: string, ms: number): void;
594
+ setBlip(playerId: number, id: number, spec: {
595
+ kind: number;
596
+ x?: number;
597
+ y?: number;
598
+ z?: number;
599
+ target?: number;
600
+ color: number;
601
+ sprite?: number;
602
+ display?: number;
603
+ scale?: number;
604
+ pulse?: boolean;
605
+ shortRange?: boolean;
606
+ } | null): void;
607
+ hudText(playerId: number, kind: number, text: string, ms: number, style?: number): void;
608
+ draw(playerId: number, spec: NativeDraw): void;
609
+ screenFade(playerId: number, fadeIn: boolean, ms: number, color: number): void;
610
+ cutscene(playerId: number, id: number, action: number, name?: string): void;
611
+ playerAnim(playerId: number, block: string, name: string, loop: boolean, ms: number, stop: boolean, hold?: boolean, upperBody?: boolean): void;
612
+ playerLoop(playerId: number, block: string, name: string, upperBody: boolean, jetpack: boolean, hold?: boolean, noAttack?: boolean): void;
613
+ freezePlayer(playerId: number, frozen: boolean): void;
614
+ slidePlayer(playerId: number, x: number, y: number, z: number, heading: number): void;
615
+ animationSet(playerId: number, name: string, file: string): void;
616
+ customModel(playerId: number, spec: {
617
+ id: number;
618
+ base: number;
619
+ dff: string;
620
+ txd: string;
621
+ }): void;
622
+ splash(playerId: number, show: boolean, fadeMs: number, text: string): void;
623
+ hudToggles(playerId: number, hidden: number): void;
624
+ objectMaterial(playerId: number, spec: {
625
+ objectId: number;
626
+ index: number;
627
+ remove?: boolean;
628
+ model?: number;
629
+ txd?: string;
630
+ texture?: string;
631
+ color?: number;
632
+ file?: string;
633
+ isText?: boolean;
634
+ text?: string;
635
+ size?: number;
636
+ font?: string;
637
+ fontSize?: number;
638
+ bold?: boolean;
639
+ fontColor?: number;
640
+ backColor?: number;
641
+ align?: number;
642
+ }): void;
643
+ serverObject(playerId: number, spec: {
644
+ id: number;
645
+ remove?: boolean;
646
+ shatter?: boolean;
647
+ model?: number;
648
+ x?: number;
649
+ y?: number;
650
+ z?: number;
651
+ rx?: number;
652
+ ry?: number;
653
+ rz?: number;
654
+ noCollision?: boolean;
655
+ breakable?: boolean;
656
+ moveMs?: number;
657
+ streamDistance?: number;
658
+ interior?: number;
659
+ }): void;
660
+ pickup(playerId: number, spec: {
661
+ id: number;
662
+ remove?: boolean;
663
+ model?: number;
664
+ weapon?: number;
665
+ x?: number;
666
+ y?: number;
667
+ z?: number;
668
+ inVehicle?: boolean;
669
+ hidden?: boolean;
670
+ interior?: number;
671
+ }): void;
672
+ label(playerId: number, spec: {
673
+ id: number;
674
+ remove?: boolean;
675
+ text?: string;
676
+ x?: number;
677
+ y?: number;
678
+ z?: number;
679
+ on?: number;
680
+ target?: number;
681
+ color?: number;
682
+ distance?: number;
683
+ throughWalls?: boolean;
684
+ interior?: number;
685
+ }): void;
686
+ effect(playerId: number, spec: {
687
+ id: number;
688
+ stop?: boolean;
689
+ name?: string;
690
+ x?: number;
691
+ y?: number;
692
+ z?: number;
693
+ on?: number;
694
+ target?: number;
695
+ loop?: boolean;
696
+ color?: number;
697
+ size?: number;
698
+ count?: number;
699
+ spread?: number;
700
+ rise?: number;
701
+ life?: number;
702
+ carColor?: number;
703
+ }): void;
704
+ gameSound(playerId: number, spec: {
705
+ sound: number;
706
+ atSpot?: boolean;
707
+ x?: number;
708
+ y?: number;
709
+ z?: number;
710
+ mission?: boolean;
711
+ on?: number;
712
+ target?: number;
713
+ range?: number;
714
+ effects?: EncodedEffect[];
715
+ realism?: boolean;
716
+ }): void;
717
+ audioEnvironment(playerId: number, effects: EncodedEffect[]): void;
718
+ camera(playerId: number, spec: {
719
+ behind?: boolean;
720
+ id?: number;
721
+ steps?: number[];
722
+ points?: number[];
723
+ loop?: boolean;
724
+ widescreen?: boolean;
725
+ stop?: boolean;
726
+ freecam?: boolean;
727
+ freecamSpeed?: number;
728
+ }): void;
729
+ /** How long a sound file plays (ms), or -1. */
730
+ audioDuration(path: string): number;
731
+ notice(playerId: number, text: string, ms: number): void;
732
+ sound(playerId: number, spec: {
733
+ id: number;
734
+ stop?: boolean;
735
+ file?: string;
736
+ x?: number;
737
+ y?: number;
738
+ z?: number;
739
+ on?: number;
740
+ target?: number;
741
+ loop?: boolean;
742
+ volume?: number;
743
+ range?: number;
744
+ effects?: EncodedEffect[];
745
+ realism?: boolean;
746
+ speech?: boolean;
747
+ }): void;
748
+ interaction(playerId: number, id: number, spec: {
749
+ models: number[];
750
+ x: number;
751
+ y: number;
752
+ z: number;
753
+ radius: number;
754
+ prompt: string;
755
+ notify: boolean;
756
+ } | null): void;
757
+ ui(playerId: number, spec: {
758
+ doc: number;
759
+ action: number;
760
+ file?: string;
761
+ flags?: number;
762
+ events?: number;
763
+ change?: number;
764
+ element?: string;
765
+ name?: string;
766
+ value?: string;
767
+ }): void;
768
+ hudCounter(playerId: number, id: number, spec: {
769
+ label: string;
770
+ timer?: boolean;
771
+ countUp?: boolean;
772
+ value?: number;
773
+ max?: number;
774
+ bar?: boolean;
775
+ color?: number;
776
+ paused?: boolean;
777
+ } | null): void;
778
+ missionResult(playerId: number, kind: string, title: string, text: string, sound: boolean, ms: number): void;
779
+ setPedVisibility(pedId: number, playerIds: number[] | null): void;
780
+ setPedController(pedId: number, playerId: number | null): void;
781
+ setPedSettings(pedId: number, settings: {
782
+ reactions: number;
783
+ keepTask: boolean;
784
+ proofs: number;
785
+ notDraggable: boolean;
786
+ accuracy: number;
787
+ hostilePlayers: number[];
788
+ hostileRange: number;
789
+ }): void;
790
+ putPedInVehicle(id: number, vehicleId: number, seat: number): boolean;
791
+ removePedFromVehicle(id: number): void;
792
+ wreckVehicle(id: number, killerId?: number): void;
793
+ setVehicleRadio(id: number, station: number): boolean;
794
+ createSphereZone(x: number, y: number, z: number, radius: number, world?: number): number;
795
+ createBoxZone(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, world?: number): number;
796
+ destroyZone(id: number): boolean;
797
+ garages(): NativeGarageState[];
798
+ setGarageOpen(id: number, open: boolean): void;
799
+ }
800
+ interface NativeModule {
801
+ NativeServer: new (config: NativeServerConfig) => NativeServer;
802
+ isValidSkin(model: number): boolean;
803
+ componentSlot(part: number): number;
804
+ componentFits(model: number, part: number): boolean;
805
+ protocolVersion: number;
806
+ version: string;
807
+ }
808
+ export declare const native: NativeModule;
809
+ export {};