Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BetterArmory
Standalone weapons pack: Heavy Shotgun, Revolver, Assault Rifle, Bolt-Action Rifle, Pistol and Flame Thrower, with configurable shop listings, interior spawns, damage and ammunition, plus an ammo HUD.
| Date uploaded | a day ago |
| Version | 1.0.6 |
| Download link | Y4NGZ313-BetterArmory-1.0.6.zip |
| Downloads | 787 |
| Dependency string | Y4NGZ313-BetterArmory-1.0.6 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305TeamXiaolan-DawnLib
A modern API for Lethal Company content and all sizes of mods [V81]
Preferred version: 0.9.25Rune580-LethalCompany_InputUtils
API/Library for creating Unity InputActions with in-game re-binding support. Provides an alternative UI that allows for supporting mods to have in-game re-bindable keybinds.
Preferred version: 0.7.13Y4NGZ313-Y4NGZInteractions
Shared local animation presentation, resource ownership, lifecycle, and restoration API for Lethal Company mods.
Preferred version: 1.0.2README
Better Armory
About Y4NGZ
I am Y4NGZ, an up and coming rapper out of NYC/Detroit. All of my mods are inspired by the music I write. If you are interested in knowing more about me, check out my SoundCloud: https://soundcloud.com/y4ngz
Generative AI usage
The entire code base of this mod was created with generative AI. Assets are free, licensed, paid for, or generated with AI tools. If you do not wish to play with AI-generated content, do not install this mod.
What BetterArmory does
Better Armory is a standalone weapons pack for Lethal Company. Six weapons, four ammunition families, first- and third-person animation, authored audio and impact effects, a bottom-right ammo panel, and configurable/toggled options for how you can acquire them.
Weapon Roster
| Weapon | Ammunition | Magazine | Default price |
|---|---|---|---|
| Heavy Shotgun | Shotgun Shells | 4 | 110 |
| Revolver | Small Caliber Rounds | 5 | 80 |
| Pistol | Small Caliber Rounds | 17 | 95 |
| Assault Rifle | Heavy Caliber Rounds | 30 | 140 |
| Bolt-Action Rifle | Heavy Caliber Rounds | 5 | 165 |
| Flame Thrower | Fuel | 100 | 120 |
Ammunition now works as a pickups: Shotgun Shells, Small Caliber Rounds, Heavy Caliber Rounds, and Fuel Tanks. Collecting a pickup banks rounds into a personal reserve that your weapons reload from, so ammunition does not eat inventory slots once it is picked up. Nor does it disappear/drop upon player death.
The vanilla Lethal Company shotgun can share the Shotgun Shells reserve as a fallback once its own hotbar shells run out. Alternatively, you can set it up so that vanilla shotgun shells are disabled and only Better Armory shells are used.
Gameplay
Every firearm fires with a muzzle flash and lands a per-surface impact. Concrete, metal, wood and soft surfaces each get their own burst, their own bullet-hole decal and their own impact sound, so a missed shot reads off the wall it hit. Fire and reload audio is authored per weapon.
Every weapon is animated in first person. Each one has its own hold, fire, reload and running animations. Right now running has no third person animation, and third person animations are still WIP.
Damage is tuned against Lethal Company's own enemy health for balance reasons. Damage, carry weight, and whether a weapon is two handed all can be modified via the config. By default, weapon damage is configured conservatively as to not disrupt the vanilla nature of Lethal Company not being a combat heavy game.
Heavy Shotgun

Bolt-Action Rifle

Pistol

Flame Thrower

