Log in to reply

Rocket Voltic PTFX effect?

  • Hey,
    I'm about to start with a realistic afterburner script and I'll be using the rocket boost particle effect from the Rocket Voltic. Does anyone know the PTFX effect name of it?

  • @Oskar I think @Dilapidated might know.

  • Anyone?

  • @Oskar Alright, the dictionary name is veh_impexp_rocket by doing some digging in the new DLC.

  • Also did this little dump for all the ptfx asset names in the veh_impexp_rocket dictionary:

    • ptfx_afterburner_rings_rgb.veh_rocket_boost_glow_lit.veh_rocket_boost_glow_lit.veh_rocket_boost_glow_lit.veh_rocket_boost_glow_lit......0ž.P............×ÞÖ4....veh_rocket_boost_rings.veh_rocket_boost_rings.veh_rocket_boost_rings.veh_rocket_boost_rings.veh_rocket_boost_tail.veh_rocket_boost_haze.veh_rocket_boost_haze.veh_rocket_boost_haze.veh_rocket_boost_tail.veh_rocket_boost_haze.veh_rocket_boost_jet.veh_rocket_boost_jet._explosion_fireball.veh_impexp_rocket.RGB_soft_refract.veh_rocket_boost

    This is just a dump from Hex Editor. I think they are seperated by the "." sign.
    I think the ptfxs with RGB in their name their color can be changed with change color native for PTFXs.

  • @AHK1221 Thanks a lot! I'll try these out!

  • @Oskar Make sure to use looped ptfx for the rocket ptfx.

  • @MAFINS Can you tell me which one out of the above is the rocket ptfx?

  • @AHK1221 @MAFINS So I've been going trough every ove the above listed ptfx but none seem to work. I tried to use them as looped and non looped ptfx with "veh_impexp_rocket" as the effect library.

  • @Oskar You need to use the SET_PARTICLE_FX_LOOPED_EVOLUTION function. The particle has two parameters "boost" and "charge" which have to be adjusted for it to show up it all. @Dilapidated had the same problem.

  • Here is a dump of "veh_impexp_rocket":

      <ptxEffectRule name="veh_rocket_boost">
          <item name="veh_rocket_boost_jet" />
          <item name="veh_rocket_boost_rings" />
          <item name="veh_rocket_boost_haze" />
          <item name="veh_rocket_boost_glow_lit" />
          <item name="LOD" />
          <item name="boost" />
          <item name="charge" />
    The fx name is "veh_rocket_boost"

  • @CamxxCore Thanks, but how did you get that dump? If not from HxD how did you get it?

  • @AHK1221 I have some code that will dump the particle assets in memory (while game is running). Can post if you like.

  • @CamxxCore That would be the most useful thing ever! Especially with game updates like these!


    @CamxxCore Geez, so there must be a bunch of ptfxs that have their own evolution arguments to be used with SET_PARTICLE_FX_LOOPED_EVOLUTION.

    Is it possible that someone has a list of PTFX assets, fx names, AND their evolution arguments (if any)? :frowning:

    If not, how did you dump "veh_impexp_rocket"? I'd like to try compiling at least some of these into a list..

  • @stillhere I asked him to upload the code, this could be very useful as a tool.

  • @CamxxCore Can you tell why this code doesn't work?

    if (e.KeyCode == Keys.I)
        Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "veh_impexp_rocket");
        if (!Function.Call<bool>(Hash.HAS_NAMED_PTFX_ASSET_LOADED, "veh_impexp_rocket"))
            timeout = DateTime.UtcNow + new TimeSpan(0, 0, 0, 0, 500);
            while (DateTime.UtcNow < timeout)
                Function.Call(Hash.REQUEST_NAMED_PTFX_ASSET, "veh_impexp_rocket");
        if (!isPtfxCalled)
            ptfxHandle = Function.Call<int>(Hash.START_PARTICLE_FX_LOOPED_AT_COORD, "veh_rocket_boost",
                3.5f, false, false, false, false);
            Function.Call(Hash.SET_PARTICLE_FX_LOOPED_EVOLUTION, ptfxHandle, "boost", 5f, true);
            Function.Call(Hash.SET_PARTICLE_FX_LOOPED_EVOLUTION, ptfxHandle, "charge", 5f, true);
            Function.Call(Hash.STOP_PARTICLE_FX_LOOPED, ptfxHandle, false);

  • Doesn't work for me either :/

    edit Nevermind, got it working! Huge thanks for that!

  • @Oskar Can you tell us how?

  • Nothing special actually.

    int Bone_Index1 = ENTITY::GET_ENTITY_BONE_INDEX_BY_NAME(veh, "overheat");
    AfterBurnerHandle = GRAPHICS::_START_PARTICLE_FX_LOOPED_ON_ENTITY_BONE("veh_rocket_boost", veh, 0.0, 0.0, 0.0, 0.0, 0.0, 180.0, Bone_Index1, 2.0, true, true, true);
    GRAPHICS::SET_PARTICLE_FX_LOOPED_EVOLUTION(AfterBurnerHandle, "boost", 5.0, 0);
    GRAPHICS::SET_PARTICLE_FX_LOOPED_EVOLUTION(AfterBurnerHandle, "charge", 5.0, 0);

    But I've got another problem regarding the rocket boost, this time not related to the PTFX but I thought why creating a new topic for that.
    Well it's more of a general problem, I've found this code snippet to reload the rocket boost in the GTAForums. I believe it was by @Unknown-Modder.
    The problem is that I'm always getting an error when using getScriptHandleBaseAddress.

    alt text

    I'm not too familiar with Visual Studio, can anyone help me with that?


    @Oskar Make sure your ScriptHookV.lib is up-to-date. Or alternatively use this:

    typedef __int64(*GetScriptHandleAddress_t)(int handle);
    GetScriptHandleAddress_t GetScriptHandleAddress = (GetScriptHandleAddress_t)Pattern::Scan("83 F9 FF 74 31 4C 8B 0D ?? ?? ?? ?? 44 8B C1 49");

  • @Unknown-Modder Thanks updating the ScriptHookV.lib solved it! But the boost isn't refilling. Is it possible that the address of it has changed or something like that?


    @Oskar The offset is still 0x31C but the max value has changed.
    This is my CVehicle::FillRocketBoost()

    void FillRocketBoost()
        rocketBoostValue = getGameVersion() > VER_1_0_944_2_NOSTEAM ? 1.25f : 2.5f;

  • @Unknown-Modder said in Rocket Voltic PTFX effect?:

    rocketBoostValue = getGameVersion() > VER_1_0_944_2_NOSTEAM ? 1.25f : 2.5f;

    Doesn't work with both values :/


    @Oskar What's your code?

Log in to reply

Looks like your connection to GTA5-Mods.com Forums was lost, please wait while we try to reconnect.