Jump to content

LMS

Administrators
  • Posts

    904
  • Joined

  • Last visited

  • Days Won

    292

 Content Type 

Profiles

Forums

Gallery

Downloads

News Articles

Modding Wiki

RDR2 Native Database

RDR2 Native Parameters

RDR2 Player Clothes Database

RDR2 Ped Voices Database

RDR2 Ped Speech Lines

RDR2 Modding Tutorials

RDR2 Ped Model Database

RDR2 Animations Database

RDRFR Changelog

RDRFR Installation Guide

RDRFR Features

RDRFR Settings

LML User Contributions

Everything posted by LMS

  1. Generally you should use the declarations provided by the hook you use. What is not working with the native?
  2. I actually think it only really works in the train anyway, even in that savegame change. If you look at around 6:40 in the building, only greet is available and when pressed does not seem to make Javier talk either. I suspect there are some hardcoded checks for Arthur/John somewhere causing issues.
  3. What do you mean exactly, just spawning the wagons or being teleported to the closest tracks in the newly spawned train? Yeah the keys broke I think, we will fix that in the next update. They will eventually follow you again after something had happened (say a firefight) as the holding position is only temporary.
  4. I assume they are uploaded in lower definition to the Social Club gallery. Have you checked the resolution of the images there?
  5. The game is generally quite well optimized and runs better than V for me, but everyone has different preferences when it comes to settings. I'd recommend getting it on Steam and refunding if it does not work properly.
  6. There is a basic input screen in the game, it can be called using https://www.mod-rdr.com/nativedb/index/misc/display_onscreen_keyboard-r2456/. You can then use GET_ONSCREEN_KEYBOARD_RESULT to get the result of the input. While the input box is being drawn, use UPDATE_ONSCREEN_KEYBOARD to get the current state of the input: 0 - is being shown 1 - input just confirmed 2 - editing cancelled 3 - not showing Hope this helps!
  7. Do you have an example for a mission that crashes? I can reply missions without any problems. The logfile is in your game folder, called LennysSimpleTrainer.log. I will have a look 🙂
  8. Thanks for the video, but unfortunately it won't be that easy for us since that is achieved by modding the savegame. We change the model at runtime which brings some more complications with it (mostly the game trying to change the model back). I will have a look nonetheless and see what I can do.
  9. The peds can talk fine using their own voices, but ideally I would like to have their voices be used for the interactions (greet, antagonize etc.). Those are greyed out because their voices lack the speech lines associated with these actions I think.
  10. Yes, you can call it with ped, true and it should work. The other natives you listed unfortunately do not have any effect on this.
  11. I am not sure what is causing this, but I can look into a way to fix it, if possible.
  12. You need to call a native to reset the peds components after creation to make it visible. If you are using Alex's ScripHook, that native is called PED::SET_PED_VISIBLE. You can find it here too:
  13. It looks fine to me, is something not working as expected?
  14. I will add them in the next update 🙂
  15. This list contains objects in RDR2 courtesy of @NooB1470. We hope to add more soon. Object Name s_mp_moneybag02x p_shotGlass01x p_door01x p_bottleBeer01x p_book02x p_knife03x P_BINOCULARS01x p_ham01x p_cigarette_cs01x p_jug01x p_keys01x p_spoon01x p_cs_treefallen01x p_spittoon01x p_ammobox01x p_cs_rag01x w_repeater_carbine01 p_hammer01x p_pencil01x p_cratetools01x s_canBeans01x p_cs_hat01x p_cs_letter03x p_ladder01x p_bottle01x w_stick_dynamite p_cs_baganders01x p_cs_suitcase02x w_shotgun_sawed01 p_chair01x s_kieranhead01x p_cigar01x p_cs_sacklarge01x p_cs_flowers01x s_inv_yarrow01cx p_fishingpole01x p_brush01x P_CS_LEDGER01X P_CS_BOOKJANEEYRE01X P_PEN01X P_SANDWICHBOARD02x p_woodbowl01x p_cs_billsingle01x p_barStool01x p_cs_baglevin01x p_medicine01x p_cs_note01x p_cs_electricHelmet01x P_CS_BASFISHONTHEWAL01X p_camerabox01x s_squirrelmarston01x p_wrappedmeat01x p_doorsglw01x p_doorcircus01x p_cs_syringe01x P_CS_BUCKET01X p_cs_cratetnt01x p_cs_BagAnders01x p_kerosenetablelamp01x p_oil01x
  16. Pickup Name PICKUP_WEAPON_MELEE_LANTERN_ELECTRIC PICKUP_WEAPON_MELEE_KNIFE PICKUP_WEAPON_MELEE_KNIFE_JOHN PICKUP_WEAPON_MELEE_KNIFE_MINER PICKUP_WEAPON_MELEE_KNIFE_VAMPIRE PICKUP_WEAPON_MELEE_KNIFE_CIVIL_WAR PICKUP_WEAPON_MELEE_KNIFE_BEAR PICKUP_WEAPON_MELEE_BROKEN_SWORD PICKUP_WEAPON_MELEE_CLEAVER PICKUP_WEAPON_MELEE_HATCHET PICKUP_WEAPON_MELEE_MACHETE PICKUP_WEAPON_REVOLVER_CATTLEMAN PICKUP_WEAPON_REVOLVER_CATTLEMAN_JOHN PICKUP_WEAPON_REVOLVER_CATTLEMAN_MEXICAN PICKUP_WEAPON_REVOLVER_CATTLEMAN_PIG PICKUP_WEAPON_REVOLVER_DOUBLEACTION PICKUP_WEAPON_REVOLVER_DOUBLEACTION_EXOTIC PICKUP_WEAPON_REVOLVER_DOUBLEACTION_MICAH PICKUP_WEAPON_REVOLVER_SCHOFIELD PICKUP_WEAPON_REVOLVER_SCHOFIELD_CALLOWAY PICKUP_WEAPON_REVOLVER_SCHOFIELD_GOLDEN PICKUP_WEAPON_PISTOL_VOLCANIC PICKUP_WEAPON_PISTOL_MAUSER PICKUP_WEAPON_PISTOL_MAUSER_DRUNK PICKUP_WEAPON_PISTOL_SEMIAUTO PICKUP_WEAPON_REPEATER_CARBINE PICKUP_WEAPON_REPEATER_WINCHESTER PICKUP_WEAPON_REPEATER_HENRY PICKUP_WEAPON_RIFLE_SPRINGFIELD PICKUP_WEAPON_RIFLE_BOLTACTION PICKUP_WEAPON_RIFLE_VARMINT PICKUP_WEAPON_SHOTGUN_DOUBLEBARREL PICKUP_WEAPON_SHOTGUN_DOUBLEBARREL_EXOTIC PICKUP_WEAPON_SHOTGUN_SAWEDOFF PICKUP_WEAPON_SHOTGUN_REPEATING PICKUP_WEAPON_SHOTGUN_PUMP PICKUP_WEAPON_SHOTGUN_SEMIAUTO PICKUP_WEAPON_SNIPERRIFLE_ROLLINGBLOCK PICKUP_WEAPON_SNIPERRIFLE_ROLLINGBLOCK_EXOTIC PICKUP_WEAPON_SNIPERRIFLE_CARCANO PICKUP_WEAPON_BOW PICKUP_WEAPON_FISHINGROD PICKUP_WEAPON_MELEE_ANCIENT_HATCHET PICKUP_WEAPON_MELEE_HATCHET_VIKING PICKUP_WEAPON_MELEE_HATCHET_HEWING PICKUP_WEAPON_MELEE_HATCHET_DOUBLE_BIT PICKUP_WEAPON_MELEE_HATCHET_DOUBLE_BIT_RUSTED PICKUP_WEAPON_MELEE_HATCHET_HUNTER PICKUP_WEAPON_MELEE_HATCHET_HUNTER_RUSTED PICKUP_WEAPON_MELEE_KNIFE_MP PICKUP_WEAPON_MELEE_KNIFE_JAWBONE PICKUP_WEAPON_MELEE_BROKEN_SWORD_MP PICKUP_WEAPON_MELEE_CLEAVER_MP PICKUP_WEAPON_MELEE_HATCHET_MP PICKUP_WEAPON_MELEE_MACHETE_MP PICKUP_WEAPON_MELEE_LASSO_MP PICKUP_WEAPON_MELEE_TORCH PICKUP_WEAPON_MELEE_TORCH_MP PICKUP_WEAPON_REVOLVER_CATTLEMAN_MP PICKUP_WEAPON_REVOLVER_DOUBLEACTION_MP PICKUP_WEAPON_REVOLVER_SCHOFIELD_MP PICKUP_WEAPON_PISTOL_VOLCANIC_MP PICKUP_WEAPON_PISTOL_MAUSER_MP PICKUP_WEAPON_PISTOL_SEMIAUTO_MP PICKUP_WEAPON_REPEATER_CARBINE_MP PICKUP_WEAPON_REPEATER_WINCHESTER_MP PICKUP_WEAPON_REPEATER_HENRY_MP PICKUP_WEAPON_RIFLE_SPRINGFIELD_MP PICKUP_WEAPON_RIFLE_BOLTACTION_MP PICKUP_WEAPON_RIFLE_VARMINT_MP PICKUP_WEAPON_SHOTGUN_DOUBLEBARREL_MP PICKUP_WEAPON_SHOTGUN_SAWEDOFF_MP PICKUP_WEAPON_SHOTGUN_REPEATING_MP PICKUP_WEAPON_SHOTGUN_PUMP_MP PICKUP_WEAPON_SHOTGUN_SEMIAUTO_MP PICKUP_WEAPON_SNIPERRIFLE_ROLLINGBLOCK_MP PICKUP_WEAPON_SNIPERRIFLE_CARCANO_MP PICKUP_WEAPON_BOW_MP PICKUP_WEAPON_THROWN_DYNAMITE PICKUP_WEAPON_THROWN_DYNAMITE_VOLATILE PICKUP_WEAPON_THROWN_MOLOTOV PICKUP_WEAPON_THROWN_MOLOTOV_VOLATILE PICKUP_WEAPON_SINGLE_ARROW PICKUP_WEAPON_SINGLE_ARROW PICKUP_WEAPON_SINGLE_ARROW_FIRE PICKUP_AMMO_SINGLE_ARROW PICKUP_AMMO_SINGLE_ARROW_FIRE PICKUP_AMMO_SINGLE_ARROW_DYNAMITE PICKUP_AMMO_SINGLE_ARROW_SMALL_GAME PICKUP_AMMO_SINGLE_ARROW_IMPROVED PICKUP_AMMO_SINGLE_ARROW_POISON PICKUP_AMMO_SINGLE_ARROW_CONFUSION PICKUP_AMMO_SINGLE_ARROW_DISORIENT PICKUP_AMMO_SINGLE_ARROW_DRAIN PICKUP_AMMO_SINGLE_ARROW_TRAIL PICKUP_AMMO_SINGLE_ARROW_WOUND PICKUP_WEAPON_AMMO_ARROW_DYNAMITE_BUNDLE PICKUP_WEAPON_THROWN_THROWING_KNIVES PICKUP_WEAPON_THROWN_THROWING_KNIVES_IMPROVED PICKUP_WEAPON_THROWN_THROWING_KNIVES_POISON PICKUP_WEAPON_THROWN_THROWING_KNIVES_CONFUSE PICKUP_WEAPON_THROWN_THROWING_KNIVES_DISORIENT PICKUP_WEAPON_THROWN_THROWING_KNIVES_DRAIN PICKUP_WEAPON_THROWN_THROWING_KNIVES_TRAIL PICKUP_WEAPON_THROWN_THROWING_KNIVES_WOUND PICKUP_WEAPON_THROWN_TOMAHAWK PICKUP_WEAPON_THROWN_TOMAHAWK_ANCIENT PICKUP_WEAPON_THROWN_TOMAHAWK_HOMING PICKUP_WEAPON_THROWN_TOMAHAWK_IMPROVED PICKUP_WEAPON_THROWN_DYNAMITE_MP PICKUP_WEAPON_THROWN_MOLOTOV_MP PICKUP_WEAPON_THROWN_THROWING_KNIVES_MP PICKUP_WEAPON_THROWN_TOMAHAWK_MP PICKUP_AMMO_ARROW PICKUP_AMMO_ARROW_CONFUSION PICKUP_AMMO_ARROW_DISORIENT PICKUP_AMMO_ARROW_DRAIN PICKUP_AMMO_ARROW_WOUND PICKUP_AMMO_THROWING_KNIVES_CONFUSION PICKUP_AMMO_THROWING_KNIVES_DISORIENT PICKUP_AMMO_THROWING_KNIVES_DRAIN PICKUP_AMMO_THROWING_KNIVES_WOUND PICKUP_AMMO_PISTOL PICKUP_AMMO_REVOLVER PICKUP_AMMO_RIFLE PICKUP_AMMO_REPEATER PICKUP_AMMO_SHOTGUN PICKUP_HEALTH_STANDARD PICKUP_MONEY_VARIABLE PICKUP_PORTABLE_PACKAGE PICKUP_PORTABLE_EXPLOSIVE PICKUP_WEAPON_MOONSHINEJUG PICKUP_ROBBED_SATCHEL_ITEM PICKUP_CUSTOM_SCRIPT PICKUP_WEAPON_MOONSHINEJUG_MP PICKUP_WEAPON_THROWN_POISONBOTTLE PICKUP_WEAPON_REVOLVER_NAVY PICKUP_WEAPON_REVOLVER_NAVY_CROSSOVER
  17. That's perfectly fine, just the way R* created the default model. As for animals, that's fine too, happens for everyone since they are not really meant to be used that way.
  18. @Sniper296 has found quite a few of them and is working on organizing them I think, so hopefully we can share them soon.
  19. Yes, all assets can be spawned using the trainer.
  20. This is part 1 in a series dedicated to creating your first plugin! You can already find the finished project and its source code at the bottom of this article, but this article so far only covers getting started. With the arrival of RAGE Plugin Hook for Red Dead Redemption 2 creating modifications has become a whole lot easier. Leveraging the full power of the .NET ecosystem combined with an easy to use API for RDR2, it allows you to quickly create new mods without having to worry too much about all the scary stuff. This tutorial is aimed at beginners, but ideally you already have some experience with programming to make things easier. If not, I am sure you will still understand most of the concepts, though it might take you a little longer. We will use C# as the language of choice and Visual Studio as our IDE. You can download a free copy of the "Community Edition" here: https://visualstudio.microsoft.com/vs/. When installing Visual Studio, make sure to at least select the ".NET desktop development" tools. Please note that this tutorial is aimed at beginners and does not necessarily reflect best practices for plugin development. Setting up our development environment Once you've installed Visual Studio, you can download my empty test project here: NPC Taxi Empty Start Project. It already contains a skeleton for a new RAGE Plugin Hook plugin called "NPC Taxi", which we will be developing in this tutorial. If you browse its folder structure, you will find a folder called "Dependencies" in it. This is where RPH's so called SDK is located. This SDK allows us to make use of RAGE Plugin Hook and all its functions. It is regularly updated to include new functionality and all you need to do is update the file in there with the one included in the "SDK" folder when downloading a new version of RAGE Plugin Hook. You should see this overview of your project's structure on the right when opening up the project. It shows you all files that are currently in the project, in this case two code files called "EntryPoint.cs" and "NPCTaxi.cs". Now I know I said the project was going to be empty, but it is empty in terms of not doing anything yet 😛 Entry point and exit point Let's have a look at the two files. First, open up "EntryPoint.cs". At the top you can find metadata associated with your mod such as the name of the modification, its author, description and two more technical attributes: The entry point and the exit point. They are called whenever RPH loads and unloads your Plugin respectively and you can see them defined as OnEntry and OnUnloading if you check the code right below the metadata. We will not worry about unloading too much just now (who would dare to unload our amazing plugin anyways?), but focus on our entry point: private static void OnEntry() { NPCTaxi.Start(); while (true) { NPCTaxi.Process(); GameFiber.Yield(); } } The first thing that happens is that we call a function in a different class, namely the function Start in a class called NPCTaxi. This function will be called once when our plugin is loaded and can be used to do one-time initialization such as loading a settings file. If you click somewhere on Start and press F12 Visual Studio will take you to the function. It will also open a new tab with the source file (NPCTaxi.cs) where this function is located in. As you can see, all it currently does it print a new help message and presents it to the user. Let's go back to OnEntry again and see what happens next. We enter what is called a "while-loop". This means all instructions in the {} are executed as long as the condition for the loop is true. Since our condition is true, it is always true and the loop will run indefinitely. Hence, we have our main execution loop here. Every time the game processes its logic, we also get processed here until we are unloaded. There are two calls inside this loop, one to a function in NPCTaxi again (if you use F12 you can see that it does nothing) and a call to GameFiber.Yield. To keep things simple, what this call does is hand back control to the game after we have finished doing our shenanigans. If we do not do this, the game will freeze since the game still thinks we are doing stuff (and we run this loop indefinitely, remember?). When this function is called, the game resumes execution, processes its subsystems like physics and its other scripts and presents a new frame to the user. Once that is done, it hands control back to us and we return from GameFiber.Yield. We now run the loop again as our condition is still true.A more in-depth explanation can be found her: http://ragepluginhook.net/RPH2PreDoc/ under "Fibers". Running our plugin Now that we are experts on all things plugin development, let's compile and load our test plugin. Press Shift+F6 to build your current project (if that keybinding does nothing, open the "Build" menu at the top and choose "Build NPCTaxi"). This means that the code you have written is translated so that a computer can run it. This compiled code can then be found in the project folder under "bin\Debug" where you will have three files: "NPCTaxi.dll" (your compiled code), "NPCTaxi.pdb" (additional information for your code to help you when something goes wrong) and "RagePluginHook2.dll". The latter is the SDK we talked about earlier and is placed there for your convenience so you always know what files you would need to run your project. We do not need it in this case as it is included in the RAGE Plugin Hook download. Head over to https://www.mod-rdr.com/files/file/16-rage-plugin-hook/if you haven't already and download the latest version of RPH. Copy all its files into the game directory (for more details on the installation please refer to the file description). Copy the two "NPCTaxi" files into a folder called "C#Plugins" in your game root directory, for instance: C:\Rockstar Games\Red Dead Redemption 2\C#Plugins. Now start the game with RPH and wait until you are fully loaded and can move your character. I strongly recommend to use windowed borderless (or just windowed) mode for development. By default RAGE Plugin Hook loads all plugins so chances are NPC Taxi is already running when you started the game. To reload it so we can see our help message, press F5 to bring up the console, type in ReloadPlugins and press Enter. If RPH did not load your plugin automatically, try typing in LoadPlugin "NPCTaxi.dll". Your plugin is now loaded and you can press F5 again to get back to the game. You should now see our help text in the left corner welcoming you to your new plugin. Amazing! 🙂 The finished project can be found here: NPC Taxi Source and part two of the tutorial is here
  21. I can definitely look into it!
  22. I don't think those are part of the component system so I cannot add them just yet. But we will keep digging! It could be an issue with file permissions as it writes to the ini in the game folder. Make sure it can be changed. If you equip and save the outfit, it will be there.
  23. Controller buttons are unfortunately not support currently. Could you please give me an example animal and what happened?
×
×
  • Create New...