Pneumatic Bolt Driver rework/restoration

This is the Pioneer Airbow. It uses compressed air to fire arrows and can fire up to 8 shots with consistent velocity before needing to be refilled. This might sound familiar to players who have been tracking the game’s development - the Airbow is functionally similar to the pneumatic bolt driver, which was obsoleted for not being representative of any real-world weapons.

I suggest reworking and restoring the pneumatic bolt driver to simulate the Pioneer Airbow (or a very similar product in the Cataclysm universe). This entails a few key changes:

  • Renamed to “pneumatic arrow gun” (PAG) in order to more accurately reflect its functionality. The PAG’s projectiles are more akin to arrows, not bolts, which are generally shorter and heavier than arrows. A “driver” is, as far as I’m aware, a fictional term with no proper definition when referring to weapons.

  • It cannot be crafted by hand. Instead it is found anywhere the compound crossbow can be found.

  • It does not use normal arrows - the shaft of the arrow used by the Airbow is a tube that fits over the barrel of the Airbow. The PAG should use its own ammo type that is not compatible with traditional bows/crossbows, and vice versa. The player can find these manufactured, non-handcraftable arrows in the same places the PAG and carbon fiber arrows can be found.

    • It might be possible for the player to fabricate bootleg versions of the manufactured pneumatic arrows, as they are effectively normal arrows with tubes for shafts. The player would be lacking machine precision, carbon fiber, and low-friction ceramic coating used to squeeze as much performance as possible out of the arrow. This would result in the bootleg arrow having lower accuracy, range, damage, and retrieval rate.
  • It can only hold one arrow at a time, but the reload time is reduced to 2-3 seconds, which is about how long it takes to slip the arrow on to the shaft and cock the gun. The long action of pressurizing the gun is separated from loading the gun with the fault system.

  • The PAG is subject to two new faults - “Low Pressure” and “Insufficient Pressure”. After 8 shots, the PAG gains the “Low Pressure” fault which decreases the range and damage of fired bolts and increases in severity if the player continues firing without refilling. “Insufficient Pressure” prevents the firing of the driver at all and is applied to arrow guns when the player first finds them, and if the player fires enough shots with “Low pressure”. Both faults can be easily mended with the appropriate tool (a pump or pressurized air tank), but this takes time.

