Giter Site home page Giter Site logo

gunsmith's Introduction

Gunsmith

Gunsmith (gunsmith) is a mod for Cataclysm: Dark Days Ahead.

It overhauls the gun modification system by providing a more in-depth view into the process. As a benefit, this overhaul also allows players to build their firearms from found parts.

โš  Since July 2023, Frontier Mods are being worked on again. However, Gunsmith and other large mods are on hold because of the amount of work that the developer would have to put into them. Refer to the Frontier Mods blog for the latest updates.

Status

Gunsmith is currently on hold.

The mod had been tested up to 0.F-1 stable release of the game, and remains usable as a demonstation of the direction of the mod. All the documentation also remains accessible.

Until a positive solution is found to working on such a large-scale mod consistently, Gunsmith will remain on hold in favor of smaller, more-actionable mods for Cataclysm.

Getting the New Stuff

Use the debug menu to spawn an item called Gunsmith Demo 1 package. Deconstruct the package to receive one of every single part available for the AR-15. The package includes an "empty" AR-15 (i.e., the lower receiver) from which you can start a fresh assembly, as well as two example pre-assembled AR-15s, to visually demonstrate the potential difference all the parts make.

Alternatively, use the debug menu to spawn each item individually.

Because the guns assembled this way must follow a protocol of sorts, use this guide to figure out how to build an awesome AR-15 from scratch.

Try using duct tape as a grip wrapper for the pistol grip, for enhanced handling. Some forward grips can receive a grip wrapper too.

Known Issues

  1. Most parts don't add length to the gun when attached. This is a base game limitation.
  2. Conversion of AR-15 to different calibers (e.g. 9mm, for which the parts exist) doesn't work. The cause is unknown.
  3. The bare lower receiver has all the characteristics of a firearm, yet causes an error when aiming with it is attempted. This has been taken into account. The error is safe to ignore. Fully assembling the firearm (see below) will result in a perfectly functional rifle.
  4. Replacing an "early" part removes all the "later" parts (e.g. removing upper receiver removes everything from barrel to foregrips to sights). See below for explanation, or follow this guide. Sorry for the tedium.
  5. Pre-assembled example rifles are likely to crash when disassembly is attempted. The cause is unknown. Make sure to save before attempting disassembly in order to have a save point to return to in case of a crash.
  6. There are no rifle-length buffer tubes in Demo 1, nor are there pistol-length stocks. There are also no commercial stocks of any kind. This is a limitation of research.
  7. Migration does not transform, remove, or replace base-game generic attachment with new specific ones. The cause is unknown.
  8. The built-in titanium material declaration throws errors during loading. These are safe to ignore.

Gameplay & Design

The Process of Assembly

Understanding the process of firearm assembly is essential for gunsmithing with this mod.

Refer to /documentation/ASSEMBLY_GUIDES/ for overview and detailed guides for each firearm platform.

Sanity Checks

While this mod's main goal is to produce an accurate and meaningful firearm assembly / modification process, the mod remains limited by the game engine.

The measures taken to address or overcome said limitations are referred to as sanity checks. Refer to /documentation/SANITY_CHECKS.md for the complete up-to-date list. The author's hope is to be able to address these issues over time.

License

MIT

gunsmith's People

Contributors

hyperseeker avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

gunsmith's Issues

Uninstalling the upper receiver from the testing assembly crashes the game

Steps to reproduce:

  1. Spawn ar15
  2. Try to uninstall the upper receiver

Multiple tests have revealed that removing one or more children mods (i.e. mods which are attached to slots added by the upper receiver or its direct children) prevent the crash. Removing a sibling mod does not affect the outcome.

There appears to be an issue with trying to remove objects which aren't there. The following error has been observed in debug.log post-crash:

ERROR : src/visitable.cpp:502 [item visitable::remove_item(item&)] Tried removing item from object which did not contain it

Uninstalling other mods with children still attached has not produced crashes or errors. These uninstall gracefully, just like they do with the already-existing attachments.

Impossible to have a lower receiver without default ammunition data

Guns behave erratically when not assigned default ammunition data, such as accepted calibers or magazines.

This becomes obvious when using the gunmod system to give said data via gunmods / gun parts only. When the base gun (i.e. lower receiver for the AR-15) itself is not assigned default caliber, the assembled firearm will not display the ammo data (e.g. offsets from currently-loaded ammunition) correctly, defaulting to 0 (which may or may not be the base gun's stats).

Having default ammo data on the base gun makes it possible for the gun to shoot, even though in most situations it is yet incapable of doing so because it lacks the mechanisms that enable firing in the first place.

This means that the base gun is able to fire, despite technically lacking all of the necessary components.

The issue is addressible with a workaround of reducing the base gun's range to 0 or below. This causes an error on every attempt to move the cursor away from the character in aiming mode. This method does not prevent assembled guns from firing, so this is considered a safe error that can be ignored.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.