{"slug":"vehicles/trains/mission_trains","category":"vehicles","title":"Mission trains","kind":"table","intro":"------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n\n -- EXAMPLE OF USING:\n\n\n local current_train = nil\n local function CreateTrain(n, direction)\n     if tonumber(n) then\n         if n > 0 and n < 100 then\n             trainHash = train_hashes[n]\n         else\n             trainHash = n\n         end\n     else\n         trainHash = GetHashKey(n)\n     end\n     local trainWagons = Citizen.InvokeNative(0x635423D55CA84FC8, trainHash)  -- _GET_NUM_CARS_FROM_TRAIN_CONFIG(Hash trainConfig);\n     for wagonIndex = 0, trainWagons - 1 do\n         local trainWagonModel = Citizen.InvokeNative(0x8DF5F6A19F99F0D5, trainHash, wagonIndex)  -- _GET_TRAIN_MODEL_FROM_TRAIN_CONFIG_BY_CAR_INDEX\n         Citizen.InvokeNative(0xFA28FE3A6246FC30, trainWagonModel)  -- REQUEST_MODEL\n         local i = 0        \n         while not Citizen.InvokeNative(0x1283B8B89DD5D1B6, trainWagonModel) and i < 100 do    --HasModelLoaded(\n             Citizen.InvokeNative(0xFA28FE3A6246FC30, trainWagonModel)  -- request model\n             Citizen.Wait(50)\n             i=i+1\n         end \n     end\n     local does_train_have_passengers = 1\n     local does_train_have_conductor = 1\n     local train = Citizen.InvokeNative(0xC239DBD9A57D2A71, trainHash, GetEntityCoords(PlayerPedId()), direction, does_train_have_passengers, 1, does_train_have_conductor)  -- _CREATE_MISSION_TRAIN\n     Citizen.Wait(500)\n     current_train = train\n end\n -- SPAWN TRAIN OR DELETE TRAIN LIKE THAT:\n -- train gunslinger3_config\n -- train 0x3D72571D\n -- train 10 (creates 10th train from list \"mission_trains\")\n -- train delete\n RegisterCommand(\"train\", function(source, args, raw)\n     if args[1] ~= \"delete\" then\n         print(\"trying to create train\")\n         local n = tonumber(args[1])\n         if not n then\n             n = GetHashKey(args[1])\n         end\n         if n then\n             local direction = 0\n             if args[2] then\n                 direction = tonumber(args[2])\n                 if direction == nil then\n                     direction = 0\n                 end\n             end\n             CreateTrain(n, direction)\n         else\n             print(\"wrong train hash or name\")\n         end\n     else\n         print(\"trying to delete train \"..tostring(current_train))\n         if current_train and current_train > 0 then\n             local train_driver_id  = Citizen.InvokeNative(0x2963B5C1637E8A27, current_train)  -- GET_DRIVER_OF_VEHICLE\n             if train_driver_id and train_driver_id ~= 0 and train_driver_id ~= PlayerPedId() then \n                 SetEntityAsMissionEntity(train_driver_id,1,1)\n                 DeletePed(train_driver_id)\n             end\n             Citizen.InvokeNative(0x0D3630FB07E8B570, Citizen.PointerValueIntInitialized(current_train))  -- DELETE_MISSION_TRAIN\n             Citizen.InvokeNative(0xA3120A1385F17FF7) -- DELETE_ALL_TRAINS   \n             current_train = 0\n         end\n     end\n end)\n\n\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------\n------------------------------------------------------------------------------------------------------","tables":[{"id":62,"name":"mission_trains","columns":["value"],"rows":87}],"sourceUrl":"https://github.com/femga/rdr3_discoveries/blob/477aaaccadb7f0c042286611d9939009636cff12/vehicles/trains/mission_trains.lua","rows":[{"row":0,"cells":{"value":"0x005E03AD"},"note":null},{"row":1,"cells":{"value":"0x0392C83A"},"note":null},{"row":2,"cells":{"value":"0x0660E567"},"note":null},{"row":3,"cells":{"value":"0x0941ADB7"},"note":"net_fetch_train_vip_rescue_00"},{"row":4,"cells":{"value":"0x09B679D6"},"note":null},{"row":5,"cells":{"value":"0x0CCC2F70"},"note":null},{"row":6,"cells":{"value":"0x0D03C58D"},"note":null},{"row":7,"cells":{"value":"0x0E62D710"},"note":"ghost_train_config"},{"row":8,"cells":{"value":"0x10461E19"},"note":null},{"row":9,"cells":{"value":"0x124A1F89"},"note":null},{"row":10,"cells":{"value":"0x19A0A288"},"note":null},{"row":11,"cells":{"value":"0x1C043595"},"note":null},{"row":12,"cells":{"value":"0x1C9936BB"},"note":null},{"row":13,"cells":{"value":"0x1EEC5C2A"},"note":null},{"row":14,"cells":{"value":"0x1EF82A51"},"note":null},{"row":15,"cells":{"value":"0x25E5D8FF"},"note":null},{"row":16,"cells":{"value":"0x26509FBB"},"note":"dummy_engine_config"},{"row":17,"cells":{"value":"0x29C81ACB"},"note":null},{"row":18,"cells":{"value":"0x2D1A6F0C"},"note":null},{"row":19,"cells":{"value":"0x2D3645FA"},"note":null},{"row":20,"cells":{"value":"0x31656D23"},"note":null},{"row":21,"cells":{"value":"0x3260CE89"},"note":"engine_config"},{"row":22,"cells":{"value":"0x35D17C43"},"note":null},{"row":23,"cells":{"value":"0x3ADC4DA9"},"note":null},{"row":24,"cells":{"value":"0x3D72571D"},"note":"gunslinger3_config"},{"row":25,"cells":{"value":"0x3EDA466D"},"note":"handcart_config"},{"row":26,"cells":{"value":"0x41436136"},"note":null},{"row":27,"cells":{"value":"0x487B2BE7"},"note":"winter4_config"},{"row":28,"cells":{"value":"0x4A73E49C"},"note":null},{"row":29,"cells":{"value":"0x4C9CCB22"},"note":null},{"row":30,"cells":{"value":"0x515E31ED"},"note":"prisoner_escort_config"},{"row":31,"cells":{"value":"0x57C209C4"},"note":null},{"row":32,"cells":{"value":"0x592A5CD0"},"note":null},{"row":33,"cells":{"value":"0x5AA369CA"},"note":"gunslinger4_config"},{"row":34,"cells":{"value":"0x5D9928A4"},"note":null},{"row":35,"cells":{"value":"0x68CF495F"},"note":null},{"row":36,"cells":{"value":"0x6CC26E27"},"note":null},{"row":37,"cells":{"value":"0x6D69A954"},"note":null},{"row":38,"cells":{"value":"0x73722125"},"note":null},{"row":39,"cells":{"value":"0x761CE0AD"},"note":"net_fetch_train_camp_resupply_00"},{"row":40,"cells":{"value":"0x767DEB32"},"note":"industry2_config"},{"row":41,"cells":{"value":"0x7BD58C4D"},"note":null},{"row":42,"cells":{"value":"0x8864D73A"},"note":null},{"row":43,"cells":{"value":"0x8D0766BC"},"note":null},{"row":44,"cells":{"value":"0x8EAC625C"},"note":"appleseed_config"},{"row":45,"cells":{"value":"0x90CB53CA"},"note":null},{"row":46,"cells":{"value":"0x9296570E"},"note":null},{"row":47,"cells":{"value":"0x96563327"},"note":null},{"row":48,"cells":{"value":"0x98427740"},"note":null},{"row":49,"cells":{"value":"0x9897FF51"},"note":null},{"row":50,"cells":{"value":"0x998A0CBC"},"note":null},{"row":51,"cells":{"value":"0x9CBE6FEC"},"note":null},{"row":52,"cells":{"value":"0x9E096E46"},"note":null},{"row":53,"cells":{"value":"0xA3BF0BEB"},"note":"net_fetch_train_kidnapped_buyer_00"},{"row":54,"cells":{"value":"0xA8B1CEB7"},"note":null},{"row":55,"cells":{"value":"0xA91041A2"},"note":null},{"row":56,"cells":{"value":"0xAA3E691E"},"note":null},{"row":57,"cells":{"value":"0xAC18A9F4"},"note":null},{"row":58,"cells":{"value":"0xAE47CA77"},"note":"net_fetch_train_bounty_horde_00"},{"row":59,"cells":{"value":"0xAEE0ECF5"},"note":null},{"row":60,"cells":{"value":"0xB1F69614"},"note":null},{"row":61,"cells":{"value":"0xBF69518F"},"note":"trolley_config"},{"row":62,"cells":{"value":"0xC1F1DD80"},"note":null},{"row":63,"cells":{"value":"0xC732CDC8"},"note":null},{"row":64,"cells":{"value":"0xC75AA08C"},"note":"minecart_config"},{"row":65,"cells":{"value":"0xCA19C62A"},"note":null},{"row":66,"cells":{"value":"0xCD2C7CA1"},"note":null},{"row":67,"cells":{"value":"0xD233B18D"},"note":"net_fetch_train_moving_bounty_1"},{"row":68,"cells":{"value":"0xD42DD3EE"},"note":null},{"row":69,"cells":{"value":"0xD5DF2D82"},"note":null},{"row":70,"cells":{"value":"0xD8CF6395"},"note":null},{"row":71,"cells":{"value":"0xD92B16AE"},"note":null},{"row":72,"cells":{"value":"0xD93C36C2"},"note":null},{"row":73,"cells":{"value":"0xDA2EDE2F"},"note":null},{"row":74,"cells":{"value":"0xDC9DD041"},"note":null},{"row":75,"cells":{"value":"0xDD920DAF"},"note":null},{"row":76,"cells":{"value":"0xE0898B89"},"note":null},{"row":77,"cells":{"value":"0xE16CA3EF"},"note":null},{"row":78,"cells":{"value":"0xEB8B2439"},"note":null},{"row":79,"cells":{"value":"0xEF9FC71D"},"note":null},{"row":80,"cells":{"value":"0xEFBFBDD8"},"note":null},{"row":81,"cells":{"value":"0xF19E48CA"},"note":null},{"row":82,"cells":{"value":"0xF6AA98F4"},"note":null},{"row":83,"cells":{"value":"0xF9B038FC"},"note":"bountyhunter_config"},{"row":84,"cells":{"value":"0xFAB2FFB9"},"note":null},{"row":85,"cells":{"value":"0xFAC328F0"},"note":null},{"row":86,"cells":{"value":"0xFD8810E8"},"note":null}],"table":62}