Autodrive

by Pi-C

Car equipment for train avoidance, logistic network integration, circuit network connectivity, fuel refill, ammo reload, vehicle repair, radio control, enemy targeting, and gate control.

Content
14 days ago
0.17 - 1.1
2.40K
Transportation

Changelog

Version: 1.1.11
Date: 2024-04-10
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Fixed crash on trying to access riding_state of spider-vehicles, which exists only for players and cars. (https://mods.factorio.com/mod/autodrive/discussion/6614a96d349a1c39a2e92005)

  Changes:
    - Skip calculating max_speed of vehicles based on spider-vehicle prototye in on_tick.
    - Improvements to debugging functions.


  TODO:
    - Find a way to calculate max_speed of spider-vehicles! AD_vehicle.get_max_speed() is still called for spider-vehicles from AD_panic.check_panic() and from calc_bounce_speeds(), but it seems that only the panic check is relevant.

    - Don't forget to remove the new optional dependency on "Krastorio2" once it creates new equipment-grids for "Aircraft" in data/data-updates instead of data-final-fixes! (Current version of K2: 1.3.23)


    - Bugfix: Suicide by train (Is that taken care of by bouncing?)
    - Change: Find a way to toggle logistics behavior so that items requested/loaded in place A can be provided/unloaded in place B. (Buffer chest instead of requester/provider?)
    - Potential change: Add drop-down list of destinations?

    - Record routes by driving them with a vehicle: "Markers" mod could be used to set waypoints (one kind where direction is changed, one kind as a stop where the vehicle is waiting for a certain time or until a condition is met -- similar to train stations). Once a route has been recorded, it becomes available to all players on the force and can be assigned to vehicles per GUI.

    - What I did discover is that the status of the follow enabled or disabled, seems to be what's getting stuck. If I save the with follow disabled, the car comes back stuck in disabled when the save is loaded. If I save in enabled, the car comes back stuck in enabled mode. I also discovered that it is the process of removing the car from the Autodrive list that is what resets it to normal control. I thought I had done that already, but I'm not so sure now. (https://mods.factorio.com/mod/autodrive/discussion/5f13807cad167e6da3ce6ef3)

    - Follow mode: When my car is set to follow me and I go to a place it cannot reach (due to lack of space), it goes into a mode where it continually says "Pathing..." and stops moving forever, even when my position is reachable again. Stopping/starting follow usually fixes it and it starts following again. (https://mods.factorio.com/mod/autodrive/discussion/5ecafdf5b7d53d000c414812)

    - Group pathing: One final improvement to the logic might be to do a repath once the final (20 tiles? 10 %?) leg of the trip is reached, just to make sure the parking spot is still available. This would help alleviate the parking issue if they arrived on a moderate delay. (https://mods.factorio.com/mod/autodrive/discussion/5f0a926401510c706ab84ecb)

    - Repathing while driving: Perhaps defining a hot-key for "Stop" would be an option? Pro: You don't have to move the mouse over to the GUI, so it may be faster. Contra: One more hot key competing with combinations from other mods. (https://mods.factorio.com/mod/autodrive/discussion/5efddc617d58e102db147db0)

    - On entering panic mode, save state.path to state.panic.saved_path. On leaving panic mode, find a path to next(state.panic.saved_path), once there, remove state.panic.saved_path[1] and write back state.panic.saved_path to state.path. (This doesn't make sense now. It will be relevant if we can store complex paths with routes between waypoint destinations.)

    - Try save autodrive-shortwave-test!

    - Register to events from "CustomColor" once that is updated (current version: 3.1.1)!
    - Use find_entities_filtered with rotated areas for the train sensor! (Do we still need the train sensor? Since the introduction of bouncing, vehicles will be shoved off the rails by trains already.)

    - Consider conflicting with "DMV" mod. For some reason, the cars that have been converted to spider-vehicles never get a path, and impact damage is never registered for them (only for the other crashing party), so healing/repairs and bouncing don't work either.

    - Look for enemies using the largest gun range of the available guns and switch to most effective weapon that has nearest enemy within its range?

    - Do we still need the train sensor? Since the introduction of bouncing, vehicles will be shoved off the rails by trains already.

    - Heal damaged entities completely or restore the health they had before the crash? (Doesn't work if vehicle.health - final_damage < 0 because final_health will be rounded up to 0 and the on_entity_damaged doesn't provide original_health.)
Version: 1.1.10
Date: 2024-01-12
  Uploaded by:
    - Pi-C

  Info:
    - You may want to check out the new mod "Shortwave & Autodrive Graphics fix" which provides some improved graphics as well as a Japanese translation of Autodrive and Shortwave. (https://mods.factorio.com/mod/shortwave-and-autodrive-graphics-fix)

  Bugfixes:
    - Fixed that with the logistic sensor, unfiltered slots wouldn't be added to slot list for provided items if filtered slots were found in the same line of the inventory.
    - Fixed that buttons for toggling enemy and logistics sensors would be enabled on the GUI even if no such sensor was installed.
    - Fixed that a vehicle's rendering of the channel name would be kept when the circuit network sensor was removed.
    - Fixed that with the logistic sensor, slots in the trunk inventory that already contained items but had a filter set for another item would only add the request, but never provide the existing item.
    - Fixed that vehicles were reset when "Request from buffer chests" was toggled via the GUI.
    - Fixed that code for checking sensors was run when only sensors that had been disabled via the GUI were installed in the vehicle grid.

  Changes:
    - We'll now process the provides/requests of a vehicle only if it is located within the bounds of a logistic network that has at least one bot. This should improve performance in the unlikely event that all bots from an isolated network (e.g. in a distant outpost) have been destroyed.
    - Added another migration file, moving some of the stored vehicle data into subtables. As quite a lot of data was dumped into one big table, this made debugging unnecessarily hard. I hope I didn't introduce any new bugs with that -- so far, things seem to work alright, though!
Version: 1.1.9
Date: 2024-01-08
  Uploaded by:
    - Pi-C


  Changes:
    - If vehicles equipped with a logistics sensor provide items that they also request, we try to fulfill the requests with items from the trunk or with items we've already moved into the hidden provider chest so that bots don't have to move these items.
    - We no longer search empty inventories for stacks to transfer.
    - We now stop stack transfers once the destination inventory is full.
    - Armor items are now considered special items, so they won't lose the items from their equipment grid when they are provided.
    - We now also consider items-with-tags and items-with-label as special items if no tag or label is set. This should help against blueprints being cleared when they are moved to the hidden provider chest.
    - We now use a cached empty table as fallback in constructs like "for k, v in pairs(tab or {})". This should improve performance a bit as we can reuse the same table again and again, without allocating a new one each time.
    - Cleaned up a huge mess of obsolete code that has been commented out for ages.

  GUI:
    - Added buttons to temporarily disable enemy and logistic sensors. (https://mods.factorio.com/mod/autodrive/discussion/5f13807cad167e6da3ce6ef3)
Version: 1.1.8
Date: 2023-12-30
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Fixed that a player couldn't use the selection tool after changing to a force that already had researched our unlock tech but had no other players (e.g. after changing to force "enemy" after the tech was researched using cheats like commands or "Creative Mod").
    - Fixed that some keys were assigned to wrong categories in the English locale.
    - Fixed that vehicles couldn't be linked to the radio from "Shortwave". (https://mods.factorio.com/mod/autodrive/discussion/658118477d17e8c8831e86b3)


  Changes:
    - Added "is_military_target = true" to supported vehicle prototypes. This means that turrets of enemy forces may now automatically target your vehicles.
    - If two vehicles were parked touching each other (e.g. after they stopped bouncing), and tried to find a path again, it could happen that they would still touch each other after bumping. In order to prevent this, we will now rotate vehicles full circle in up to 24 steps. If we couldn't find a path from the current vehicle position after rotating the vehicle by 360°, we will bump it to a new position (up to 5 times) and try to repath from there.
    - Added setting for the angle by which vehicles are rotated when pathing (15°, 30°, or 45°). The angle affects the maximum number of rotations (n = 360°/angle): smaller angles increase the chance of finding a path, larger angles potentially reduce the number of rotations (and thus: path requests) and may be better for UPS.
    - Vehicles that are linked to a shortwave-radio will now transmit their position as soon as it changes (arrival and departure times will still be updated once per second).
Version: 1.1.6
Date: 2023-10-17
  Uploaded by:
    - Pi-C

  Minor features:
    - We no longer use the same top speed for all vehicles! Several years ago, AlienX already suggested to "[u]se crazy math to work out a vehicles max speed, and set the 'auto pilot' to that" and provided some code to figure out the maximum speed a vehicle could drive at. (As I'm using variable modifiers of fuel and -- once Factorio >=1.1.93 is active -- sticker effects, it's not possible to store the maximum speed per vehicle/tile; but the maximum speed of moving vehicles will be cached until fuel, terrain, or sticker effects change.) Thanks a lot, AlienX! (https://mods.factorio.com/mod/autodrive/discussion/5d795c18ae6ef6000cece2a7)
    - The cursor will be changed to Autodrive remote control when players use the toggle button to turn on the GUI, provided they have one in their inventory or use the "Shortcuts" mod.
    - If an enemy sensor was installed, vehicles would shoot at insane speeds (1/tick, or 60/second). We'll now add a delay based on gun warmup and cooldown as well as any speed modifiers unlocked by the vehicle force.
    - Manual adjustment of research costs was always a bit hacky as it didn't figure in changes to tech tree and costs made by other mods. For each of our techs (remote control and sensors), we now copy the science packs from the prerequisite that uses the highest number of science pack types, and use the highest number of research cycles used by any of the prerequisites for calculating the number of our tech's research cycles.


  Bugfixes:
    - Fixed crash when vehicle.selected_gun_index was greater than the number of guns defined in the vehicle prototype. (https://mods.factorio.com/mod/autodrive/discussion/649e6a8e62f1b7219cd80ccd)
    - Fixed crash with vehicles trying to request/provide items that aren't available anymore (removed mods etc.).
    - Fixed crash when vehicles that stopped panicking because they had run out of fuel, caused by a local variable having the same name as a global table.
    - Added migration script to remove dummy-characters from vehicles if they were driver instead of passenger. (https://mods.factorio.com/mod/autodrive/discussion/649e6a8e62f1b7219cd80ccd)
    - Fixed crash when player entered a vehicle while having no character. (https://mods.factorio.com/mod/autodrive/discussion/6526cd4f1dd665d81d8221e0)
    - Fixed that UNFUELED vehicles would be teleported a short distance when pathing has failed, so that they could try repathing from a (hopefully) better location. Teleporting is a crutch, but it really doesn't make sense that a vehicle without fuel should be able to move in that situation. (https://mods.factorio.com/mod/autodrive/discussion/64d134f0d9a9597ea60f1c2e)
    - Fixed that once vehicles had started following a path in autodrive mode, they would continue to its end even if it had run out of fuel on the way.

  Changes:
    - We'll now ignore vehicle prototypes where allow_passengers is false because such vehicles may have neither driver nor passenger and we couldn't insert our dummy.
    - Vehicles crashing with front or back into the side of another vehicle will now bounce off in order to prevent deadlocks. (This is meant to be a temporary solution until I've figured out how to rotate the damaged vehicle.)
    - We now make sure that no dummy character is driver!
    - Replaced most references to game.players[], which is shorter to write, with game.get_player(), which is faster to run.
    - Added handler for new (as of version 1.1.83) on_entity_color_changed event.
    - In the on_tick event, we now won't run the code related to checking sensors for vehicles without an installed sensor.
    - In on_configuration_changed, we now exchange the following data with GCKI: list of supported vehicle prototypes; original colors of vehicles based on prototypes supported by Autodrive/GCKI; vehicle names set by Autodrive/GCKI; Autodrive owner and GCKI owner/locker of vehicles controlled by both mods.
    - Improved cleanup of obsolete mod data.
    - We now inform GCKI about vehicles added to/removed from our GUI. Likewise, we store and update info about GCKI owners/lockers with the respective vehicle when GCKI adds/removes them. This way, we don't have to use remote calls each time one of the mods wants to update their GUI or rename/recolor a vehicle.
    - If both Autodrive and GCKI are active, we won't listen to on_entity_color_changed and on_entity_renamed as GCKI will handle these events for us.
    - If debugging is turned off, all debugging functions will be replaced with an empty dummy function.
    - Bumped dependency on base mod to >=1.1.85. (Required for on_entity_color_changed, but actually a mere formality as the stable version of Factorio is 1.1.91.)

  Compatibility:
    - If a player enters a force from "Blueprint Sandboxes", we will ignore this change (not updating vehicles selected by player, GUIs, etc.) and just hide that player's GUIs and toggle button until the player returns to the original force.
    - Added custom events "on_vehicle_starts_autodriving" and "on_vehicle_stops_autodriving" for telling mods like "Dirt Path" that we'll start/stop to move vehicles in autodrive-mode when they are following a path automatically or when they are bouncing. If you want to listen to these events, use 'remote.call("autodrive", "get_custom_event_ids")' in script.on_init and script.on_load to get the numeric event IDs!

  GUI:
    - If a vehicle doesn't have a custom name, its unit_number will be shown instead in the header of camera and minimap GUIs. The unit_number may change if a vehicle has been exchanged by another mod; however, this shouldn't cause much confusion as the unit_number is also shown on the main GUI if there is no custom name.
Version: 1.1.5
Date: 2023-05-29
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Fixed that state.gun would only be stored after the vehicle actually reloaded its weapons with ammo from the trunk. If both ammo and enemy sensor were installed, but the gun hadn't been auto-reloaded yet because it still had ammo, the enemy sensor would put the vehicle in panic mode instead of ordering it to shoot at the next enemy.
    - Fixed that a vehicle wouldn't leave panic mode when the enemy sensor didn't find any enemies near it.
    - Fixed that path renderings wouldn't be removed when a vehicle was loaded onto a vehicle wagon (could happen if vehicle with a path was standing next to a vehicle wagon because it had been locked or was out of fuel.)

  Changes:
    - Optimized function for refilling fuel/ammo inventories from the trunk.
    - Added missing handler for on_entity_renamed.
    - Changed per-user setting "Render color" to new (as of Factorio 1.1.77) type "color-setting".
    - Added migration script to store all panic-related state data in table mod.panic.
    - Vehicles in panic mode (e.g. when pursued by enemies while having no loaded weapon) will now be rotated randomly if they are stuck at a cliff or another obstacle, so they can try to escape.
    - Rewrote code for bouncing. Vehicles don't just reverse at the same speed they had when crashing, instead bounce speeds now depend on weight, speed, and the directions the vehicles move into (i.e., there is a distinction between vehicles moving towards each other or one vehicle pushing the other).
    - If two vehicles that are based on prototypes supported by Autodrive crash, Autodrive will handle the bouncing of both vehicles, even if one of them is not on the GUI of any force. Collisions involving trains/rolling stock will also cause bouncing of vehicles controlled by Autodrive, but not the train.

  Compatibility:
    - Added optional dependency on "Spidertron Weapon Switcher" (SWS).
    - Forced startup setting of SWS for alternate items to be true.
    - Added handler for custom event on_spidertron_switched from SWS.
    - Blacklisted dummy prototypes from "Spidertron Enhancements".
    - Blacklisted spider-vehicle from "Companion Drones".
    - Blacklisted car-prototype from "Long range delivery drones".
    - Players using the GUI to select a vehicle will now also get our remote control if "Shortcuts for 1.1" is active (without that mod, they still must have a remote control in their main inventory).

  Modding:
    - Removed deprecated custom event "on_autodrive_teleported_vehicle". Listen to defines.events.script_raised_teleported instead! It will be raised with the following data:
      {
        entity              = LuaEntity,
        old_surface_index   = uint,
        old_position        = MapPosition,
        name_render_text_id = uint (optional, ID of LuaRendering for custom name)
        mod_name            = "autodrive" (fixed string added by Factorio)
      }
Version: 1.1.4
Date: 2023-01-11
  Uploaded by:
    - Pi-C


  Bugfixes:
    - Fixed crash because of a typo in a migration script. (https://mods.factorio.com/mod/autodrive/discussion/63a463e4bee72fe36ac4c0de)
    - Fixed crash when trying to call functions related to the circuit-network sensor while the shortwave mod was not active. (https://mods.factorio.com/mod/autodrive/discussion/63a857cbf69ecbcb06bbaad0, https://mods.factorio.com/mod/autodrive/discussion/63a463e4bee72fe36ac4c0de)
    - Fixed crash in handler for on_entity_replaced when trying to read from an uninitialized table. (Thanks to robot256 for finding this!)
    - Fixed crash on opening the Tips & Tricks tutorial scenario. Thanks to robot256 for directing my attention to this bug which probably affects all my mods! (https://mods.factorio.com/mod/GCKI/discussion/63b62197d41edfb807a63fba)
    - Fixed crash when trying to read the request_from_buffers property of a spider-vehicle without requester slots.
    - Added optional dependency on Krastorio2 in order to fix a crash when K2, "AAI Vehicles: Flame Tumbler", and "Aircraft" were active. (https://mods.factorio.com/mod/autodrive/discussion/63b63f5d0987d5bd1062404a)


  Changes:
    - Ammo, fuel, and trunk inventories are now stored in the global table, so we won't have to call vehicle.get_inventory() all the time from on_tick.
    - Avoid calling remote functions from GCKI in on_configuration_changed. As GCKI is loaded after Autodrive, tables may not have been set up correctly at this point, leading to crashes.
    - It didn't make sense that logistic and repair sensors required just red and green science packs while blue science packs were needed for some prerequisites (logistic and construction bots). *Manually* adjusted research costs of the sensor techs so that they will require at least as much as the most expensive prerequisite tech.
    - If there are multiple tiers of a sensor, all tiers will take the same time to research (e.g. 100 cycles at 30 seconds/cycle), but require more science packs per cycle: Thus, researching tier X of a sensor might cost X red + X green + X blue science packs per cycle. (Multiple tiers are only used for the repair sensors at the moment, but this will apply to any tiered sensors added later in the future.)


  Compatibility:
    - "SchallTransportGroup": Really added the recipes for remote control and sensors to the transport group, if it is available. (https://mods.factorio.com/mod/autodrive/discussion/63a463e4bee72fe36ac4c0de)
    - "Nullius": Our techs and recipes can now be researched and crafted.
    - "DMV - Directional Movement Vehicles": Create dummy-items that place the "car" prototypes for which DMV has created a "spider-vehicle" version (we'll need this so the selection tool will show an icon, and to get the icon for the GUIs).
Version: 1.1.3
Date: 2022-12-21
  Uploaded by:
    - Pi-C

  Major Features:
    - Autodrive finally supports spider-vehicles! Some native abilities of spider-vehicles (e.g. logistics) will be disabled when such a vehicle is controlled by Autodrive unless the respective sensor is added to the vehicle grid.
    - As suggested by NightOps, there's now a repair sensor you can install in your vehicles. The repair sensors comes in 3 tiers, each unlocked with its own research. With each tier, repair speed will increase, so you should equip vehicles that you expect to go into combat with a sensor of the highest tier available. Please note that you may install only one repair sensor (regardless of tier) in a vehicle! (https://mods.factorio.com/mod/autodrive/discussion/5f0bb638aaa96f7748e87d86)
    - Vehicles in follow-player mode will now be teleported to the player's surface, if necessary.
    - You can now give custom names to vehicles you control with Autodrive. This is compatible with GCKI's custom names.
    - The old "Find vehicle" button whas been removed because mapview only works if player and vehicle are on the same surface. Instead, you can watch vehicles on a minimap or camera (one of each per player).


  Changes:
    - Huge code overhaul, allowing for better maintenance in the future.
    - Removed versions from optional dependencies. They were obsolete as they referred to mod versions for Factorio 0.18.
    - Blacklisted dummy character prototypes with miniMAXIme and Jetpack, so they won't scale it or create new versions of it.
    - Added support for spider-vehicles. This may still be weird with some of the sensors.
    - Reused code for vehicle filtering from GCKI. Other mods can now black-/whitelist their prototypes with Autodrive.
    - Optimized handling of grids. (https://forums.factorio.com/viewtopic.php?p=570840#p570840)
    - By assigning unique custom names to your vehicles, you can easily keep track of them even if they are destroyed+replaced by mods like "AAI Programmable Vehicles". The name will be rendered above the vehicle, in a color that you can change with a player setting. If GCKI is active, custom names will be synced between the mods. The render color selected in GCKI will take precedence over the color set in this mod.
    - If vehicles equipped with a repair sensor take damage which is not repaired by auto-healing, repair tools (vanilla repair packs and modded tools) from the vehicle trunk will be used to repair the damage. The repair is not instantaneous, but depends on speed and durability of the repair tool, as well as the tier of the repair sensor.

  Bugfixes:
    - Fixed that follow state was stuck after loading a game. (https://mods.factorio.com/mod/autodrive/discussion/5f13807cad167e6da3ce6ef3)


  Graphics:
    - Updated icons for sensors and remote control. Some of the icons still used graphics from Factorio 0.16 (logistic sensors) or 0.17 (ammo sensors), at a size of 32x32. Rebuilt all icons with modern graphics, at a size of 64x64.
    - Added sprites for sprite buttons (camera, map).


  Compatibility:
    - Some mods use entities based on the "car" or "spider-vehicle" prototypes creatively. Autodrive will ignore prototypes where selectable_in_game == false (unless they are whitelisted). Entities from the following mods are blacklisted by default:
      - "Avatars"
      - "Companion Drones"
      - "HelicopterRevival"
      - "Industrial Revolution 2"
      - "King Jo's Warhammer 40K Bunker"
      - "Logicarts", "Logistic Carts"
      - "Nullius"
      - "Renai Transportation"
      - "Satisfactorio"
      - "Shield Projector"
      - "Space Exploration"

    - "Space Exploration": Even unlocked vehicles won't be active if they are in space.
    - "DMV - Directional Movement Vehicles": Add dummy-items to place the vehicles based on the "car" prototypes for which DMV has created a "spider-vehicle" version (we'll need this so the selection tool will show an icon, and to get the icon for the GUIs).

  Modding:
    - Other mods can now black-/whitelist their vehicle prototypes with Autodrive. See data.lua for instructions!
    - Added remote function "vehicle_proxy_destroyed". Mods may store vehicle data when they temporarily remove a vehicle (use case: "Vehicle Wagons 2" loading a vehicle on a wagon). Now vehicles may have a custom name that should persist even though the vehicle is temporarily unavailable, but could be restored. This function should be called when the proxy (e.g. the wagon carrying the vehicle) is destroyed, so that GCKI can remove the custom name from its list.
Version: 1.1.2
Date: 2022-06-16
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Fixed crash when trying to render a path for a destroyed vehicle. (https://mods.factorio.com/mod/autodrive/discussion/62b75fcae07b54516be76873?quote=0)

  Changes:
    - Removed obsolete version checks for filtering events. Filtering script-raised events has been possible since 0.18.27! :-)
Version: 1.1.1
Date: 2022-06-16
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Fixed crash on loading a vehicle owned in Autodrive to a Vehicle Wagon when GCKI was not active. (https://mods.factorio.com/mod/autodrive/discussion/62ab083ad7aebf180542168c)
Version: 1.1.0
Date: 2022-05-03
  Uploaded by:
    - Pi-C

  Info:
    - This is a long overdue update to Factorio 1.1. I didn't have time yet to restructure the mod, so it's basically the same mod as before, with hardly any changes worth mentioning. I won't have a lot of time to work on this in the near future, so I won't update this in the near future. (Considering that the control script is just one big monolithic block of code, it's no fun to maintain this.) However, I've already taken precautions that it will be compatible with the pending version of GCKI.

  Bugfixes:
    - Fixed that the Beam weapon of AAI Wardens was replaced with a vehicle machine gun. (https://mods.factorio.com/mod/autodrive/discussion/5ffaf3cbe65e1f69e7249c46)

  Changes:
    - Replaced hard dependency on "Shortwave" with an optional dependency on "Shortwave for 1.1". If that mod isn't available, the circuit-network sensor won't be created. (https://mods.factorio.com/mod/autodrive/discussion/5ef93c26936a68d808cd68aa)
Version: 0.2.10
Date: 2020-08-23
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.30 of this mod).

  Bugfixes:
    - Fixed that players would be nagged to install GCKI even if an appropriate version was already active. Seems the version check disappeared from on_player_joined_game when I tried including it directly in the nagging function but removed it from there later on.
Version: 0.2.9
Date: 2020-08-17
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.29 of this mod).

  Bugfixes:
    - Fixed instant desync when clients tried to join a multiplayer game. (https://mods.factorio.com/mod/autodrive/discussion/5f37e3c043e182003c399eb6)

  Changes:
    - Fixed that it was possible to select or stop a vehicle that was already controlled by another player. Now, you can only manipulate vehicles for which your name or no name is displayed in the GUI.
    - If a vehicle has been marked as selected by Autodrive, this will be visible to all players, including those from another force.
Version: 0.2.8
Date: 2020-08-15
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.28 of this mod).
    - Unless there are any serious bugs, this will be the last version of this mod for Factorio 0.18.

  Bugfixes:
    - Fixed crash on loading a saved game when a mod providing vehicles has been removed. (https://mods.factorio.com/mod/autodrive/discussion/5f37e3c043e182003c399eb6)

  Changes:
    - I've been convinced that the nagging messages recommending to install GCKI may be too intrusive even though they've been shown just once per session. As Autodrive and GCKI both have a lot of code supporting each other, and as adding a dependency on GCKI to Autodrive isn't possible, I still think it's legit to point players to GCKI -- but I totally understand that you don't want to see this message each time you reload after dying. So starting with this release, the message will be shown at most 3 times per game: once when a new game is created or Autodrive is added to an existing game, and two more times when on_configuration_changed is triggered (new Factorio version, added/removed/updated mods, or changed settings).     (https://mods.factorio.com/mod/autodrive/discussion/5ec33483972846000e2df115)

    - It's stupid that you get the GUI toggle button right from the start of the game, when you don't have even a car yet that could be controlled with it. From now on, the GUI toggle button won't be shown until the Car radio control has been researched by you or your force.
Version: 0.2.7
Date: 2020-06-03
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.27 of this mod).

  Bugfixes:
    - Fixed dependencies: "Unminable Vehicles" must be loaded before this mod; that's not necessary for "Vehicle Wagons 2".
    - Fixed crash on loading a saved game in Factorio <0.18.27 by including code to avoid calling script raised events with filtering. (https://mods.factorio.com/mod/autodrive/discussion/5ed1c874bf1de3000b182448)
    - Fixed crash when remote calls were issued to GCKI, but GCKI was not installed. (https://mods.factorio.com/mod/autodrive/discussion/5ed65b14c8ae2b000b765992)
    - Fixed that follow-player proximity setting wasn't cached.
    - Fixed crash of Factorio 0.17.79 and 0.18.<27 when script_raised_built was called with created_entity instead of entity. (https://mods.factorio.com/mod/autodrive/discussion/5ed6ab7d459dda000c60c90d)

  GUI:
    - Added some checks so that the text of tooltips better reflects the state of a vehicle.
    - Show the name of the player that a vehicle is following; if it's not in follow mode, the name of the player who selected it will be used instead.
    - Follow button is not active if a vehicle already follows another player.

  Changes:
    - Unlock locked vehicles that have been left behind if GCKI was removed from the game.
    - A vehicle that's already on the GUI can't be selected by another player if it is in follow mode.
    - Update vehicle list and GUI when a player is permanently removed from the game.
    - Added migration script to store mod settings in global table.

  Minor Features:
    - Added startup settings to disable healing of vehicles when they hit a tree and healing of friendly entities when a vehicle collides with them.
Version: 0.2.6
Date: 2020-05-30
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.26 of this mod).

  Features:
    - If the Fuel Sensor is installed in a vehicle, and if that vehicle has a grid where equipment like the "Portable generator"/"Small portable generator" from "Krastorio 2" is installed, and if there is any fuel in the vehicle's trunk that can be used with these generators, they now will also be refueled. Refueling the vehicle takes precedence, however.
    - "Allow requests from buffer chests" is no longer a runtime player setting. It has been moved to the GUI, so you can change this separately for each vehicle.

  Changes:
    - Added compatibility with "Vehicle Wagons 2": If a vehicle controlled by Autodrive is loaded onto a vehicle wagon, it will be removed from the GUI until it has been unloaded. Thanks to robot256 for cooperating on making our mods compatible!

    - Unloading a vehicle from a vehicle wagon will not select it -- you'll have to do this with the remote control or the GUI!
    - Vehicles locked or claimed with GCKI can only be selected be the player who claimed or locked them.


  Bugfixes:
    - Logicarts shouldn't be controlled by Autodrive, so adding Autodrive sensors to its grid doesn't make sense. Blacklisted grids from Logicarts.
    - Fixed that GUI was still updated on every tick. This should boost performance immensely! (https://mods.factorio.com/mod/autodrive/discussion/5daacebcf6f1ad002bf2afb5)
    - Fixed an ancient bug where a test checked for the wrong condition when accelerating or braking. It went unnoticed because the condition would always be true, so vehicles would accelerate/brake as expected.

  Modding:
    - Other mods can now blacklist their grids, so Autodrive won't extend them and won't place its sensors into these grids.

    - Added remote interfaces for "Vehicle Wagons 2" and similar mods that may remove vehicles for a while and restore them later.

      USAGE:

      remote.call("autodrive", "get_vehicle_data", vehicle)

        This will return a table with the vehicle data. Currently it only contains { owner = player.index or nil}, but it may be extended in the future.

        vehicle: entity.unit_number or a valid (!) entity of type "car"

      remote.call("autodrive", "vehicle_removed", vehicle, modname)

        This will return nothing. If a vehicle was controlled by Autodrive, it will be removed from the GUI.
Version: 0.2.5
Date: 2020-05-08
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.25 of this mod).

  Bugfixes:
    - Fixed crash when logistic operations should be performed on a vehicle not associated with a player. (https://mods.factorio.com/mod/autodrive/discussion/5eb47628de651c000d0a0026)
Version: 0.2.4
Date: 2020-05-07
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.24 of this mod).

  Bugfixes:

  Minor Features:
    - Vehicles equipped with a Logistic network sensor can now also request items from buffer chests. This is a per-user setting. (https://mods.factorio.com/mod/autodrive/discussion/5eb40158de651c000dfee8ce)

  Changes:
    - Removed code introduced in 0.1.8 and 0.1.10 that added compatibility with the grids from  Bob's/Angel's and Krastorio. It's obsolete since 0.1.23/0.2.3 as this mod is handling grids on it's own now.
Version: 0.2.3
Date: 2020-05-01
  Uploaded by:
    - Pi-C

  Info:
    - All changes are also available for Factorio 0.17 (version 0.1.23 of this mod).

  Bugfixes:
    - Fixed crash when starting an in-game tutorial.

  Changes:
    - Optimized a regular expression for string matching. Thanks a lot to Oktokolo!
Version: 0.2.2
Date: 2020-04-29
  Uploaded by:
    - Pi-C

  Info:
    - dorfl has transferred ownership of this mod to me (Pi-C).
    - All changes are also available for Factorio 0.17 (version 0.1.22 of this mod).

  Bugfixes:
    - Fixed crash related to some apparent change to LuaPlayer.shooting_state in Factorio 0.18.19.
      (https://mods.factorio.com/mod/autodrive/discussion/5e9e1a649e85eb000d0617ba)
    - Removed "Automobilism" from prerequisites of "Circuit network sensor" and "Gate sensor". It was redundant because their prerequisite technology "Car radio control" already requires "Automobilism".
    - Fixed that the GUI was spammed with buttons for vehicles that didn't exist anymore because they had been replaced by "AAI Programming Vehicles".

  Locale:
    - Added Russian localization. Thanks a lot to Dragonling for providing it!

  Features:
    - A minimal equipment grid just big enough to fit all sensors in it will be added to vehicles that don't have an equipment grid yet. However, only sensors from "Autodrive" can be placed into this grid, so if you want to add more equipment to your vehicles, you still need to install another mod providing grids!
    - VortiK's "Armor Plating" adds small grids to vehicles, but they are too small to fit in armor and all of the "Autodrive" sensors. Therefore, if "Armor Plating" is active, its grids will be extended.
    - The size of grids from all other mods (e.g. "Vehicle Grid") will not be changed. However, these grids will be adjusted so that you can place the "Autodrive" sensors from this mod in them.
Version: 0.2.1
Date: 2020-03-18
  Uploaded by:
    - Pi-C

  Changes:
  Bugfixes:
    - Fixed crash when vehicle color should be set to the owner's color but there was no owner yet. (Don't know how that could happen in the first place. I couldn't reliably reproduce it, but it has crashed my game.)
Version: 0.2.0
Date: 2020-01-24
  Uploaded by:
    - Pi-C

  Info:
    - Upgraded for Factorio 0.18 (no code changes)
Version: 0.1.21
Date: 2019-12-27
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Fixed that "Follow player" switch in the GUI wouldn't work by enforcing that the GUI is rebuilt if configuration changes (added/removed mods or changed mod settings), if a player joins the game, or if a singleplayer game is loaded.

  Changes:
    - Output message recommending to install GCKI if it's not active, or to update it to a version >=0.17.14 if a previous version is installed. Adding a dependency won't work (circular dependency error) because GCKI must depend on Autodrive (patches fixing issues with Autodrive are implemented there now and have been disabled in GCKI).

  GUI:
    - Added button to disconnect a vehicle from Autodrive and remove it from the GUI. If the vehicle is moving when you disconnect it, it will brake hard. Disconnecting a vehicle from Autodrive will trigger an alert, so you can easily find it on the map.
    - Added indicator if vehicle is not active. If GCKI >=0.17.14 is active and the vehicle has been locked with the keys from GCKI, a special indicator will be used.
    - If a vehicle is not active, the controls "Select", "Stop", and "Follow" will be disabled.
Version: 0.1.20
Date: 2019-12-21
  Uploaded by:
    - Pi-C

  Changes:
    - Improved bouncing:
      - Code optimization
      - Vehicles bumping into something while moving backwards will now really bounce into the opposite direction.
      - Vehicles will not bounce off trees if they kill them on first impact. This means that a lightweight car will probably bounce back when it collides with a tree while a tank will be able to proceed. May be a nerf, but it's not plausible that a light car should do the same damage as a heavy tank.

  Bugfixes:
    - Removed unnecessary event listener (the function it called was never defined).

  Locale:
    - Localized messages
Version: 0.1.19
Date: 2019-12-20
  Uploaded by:
    - Pi-C

  Bugfixes:
    - Ooops, didn't remove all debugging output! There was one line left that wrote to the log file on every tick -- sorry!
Version: 0.1.18
Date: 2019-12-20
  Uploaded by:
    - Pi-C

  Info:
    - I (Pi-C) have been added as collaborator on this mod.

  Changes:
    - Ignore vehicles that are not active, for example cars that have been locked with the keys from "Gizmos Car Keys (improved)".
    - Ammo sensor and Enemy sensor worked before, but only for vehicles that have only one weapon. Tanks can have 3, but reloading didn't always work (if first weapon had no ammo, it couldn't shoot, but if one of the other weapons had ammo it wouldn't reload the first). Now, the mod tries to reload all available weapons, and tries to switch over to the next weapon if it can't reload the current one.
    - If your vehicle has an Enemy sensor, and if that vehicle runs out of ammo and can't reload, it will now behave as if it had no Enemy sensor.
    - Different people complained that their vehicles would bounce back if they collided with a tree. You will now be able to plow through the thickest forest with your tank or even your car.

  Bugfixes:
    - If a vehicle controlled by this mod was destroyed, it would leave a dummy passenger behind. This dummy is now removed.
    - If a vehicle controlled by this mod had both a human driver and a human passenger, it would continue shooting at the last target position until it ran out of ammo. It will now cease shooting as soon as the last enemy or spawner in its range has been destroyed.
Version: 0.1.17
Date: 2019-08-07
  Uploaded by:
    - dorfl

  Bugfixes:
    - work around bobs logistics changes to logistics chest prototypes
Version: 0.1.16
Date: 2019-08-07
  Uploaded by:
    - dorfl

  Changes:
    - check player on same surface before pathing (follow sensor)
Version: 0.1.15
Date: 2019-08-19
  Uploaded by:
    - dorfl

  Bugfixes:
    - use correct car sprite in the GUI. This caused a crash for, eg, Angel's CAB
Version: 0.1.14
Date: 2019-08-18
  Uploaded by:
    - dorfl

  Changes:
    - add 'Follow player' sensor and tech
Version: 0.1.13
Date: 2019-08-18
  Uploaded by:
    - dorfl

  Bugfixes:
    - fix notfication crash when failing to find non-colliding-position at path target
Version: 0.1.12
Date: 2019-08-17
  Uploaded by:
    - dorfl

  Bugfixes:
    - avoid invalid entity reference trying to unpublish non-published car in GUI
Version: 0.1.11
Date: 2019-08-17
  Uploaded by:
    - dorfl

  Changes:
    - GUI car list
    - multiplayer car selection fixes
Version: 0.1.10
Date: 2019-08-16
  Uploaded by:
    - dorfl

  Bugfixes:
    - catch nil prototype collision_mask for helicopter
  Changes:
    - add sensors to 'vehicle-equipment' for Krastorio
    - trigger logistics sensor when trunk not yet filtered, for emptying
Version: 0.1.9
Date: 2019-08-12
  Uploaded by:
    - dorfl

  Bugfixes:
    - keep item-with-{tags,label,inventory,entity-data} intact during logistics transfer
  Changes:
    - spread UPS load over multiple ticks for scanning large vehicle inventories (Hauler, Crawler)
Version: 0.1.8
Date: 2019-08-11
  Uploaded by:
    - dorfl

  Changes:
    - add sensors to 'vehicle' category for Bob's
    - add sensors to 'angels-crawler' category for Angel's Crawler
Version: 0.1.7
Date: 2019-08-10
  Uploaded by:
    - dorfl

  Changes:
    - reduce UPS load for train sensor when car is parked and not on rails
    - cars with circuit sensors report status via signals on their shortwave channel
  Bugfixes:
    - recovery code for cars that lock together during bounce-crash
Version: 0.1.6
Date: 2019-08-09
  Uploaded by:
    - dorfl

  Changes:
    - render path segments incrementally over multiple ticks to avoid latency spike for long paths
Version: 0.1.5
Date: 2019-08-09
  Uploaded by:
    - dorfl

  Bugfixes:
    - car channel now persists subsqeuent selections
Version: 0.1.4
Date: 2019-08-09
  Uploaded by:
    - dorfl

  Changes:
    - dispatch car via circuit network sensor (with shortwave dependency)
Version: 0.1.3
Date: 2019-08-06
  Uploaded by:
    - dorfl

  Changes:
    - render path destination circle as visual feedback after click
    - relax click bounds detection
Version: 0.1.2
Date: 2019-08-06
  Uploaded by:
    - dorfl

  Changes:
    - Move gate sensor behind gates research
    - Move train sensor behind rail-signals research
    - Added military dependency for ammo and enemy sensors
    - Drop adavanced-electronics dependencies (cover by other deps for logistic sensor)