Potential revised json entry for the pneumatic bolt driver:

  "id": "helsing",
  "looks_like": "ar15",
  "type": "GUN",
  "symbol": "(",
  "color": "dark_gray",
  "name": { "str": "pneumatic arrow gun" },
  "description": "A pre-charged pneumatic arrow gun designed for big game hunting.  It is very quiet and deadly, and significantly more accurate than a crossbow due to the force being applied at the head of the arrow rather than the rear.",
  "price": 100000,
  "price_postapoc": 12000,
  "material": [ "plastic", "steel" ],
  "flags": [ "NEVER_JAMS", "NON-FOULING" ],
  "skill": "rifle",
  "ammo": [ "pneumatic_arrow" ],
  "weight": "3130 g",
  "volume": "2 L",
  "longest_side": "85 cm",
  "bashing": 12,
  "to_hit": -1,
  "ranged_damage": { "damage_type": "stab", "amount": 5 },
  "range": 20,
  "dispersion": 30,
  "durability": 7,
  "default_mods": [ "rifle_scope" ],
  "reload": 300,
  "loudness": 22,
  "valid_mod_locations": [
    [ "accessories", 4 ],
    [ "grip", 1 ],
    [ "sights", 1 ],
    [ "sling", 1 ],
    [ "stock", 1 ],
    [ "rail mount", 1 ],
    [ "underbarrel mount", 1 ]
  "faults": [ "fault_gun_low_pressure", "fault_gun_no_pressure" ],
  "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "pneumatic_arrow": 1 } } ]

Pneumatic arrow and bootleg version:

  "type": "AMMO",
  "id": "pneumatic_arrow",
  "price": 2000,
  "name": { "str": "pneumatic arrow" },
  "symbol": "=",
  "color": "green",
  "looks_like": "arrow_fire_hardened_fletched",
  "description": "A fletched carbon fiber arrow shaft with an expanding broadhead tip.  The shaft is a hollow tube that fits over the barrel of an airbow.  Deals impressive damage to targets.  Stands a good chance of remaining intact once fired.",
  "material": [ "kevlar_rigid" ],
  "volume": "250 ml",
  "longest_side": "66 cm",
  "price_postapoc": 1000,
  "weight": "24 g",
  "bashing": 1,
  "ammo_type": "pneumatic_arrow",
  "damage": { "damage_type": "stab", "constant_damage_multiplier": 1.75 },
  "range": 4,
  "dispersion": 50,
  "loudness": 0,
  "count": 10,
  "stack_size": 10,
  "critical_multiplier": 10,
  "effects": [ "RECOVER_30", "PRESSURE" ]
  "type": "AMMO",
  "id": "pneumatic_arrow_bootleg",
  "copy-from": "pneumatic_arrow",
  "name": { "str": "bootleg pneumatic arrow" },
  "description": "A handmade imitation of the specialized arrow used with a pneumatic arrow gun, with a bladed tip.  The shaft is a hollow tube that fits over the barrel of a pneumatic arrow gun.  Deals impressive damage to targets.  Stands a somewhat low chance of remaining intact once fired.",
  "material": [ "plastic", "steel" ],
  "range": 0,
  "dispersion": 100,
  "relative": { "damage": { "damage_type": "stab", "constant_damage_multiplier": -0.5 } },
  "proportional": { "price": 0.5, "price_postapoc": 0.5, "weight": 2.0 },
  "extend": { "effects": [ "RECOVER_20" ] },
  "delete": { "effects": [ "RECOVER_30" ] }

Ammo type “pneumatic_arrow”:

  "type": "ammunition_type",
  "id": "pneumatic_arrow",
  "name": "pneumatic arrows",
  "default": "pneumatic_arrow"

Recipe for the bootleg pneumatic arrow:

  "type": "recipe",
  "result": "pneumatic_arrow_bootleg",
  "category": "CC_AMMO",
  "subcategory": "CSC_AMMO_ARROWS",
  "skill_used": "fabrication",
  "skills_required": [ [ "survival", 1 ] ],
  "using": [ [ "blacksmithing_standard", 1 ] ],
  "difficulty": 5,
  "time": "1 h 30 m",
  "autolearn": true,
  "book_learn": [ [ "recipe_arrows", 4 ] ],
  "qualities": [ { "id": "CHISEL", "level": 3 } ],
  "tools": [ [ [ "swage", -1 ] ] ],
  "components": [
    [ [ "adhesive", 1, "LIST" ], [ "filament", 20, "LIST" ] ],
    [ [ "steel_tiny", 1, "LIST" ] ],
    [ [ "fletching", 1, "LIST" ] ]

Low and Insufficient Pressure faults:

  "id": "fault_gun_low_pressure",
  "type": "fault",
  "name": { "str": "Low Pressure" },
  "description": "Firing a pneumatic gun requires high air pressure.  If the pressure gets too low, shots will lose velocity and eventually become totally ineffective.",
  "mending_methods": [
      "id": "mend_fault_gun_low_pressure",
      "name": "Refill air tank",
      "success_msg": "You refill the air tank of your %s.",
      "time": "60 s",
      "skills": [  ],
      "requirements": { "qualities": [ { "id": "PRESSURIZATION", "level": 1 } ] }
  "flags": [ "SILENT" ]
  "id": "fault_gun_no_pressure",
  "type": "fault",
  "name": { "str": "Insufficient Pressure" },
  "description": "Firing a pneumatic gun requires high air pressure.  If the gun is out of pressure, it will be unable to fire.",
  "mending_methods": [
      "id": "mend_fault_gun_no_pressure",
      "name": "Fill air tank",
      "success_msg": "You fill the air tank of your %s.",
      "time": "450 s",
      "skills": [  ],
      "requirements": { "qualities": [ { "id": "PRESSURIZATION", "level": 1 } ] }
  "flags": [ "SILENT" ]

I believe the necessary .cpp files to edit in order to support the new faults are item.cpp (where the fault_id only needs to be added to a list), item_group.cpp (which controls the spawning of items with faults), and ranged.cpp (which controls the exact effects the faults would have on the operation of the gun).

Pioneer Airbow FAQ

Video showcasing the Airbow for deer hunting. The Airbow is capable of downing a deer with one clean shot, to give an idea of how strong the PAG should be.

In case you’re wondering why I haven’t made a PR for these changes myself, I do not know how to compile the game in order to test the source code changes. I also hardly even know where to start editing ranged.cpp to achieve the desired effect.

We’ve already got one hack for item using two types of ammo with UPS, we shouldn’t add more.

We’d love to have pneumatic weapons, but we need to have proper support for multiple ammo types, we just can’t have more extended hacks (because using faults to simulate this is a hack).

There is a project that will make pneumatics “not” a hack called multi-mag, which was intended to be implemented right after nested containers since that enabled programming it much easier. However the person working on that is busy right now so there is no ETA.

When did they remove the bolt driver? It was one of my favorite weapons.Edit found out why

The part of it being not being representative of any real-world weapons is BS in my opinion as such a weapon could be made today as at its core its just a revolving set of barrels that mate up with the firing mechanism and valve system from an air rifle (like the air bow above)

I do think the PBD should be harder to craft (more parts and tools needed) and needs a system like multi-mag to add in compressed air as a ammo type needed to fire it. The PBD as it was should be the end of a long line of upgrades to a more simpler weapon like the Pioneer Airbow or some kind of home made equivalent and should require cannibalising a revolver to make.

Based on the pull request linked in the first post, that would be on the 16. of April 2020 - or since experimental build 10535, if I’m not mistaken.

Bolt driver was removed a while ago. I can understand since a pneumatic weapon firing crossbow bolts is a little strange, and has never been managed successfully irl.

However the pneumatic assault rifle is something that was done well back in the late 1700s-early 1800s. The Girardoni Air Rifle was actually extremely effective at the time it was fielded, helped by the fact that it was essentially the first magazine fed rifle. The main issues with its construction could be easily solved with modern production methods, like rubber gaskets and welding instead of riveting.

Ah hell. Maybe I should make a separate thread. :thinking:

The first post has an air rifle that fires arrow’s so why are bolts such a stretch? The weapon it was based off of (the hellsing from metro) did fire long metal unfletched arrow’s.

I mean as a hand crafted thing a cata survivor can do with a workbench and a fistful of tools. The airbow in the OP seems a bit more advanced than that (specifically mentioning it being lootable only) and I honestly question its ability to fire arrows at lethal velocity.

Maybe the carbon fiber ones machine made for it could work, but wooden ones would probably be a non starter. I only mention the Girardoni since it has a proven service history and could be manufactured with modern tools available to a PC easily enough while satisfying the niche of an effective, handcrafted pneumatic weapon.

Airbows are a real thing and AFAIK work quite well. I don’t know how easy to make they would be though. Considering the lack of examples in pre-modern times I’m skeptical of a scrap airbow.

A Giradoni has been called out many, many times as a great model to follow, and it would go in no problem as long as it doesn’t do too much violence to our code internals, which is a problem that all the submissions so far have suffered from.

If someone in 1779 could make ta Giradoni with the tools available at the time some one with the knowledge skill and modern tools can do it now. If multi mag gets finished simulating pneumatic weapons properly should be doable,The hardest part is making the pressure vessel and thats an ease with modern tools and better steel.
Even a repeating pneumatic crossbow like the PBD is atleast semi viable, The metro 2033 Hellsing is built off a large frame revolver though it should not be able to revolve on its own due to the placement of the barrels (the player manually rotating and indexing the barrels is possible).
A more realistic weapon would have the barrels move further back into the frame so the revolver’s mechanism can rotate them like it does the cylinder on a revolver, the hammer would be stretched back to make room for a small pressure vessel that is fed from the one in the stock, this secondary Vessel would have a small moveable rod running through it with a gasket on the front and probably a large fixed gasket to prevent air from escaping out the back, The hammer hits this rod and pushes it forward so the front gasket opens into the first barrel and firers the bolt/arrow inside.