Configuration
Everything below is in BepInEx/config/com.y4ngz.betterarmory.cfg, generated on first launch with
one section per weapon and one per ammunition family.
HUD and interaction feedback
Better Armory draws a crosshair only while you hold one of its weapons or the vanilla shotgun. While one of those is in hand and you look at a pickup or interactable, the vanilla interaction icon is replaced by a small cue inside the crosshair. With anything else in hand (melee, tools, other mods' guns, empty hands) the vanilla icon shows exactly as it always has.
- Set
World Feedback / Interaction Reticle Enabled = falseto keep the vanilla interaction icon while holding weapons too. The custom cue is removed and the vanilla icon is restored automatically. - Set
World Feedback / Enabled = falseto disable Better Armory's broader world-feedback layer. - Set
Crosshair / Vanilla Cursor Icon = Showto keep the vanilla interaction icon visible alongside the custom cue.Hideis the default while the replacement cue is active. - Weapon crosshairs have their own switch:
Combat Feedback / Weapon Crosshair Enabled. - Shotgun brackets draw a compact third of the pattern rather than its full edge;
Crosshair / Accuracy Sizingstill lets them breathe with stance and fire.
The store is on out of the box. Every weapon and every ammunition family defaults to
Purchasable In Shop = true — a buyable armoury is the point of the mod. Turn any of them off
individually, or price them out with the global Shop / Shop Price Multiplier.
Per weapon:
Enabled— register the weapon at all.Purchasable In Shop/Shop Price— terminal store listing and price.Spawns In Interiors/Interior Spawn Rarity— off by default; turn it on to find weapons as interior loot instead of (or as well as) buying them.Enemy Damage Near,Enemy Damage Far— host-authoritative damage falloff against creatures, on Lethal Company's own enemy scale (most creatures have 1 to 10 hit points and a shovel hits for 1). Per pellet on a weapon that fires a pattern.Player Damage Near,Player Damage Far— friendly-fire falloff in player health, out of 100. A completely different scale from the enemy pair above.Magazine Size,Fire Cadence Multiplier,Spread Multiplier,Scrap Value.Weight,Two Handed,Two Handed Animation— carry weight and whether the weapon occupies both hands. All three are applied when the item is built, so they take a restart, and every player in a lobby must agree on them.- Flame Thrower only:
Enemy Damage Per Second(default 0.5 — one rate shared by the stream and its lingering ground fire; the burn on a creature is visual only), and underFlamethrower Stream:Light Lumens(brightness of the fire glow inside the stream, default 2400),Light Enabled, andDamage Debug Logging(host-side per-hit log lines, off by default).
Per ammunition family:
Purchasable In Shop/Shop Price— on by default, priced 20 to 40 credits per pickup.Rounds Per Box— how much reserve one pickup grants.Spawns In Interiors/Interior Spawn Rarity— on by default; ammunition has always been findable and stays that way.Max Reserve Per Player— hard reserve cap,0for unlimited.Starting Reserve— a one-time per-save grant.
Damage is resolved on the host, so the host's damage numbers are the ones that land. Every other value is evaluated on each player's own machine: keep magazine sizes, cadence, spread, prices, and reserve caps identical across a lobby.
Required Dependencies
These install automatically with a mod manager:
BepInEx-BepInExPack-5.4.2305TeamXiaolan-DawnLib-0.9.25Rune580-LethalCompany_InputUtils-0.7.13y4ngz313-Y4NGZInteractions-1.0.2
DawnLib supplies the terminal store and interior scrap registration. Input Utils owns the rebindable weapon keys. Y4NGZ Interactions is the shared first-person, third-person, and live-body animation API that every weapon in this pack plays through.
LethalCCTV Integration (optional)
Forcing weapon spawns to be Company Stash exclusive makes it so weapons aren't too accessible without also being out of reach.
Y4NGZ Upgrades Integration (optional)
When Y4NGZ Upgrades is installed, the two detect each other at runtime and light up the extras:
- Scavenger upgrade increases the amount of ammo received from an ammo pickup
Y4NGZUI Integration (optional)
When Y4NGZUI is installed, it hosts Better Armory's shared combat-reticle presentation and theme. Better Armory remains standalone without it, retaining its own combat-reticle fallback and ammo panel.
Blood FX (optional)
Vanilla + some modded creatures will bleed upon being shot via both decal and particle effects.
Compatibility
- There is nothing that this should automatically be incompatible with. Given the nature of how animations are implemented some things may break but they can all be easily fixed upon being reported to the GitHub.
Credits
Impact audio uses selected sounds from Bullet Impact VFX with Bullet Hole Decals and Sounds by
Medartimus, shipped as compiled AudioClips under the Fab Standard License. Full notices ship in
THIRD_PARTY_NOTICES.md inside this package.
Troubleshooting
When reporting a problem, include BepInEx/LogOutput.log, the weapon name, whether the store or an
interior spawn produced it, and whether the issue affected the host, a client, or both.
If the Flame Thrower plays its firing animation but produces no flame and uses no fuel after you
left and rejoined a lobby, update to the current version. That was a Better Armory bug, now fixed;
the unofficial FlamethrowerReconnectFix patch is no longer needed and can be removed.
If every weapon is held like the vanilla shotgun (tilted in first person, no run or hold animation,
the third-person model floating away from the hands) and the log contains
pack registration failed: interaction_animation_api_not_initialized, there are two copies of
Y4NGZInteractions.dll under BepInEx/plugins (the log also says duplicate_install_detected
and names the second folder). Keep one copy of Y4NGZ Interactions, at the version this pack
requires, and remove the other.
CHANGELOG
Changelog
1.0.6
- Fixed the Flame Thrower stream not lighting anything. Its light was created in a unit the game's renderer reads as candela, so it was a few candles' worth next to the flame. It is now a proper fire light in lumens, sits inside the flame rather than at the nozzle, and pulls back when the stream hits a wall. The config key is now
Flamethrower Stream / Light Lumens(default 2400); the oldLight Intensityvalue is ignored. - Fixed enemies standing in the visible flame taking no damage, most often small creatures such as Hoarder Bugs. The damage check tested one fixed point above each creature's feet against a narrow cone from the nozzle; it now checks the creature's actual hit colliders, so anything the flame visibly touches burns. Damage numbers, burn duration, and host authority are unchanged.
- Retuned Flame Thrower enemy damage to 0.5 per second, one rate for the stream and its lingering ground fire together (they no longer stack), with the burn on a creature now visual only. With the flame actually hitting what it touched, the old numbers added up to about 2 per second and killed most creatures in a couple of seconds. The config keys
Enemy Damage Per TickandDamage Tick Interval Secondsare replaced byEnemy Damage Per Second; old values are dropped rather than carried over. A newFlamethrower Stream / Damage Debug Loggingswitch logs every point landed for tuning. - Fixed the Flame Thrower firing blanks after leaving and rejoining a lobby (including after dying and reconnecting): the fire animation played but no flame, no damage, and no fuel use. Its network handlers were bound once per game process, and the game rebuilds the messaging layer on every new session. They now rebind per session. Diagnosed independently by the unofficial Thunderstore patch Lanzallamas/FlamethrowerReconnectFix, which is no longer needed.
- The Flame Thrower is now carried low in third person — rear grip at the hip, nozzle pointed down and slightly canted — instead of shouldered like a rifle. Raising it to fire and lowering it again are short blends; firing and reloading poses are unchanged.
- Fixed the Flame Thrower's third-person/world model coming out a different size on different mod profiles, sometimes little more than half the intended length with the holder's hands nowhere near it. The size was fitted to the vanilla shotgun's renderer bounds at startup, which vary with other installed mods; it is now the authored size on every profile, and the log warns when the vanilla measurement would have disagreed.
- Fixed the first shot of a session hitching for about half a second. The weapon effects bundle was opened and its muzzle flash, impact and bullet-hole prefabs first instantiated on the shot frame; they are now loaded and pooled while the round loads, before a weapon can be held.
- Fixed dropping or picking up a weapon while crouched breaking the player animation, camera, and movement.
- Fixed crouching sometimes playing twice while holding a weapon.
- Fixed dropping a weapon leaving a frozen copy of it in your hands for a moment while the real one was already on the floor. The first-person weapon now clears on the drop frame.
- Fixed the first-person weapon view rapid-restarting after an animation safety stop, which could drop the camera below the floor, detach the arms, and stutter movement. It now waits before recovering, backs off if the stop repeats, and stops retrying until the weapon is equipped again.
- The crosshair and the interaction-icon replacement now appear only while holding a Better Armory weapon or the vanilla shotgun. With melee, tools, other mods' guns, or empty hands the vanilla interaction icon shows as normal.
- Looking at a pickup or interactable while holding a weapon now shows a small cue inside the crosshair (a diamond for pickups, a dot for interactables) instead of corner brackets that overlapped the crosshair and looked brighter where they crossed.
- Shotgun crosshair brackets are much narrower: they draw a compact third of the pattern with capped arms instead of framing a quarter of the screen. The vanilla shotgun gets the same size.
- The Heavy Shotgun reload animation now loads shell by shell to match the ammo counter: a reload that draws four shells shows four shells going in, then one rack, in first person and for other players. Shell and racking sounds are timed to the animation.
- The ammo panel now sits beneath the pause menu, like the vanilla HUD, instead of drawing on top of it.
- Now requires Y4NGZInteractions 1.0.2.
1.0.5
- Fixed guns firing blanks after leaving a lobby and joining another: the animation and gunshot played but no pellets left the barrel and nothing took damage. Rejoining leaves streamed scene bundles (custom moons) in Unity's loaded-bundle list, and probing one of them for our effects threw an error that cancelled the rest of the shot. Reported in BetterArmory-public #1.
- A failure while spawning the muzzle flash can no longer cancel a shot's pellets or damage; the shot now resolves fully and the failure is only logged.
- Dev spawn settings (weapon hotkey spawn, auto-spawn, ammo spawn key, free shells on equip) now ship disabled. Configs from 1.0.4 that still hold the old defaults are reset once; anything you re-enable afterwards stays enabled.
- The Heavy Shotgun now reloads shell by shell until the tube is full, the reserve runs out, or you press fire to cut the reload short and keep the shells already loaded.
- Heavy Shotgun sounds now land on their motions: the shell sound plays as each shell goes in, the racking sound plays on the rack, and the authored fire, dry-fire, and drop sounds are used. Reload sounds no longer play louder than the gunshot.
- Revolver reload sounds no longer lag behind the animation; every chamber cue and the cylinder close land earlier, on their motions.
- Weapons can no longer fire while their reload or action cycle is still playing - the Kar98K waits for the bolt, the Heavy Shotgun waits for the pump. The Heavy Shotgun's rate of fire is a little slower as a result.
- Existing configs and saves carry over untouched apart from the dev spawn reset above.
1.0.4
- Fixed a startup fault that stopped every mod in the profile from loading whenever Better Armory and Y4NGZ Upgrades were installed together. Each plugin declared the other as a soft dependency, and BepInEx answers a dependency loop by aborting the entire plugin load, so the game booted vanilla with the reason buried in a single line of the log. Better Armory no longer declares that dependency, and waits for the loader to finish before reading anything from Y4NGZ Upgrades.
- Fixed the Flame Thrower's visible stream drifting outside its server-authoritative damage cone after roughly three metres, which made flames visibly cover enemies without hitting them.
- Fixed the Flame Thrower's fuel tank staying attached throughout reload by rebinding the authored removal animation in the prop controller.
- Fixed the Flame Thrower's third-person/world model appearing roughly three-and-a-half times too small and sitting incorrectly between the holder's hands.
- Existing configs and saves carry over untouched.
1.0.3
- Weapon asset bundles now use the
.armorybundleextension instead of.lethalbundle. LethalLevelLoader loads every.lethalbundleunderplugins/at startup, including these five, which none of it needed — that double load produced "The AssetBundle ... can't be loaded because another AssetBundle with the same files is already loaded" spam, and alongside the Faster Load AssetBundles patcher it could hang the main menu on the second launch. Reported in Y4NGZCompany-public #2. - No gameplay, balance, or config changes. Existing configs and saves carry over untouched.
1.0.2
- Removed the Grenade and Grenade Launcher for now. They are coming back once their handling is up to the standard of the rest of the pack.
- Added drop sounds for every weapon.
- Retuned all weapon damage against vanilla enemy health, so kill counts are predictable rather than incidental. Shotgun damage is now per pellet.
- You can climb ladders while carrying any weapon. The weapon is stowed on the way up and restored at the top; requires Y4NGZ Upgrades.
- Added per-weapon carry weight and two-handed configuration.
- New logo, and a readme gameplay section with GIFs.
- Assorted fixes.
1.0.1
- Weapons and ammo register reliably on hosts and mod setups that keep the manager object visible.
- Registration receipts are written to the log, so a missing weapon or ammo item is diagnosable from the log alone.
1.0.0
- Initial release. Heavy Shotgun, Revolver, Assault Rifle, Bolt-Action Rifle, Pistol and Flame Thrower, with configurable shop listings, interior spawns, damage and ammunition, plus an ammo HUD.