GTA V Data Dumps

repository·master·Indexed 21 days ago

https://github.com/durtyfree/gta-v-data-dumps

A collection of auto-generated and researched data dumps for GTA V (e.g., v3717.0 / Online 1.72) designed for modding and scripting. The repository provides JSON and INI mappings for game entities, including vehicles, peds, animations, audio, world data, and object locations, which map directly to GTA V native functions. It also includes asset dumps, miscellaneous game flags, and C# implementation details for deserializing Navigation Mesh data using MessagePack.

Tokens
3.3K
Snippets
3
Records
8
Agent score
27%

What's inside gta-v-data-dumps

  1. Overview of GTA-V Data Dumps

    master
    This repository provides a collection of auto-generated and research-enhanced data dumps for GTA V, primarily intended for modding and scripting. The data is kept up-to-date with specific game versions (e.g., v3717.0 / Online 1.72). The dumps cover a wide range of game entities including vehicles, peds, animations, audio, and more, often mapping directly to specific GTA V native functions.
  2. Deserialize Navigation Mesh data in C#

    master

    Navigation Mesh data is exported from GTA V *.ynv files in a compressed Lz4BlockArray MessagePack format. To deserialize this data in C#, use the messagepack NuGet package.

    When deserializing, you must use MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray) to match the compression used in the dump files.

    // Example of loading a list of NavigationMesh from a file
    List<NavigationMesh> navigationMeshes = LoadDataFromDumpFile<List<NavigationMesh>>("navigationmeshes.json");
    
    // Implementation detail for loading
    private TDumpType LoadDataFromDumpFile<TDumpType>(string dumpFileName) where TDumpType : new()
    {
        string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "resources", "yourResourceName", "data", dumpFileName);
        
        MessagePackSerializerOptions lz4Options = MessagePackSerializerOptions.Standard.WithCompression(MessagePackCompression.Lz4BlockArray);
        return MessagePackSerializer.Deserialize<TDumpType>(File.ReadAllBytes(filePath), lz4Options);
    }
  3. Fix System.NotSupportedException when loading MessagePack

    master

    If you encounter System.NotSupportedException: A non-collectible assembly may not reference a collectible assembly. while loading data, it is likely because the MessagePack NuGet package is targeting .NET Standard 2.

    You can resolve this by setting the following environment variable in your project properties or your Windows environment:

    CSHARP_MODULE_DISABLE_COLLECTIBLE = true

    Note: Enabling this will disable the ability to perform resource hot-reloading at runtime.

    CSHARP_MODULE_DISABLE_COLLECTIBLE = true
  4. Access object location dumps

    master

    Object location dumps provide the map positions (including all interiors and MLOs) for specific object types in GTA V. These are provided as JSON files located in the objectslocations/ directory.

    Commonly used location dumps include:

    • Vending Machines: worldVendingMachines.json
    • Bins/Dumpsters: worldBinsDumpsters.json and worldRecycleBins.json
    • Gas Pumps: worldGasPumps.json
    • ATMs: worldAtms.json
    • Public Phones: worldPublicPhones.json and worldExtraPhones.json
    • Street Lights: worldStreetLights.json
    • Traffic Lights: worldTrafficLights.json
    • CCTV Cameras: worldCctvs.json
    • Wrecked Vehicles: worldWreckedCars.json and worldWreckedBikes.json
    • Seats (Benches, Chairs, etc.): worldSeats.json
  5. Reference of available GTA-V data dumps

    master

    The repository contains numerous JSON and INI files that map to GTA V natives. Below is a categorized list of available data dumps and their associated native functions:

    Entity & Object Data

    • Vehicles: vehicles.json (Use with VEHICLE natives)
    • Vehicle Mod Kits & Mods: vehicleModKits.json (Use with SET_VEHICLE_MOD_KIT, SET_VEHICLE_LIVERY & SET_VEHICLE_MOD)
    • Vehicle Handlings: vehicleHandlings.json (Shared for all existing vehicles; use handling id from vehicles.json)
    • Vehicle Colors: vehicleColors.json (Xenon, Window, Primary/Secondary, and Plates)
    • Peds: peds.json (Use with various ped natives)
    • Ped Component Variations: pedComponentVariations.json (with translations) or pedComponentVariations_free.json (without; use with COMPONENT VARIATION & PED PROP natives)
    • Ped Overlay Collections (Tattoos): pedOverlayCollections.json (Use with ped decoration native)
    • Ped Scenario names: scenariosCompact.json (Use with SCENARIO natives)
    • Ped Scenario group names: scenarioGroupNames.json (Use with SCENARIO_GROUP natives)
    • Ped Apparel Restriction tag names: pedApparelRestrictionTags.json (Use with PED RESTRICTION natives)
    • Ped Damage Packs: pedDamagePacks.json (Use with APPLY_PED_DAMAGE_PACK native)
    • Createable Objects: ObjectList.ini (Objects usable with CREATE_OBJECT native)
    • Weapons: weapons.json (Use with WEAPON natives)
    • Garages: garages.json (Use with GARAGE natives)
    • Pickups: pickupTypes.json (Use with CREATE PICKUP natives)

    Environment & World Data

    • IPLs: ipls.json (Use with IPL natives)
    • MLO / Interiors: mloInteriors.json (Contains in-game locations of interiors)
    • Zones: zones.json (Contains bounds coords; use with ZONE natives)
    • Ambient Zones: ambientZones.json (Use with AMBIENT_ZONE natives)
    • Static Emitters: staticEmitters.json (Use with STATIC_EMITTER natives)
    • Timecycle Modifiers: timecycleModifiers.json (Use with TIMECYCLE MODIFIER natives)
    • Particle Effects: particleEffectsCompact.json (Use with START PARTICLE FX natives)
    • Explosion Types names: explosionTypesCompact.json (Use with ADD EXPLOSION native)
    • Cam Shake Types names: camShakeTypesCompact.json (Use with SHAKE CAM & SHAKE GAMEPLAY natives)
    • AnimpostFX names: animPostFxNamesCompact.json (Use with ANIMPOSTFX natives)
    • Train tracks: traintracks.json (Use with TRACK natives)
    • Navigation Meshes: Available via Mega.nz download (See NAVIGATIONMESH.md for the MessagePack model)
    • (Vehicle Navigation) Nodes: nodes.zip (JSON format; useful for vehicle navigation)

    Audio & Animation Data

    • Animations: animDictsCompact.json (Use with TASK PLAY ANIM native)
    • Movement Clipsets: movementClipsetsCompact.json or movementClipsetsWalkingCompact.json (Use with SET PED MOVEMENT CLIPSET native)
    • Speech Voices: speeches.json (Use with PLAY AMBIENT SPEECH natives)
    • Audio / Sound names: soundNames.json (Use with PLAY_SOUND natives)
    • Alarm Sound names: alarmSounds.json (Use with ALARM natives)
    • Music Event names: musicEventNames.json (Use with MUSIC_EVENT natives)
    • Mission Audio Bank names: missionAudioBankNames.json (Use with MISSION_AUDIO_BANK natives)
    • Ambient Audio Bank names: ambientAudioBankNames.json (Use with AMBIENT_AUDIO_BANK natives)
    • Script Audio Bank names: scriptAudioBankNames.json (Use with SCRIPT_AUDIO_BANK natives)
    • Mission Complete Audio names: missionCompleteAudioNames.json (Use with PLAY_MISSION_COMPLETE_AUDIO native)
    • Police Report names: policeReportNames.json (Use with PLAY_POLICE_REPORT native)
    • Audio Scene names: audioSceneNames.json (Use with AUDIO_SCENE natives)
    • Radio Stations: radioStations.json (Use with RADIO_STATION natives)
    • Cutscene names: cutsceneNames.json (Use with CUT_ or CUTSCENE_ natives)

    Miscellaneous

    • Waypoint recording names: waypointRecordings.json (Use with WAYPOINT RECORDING natives)
    • Shaders: shaders.json
  6. NavigationMesh C# Models Reference

    master

    The Navigation Mesh export contains a list of NavigationMesh models. Below are the data structures used for deserialization.

    [MessagePackObject]
    public class NavigationMesh
    {
        [Key(0)] public int AreaId { get; set; }
        [Key(1)] public int CellX { get; set; }
        [Key(2)] public int CellY { get; set; }
        [Key(3)] public List<NavigationMeshPoly> Polygons { get; set; }
    }
    
    [MessagePackObject]
    public class NavigationMeshPoly
    {
        [Key(0)] public int Index { get; set; }
        [Key(1)] public int PartId { get; set; }
        [Key(2)] public bool IsFootpath { get; set; }
        [Key(3)] public bool IsUnderground { get; set; }
        [Key(4)] public bool IsSteepSlope { get; set; }
        [Key(5)] public bool IsWater { get; set; }
        [Key(6)] public bool HasPathNode { get; set; }
        [Key(7)] public bool IsInterior { get; set; }
        [Key(8)] public bool IsFlatGround { get; set; }
        [Key(9)] public bool IsRoad { get; set; }
        [Key(10)] public bool IsCellEdge { get; set; }
        [Key(11)] public bool IsTrainTrack { get; set; }
        [Key(12)] public bool IsShallowWater { get; set; }
        [Key(13)] public bool IsFootpathUnk1 { get; set; }
        [Key(14)] public bool IsFootpathUnk2 { get; set; }
        [Key(15)] public bool IsFootpathMall { get; set; }
        [Key(16)] public bool IsSlopeSouth { get; set; }
        [Key(17)] public bool IsSlopeSouthEast { get; set; }
        [Key(18)] public bool IsSlopeEast { get; set; }
        [Key(19)] public bool IsSlopeNorthEast { get; set; }
        [Key(20)] public bool IsSlopeNorth { get; set; }
        [Key(21)] public bool IsSlopeNorthWest { get; set; }
        [Key(22)] public bool IsSlopeWest { get; set; }
        [Key(23)] public bool IsSlopeSouthWest { get; set; }
        [Key(24)] public int UnkX { get; set; }
        [Key(25)] public int UnkY { get; set; }
        [Key(26)] public WorldVector3 Position { get; set; }
        [Key(27)] public List<WorldVector3> Vertices { get; set; }
        [Key(28)] public List<NavigationMeshPolyEdge> Edges { get; set; }
    }
    
    [MessagePackObject]
    public class NavigationMeshPolyEdge
    {
        [Key(0)] public uint AreaId { get; set; }
        [Key(1)] public uint PolyIndex { get; set; }
    }
    
    [MessagePackObject]
    public class WorldVector3
    {
        [Key(0)] public float X { get; set; }
        [Key(1)] public float Y { get; set; }
        [Key(2)] public float Z { get; set; }
    }
  7. Access asset dumps

    master

    Asset dumps provide visual or structural data related to GTA V entities. These are located in the assets/ directory.

    Available asset categories:

    • Vehicle Manufacturer / Brand logos: assets/vehicle-manufacturers-logos
    • Freemode ped parent faces: assets/freemode-ped-parents
  8. Access miscellaneous game data dumps

    master

    The repository provides several miscellaneous JSON and XML dumps containing game flags, enums, and metadata useful for modding and research.

    Key data files include:

    • Vehicle Flags & Styles: drivingStyleFlagValues.json, handlingFlagValues.json, vehiclesFlags.json
    • Vehicle Metadata: vehiclesManufacturers.json, vehiclesPlateTypes.json, vehiclesRewards.json, vehiclesTypes.json, vehiclesWheelTypes.json
    • Game Flags: flagValues.json (for YTYP, YMAP, etc.)
    • Ped/Apparel Data: pedApparelRestrictionTags.json
    • Event Enums: eEventType.txt
    • Legacy Data: ps3-builds.xml (Early PS3 development build information)