Unsolved How do I spawn a RANDOM vehicle using LUA?

Discussion in 'Mod Support' started by umustbeloggedintododat, Aug 14, 2020.

  1. umustbeloggedintododat

    umustbeloggedintododat
    Expand Collapse

    Joined:
    Feb 16, 2019
    Messages:
    1,381
    Hello, I wanted to spawn a random vehicle including mods in lua. I tried using bread's random vehicle spawner but that seems to be coded in JavaScript. I want to do this for personal use.

    btw here is that javascript
    Code:
    angular.module('beamng.apps')
      .directive('randomVehicle', ['Vehicles', 'InstalledContent', '$rootScope', function (Vehicles, InstalledContent, $rootScope) {
        return {
          templateUrl: 'modules/apps/randomVehicle/template.html',
          replace: true,
          restrict: 'EA',
          link: function (scope, element, attrs) {
            Vehicles.populate();
    
            scope.spawnNew = function recursive(randomVehicle_type) {
    
              var randomVehicle_index = Math.floor(Math.random() * (InstalledContent.vehicles[randomVehicle_type].length + 1));
              var randomVehicle_object = InstalledContent.vehicles[randomVehicle_type][randomVehicle_index];
              if(randomVehicle_object.Type !== 'Prop') {
                switch (randomVehicle_type) {
                  case "models" :
                    Vehicles.addToGame(randomVehicle_object.key);
                    console.log(randomVehicle_object);
                    $rootScope.$broadcast('Message', {msg: 'Spawned: ' +randomVehicle_object.Brand + ' ' + randomVehicle_object.Name, ttl: 15, category: 'BreadModMessage', icon:'favorite_border'});
                    break;
                  case 'configs':
                    var peter_Model = InstalledContent.vehicles.models.filter((elem) => elem.key === randomVehicle_object.model_key)[0];
                    Vehicles.addToGame(randomVehicle_object.model_key, randomVehicle_object.key);
                    $rootScope.$broadcast('Message', {msg: 'Spawned: ' + randomVehicle_object.Name, ttl: 15, category: 'BreadModMessage', icon:'favorite_border'});
                    break;
                  default:
                }
              } else {
                recursive(randomVehicle_type);
              }
            };
          }
        };
      }]);
    
    
     
    • Like Like x 1
  2. meywue

    meywue
    Expand Collapse
    Administrator
    BeamNG Team

    Joined:
    Nov 19, 2015
    Messages:
    339
    \lua\ge\extensions\core\vehicles.lua has some interesting functions exposed in this regard.

    Code:
    -- returns array of all vehicles
    core_vehicles.getModelList(true)
    -- returns dictionary of all vehicles
    core_vehicles.getModelList()
    
    -- Spawn a random vehicle
    -- get count of all models
    var modelCount = #core_vehicles.getModelList(true).models
    
    -- get random index
    var randomIndex = math.random(1, modelCount)
    
    -- get vehicle key, used to spawn the car
    var vehicleKey = core_vehicles.getModelList(true).models[randomIndex].key
    
    -- spawn new vehicle,default config
    core_vehicles.spawnNewVehicle(vehicleKey, {})
    There's also getConfigList(array:bool) to get an array/dict of all available configs.
     
    • Like Like x 1
  3. umustbeloggedintododat

    umustbeloggedintododat
    Expand Collapse

    Joined:
    Feb 16, 2019
    Messages:
    1,381
    Hmm, I might try that! Thanks!
    --- Post updated ---
    How do I run LUA into BeamNG?
    --- Post updated ---
    Help I excuted it into GE - Lua but nothing happened?
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice