class Stats
package fivem.client.natives
Static methods
staticGetNgstatBoolHash(index:Int, spStat:Bool, charStat:Bool, character:Int, section:String):Int
Needs more research. Gets the stat name of a masked bool?
section - values used in the decompiled scripts:
"_NGPSTAT_BOOL"
"_NGTATPSTAT_BOOL"
"_NGDLCPSTAT_BOOL"
"_DLCBIKEPSTAT_BOOL"
"_DLCGUNPSTAT_BOOL"
"_GUNTATPSTAT_BOOL"
"_DLCSMUGCHARPSTAT_BOOL"
"_GANGOPSPSTAT_BOOL"
"_BUSINESSBATPSTAT_BOOL"
"_ARENAWARSPSTAT_BOOL"
"_CASINOPSTAT_BOOL"
"_CASINOHSTPSTAT_BOOL"
"_HEIST3TATTOOSTAT_BOOL"staticGetNgstatIntHash(index:Int, spStat:Bool, charStat:Bool, character:Int, section:String):Int
Needs more research. Gets the stat name of a masked int?
section - values used in the decompiled scripts:
"_NGPSTAT_INT"
"_MP_NGPSTAT_INT"
"_MP_LRPSTAT_INT"
"_MP_APAPSTAT_INT"
"_MP_LR2PSTAT_INT"
"_MP_BIKEPSTAT_INT"
"_MP_IMPEXPPSTAT_INT"
"_MP_GUNRPSTAT_INT"
"_NGDLCPSTAT_INT"
"_MP_NGDLCPSTAT_INT"
"_DLCSMUGCHARPSTAT_INT"
"_GANGOPSPSTAT_INT"
"_BUSINESSBATPSTAT_INT"
"_ARENAWARSPSTAT_INT"
"_CASINOPSTAT_INT"
"_CASINOHSTPSTAT_INT"staticHiredLimo(p0:Dynamic, p1:Dynamic):Dynamic
staticLeaderboards2ReadByPlatform(p0:Dynamic, gamerHandleCsv:String, platformName:String):Bool
staticLeaderboardsDeaths(statName:Int, value:Float):Dynamic
staticOrderedBossVehicle(p0:Dynamic, p1:Dynamic, vehicleHash:Int):Dynamic
staticPlaystatsArcadegame(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic):Dynamic
NativeDB Introduced: v1734staticPlaystatsArenaWarSpectator(p0:Int, p1:Int, p2:Int, p3:Int, p4:Int):Dynamic
NativeDB Introduced: v1604staticPlaystatsAwardBadsport(id:Int):Dynamic
staticPlaystatsBanAlert(p0:Int):Dynamic
staticPlaystatsBuyContraband(data:Dynamic):Dynamic
staticPlaystatsCarclubChallenge(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
NativeDB Introduced: v2372staticPlaystatsChangeMcEmblem(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Dynamic
staticPlaystatsCollectible(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic, p6:Dynamic, p7:Dynamic, p8:Dynamic, p9:Dynamic):Dynamic
NativeDB Introduced: v1734staticPlaystatsCopyRankIntoNewSlot(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic, p6:Dynamic):Dynamic
staticPlaystatsDefendContraband(data:Dynamic):Dynamic
staticPlaystatsDirectorMode(p0:Dynamic):Dynamic
staticPlaystatsDupeDetection(data:Dynamic):Dynamic
staticPlaystatsEarnedMcPoints(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic):Dynamic
staticPlaystatsGunrunMissionEnded(data:Dynamic):Dynamic
staticPlaystatsH2InstanceEnd(data:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
NativeDB Introduced: v1290staticPlaystatsPiMenuHideSettings(data:Dynamic):Dynamic
staticPlaystatsRecoverContraband(data:Dynamic):Dynamic
staticPlaystatsSellContraband(data:Dynamic):Dynamic
staticPlaystatsSpentPiCustomLoadout(amount:Int):Dynamic
staticStatGetCancelSaveMigrationStatus():Int
staticStatGetPackedBoolMask(p0:Int):Int
Needs more research. Possibly used to calculate the "mask" when calling "STAT_SET_BOOL_MASKED"? staticStatGetPackedIntMask(p0:Int):Int
Needs more research. Possibly used to calculate the "mask" when calling "STAT_SET_MASKED_INT"? staticStatGetSaveMigrationConsumeContentUnlockStatus(p0:Dynamic):Int
staticStatMigrateSave(platformName:String):Bool
platformName must be one of the following: ps3, xbox360, ps4, xboxonestaticStatSaveMigrationCancel():Bool
staticStatSaveMigrationConsumeContentUnlock(contentId:Int, srcPlatform:String, srcGamerHandle:String):Bool
staticgetPackedBoolStatKey(index:Int, spStat:Bool, charStat:Bool, character:Int):Int
staticgetPackedIntStatKey(index:Int, spStat:Bool, charStat:Bool, character:Int):Int
staticgetPackedTuBoolStatKey(index:Int, spStat:Bool, charStat:Bool, character:Int):Int
staticgetPackedTuIntStatKey(index:Int, spStat:Bool, charStat:Bool, character:Int):Int
staticleaderboards2ReadByHandle(p0:Dynamic, p1:Dynamic):Bool
staticleaderboards2ReadByRadius(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboards2ReadByRank(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboards2ReadByRow(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic, p6:Dynamic):Bool
staticleaderboards2ReadByScoreFloat(p0:Dynamic, p1:Float, p2:Dynamic):Bool
staticleaderboards2ReadByScoreInt(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboards2ReadFriendsByRow(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Bool, p4:Dynamic, p5:Dynamic):Bool
staticleaderboards2ReadRankPrediction(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboards2WriteData(p0:Dynamic):Bool
staticleaderboards2WriteDataForEventType(p0:Dynamic, p1:Dynamic):Bool
staticleaderboardsCacheDataRow(p0:Dynamic):Bool
staticleaderboardsClearCacheData():Dynamic
staticleaderboardsGetCacheDataRow(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboardsGetCacheExists(p0:Dynamic):Bool
staticleaderboardsGetCacheNumberOfRows(p0:Dynamic):Int
staticleaderboardsGetCacheTime(p0:Dynamic):Dynamic
staticleaderboardsGetColumnId(p0:Dynamic, p1:Dynamic, p2:Dynamic):Dynamic
staticleaderboardsGetColumnType(p0:Dynamic, p1:Dynamic, p2:Dynamic):Dynamic
staticleaderboardsGetNumberOfColumns(p0:Dynamic, p1:Dynamic):Dynamic
staticleaderboardsReadAnyPending():Bool
staticleaderboardsReadClear(p0:Dynamic, p1:Dynamic, p2:Dynamic):Dynamic
staticleaderboardsReadClearAll():Dynamic
staticleaderboardsReadPending(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboardsReadSuccessful(p0:Dynamic, p1:Dynamic, p2:Dynamic):Bool
staticleaderboardsWriteAddColumn(p0:Dynamic, p1:Dynamic, p2:Float):Dynamic
staticleaderboardsWriteAddColumnLong(p0:Dynamic, p1:Dynamic, p2:Dynamic):Dynamic
staticplaystatsAcquiredHiddenPackage(p0:Dynamic):Dynamic
staticplaystatsActivityDone(p0:Dynamic, p1:Dynamic):Dynamic
staticplaystatsAwardXp(amount:Int, type:Int, category:Int):Dynamic
staticplaystatsBackgroundScriptAction(action:String, value:Int):Dynamic
staticplaystatsCheatApplied(cheat:String):Dynamic
staticplaystatsClothChange(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Dynamic
staticplaystatsCrateCreated(p0:Float, p1:Float, p2:Float):Dynamic
staticplaystatsCrateDropMissionDone(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic):Dynamic
NativeDB Added Parameter 7: Any p6
NativeDB Added Parameter 8: Any p7staticplaystatsFriendActivity(p0:Dynamic, p1:Dynamic):Dynamic
staticplaystatsHeistSaveCheat(hash:Int, p1:Int):Dynamic
staticplaystatsHoldUpMissionDone(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
staticplaystatsImportExportMissionDone(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
staticplaystatsJobBend(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
staticplaystatsLeaveJobChain(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Dynamic
staticplaystatsMatchStarted(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic, p6:Dynamic):Dynamic
NativeDB Removed Parameter 4: Any p3
NativeDB Removed Parameter 5: Any p4
NativeDB Removed Parameter 6: Any p5
NativeDB Removed Parameter 7: Any p6staticplaystatsMissionCheckpoint(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
staticplaystatsMissionOver(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Bool, p4:Bool, p5:Bool):Dynamic
staticplaystatsMissionStarted(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Bool):Dynamic
staticplaystatsNpcInvite(p0:Dynamic):Dynamic
staticplaystatsOddjobDone(p0:Dynamic, p1:Dynamic, p2:Dynamic):Dynamic
**This native does absolutely nothing, just a nullsub
staticplaystatsPropChange(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
staticplaystatsQuickfixTool(element:Int, item:String):Dynamic
staticplaystatsRaceCheckpoint(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Dynamic
staticplaystatsRaceToPointMissionDone(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic, p5:Dynamic, p6:Dynamic, p7:Dynamic, p8:Dynamic, p9:Dynamic):Dynamic
NativeDB Removed Parameter 5: Any p4
NativeDB Removed Parameter 6: Any p5
NativeDB Removed Parameter 7: Any p6
NativeDB Removed Parameter 8: Any p7
NativeDB Removed Parameter 9: Any p8
NativeDB Removed Parameter 10: Any p9staticplaystatsRandomMissionDone(name:String, p1:Dynamic, p2:Dynamic, p3:Dynamic):Dynamic
staticplaystatsRankUp(rank:Int):Dynamic
staticplaystatsRosBet(amount:Int, act:Int, player:Dynamic, cm:Float):Dynamic
staticplaystatsSetJoinType(joinType:Int):Dynamic
Sets a byte that is then used in session_host and session_join metrics when hosting or joining a session
staticplaystatsShopItem(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Dynamic
staticplaystatsStartTrackingStunts():Dynamic
Allows stunts to be triggered and sent as a CEventNetworkStuntPerformed event.
Event types are shown below:
enum eTrackedStuntType
{
ST_FRONTFLIP = 0,
ST_BACKFLIP = 1,
ST_SPIN = 2,
ST_WHEELIE = 3,
ST_STOPPIE = 4,
ST_BOWLING_PIN = 5,
ST_FOOTBALL = 6,
ST_ROLL = 7
};staticplaystatsStopTrackingStunts():Dynamic
Disallows CEventNetworkStuntPerformed to be triggered (Resets PLAYSTATS_START_TRACKING_STUNTS).
staticplaystatsWeaponModeChange(weaponHash:Int, componentHashTo:Int, componentHashFrom:Int):Dynamic
staticplaystatsWebsiteVisited(scaleformHash:Int, p1:Int):Dynamic
staticpresenceEventUpdatestatFloat(statHash:Int, value:Float, p2:Int):Dynamic
staticpresenceEventUpdatestatInt(statHash:Int, value:Int, p2:Int):Dynamic
staticsetProfileSettingPrologueComplete():Dynamic
staticstatClearSlotForReload(statSlot:Int):Dynamic
Example:
for (v_2 = 0; v_2 <= 4; v_2 += 1) {
STATS::STAT_CLEAR_SLOT_FOR_RELOAD(v_2);
}staticstatDeleteSlot(p0:Dynamic):Dynamic
staticstatGetBool(statHash:Int, outValue:Dynamic, p2:Dynamic):Bool
staticstatGetBoolMasked(statName:Int, mask:Int, p2:Int):Bool
p2 - Default value? Seems to be -1 most of the time. staticstatGetDate(statHash:Int, p1:Dynamic, p2:Dynamic, p3:Dynamic):Bool
staticstatGetFloat(statHash:Int, outValue:Dynamic, p2:Dynamic):Bool
staticstatGetLicensePlate(statName:Int):String
staticstatGetMaskedInt(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Bool
staticstatGetNumberOfDays(statName:Int):Int
staticstatGetNumberOfHours(statName:Int):Int
staticstatGetNumberOfMinutes(statName:Int):Int
staticstatGetNumberOfSeconds(statName:Int):Int
staticstatGetPos(p0:Dynamic, p1:Dynamic, p2:Dynamic, p3:Dynamic, p4:Dynamic):Bool
staticstatGetSaveMigrationStatus(data:Dynamic):Int
staticstatGetUserId(p0:Dynamic):String
Needs more research. Seems to return "STAT_UNKNOWN" if no such user id exists. staticstatIncrement(statName:Int, value:Float):Dynamic
staticstatLoad(p0:Int):Bool
staticstatLoadPending(p0:Dynamic):Bool
staticstatSaveMigrationStatusStart():Bool
staticstatSavePending():Bool
staticstatSavePendingOrRequested():Bool
staticstatSetBlockSaves(toggle:Bool):Dynamic
staticstatSetBool(statName:Int, value:Bool, save:Bool):Bool
Example:
STATS::STAT_SET_BOOL(MISC::GET_HASH_KEY("MPPLY_MELEECHLENGECOMPLETED"), trur, true);staticstatSetBoolMasked(statName:Int, value:Bool, mask:Int, save:Bool):Bool
staticstatSetCheatIsActive():Dynamic
staticstatSetDate(statName:Int, value:Dynamic, numFields:Int, save:Bool):Bool
'value' is a structure to a structure, 'numFields' is how many fields there are in said structure (usually 7).
The structure looks like this:
int year
int month
int day
int hour
int minute
int second
int millisecond
The decompiled scripts use TIME::GET_POSIX_TIME to fill this structure. staticstatSetFloat(statName:Int, value:Float, save:Bool):Bool
Example:
STATS::STAT_SET_FLOAT(MISC::GET_HASH_KEY("MP0_WEAPON_ACCURACY"), 66.6f, true);staticstatSetGxtLabel(statName:Int, value:String, save:Bool):Bool
The following values have been found in the decompiled scripts:
"RC_ABI1"
"RC_ABI2"
"RC_BA1"
"RC_BA2"
"RC_BA3"
"RC_BA3A"
"RC_BA3C"
"RC_BA4"
"RC_DRE1"
"RC_EPS1"
"RC_EPS2"
"RC_EPS3"
"RC_EPS4"
"RC_EPS5"
"RC_EPS6"
"RC_EPS7"
"RC_EPS8"
"RC_EXT1"
"RC_EXT2"
"RC_EXT3"
"RC_EXT4"
"RC_FAN1"
"RC_FAN2"
"RC_FAN3"
"RC_HAO1"
"RC_HUN1"
"RC_HUN2"
"RC_JOS1"
"RC_JOS2"
"RC_JOS3"
"RC_JOS4"
"RC_MAU1"
"RC_MIN1"
"RC_MIN2"
"RC_MIN3"
"RC_MRS1"
"RC_MRS2"
"RC_NI1"
"RC_NI1A"
"RC_NI1B"
"RC_NI1C"
"RC_NI1D"
"RC_NI2"
"RC_NI3"
"RC_OME1"
"RC_OME2"
"RC_PA1"
"RC_PA2"
"RC_PA3"
"RC_PA3A"
"RC_PA3B"
"RC_PA4"
"RC_RAM1"
"RC_RAM2"
"RC_RAM3"
"RC_RAM4"
"RC_RAM5"
"RC_SAS1"
"RC_TON1"
"RC_TON2"
"RC_TON3"
"RC_TON4"
"RC_TON5" staticstatSetInt(statName:Int, value:Int, save:Bool):Bool
staticstatSetLicensePlate(statName:Int, str:String):Bool
staticstatSetMaskedInt(statName:Int, p1:Dynamic, p2:Dynamic, p3:Int, save:Bool):Bool
staticstatSetPos(statName:Int, x:Float, y:Float, z:Float, save:Bool):Bool
staticstatSetProfileSettingValue(profileSetting:Int, value:Int):Dynamic
Does not take effect immediately, unfortunately.
profileSetting seems to only be 936, 937 and 938 in scripts