@altv/server
Version:
This package contains the type definitions for the alt:V JS module v2 server types
1,114 lines (896 loc) • 81.2 kB
TypeScript
/// <reference types="../shared/index.d.ts" />
/**
* @module @altv/server
*/
declare module "@altv/server" {
import * as altShared from "@altv/shared";
export const rootDir: string;
export const syncedMeta: altShared.GlobalSyncedMeta & Record<string, unknown>;
export const serverConfig: Readonly<Record<string, unknown>>;
export function setServerPassword(password: string): void;
export function hashServerPassword(password: string): number;
export function stopServer(): void;
export function toggleWorldProfiler(state: boolean): void;
export function getEntitiesInDimension(dimension: number, entityTypes: altShared.Enums.BaseObjectFilterType): ReadonlyArray<altShared.BaseObject>;
export function getEntitiesInRange(pos: altShared.IVector3, range: number, dimension: number, entityTypes: altShared.Enums.BaseObjectFilterType): ReadonlyArray<altShared.BaseObject>;
export function getClosestEntities(pos: altShared.IVector3, range: number, dimension: number, maxCount: number, entityTypes: altShared.Enums.BaseObjectFilterType): ReadonlyArray<altShared.BaseObject>;
export function setVoiceExternalPublic(host: string, port: number): void;
export function setVoiceExternal(host: string, port: number): void;
export function hasBenefit(benefit: altShared.Enums.Benefit): boolean;
export class BaseObject extends altShared.BaseObject {
meta: BaseObjectMeta & Record<string, unknown>;
syncedMeta: altShared.BaseObjectSyncedMeta & Record<string, unknown>;
static getByID(type: altShared.Enums.BaseObjectType, id: number): BaseObject | null;
}
export interface SharedBlipCreateOptions {
global: boolean;
targets?: Array<Entity>;
blipType: altShared.Enums.BlipType;
initialMeta?: Partial<{
meta: BlipMeta & Record<string, unknown>;
syncedMeta: altShared.BlipSyncedMeta & Record<string, unknown>;
}>;
}
export type PointBlipCreateOptions = { pos: altShared.IVector3; entity?: never } | { entity: Entity; pos?: never };
type BlipCreateOptions = SharedBlipCreateOptions &
(({ blipType: altShared.Enums.BlipType.AREA } & altShared.AreaBlipCreateOptions) | ({ blipType: altShared.Enums.BlipType.RADIUS } & altShared.RadiusBlipCreateOptions) | ({ blipType: altShared.Enums.BlipType.DESTINATION } & PointBlipCreateOptions));
export abstract class Blip extends WorldObject {
readonly targets: ReadonlyArray<Player>;
readonly scriptID: number;
readonly isStreamedIn: boolean;
readonly isAttached: boolean;
attachedTo?: Entity;
global: boolean;
blipType: altShared.Enums.BlipType;
scaleXY: altShared.Vector2;
display: number;
sprite: number;
color: number;
secondaryColor: number;
alpha: number;
flashTimer: number;
flashInterval: number;
friendly: boolean;
route: boolean;
bright: boolean;
number: number;
showCone: boolean;
flashes: boolean;
flashesAlternate: boolean;
shortRange: boolean;
priority: number;
rotation: number;
gxtName: string;
name: string;
routeColor: altShared.RGBA;
pulse: boolean;
missionCreator: boolean;
tickVisible: boolean;
headingIndicatorVisible: boolean;
outlineIndicatorVisible: boolean;
friendIndicatorVisible: boolean;
crewIndicatorVisible: boolean;
category: number;
highDetail: boolean;
shrinked: boolean;
visible: boolean;
hiddenOnLegend: boolean;
minimalOnEdge: boolean;
useHeightIndicatorOnEdge: boolean;
shortHeightThreshold: boolean;
attachTo(entity: Entity): boolean;
fade(opacity: number, duration: number): void;
addTarget(target: Player): void;
removeTarget(target: Player): void;
meta: BlipMeta & Record<string, unknown>;
syncedMeta: altShared.BlipSyncedMeta & Record<string, unknown>;
public onCreate?(opts: BlipCreateOptions): void;
public onDestroy?(): void;
static getByID(id: number): Blip | null;
static create(opts: BlipCreateOptions): Blip;
static setFactory(factory: typeof Blip): void;
static getFactory<T extends Blip>(): T;
}
export namespace PointBlip {
export function create(opts: PointBlipCreateOptions & SharedBlipCreateOptions): Blip;
}
export namespace AreaBlip {
export function create(opts: altShared.AreaBlipCreateOptions & SharedBlipCreateOptions): Blip;
}
export namespace RadiusBlip {
export function create(opts: altShared.RadiusBlipCreateOptions & SharedBlipCreateOptions): Blip;
}
export abstract class Marker extends WorldObject {
readonly isGlobal: boolean;
readonly target?: Player;
readonly streamingDistance: number;
meta: MarkerMeta & Record<string, unknown>;
syncedMeta: altShared.MarkerSyncedMeta & Record<string, unknown>;
color: altShared.RGBA;
visible: boolean;
markerType: altShared.Enums.MarkerType;
scale: altShared.IVector3;
rot: altShared.IVector3;
direction: altShared.IVector3;
faceCamera: boolean;
rotating: boolean;
bobUpDown: boolean;
static readonly all: ReadonlyArray<Marker>;
public onCreate?(opts: MarkerCreateOptions): void;
public onDestroy?(): void;
static getByID(id: number): Marker | null;
static create(opts: MarkerCreateOptions): Marker;
static setFactory(factory: typeof Marker): void;
static getFactory<T extends Marker>(): T;
}
export abstract class ColShapeSphere extends ColShape {
readonly radius: number;
public onCreate?(opts: altShared.ColShapeSphereCreateOptions<ColShapeMeta>): void;
public onDestroy?(): void;
static create(opts: altShared.ColShapeSphereCreateOptions<ColShapeMeta>): ColShapeSphere;
}
export abstract class ColShapeCylinder extends ColShape {
readonly radius: number;
readonly height: number;
public onCreate?(opts: altShared.ColShapeCylinderCreateOptions<ColShapeMeta>): void;
public onDestroy?(): void;
static create(opts: altShared.ColShapeCylinderCreateOptions<ColShapeMeta>): ColShapeCylinder;
}
export abstract class ColShapeCircle extends ColShape {
readonly radius: number;
public onCreate?(opts: altShared.ColShapeCircleCreateOptions<ColShapeMeta>): void;
public onDestroy?(): void;
static create(opts: altShared.ColShapeCircleCreateOptions<ColShapeMeta>): ColShapeCircle;
}
export abstract class ColShapeCuboid extends ColShape {
readonly min: altShared.Vector3;
readonly max: altShared.Vector3;
public onCreate?(opts: altShared.ColShapeCuboidCreateOptions<ColShapeMeta>): void;
public onDestroy?(): void;
static create(opts: altShared.ColShapeCuboidCreateOptions<ColShapeMeta>): ColShapeCuboid;
}
export abstract class ColShapeRectangle extends ColShape {
readonly min: altShared.Vector2;
readonly max: altShared.Vector2;
public onCreate?(opts: altShared.ColShapeRectangleCreateOptions<ColShapeMeta>): void;
public onDestroy?(): void;
static create(opts: altShared.ColShapeRectangleCreateOptions<ColShapeMeta>): ColShapeRectangle;
}
export abstract class ColShapePolygon extends ColShape {
readonly minZ: number;
readonly maxZ: number;
readonly points: ReadonlyArray<altShared.Vector2>;
public onCreate?(opts: altShared.ColShapePolygonCreateOptions<ColShapeMeta>): void;
public onDestroy?(): void;
static create(opts: altShared.ColShapePolygonCreateOptions<ColShapeMeta>): ColShapePolygon;
}
export abstract class ColShape extends WorldObject {
readonly colShapeType: altShared.Enums.ColShapeType;
playersOnly: boolean;
isEntityIn(entity: Entity): boolean;
isEntityIdIn(id: number): boolean;
isPointIn(point: altShared.Vector3): boolean;
meta: ColShapeMeta & Record<string, unknown>;
syncedMeta: altShared.ColShapeSyncedMeta & Record<string, unknown>;
static readonly all: ReadonlyArray<ColShape>;
static setFactory(factory: typeof ColShape): void;
static getFactory<T extends ColShape>(): T;
}
export interface MarkerCreateOptions {
target?: Player;
pos?: altShared.IVector3;
type: altShared.Enums.MarkerType;
color?: altShared.IRGBA; // default: { r: 255, g: 255, b: 255, a: 255 }
initialMeta?: Partial<{
meta: MarkerMeta & Record<string, unknown>;
syncedMeta: altShared.MarkerSyncedMeta & Record<string, unknown>;
}>;
}
export interface CheckpointCreateOptions {
type: altShared.Enums.CheckpointType;
pos: altShared.IVector3;
radius: number;
height: number;
color: altShared.RGBA;
streamingDistance: number;
initialMeta?: Partial<{
meta: CheckpointMeta & Record<string, unknown>;
syncedMeta: altShared.CheckpointSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.CheckpointStreamSyncedMeta & Record<string, unknown>;
}>;
}
// @ts-expect-error - Suppresses "Class static side 'typeof Checkpoint' incorrectly extends base class static side 'typeof ColShape'.""
export abstract class Checkpoint extends ColShape {
readonly isStreamedIn: boolean;
checkpointType: number;
radius: number;
height: number;
color: altShared.RGBA;
iconColor: altShared.RGBA;
nextPos: altShared.IVector3;
readonly streamingDistance: number;
visible: boolean;
isEntityIn(entity: Entity): boolean;
isEntityIdIn(id: number): boolean;
isPointIn(point: altShared.Vector3): boolean;
meta: CheckpointMeta & Record<string, unknown>;
syncedMeta: altShared.CheckpointSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.CheckpointStreamSyncedMeta & Record<string, unknown>;
public onCreate?(opts: CheckpointCreateOptions): void;
public onDestroy?(): void;
static readonly all: ReadonlyArray<Checkpoint>;
static create(opts: CheckpointCreateOptions): Checkpoint;
static getByID(id: number): Checkpoint | null;
static setFactory(factory: typeof Checkpoint): void;
static getFactory<T extends Checkpoint>(): T;
}
export abstract class Entity extends WorldObject {
get model(): number;
netOwner?: Player;
rot: altShared.Vector3;
visible: boolean;
streamed: boolean;
frozen: boolean;
collision: boolean;
streamingDistance: number;
readonly timestamp: number;
meta: EntityMeta & Record<string, unknown>;
syncedMeta: altShared.EntitySyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.EntityStreamSyncedMeta & Record<string, unknown>;
setNetOwner(player: Player, disableMigration: boolean): void;
resetNetOwner(disableMigration: boolean): void;
attachTo(target: Entity, otherBoneId: number | string, boneId: number | string, pos: altShared.IVector3, rot: altShared.IVector3, collision: boolean, noFixedRot: boolean): void;
detach(): void;
static readonly all: ReadonlyArray<Entity>;
}
export class Metric {
readonly name: string;
value: bigint;
readonly valid: boolean;
constructor(name: string, type?: altShared.Enums.MetricType);
add(value: bigint | number): void;
inc(): void;
begin(): void;
end(): void;
destroy(): void;
}
export interface ObjectCreateOptions {
model: number | string;
pos: altShared.IVector3;
rot?: altShared.IVector3; // default: { x: 0, y: 0, z: 0 }
alpha?: number; // default: 255
textureVariation?: number; // default: 0
lodDistance?: number; // default: 100
streamingDistance?: number; // default: 0
initialMeta?: Partial<{
meta: ObjectMeta & Record<string, unknown>;
syncedMeta: altShared.ObjectSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.ObjectStreamSyncedMeta & Record<string, unknown>;
}>;
}
export abstract class Object extends Entity {
alpha: number;
textureVariation: number;
lodDistance: number;
activatePhysics(): void;
placeOnGroundProperly(): void;
meta: ObjectMeta & Record<string, unknown>;
syncedMeta: altShared.ObjectSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.ObjectStreamSyncedMeta & Record<string, unknown>;
public onCreate?(opts: ObjectCreateOptions): void;
public onDestroy?(): void;
static readonly all: ReadonlyArray<Object>;
static getByID(id: number): Object | null;
static create(opts: ObjectCreateOptions): Object;
static setFactory(factory: typeof Object): void;
static getFactory<T extends Object>(): T;
}
export interface PedCreateOptions {
model: number | string;
pos: altShared.IVector3;
heading?: number; // default: 0
streamingDistance?: number; // default: 0
initialMeta?: Partial<{
meta: PedMeta & Record<string, unknown>;
syncedMeta: altShared.PedSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.PedStreamSyncedMeta & Record<string, unknown>;
}>;
}
export abstract class Ped extends Entity {
health: number;
maxHealth: number;
armour: number;
currentWeapon: number;
meta: PedMeta & Record<string, unknown>;
syncedMeta: altShared.PedSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.PedStreamSyncedMeta & Record<string, unknown>;
public onCreate?(opts: PedCreateOptions): void;
public onDestroy?(): void;
static getByID(id: number): Ped | null;
static create(opts: PedCreateOptions): Ped;
static readonly all: ReadonlyArray<Ped>;
static setFactory(factory: typeof Ped): void;
static getFactory<T extends Ped>(): T;
}
export class Player extends Entity {
readonly name: string;
readonly ip: string;
readonly socialID: bigint;
readonly socialClubName: string;
readonly hwidHash: bigint;
readonly hwidExHash: bigint;
readonly cloudID: string;
readonly cloudAuthResult: altShared.Enums.CloudAuthResult;
readonly isConnected: boolean;
readonly ping: number;
readonly authToken: string;
readonly discordID: number;
get model(): number;
set model(value: number | string);
armour: number;
maxArmour: number;
health: number;
maxHealth: number;
invincible: boolean;
readonly currentWeaponComponents: ReadonlyArray<number>;
readonly currentWeaponTintIndex: number;
get currentWeapon(): number;
set currentWeapon(value: number | string);
readonly isDead: boolean;
readonly isJumping: boolean;
readonly isInRagdoll: boolean;
readonly isAiming: boolean;
readonly isShooting: boolean;
readonly isReloading: boolean;
readonly isEnteringVehicle: boolean;
readonly isLeavingVehicle: boolean;
readonly isOnLadder: boolean;
readonly isInMelee: boolean;
readonly isInCover: boolean;
readonly isParachuting: boolean;
readonly moveSpeed: number;
readonly aimPos: altShared.Vector3;
readonly headRotation: altShared.Vector3;
readonly isInVehicle: boolean;
readonly vehicle?: Vehicle;
readonly seat: number;
readonly entityAimingAt: Entity;
readonly entityAimOffset: altShared.Vector3;
readonly isFlashlightActive: boolean;
readonly isSuperJumpEnabled: boolean;
readonly isCrouching: boolean;
readonly isStealthy: boolean;
readonly currentAnimationDict: number;
readonly currentAnimationName: number;
readonly isSpawned: boolean;
readonly forwardSpeed: number;
readonly strafeSpeed: number;
headBlendData: altShared.Appearance.HeadBlendData;
eyeColor: number;
hairColor: number;
hairHighlightColor: number;
readonly weapons: ReadonlyArray<altShared.WeaponInfo>;
readonly interiorLocation: number;
readonly lastDamagedBodyPart: number;
sendNames: boolean;
readonly streamedEntities: ReadonlyArray<StreamedInPlayerEntities>;
readonly cloudAuthHash: string;
netOwnershipDisabled: boolean;
bloodDamageBase64: string;
emit<E extends keyof altShared.Events.CustomServerToPlayerEvent>(event: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
emit<E extends string>(event: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
emitRaw<E extends keyof altShared.Events.CustomServerToPlayerEvent>(event: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
emitRaw<E extends string>(event: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
emitUnreliable<E extends keyof altShared.Events.CustomServerToPlayerEvent>(event: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
emitUnreliable<E extends string>(event: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
emitUnreliableRaw<E extends keyof altShared.Events.CustomServerToPlayerEvent>(event: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
emitUnreliableRaw<E extends string>(event: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
spawn(pos: altShared.IVector3, delay?: number): void;
despawn(): void;
setWeaponTintIndex(weaponHash: number | string, tintIndex: number): void;
addWeaponComponent(weaponHash: number | string, componentHash: number | string): void;
getWeaponTintIndex(weaponHash: number | string): number | undefined;
hasWeaponComponent(weaponHash: number | string, componentHash: number | string): boolean;
removeWeaponComponent(weaponHash: number | string, componentHash: number | string): void;
clearBloodDamage(): void;
giveWeapon(weaponHash: number | string, ammo: number, selectWeapon?: boolean): void;
removeWeapon(weaponHash: number | string): void;
removeAllWeapons(): void;
setDateTime(day: number, month: number, year: number, hour: number, minute: number, second: number): void;
setWeather(weather: number): void;
kick(reason?: string): void;
getClothes(componentId: number): altShared.Appearance.Clothing;
setClothes(componentId: number, drawable: number, texture: number, palette?: number): boolean;
getDlcClothes(componentId: number): altShared.Appearance.DlcClothing;
setDlcClothes(componentId: number, drawable: number, texture: number, palette: number, dlc: number): boolean;
clearClothes(componentId: number): boolean;
getProp(componentId: number): altShared.Appearance.Prop;
setProp(componentId: number, drawable: number, texture: number): boolean;
getDlcProp(componentId: number): altShared.Appearance.DlcProp;
setDlcProp(componentId: number, drawable: number, texture: number, dlc: number): boolean;
clearProp(componentId: number): void;
isEntityInStreamingRange(entity: Entity | number): boolean;
setIntoVehicle(vehicle: Vehicle, seat: number): void;
playAmbientSpeech(speechName: string, speechParam: string, speechDictHash: number): void;
setHeadOverlay(overlayId: number, index: number, opacity: number): boolean;
removeHeadOverlay(overlayId: number): boolean;
setHeadOverlayColor(overlayId: number, colorType: number, colorIndex: number, secondColorIndex: number): boolean;
getHeadOverlay(overlayId: number): altShared.Appearance.HeadOverlay | undefined;
setFaceFeature(index: number, scale: number): boolean;
getFaceFeature(index: number): number;
removeFaceFeature(index: number): boolean;
setHeadBlendPaletteColor(id: number, colorOrRed: altShared.RGBA | number, green?: number, blue?: number): boolean;
getHeadBlendPaletteColor(id: number): altShared.RGBA;
removeHeadBlendPaletteColor(): void;
playAnimation(animDict: string, animName: string, blendInSpeed?: number, blendOutSpeed?: number, duration?: number, flag?: number, playbackRate?: number, lockX?: boolean, lockY?: boolean, lockZ?: boolean): void;
clearTasks(): void;
hasWeapon(weaponHash: number | string): boolean;
getAmmo(ammoHash: number | string): number | undefined;
setAmmo(ammoHash: number | string, ammo: number): void;
getWeaponAmmo(weaponHash: number | string): number | undefined;
setWeaponAmmo(weaponHash: number | string, ammo: number): void;
getAmmoSpecialType(ammoHash: number | string): number;
setAmmoSpecialType(ammoHash: number | string, specialType: altShared.Enums.AmmoSpecialType): void;
getAmmoFlags(ammoHash: number | string): altShared.AmmoData;
setAmmoFlags(flags: altShared.AmmoData & { ammoHash: string }): void;
getAmmoMax(ammoHash: number | string): number | undefined;
setAmmoMax(ammoHash: number | string, ammo: number): void;
getAmmoMax50(ammoHash: number | string): number | undefined;
setAmmoMax50(ammoHash: number | string, ammo: number): void;
getAmmoMax100(ammoHash: number | string): number | undefined;
setAmmoMax100(ammoHash: number | string, ammo: number): void;
addDecoration(collection: number | string, overlay: number | string, count?: number): void;
removeDecoration(collection: number | string, overlay: number | string): void;
clearDecorations(): void;
getDecorations(): ReadonlyArray<{ collection: number; overlay: number; count: number }>;
playScenario(name: string): void;
sendRPC<E extends keyof altShared.RPC.CustomServerToPlayerRpcEvent>(rpcName: E, ...args: Parameters<altShared.RPC.CustomServerToPlayerRpcEvent[E]>): Promise<ReturnType<altShared.RPC.CustomServerToPlayerRpcEvent[E]>>;
sendRPC<E extends string>(rpcName: Exclude<E, keyof altShared.RPC.CustomServerToPlayerRpcEvent>, ...args: unknown[]): Promise<any>;
meta: PlayerMeta & Record<string, unknown>;
localMeta: PlayerLocalMeta & Record<string, unknown>;
syncedMeta: altShared.PlayerSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.PlayerStreamSyncedMeta & Record<string, unknown>;
static readonly all: ReadonlyArray<Player>;
static getByID(id: number): Player | null;
static setFactory(factory: typeof Player): void;
static getFactory<T extends Player>(): T;
}
export abstract class Resource extends altShared.Resource {
readonly clientType: string;
readonly clientMain: string;
readonly clientFiles: ReadonlyArray<string>;
readonly requiredPermissions: ReadonlyArray<altShared.Enums.Permission>;
readonly optionalPermissions: ReadonlyArray<altShared.Enums.Permission>;
getMatchedFiles(pattern: string): ReadonlyArray<string>;
static start(resourceName: string): void;
static stop(resourceName: string): void;
static restart(resourceName: string): void;
}
export interface VehicleCreateOptions {
model: number | string;
pos: altShared.IVector3;
rot?: altShared.IVector3; // default: { x: 0, y: 0, z: 0 }
streamingDistance?: number; // default: 0
initialMeta?: Partial<{
meta: VehicleMeta & Record<string, unknown>;
syncedMeta: altShared.VehicleSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.VehicleStreamSyncedMeta & Record<string, unknown>;
}>;
}
export abstract class Vehicle extends Entity {
neon: altShared.VehicleNeonState;
readonly driver?: Player;
readonly isDestroyed: boolean;
readonly modKitsCount: number;
readonly IsPrimaryColorRGB: boolean;
readonly primaryColorRGB: altShared.RGBA;
readonly isSecondaryColorRGB: boolean;
readonly secondaryColorRGB: altShared.RGBA;
readonly isTireSmokeColorCustom: boolean;
readonly wheelType: number;
readonly wheelVariation: number;
readonly isNeonActive: boolean;
readonly isHandbrakeActive: boolean;
readonly isSirenActive: boolean;
readonly isDaylightOn: boolean;
readonly isNightlightOn: boolean;
readonly isFlamethrowerActive: boolean;
readonly wheelsCount: number;
readonly repairsCount: number;
readonly hasArmoredWindows: boolean;
readonly isManualEngineControl: boolean;
readonly velocity: altShared.Vector3;
readonly steeringAngle: number;
readonly passengers: Readonly<{ [seat: string]: Player }>;
rearWheelVariation: number;
modKit: number;
primaryColor: number;
customPrimaryColor: altShared.RGBA;
secondaryColor: number;
customSecondaryColor: altShared.RGBA;
pearlColor: number;
wheelColor: number;
interiorColor: number;
dashboardColor: number;
tireSmokeColor: altShared.RGBA;
customTires: boolean;
specialDarkness: number;
numberplateIndex: number;
numberplateText: string;
windowTint: number;
dirtLevel: number;
neonColor: altShared.RGBA;
livery: number;
roofLivery: number;
appearanceDataBase64: string;
engineOn: boolean;
headlightColor: number;
radioStationIndex: number;
sirenActive: boolean;
lockState: altShared.Enums.VehicleLockState;
roofState: number;
lightsMultiplier: number;
engineHealth: number;
petrolTankHealth: number;
bodyHealth: number;
bodyAdditionalHealth: number;
manualEngineControl: boolean;
damageDataBase64: string;
scriptDataBase64: string;
gameStateBase64: string;
healthDataBase64: string;
attached?: Vehicle;
attachedTo?: Vehicle;
driftMode: boolean;
isMissionTrain: boolean;
trainTrackId: number;
trainEngine?: Vehicle;
trainConfigIndex: number;
hasTrainEngine: boolean;
isTrainCaboose: boolean;
trainDirection: boolean;
hasTrainPassengerCarriages: boolean;
trainRenderDerailed: boolean;
trainForceDoorsOpen: boolean;
trainCruiseSpeed: number;
trainCarriageConfigIndex: number;
trainLinkedToBackward?: Vehicle;
trainLinkedToForward?: Vehicle;
trainUnk1: boolean;
trainUnk2: boolean;
trainUnk3: boolean;
boatAnchorActive: boolean;
lightState: number;
readonly hasTimedExplosion: boolean;
readonly timedExplosionCulprit?: Player;
readonly timedExplosionTime: number;
towingDisabled: boolean;
rocketRefuelSpeed: number;
counterMeasureCount: number;
scriptMaxSpeed: number;
hybridExtraActive: boolean;
hybridExtraState: number;
quaternion: altShared.Quaternion;
readonly isHornActive: boolean;
readonly accelerationLevel: number;
readonly brakeLevel: number;
setNeonActive(neons: Partial<altShared.VehicleNeonState>): void;
getNeonActive(): altShared.VehicleNeonState;
getMod(category: number): number;
getModsCount(category: number): number;
isExtraOn(extraId: number): boolean;
getDoorState(doorId: number): number;
isWindowOpened(windowId: number): boolean;
isWheelBurst(wheelId: number): boolean;
getWheelHasTire(wheelId: number): boolean;
isWheelDetached(wheelId: number): boolean;
isWheelOnFire(wheelId: number): boolean;
getWheelHealth(wheelId: number): number;
getPartDamageLevel(partId: altShared.Enums.VehiclePart): altShared.Enums.VehiclePartDamage;
getPartBulletHoles(partId: number): number;
isLightDamaged(lightId: number): boolean;
isWindowDamaged(windowId: number): boolean;
isSpecialLightDamaged(specialLightId: number): boolean;
getArmoredWindowHealth(windowId: number): number;
getArmoredWindowShootCount(windowId: number): number;
getBumperDamageLevel(bumperId: number): number;
toggleExtra(extraId: number, state: boolean): void;
repair(): void;
setMod(category: number, id: number): boolean;
setWheels(type: number, variation: number): void;
setDoorState(doorId: number, state: number): void;
setWindowOpened(windowId: number, state: boolean): void;
setWheelBurst(wheelId: number, state: boolean): void;
setWheelDetached(wheelId: number, state: boolean): void;
setWheelOnFire(wheelId: number, state: boolean): void;
setWheelHealth(wheelId: number, health: number): void;
setWheelFixed(wheelId: number): void;
setWheelHasTire(wheelId: number, state: boolean): void;
setPartDamageLevel(partId: altShared.Enums.VehiclePart, damage: altShared.Enums.VehiclePartDamage): void;
setPartBulletHoles(partId: number, shootsCount: number): void;
setLightDamaged(lightId: number, isDamaged: boolean): void;
setWindowDamaged(windowId: number, isDamaged: boolean): void;
setSpecialLightDamaged(specialLightId: number, isDamaged: boolean): void;
setArmoredWindowHealth(windowId: number, health: number): void;
setArmoredWindowShootCount(windowId: number, count: number): void;
setBumperDamageLevel(bumperId: number, damageLevel: number): void;
setSearchLight(state: number, spottedEntity: Entity): boolean;
setTimedExplosion(state: boolean, culprit: Player, time: number): void;
getWeaponCapacity(index: number): number;
setWeaponCapacity(index: number, state: number): void;
setBadge(textureDictionary: string | number, texture: string | number, pos: VehicleBadgePosition, pos2?: VehicleBadgePosition, pos3?: VehicleBadgePosition, pos4?: VehicleBadgePosition): void;
meta: VehicleMeta & Record<string, unknown>;
syncedMeta: altShared.VehicleSyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.VehicleStreamSyncedMeta & Record<string, unknown>;
public onCreate?(opts: VehicleCreateOptions): void;
public onDestroy?(): void;
static getByID(id: number): Vehicle | null;
static create(opts: VehicleCreateOptions): Vehicle;
static all: ReadonlyArray<Vehicle>;
static setFactory(factory: typeof Vehicle): void;
static getFactory<T extends Vehicle>(): T;
}
export interface VehicleBadgePosition {
active?: boolean; // default: false
alpha?: number; // default: 255
size?: number; // default: 1
boneIndex?: number; // default: 0
offset?: altShared.Vector3; // default: { x: 0, y: 0, z: 0 }
direction?: altShared.Vector3; // default: { x: 0, y: 0, z: 0 }
side?: altShared.Vector3; // default: { x: 0, y: 0, z: 0 }
}
export interface VirtualEntityCreateOptions {
group: VirtualEntityGroup;
pos: altShared.IVector3;
streamingDistance: number;
data?: altShared.VirtualEntityStreamSyncedMeta & Record<string, unknown>;
initialMeta?: Partial<{
meta: VirtualEntityMeta & Record<string, unknown>;
// syncedMeta: altShared.VirtualEntitySyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.VirtualEntityStreamSyncedMeta & Record<string, unknown>;
}>;
}
export abstract class VirtualEntityGroup extends BaseObject {
readonly maxEntitiesInStream: number;
static readonly all: ReadonlyArray<VirtualEntityGroup>;
public onCreate?(opts: altShared.VirtualEntityGroupCreateOptions): void;
public onDestroy?(): void;
static create(opts: altShared.VirtualEntityGroupCreateOptions): VirtualEntityGroup;
static setFactory(factory: typeof VirtualEntityGroup): void;
static getFactory<T extends VirtualEntityGroup>(): T;
static getByID(id: number): VirtualEntityGroup | null;
}
export abstract class VirtualEntity extends WorldObject {
readonly isStreamedIn: boolean;
readonly group: VirtualEntityGroup;
readonly streamingDistance: number;
visible: boolean;
meta: VirtualEntityMeta & Record<string, unknown>;
// syncedMeta: altShared.VirtualEntitySyncedMeta & Record<string, unknown>;
streamSyncedMeta: altShared.VirtualEntityStreamSyncedMeta & Record<string, unknown>;
public setMultipleSyncedMetaData(data: altShared.VirtualEntityStreamSyncedMeta & Record<string, unknown>): void;
public setMultipleStreamSyncedMetaData(data: altShared.VirtualEntityStreamSyncedMeta & Record<string, unknown>): void;
public onCreate?(opts: VirtualEntityCreateOptions): void;
public onDestroy?(): void;
static readonly all: ReadonlyArray<VirtualEntity>;
static getByID(id: number): VirtualEntity | null;
static create(opts: VirtualEntityCreateOptions): VirtualEntity;
static setFactory(factory: typeof VirtualEntity): void;
static getFactory<T extends VirtualEntity>(): T;
}
export interface VoiceChannelCreateOptions {
spatial: boolean;
maxDistance?: number;
initialMeta?: Partial<{
meta: VoiceChannelMeta & Record<string, unknown>;
}>;
}
export abstract class VoiceChannel extends BaseObject {
readonly isSpatial: boolean;
readonly maxDistance: number;
readonly players: ReadonlyArray<Player>;
readonly playerCount: number;
meta: VoiceChannelMeta & Record<string, unknown>;
/**
Priority of voice channel. If a player is in two channels and both can be heard by another player, only one should play the voice.
Value is of type integer, can be negative.
*/
priority: number;
/**
* Hash of the filter name (should also be created on clientside).
* See docs: [Audio filters](https://docs.altv.mp/articles/audio_filters.html), [Voice](https://docs.altv.mp/articles/voice.html).
*/
filter: number;
hasPlayer(player: Player): boolean;
addPlayer(player: Player): void;
removePlayer(player: Player): void;
isPlayerMuted(player: Player): boolean;
mutePlayer(player: Player): void;
unmutePlayer(player: Player): void;
public onCreate?(opts: VoiceChannelCreateOptions): void;
public onDestroy?(): void;
static readonly all: ReadonlyArray<VoiceChannel>;
static create(opts: VoiceChannelCreateOptions): VoiceChannel;
static setFactory(factory: typeof VoiceChannel): void;
static getFactory<T extends VoiceChannel>(): T;
}
export abstract class WorldObject extends BaseObject {
dimension: number;
pos: altShared.Vector3;
}
export interface BoneInfo {
id: number;
index: number;
name: string;
}
export interface PedModelInfo {
hash: number;
name: string;
type: string;
dlcName: string;
defaultUnarmedWeapon: string;
movementClipSet: string;
bones: BoneInfo[];
}
export interface VehicleModelInfo {
model: number;
modelHash: number;
title: string;
modelType: altShared.Enums.VehicleModelType;
wheelsCount: number;
hasArmoredWindows: boolean;
primaryColor: number;
secondaryColor: number;
pearlColor: number;
wheelsColor: number;
interiorColor: number;
dashboardColor: number;
modkits: number[];
extras: number;
defaultExtras: number;
hasAutoAttachTrailer: boolean;
bones: BoneInfo[];
canAttachCars: boolean;
handlingNameHash: number;
doesExtraExist(extraId: number): boolean | undefined;
isExtraDefault(extraId: number): boolean | undefined;
}
export interface WeaponModelInfo {
hash: number;
name: string;
model: string;
modelHash: number;
ammoTypeHash: number;
ammoType: string;
ammoModelHash: number;
ammoModelName: string;
defaultMaxAmmoMp: number;
skillAbove50MaxAmmoMp: number;
maxSkillMaxAmmoMp: number;
bonusMaxAmmoMp: number;
}
export namespace Streaming {
export let maxStreamingPeds: number;
export let maxStreamingObjects: number;
export let maxStreamingVehicles: number;
export let streamerThreadCount: number;
export let streamingTickRate: number;
export let streamingDistance: number;
export let migrationThreadCount: number;
export let migrationTickRate: number;
export let migrationDistance: number;
export let colShapeTickRate: number;
export let syncReceiveThreadCount: number;
export let syncSendThreadCount: number;
}
export namespace PedModelInfo {
export function get(modelHash: number | string): PedModelInfo | undefined;
}
export namespace VehicleModelInfo {
export function get(modelHash: number | string): VehicleModelInfo | undefined;
export const loadedVehicleModels: ReadonlyArray<number>;
}
export namespace WeaponModelInfo {
export function get(weaponHash: number | string): WeaponModelInfo | undefined;
}
export abstract class RPCHandler {
public readonly name: string;
public readonly handler: (player: Player, ...args: unknown[]) => Promise<any> | any;
public readonly valid: boolean;
public destroy(): void;
}
export namespace RPC {
export type CustomPlayerRpcEventHandler<T extends unknown[], U extends Player = Player, V = unknown> = (player: U, ...args: T) => Promise<V> | V;
export function register<U extends Player, E extends keyof altShared.RPC.CustomPlayerToServerRpcEvent = keyof altShared.RPC.CustomPlayerToServerRpcEvent>(
rpcName: E,
handler: CustomPlayerRpcEventHandler<Parameters<altShared.RPC.CustomPlayerToServerRpcEvent[E]>, U, ReturnType<altShared.RPC.CustomPlayerToServerRpcEvent[E]>>
): RPCHandler;
export function register<U extends Player, E extends string = string>(rpcName: Exclude<E, keyof altShared.RPC.CustomPlayerToServerRpcEvent>, handler: CustomPlayerRpcEventHandler<any[], U>): RPCHandler;
}
export abstract class ConnectionInfo {
readonly name: string;
readonly socialID: bigint;
readonly cloudID: string;
readonly cloudAuthResult: altShared.Enums.CloudAuthResult;
readonly socialClubName: string;
readonly hwidHash: bigint;
readonly hwidExHash: bigint;
readonly authToken: string;
readonly versionMajor: number;
readonly versionMinor: number;
readonly branch: string;
readonly build: number;
readonly cdnUrl: string;
readonly passwordHash: number;
readonly ip: string;
readonly discordUserID: number;
readonly isAccepted: boolean;
text: string;
accept(sendNames?: boolean): void;
decline(reason: string): void;
// TODO (xLuxy): Missing
// static readonly all: ReadonlyArray<ConnectionInfo>;
static getByID(id: number): ConnectionInfo | undefined;
static setFactory(factory: typeof ConnectionInfo): void;
static getFactory<T extends ConnectionInfo>(): T;
}
export namespace Events {
export let rawEmitEnabled: boolean;
export function emit<E extends keyof CustomServerEvent>(event: E, ...args: Parameters<CustomServerEvent[E]>): void;
export function emit<E extends string>(event: Exclude<E, keyof CustomServerEvent>, ...args: unknown[]): void;
export function emitRaw<E extends keyof CustomServerEvent>(event: E, ...args: Parameters<CustomServerEvent[E]>): void;
export function emitRaw<E extends string>(event: Exclude<E, keyof CustomServerEvent>, ...args: unknown[]): void;
export function emitPlayers<E extends keyof altShared.Events.CustomServerToPlayerEvent>(players: Player[], eventName: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
export function emitPlayers<E extends string>(players: Player[], eventName: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
export function emitPlayersUnreliable<E extends keyof altShared.Events.CustomServerToPlayerEvent>(players: Player[], eventName: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
export function emitPlayersUnreliable<E extends string>(players: Player[], eventName: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
export function emitAllPlayers<E extends keyof altShared.Events.CustomServerToPlayerEvent>(eventName: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
export function emitAllPlayers<E extends string>(eventName: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
export function emitAllPlayersRaw<E extends keyof altShared.Events.CustomServerToPlayerEvent>(eventName: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
export function emitAllPlayersRaw<E extends string>(eventName: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
export function emitAllPlayersUnreliable<E extends keyof altShared.Events.CustomServerToPlayerEvent>(eventName: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
export function emitAllPlayersUnreliable<E extends string>(eventName: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
export function emitAllPlayersUnreliableRaw<E extends keyof altShared.Events.CustomServerToPlayerEvent>(eventName: E, ...args: Parameters<altShared.Events.CustomServerToPlayerEvent[E]>): void;
export function emitAllPlayersUnreliableRaw<E extends string>(eventName: Exclude<E, keyof altShared.Events.CustomServerToPlayerEvent>, ...args: unknown[]): void;
// RPC related events
export function onScriptRPC<T extends Player>(callback: GenericPlayerEventCallback<ScriptRPCEventParameters, T>): altShared.Events.EventHandler;
export function onceScriptRPC<T extends Player>(callback: GenericPlayerEventCallback<ScriptRPCEventParameters, T>): altShared.Events.EventHandler;
export function onScriptRPCAnswer<T extends Player>(callback: GenericPlayerEventCallback<ScriptRPCAnswerEventParameters, T>): altShared.Events.EventHandler;
export function onceScriptRPCAnswer<T extends Player>(callback: GenericPlayerEventCallback<ScriptRPCAnswerEventParameters, T>): altShared.Events.EventHandler;
// Server related events
export function onServerStarted(callback: GenericEventCallback): altShared.Events.EventHandler;
export function onceServerStarted(callback: GenericEventCallback): altShared.Events.EventHandler;
// Connection queue related events
export function onConnectionQueueAdd(callback: GenericEventCallback<ConnectionQueueEventParameters>): altShared.Events.EventHandler;
export function onceConnectionQueueAdd(callback: GenericEventCallback<ConnectionQueueEventParameters>): altShared.Events.EventHandler;
export function onConnectionQueueRemove(callback: GenericEventCallback<ConnectionQueueEventParameters>): altShared.Events.EventHandler;
export function onceConnectionQueueRemove(callback: GenericEventCallback<ConnectionQueueEventParameters>): altShared.Events.EventHandler;
// Player related events
export function onPlayerConnect<T extends Player>(callback: GenericPlayerEventCallback<PlayerConnectEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerConnect<T extends Player>(callback: GenericPlayerEventCallback<PlayerConnectEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerConnectDenied(callback: GenericEventCallback<PlayerConnectDeniedEventParameters>): altShared.Events.EventHandler;
export function oncePlayerConnectDenied(callback: GenericEventCallback<PlayerConnectDeniedEventParameters>): altShared.Events.EventHandler;
export function onPlayerDisconnect<T extends Player>(callback: GenericPlayerEventCallback<PlayerDisconnectEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerDisconnect<T extends Player>(callback: GenericPlayerEventCallback<PlayerDisconnectEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerDamage<T extends Player>(callback: GenericPlayerEventCallback<PlayerDamageEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerDamage<T extends Player>(callback: GenericPlayerEventCallback<PlayerDamageEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerDeath<T extends Player>(callback: GenericPlayerEventCallback<PlayerDeathEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerDeath<T extends Player>(callback: GenericPlayerEventCallback<PlayerDeathEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerHeal<T extends Player>(callback: GenericPlayerEventCallback<PlayerHealEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerHeal<T extends Player>(callback: GenericPlayerEventCallback<PlayerHealEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerControlRequest<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerControlRequestEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerControlRequest<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerControlRequestEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerInteriorChange<T extends Player>(callback: GenericPlayerEventCallback<PlayerInteriorChangeEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerInteriorChange<T extends Player>(callback: GenericPlayerEventCallback<PlayerInteriorChangeEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerDimensionChange<T extends Player>(callback: GenericPlayerEventCallback<PlayerDimensionChangeEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerDimensionChange<T extends Player>(callback: GenericPlayerEventCallback<PlayerDimensionChangeEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerWeaponChange<T extends Player>(callback: GenericPlayerEventCallback<PlayerWeaponChangeEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerWeaponChange<T extends Player>(callback: GenericPlayerEventCallback<PlayerWeaponChangeEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerSyncedSceneRequest(callback: GenericCancellableEventCallback<PlayerSyncedSceneRequestEventParameters>): altShared.Events.EventHandler;
export function oncePlayerSyncedSceneRequest(callback: GenericCancellableEventCallback<PlayerSyncedSceneRequestEventParameters>): altShared.Events.EventHandler;
export function onPlayerSyncedSceneStart<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerSyncedSceneStartEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerSyncedSceneStart<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerSyncedSceneStartEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerSyncedSceneStop<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerSyncedSceneStopEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerSyncedSceneStop<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerSyncedSceneStopEventParameters, T>): altShared.Events.EventHandler;
export function onPlayerSyncedSceneUpdate<T extends Player>(callback: GenericCancellablePlayerEventCallback<PlayerSyncedSceneUpdateEventParameters, T>): altShared.Events.EventHandler;
export function oncePlayerSyncedSceneUpdate<T extends Player>(callback: GenericCancellablePlayerEv