MoreGuns
MoreGuns Support channel for this mod: https://discord.gg/nPXHv9C MoreGuns is a well named mod that attempts to increase the armory of DayZ even further than it is now, while maintaining as high of a level of quality and polish as currently possible with the current modding support. Overtime MoreGuns will evolve into MoreDayZ as we branch out from guns to new optics, locations, vehicles, attachments, and as much new… (more)
MoreGuns Support channel for this mod: https://discord.gg/nPXHv9C MoreGuns is a well named mod that attempts to increase the armory of DayZ even further than it is now, while maintaining as high of a level of quality and polish as currently possible with the current modding support. Overtime MoreGuns will evolve into MoreDayZ as we branch out from guns to new optics, locations, vehicles, attachments, and as much new and fun content as possible, so keep your eyes peeled on the update changelogs. Currently, these are the additions MoreGuns brings to the game: SB PMII 25x Sniper Scope: A new scope with a very high magnification level. Defaults to 12x, can zoom up to 25x. Class name: SniperOptic AWM: A very iconic weapon, the AWM, a bolt action rifle fed from a 5 round magazine. Can take any rail mounted optic, and the new scope brought in by the mod. Class names: AWMreal and Mag_AWMreal_5Rnd Karabiner98k: Another iconic weapon. Takes PU scope. Class names: Kar98real M1A SOCOM 16: The M1A, a civilian variant of the M14. This one features a short barrel, and a small mount for traditional rail optics, however it is too short for a longer optic like the 25x. So it also has a mount you can add to allow you to affix the 25x sight. Comes with 10 and 20 round mags. Class names: M1A, M1A_RailAtt, Mag_M14_10Rnd, Mag_M14_20Rnd M14 M16A4: The M16A4, the latest and greatest widely used variant of the classic M16 rifle. Unfortunately the burst fire does not work, but I hope to maybe fix this someday, or hopefully the devs will add functioning burst fire to the game themselves. Class names: M16 Mk22 Mod 0: This is a very neat little gun, originally created for Navy SEALs to dispatch guards and guard dogs as quietly as possible. It features a very short suppressor with internals that where made of rubber and neaded to be replaced after a handful of shots. It also has a slide lock to prevent the slide from cycling and making sound there as well. Though currently, the slide lock and supressor are not in as I have not gotten those mechanics working yet, but soon enough they will be. The slide lock will be crafted with the gun to create one with a slide lock, and it will also be removable. The suppressors will only last for about 60 rounds before going to ruined. Class names: Mk22, Mag_Mk22_14Rnd MP7: The MP7 is an SMG firing new 4.6x30mm rounds, at an absurdly high firing rate. Currently only has 40 round mag, will have more eventually. Class names: MP7, Mag_MP7_40Rnd FN SCAR-L: The SCAR-L, has it's own 20 round mag, and also takes stanag mags and PMAGs. Class names: Scar, Mag_SCAR_20Rnd Stechkin Automatic Pistol: The Stechkin APS is an automatic pistol, with a 20 round mag. It can be affixed to a stock, or stored safely within the stock. The stock reduces the recoil substantially. Class names: StechkinAPS, Mag_APS_20Rnd, APS_Buttstock VityazSN (PP-19-01): This gun is basically a 9mm AK variant. It's neat feature is that it has both a traditional picatinny rail as well as the AK mounting system, so you can attach most optics to it! Class names: VityazSN, Mag_Vityaz_30Rnd KNOWN ISSUES: M1A: Bolt does not animate properly, only the charging handle does. This is temporarily intentional, because the way the M1A/M14 bolt works, is it isnt a direct translation back, the bolt actually rotates, then shifts downward. Due to the way custom guns are currently done in DayZ, I have to inherit off of other guns, and use their animations. So when the bolt is properly set up to animate, it inherits the animations from the SVD, which is a direct bolt translation backwards. This causes the bolt to clip through the reciever into your FPV, and looks *really* bad in my opinion. So for now the bolt has been deactivated. Very sad to do, but I had to pick the lessar of two evils. M16A4: Same folding optic issue as mentioned previously for the SCAR. Stechkin APS: The APS won't be using it's iconic cutaway mag that displays rounds because, again, DayZ doesnt have the animation sources to dynamically show bullets in the magazine depending on how many there is. So I feel as though it looks better with the mag it has that you cant see the bullets inside of, because in my opinion, having the mag always show empty, or always show full regardless of how many rounds are actually in it looks dumb. Again, when BI makes it possible to fix this, I absolutely will! Donations Anything I receive from donation will likely be put right back into mods we make as I am constantly looking for new assets, or at the very least will help me recoup the money I've spent so far on assets (As of writing this, I've spent a total of $330). Special Thanks! Thank you to Busiedbat306 for donating the costs of the Karabiner98k Thank you to SierraRSV for donating the costs of the M16A4! Terribly sorry that I couldn't get Burst working for now! And a MASSIVE thanks to WiiDevil from BWAF (Blue Waffle Attack Force, https://discord.gg/8bRqJcB check them out!) for being *very* generous. A lot of these guns wouldn't be in right now if it weren't for him!
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
Every server-visible override preserves its chain.
less than 0.001% of each server frame at 100 players (0.000 ms/s). Counts hook dispatch and timers only, not what the hooks do inside. Methodology.
Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 25 others share it. Ranked list.
Event hooks carry 99.8% of this mod's structural load. 0.000 ms/s in all.
2 hooks · 0.0004 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 2 hooks | 0.0004 ms/s | 99.8% | PlayerBase.EEHitBy, Weapon_Base.CanReceiveAttachment |
Counts how often each hook is dispatched and how many timers stay alive, not what the code inside does. Some rates are order-of-magnitude estimates; the methodology lists which.
Where this mod runs often
Hooks on per-frame and high-rate surfaces, with what their bodies call. Body work, not the hook itself, is what costs frame time.
Other findings
super() only on some paths · 10 · warning
- UniversalLight.CanPutAsAttachment returns true without consulting super.CanPutAsAttachment() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
scripts.pbo::4_world\UniversalLight.c:3 - WeaponManager.CanFire returns true without consulting super.CanFire() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
scripts.pbo::4_world\Dart\DartGun.c:57 - ACOGOptic.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:40 - AK_WoodHndgrd.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:62 - M1A_RailAtt.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:73 - M4_T3NRDSOptic.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:51 - M68Optic.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:18 - ReflexOptic.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:29 - SniperOptic.CanPutAsAttachment vetoes early (returns false) on some paths and defers to super.CanPutAsAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:93 - Weapon_Base.CanReceiveAttachment vetoes early (returns false) on some paths and defers to super.CanReceiveAttachment() otherwise — composes safely with vanilla's and earlier mods' conditions.
scripts.pbo::4_world\Attachments.c:3
- UniversalLight.CanPutAsAttachment returns true without consulting super.CanPutAsAttachment() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
Checks answered without super() · 1 · warning
- M1A_RailAtt.CanDetachAttachment returns its own answer without consulting super.CanDetachAttachment() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
scripts.pbo::4_world\Attachments.c:81
- M1A_RailAtt.CanDetachAttachment returns its own answer without consulting super.CanDetachAttachment() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
Which vanilla methods the mod hooks, which of them drop the chain, how often each hook fires, and which risky calls sit inside hot hooks.
How long hook bodies take, network cost, or engine-side load. Measured across live fleets, most server lag comes from the engine and world state, not mod script chains — a light footprint does not clear a mod of lag, and a heavy one does not convict it. Methodology.
Everything else
All 15 overrides
Surface is the dispatch tier the rubric can price (— = unpriced); server is whether the override exists on a dedicated server; super() shows whether the vanilla chain is preserved on a server.
| method | surface | server | super() | where |
|---|---|---|---|---|
ACOGOptic.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:40 |
AK_WoodHndgrd.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:62 |
M1A_RailAtt.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:73 |
M1A_RailAtt.CanDetachAttachment |
— | yes | ✗ none | scripts.pbo::4_world\Attachments.c:81 |
M4_T3NRDSOptic.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:51 |
M68Optic.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:18 |
ModItemRegisterCallbacks.RegisterFireArms |
— | yes | ✓ | scripts.pbo::4_world\Weapons\Animations.c:21 |
ModItemRegisterCallbacks.RegisterOneHanded |
— | yes | ✓ | scripts.pbo::4_world\Weapons\Animations.c:32 |
PlayerBase.EEHitBy |
T2 | yes | ✓ | scripts.pbo::4_world\Player\PlayerBase.c:3 |
ReflexOptic.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:29 |
SniperOptic.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\Attachments.c:93 |
UniversalLight.CanPutAsAttachment |
— | yes | conditional | scripts.pbo::4_world\UniversalLight.c:3 |
Weapon_Base.CanReceiveAttachment |
T2 | yes | conditional | scripts.pbo::4_world\Attachments.c:3 |
WeaponManager.CanFire |
— | yes | conditional | scripts.pbo::4_world\Dart\DartGun.c:57 |
WeaponManager.Fire |
— | yes | ✓ | scripts.pbo::4_world\Dart\DartGun.c:66 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
Weapon_Base.CanReceiveAttachment | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.EEHitBy | T2 | 8.0 | placeholder | 0.0002 |
Includes 0.000 ms/s from placeholder-rated surfaces.
Load-order constraints (CfgPatches)
What each PBO declares: its addon identity and the addons it requires to be loaded first (requiredAddons). A partial load-order signal from the mod's own metadata.
AWM.pbo
MoreGuns_AWMoldrequiredVersion 0.1 — requiresDZ_Weapons_FirearmsMoreGuns_AWMrequiredVersion 0.1 — requiresDZ_Weapons_Firearms,DZ_Data
Kar98.pbo
MoreGuns_Kar98BayonetrequiredVersion 0.1 — requiresDZ_Weapons_Muzzles,DZ_ScriptsMoreGuns_Kar98oldrequiredVersion 0.1 — requiresDZ_Weapons_FirearmsMoreGuns_Kar98requiredVersion 0.1 — requiresDZ_Weapons_Firearms
Kar98Scope.pbo
MoreGuns_Kar98ScopeOpticrequiredVersion 0.1 — requiresDZ_Weapons_Optics
Lasers.pbo
Moreguns_LasersrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_MeleeMoreguns_Lasers_ImpactsrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_Melee
M14.pbo
MoreGuns_M14requiredVersion 0.1 — requiresDZ_Weapons_Firearms
M16.pbo
MoreGuns_M16requiredVersion 0.1 — requiresDZ_Weapons_Firearms
M1A.pbo
MoreGuns_M1ArequiredVersion 0.1 — requiresDZ_Weapons_Firearms,DZ_Scripts
Mk22.pbo
MoreGuns_Mk22requiredVersion 0.1 — requiresDZ_Pistols
MoreGuns.pbo
MoreGuns_ForceUpdaterequiredVersion 0.1 — no requiredAddons
Scope.pbo
MoreGunsScoperequiredVersion 0.1 — requiresDZ_Scripts
Stanagfix.pbo
BetterStanag60requiredVersion 0.1 — requiresDZ_Weapons_Magazines
Stetchkin.pbo
MoreGuns_StechkinAPSrequiredVersion 0.1 — requiresDZ_Pistols,DZ_Scripts
VityazSN.pbo
Misho_VityazSNrequiredVersion 0.1 — requiresDZ_Weapons_Firearms
mp7.pbo
MoreGuns_MP7requiredVersion 0.1 — requiresDZ_Weapons_Firearms_cz61
scar.pbo
scarrequiredVersion 0.1 — requiresDZ_Weapons_Firearms
scripts.pbo
MoreGunsScriptsrequiredVersion 0.1 — requiresDZ_Scripts,JM_CF_Scripts
census 1.1 · findings 1.1 · hash 47e9d6a089abc520