import type { RPCNativeClientEvents, RPCNativeServerEvents } from './types' // Server and client lists are built from an object that must name exactly the // keys of the typed event map, so the list and the types cannot drift apart. const serverEvents = { entityCreated: true, entityCreating: true, entityRemoved: true, onResourceListRefresh: true, onResourceStart: true, onResourceStarting: true, onResourceStop: true, onServerResourceStart: true, onServerResourceStop: true, playerConnecting: true, playerEnteredScope: true, playerJoining: true, playerLeftScope: true, ptFxEvent: true, removeAllWeaponsEvent: true, startProjectileEvent: true, weaponDamageEvent: true, } satisfies Record /** * Events `onNativeEvent` accepts on the server: * https://docs.fivem.net/docs/scripting-reference/events/server-events/ */ export const NATIVE_SERVER_EVENTS = Object.keys( serverEvents, ) as readonly (keyof RPCNativeServerEvents)[] const clientEvents = { entityDamaged: true, gameEventTriggered: true, mumbleConnected: true, mumbleDisconnected: true, onClientResourceStart: true, onClientResourceStop: true, onResourceStart: true, onResourceStarting: true, onResourceStop: true, populationPedCreating: true, } satisfies Record /** * Events `onNativeEvent` accepts on the client: * https://docs.fivem.net/docs/scripting-reference/events/client-events/ */ export const NATIVE_CLIENT_EVENTS = Object.keys( clientEvents, ) as readonly (keyof RPCNativeClientEvents)[] /** * Events `onNativeNetworkEvent` accepts on the client: * https://docs.fivem.net/docs/game-references/game-events/ * * Source of truth for `RPCNativeClientNetworkEventsNames`. */ export const NATIVE_CLIENT_NETWORK_EVENTS = [ 'CEventAcquaintancePed', 'CEventAcquaintancePedDead', 'CEventAcquaintancePedDislike', 'CEventAcquaintancePedHate', 'CEventAcquaintancePedLike', 'CEventAcquaintancePedWanted', 'CEventAgitated', 'CEventAgitatedAction', 'CEventCallForCover', 'CEventCarUndriveable', 'CEventClimbLadderOnRoute', 'CEventClimbNavMeshOnRoute', 'CEventCombatTaunt', 'CEventCommunicateEvent', 'CEventCopCarBeingStolen', 'CEventCrimeCryForHelp', 'CEventCrimeReported', 'CEventDamage', 'CEventDataDecisionMaker', 'CEventDataFileMounter', 'CEventDataResponseAggressiveRubberneck', 'CEventDataResponseDeferToScenarioPointFlags', 'CEventDataResponseFriendlyAimedAt', 'CEventDataResponseFriendlyNearMiss', 'CEventDataResponsePlayerDeath', 'CEventDataResponsePoliceTaskWanted', 'CEventDataResponseSwatTaskWanted', 'CEventDataResponseTask', 'CEventDataResponseTaskAgitated', 'CEventDataResponseTaskCombat', 'CEventDataResponseTaskCower', 'CEventDataResponseTaskCrouch', 'CEventDataResponseTaskDuckAndCover', 'CEventDataResponseTaskEscapeBlast', 'CEventDataResponseTaskEvasiveStep', 'CEventDataResponseTaskExhaustedFlee', 'CEventDataResponseTaskExplosion', 'CEventDataResponseTaskFlee', 'CEventDataResponseTaskFlyAway', 'CEventDataResponseTaskGrowlAndFlee', 'CEventDataResponseTaskGunAimedAt', 'CEventDataResponseTaskHandsUp', 'CEventDataResponseTaskHeadTrack', 'CEventDataResponseTaskLeaveCarAndFlee', 'CEventDataResponseTaskScenarioFlee', 'CEventDataResponseTaskSharkAttack', 'CEventDataResponseTaskShockingEventBackAway', 'CEventDataResponseTaskShockingEventGoto', 'CEventDataResponseTaskShockingEventHurryAway', 'CEventDataResponseTaskShockingEventReact', 'CEventDataResponseTaskShockingEventReactToAircraft', 'CEventDataResponseTaskShockingEventStopAndStare', 'CEventDataResponseTaskShockingEventThreatResponse', 'CEventDataResponseTaskShockingEventWatch', 'CEventDataResponseTaskShockingNiceCar', 'CEventDataResponseTaskShockingPoliceInvestigate', 'CEventDataResponseTaskThreat', 'CEventDataResponseTaskTurnToFace', 'CEventDataResponseTaskWalkAway', 'CEventDataResponseTaskWalkRoundEntity', 'CEventDataResponseTaskWalkRoundFire', 'CEventDeadPedFound', 'CEventDeath', 'CEventDecisionMakerResponse', 'CEventDisturbance', 'CEventDraggedOutCar', 'CEventEditableResponse', 'CEventEncroachingPed', 'CEventEntityDamaged', 'CEventEntityDestroyed', 'CEventExplosion', 'CEventExplosionHeard', 'CEventFireNearby', 'CEventFootStepHeard', 'CEventFriendlyAimedAt', 'CEventFriendlyFireNearMiss', 'CEventGetOutOfWater', 'CEventGivePedTask', 'CEventGroupScriptAI', 'CEventGroupScriptNetwork', 'CEventGunAimedAt', 'CEventGunShot', 'CEventGunShotBulletImpact', 'CEventGunShotWhizzedBy', 'CEventHelpAmbientFriend', 'CEventHurtTransition', 'CEventInAir', 'CEventInfo', 'CEventInfoBase', 'CEventInjuredCryForHelp', 'CEventLeaderEnteredCarAsDriver', 'CEventLeaderExitedCarAsDriver', 'CEventLeaderHolsteredWeapon', 'CEventLeaderLeftCover', 'CEventLeaderUnholsteredWeapon', 'CEventMeleeAction', 'CEventMustLeaveBoat', 'CEventNetworkAdminInvited', 'CEventNetworkAttemptHostMigration', 'CEventNetworkBail', 'CEventNetworkCashTransactionLog', 'CEventNetworkCheatTriggered', 'CEventNetworkClanInviteReceived', 'CEventNetworkClanJoined', 'CEventNetworkClanKicked', 'CEventNetworkClanLeft', 'CEventNetworkClanRankChanged', 'CEventNetworkCloudEvent', 'CEventNetworkCloudFileResponse', 'CEventNetworkEmailReceivedEvent', 'CEventNetworkEndMatch', 'CEventNetworkEndSession', 'CEventNetworkEntityDamage', 'CEventNetworkFindSession', 'CEventNetworkFollowInviteReceived', 'CEventNetworkHostMigration', 'CEventNetworkHostSession', 'CEventNetworkIncrementStat', 'CEventNetworkInviteAccepted', 'CEventNetworkInviteConfirmed', 'CEventNetworkInviteRejected', 'CEventNetworkJoinSession', 'CEventNetworkJoinSessionResponse', 'CEventNetworkOnlinePermissionsUpdated', 'CEventNetworkPedLeftBehind', 'CEventNetworkPickupRespawned', 'CEventNetworkPlayerArrest', 'CEventNetworkPlayerCollectedAmbientPickup', 'CEventNetworkPlayerCollectedPickup', 'CEventNetworkPlayerCollectedPortablePickup', 'CEventNetworkPlayerDroppedPortablePickup', 'CEventNetworkPlayerEnteredVehicle', 'CEventNetworkPlayerJoinScript', 'CEventNetworkPlayerLeftScript', 'CEventNetworkPlayerScript', 'CEventNetworkPlayerSession', 'CEventNetworkPlayerSpawn', 'CEventNetworkPresenceInvite', 'CEventNetworkPresenceInviteRemoved', 'CEventNetworkPresenceInviteReply', 'CEventNetworkPresenceTriggerEvent', 'CEventNetworkPresence_StatUpdate', 'CEventNetworkPrimaryClanChanged', 'CEventNetworkRequestDelay', 'CEventNetworkRosChanged', 'CEventNetworkScAdminPlayerUpdated', 'CEventNetworkScAdminReceivedCash', 'CEventNetworkScriptEvent', 'CEventNetworkSessionEvent', 'CEventNetworkShopTransaction', 'CEventNetworkSignInStateChanged', 'CEventNetworkSocialClubAccountLinked', 'CEventNetworkSpectateLocal', 'CEventNetworkStartMatch', 'CEventNetworkStartSession', 'CEventNetworkStorePlayerLeft', 'CEventNetworkSummon', 'CEventNetworkSystemServiceEvent', 'CEventNetworkTextMessageReceived', 'CEventNetworkTimedExplosion', 'CEventNetworkTransitionEvent', 'CEventNetworkTransitionGamerInstruction', 'CEventNetworkTransitionMemberJoined', 'CEventNetworkTransitionMemberLeft', 'CEventNetworkTransitionParameterChanged', 'CEventNetworkTransitionStarted', 'CEventNetworkTransitionStringChanged', 'CEventNetworkVehicleUndrivable', 'CEventNetworkVoiceConnectionRequested', 'CEventNetworkVoiceConnectionResponse', 'CEventNetworkVoiceConnectionTerminated', 'CEventNetworkVoiceSessionEnded', 'CEventNetworkVoiceSessionStarted', 'CEventNetworkWithData', 'CEventNetwork_InboxMsgReceived', 'CEventNewTask', 'CEventObjectCollision', 'CEventOnFire', 'CEventOpenDoor', 'CEventPedCollisionWithPed', 'CEventPedCollisionWithPlayer', 'CEventPedEnteredMyVehicle', 'CEventPedJackingMyVehicle', 'CEventPedOnCarRoof', 'CEventPedSeenDeadPed', 'CEventPlayerCollisionWithPed', 'CEventPlayerDeath', 'CEventPlayerUnableToEnterVehicle', 'CEventPotentialBeWalkedInto', 'CEventPotentialBlast', 'CEventPotentialGetRunOver', 'CEventPotentialWalkIntoVehicle', 'CEventProvidingCover', 'CEventRanOverPed', 'CEventReactionEnemyPed', 'CEventReactionInvestigateDeadPed', 'CEventReactionInvestigateThreat', 'CEventRequestHelp', 'CEventRequestHelpWithConfrontation', 'CEventRespondedToThreat', 'CEventScanner', 'CEventScenarioForceAction', 'CEventScriptCommand', 'CEventScriptWithData', 'CEventShocking', 'CEventShockingBicycleCrash', 'CEventShockingBicycleOnPavement', 'CEventShockingCarAlarm', 'CEventShockingCarChase', 'CEventShockingCarCrash', 'CEventShockingCarOnCar', 'CEventShockingCarPileUp', 'CEventShockingDangerousAnimal', 'CEventShockingDeadBody', 'CEventShockingDrivingOnPavement', 'CEventShockingEngineRevved', 'CEventShockingExplosion', 'CEventShockingFire', 'CEventShockingGunFight', 'CEventShockingGunshotFired', 'CEventShockingHelicopterOverhead', 'CEventShockingHornSounded', 'CEventShockingInDangerousVehicle', 'CEventShockingInjuredPed', 'CEventShockingMadDriver', 'CEventShockingMadDriverBicycle', 'CEventShockingMadDriverExtreme', 'CEventShockingMugging', 'CEventShockingNonViolentWeaponAimedAt', 'CEventShockingParachuterOverhead', 'CEventShockingPedKnockedIntoByPlayer', 'CEventShockingPedRunOver', 'CEventShockingPedShot', 'CEventShockingPlaneFlyby', 'CEventShockingPotentialBlast', 'CEventShockingPropertyDamage', 'CEventShockingRunningPed', 'CEventShockingRunningStampede', 'CEventShockingSeenCarStolen', 'CEventShockingSeenConfrontation', 'CEventShockingSeenGangFight', 'CEventShockingSeenInsult', 'CEventShockingSeenMeleeAction', 'CEventShockingSeenNiceCar', 'CEventShockingSeenPedKilled', 'CEventShockingSiren', 'CEventShockingStudioBomb', 'CEventShockingVehicleTowed', 'CEventShockingVisibleWeapon', 'CEventShockingWeaponThreat', 'CEventShockingWeirdPed', 'CEventShockingWeirdPedApproaching', 'CEventShoutBlockingLos', 'CEventShoutTargetPosition', 'CEventShovePed', 'CEventSoundBase', 'CEventStatChangedValue', 'CEventStaticCountReachedMax', 'CEventStuckInAir', 'CEventSuspiciousActivity', 'CEventSwitch2NM', 'CEventUnidentifiedPed', 'CEventVehicleCollision', 'CEventVehicleDamage', 'CEventVehicleDamageWeapon', 'CEventVehicleOnFire', 'CEventWrithe', ] as const