Mortys Weapons
Morty's Weapons Known issues: If you use Expansion remember to set "DisableMagicCrosshair":0 Expansion turned that setting on by default and it makes weapons shoot way off. Before taking apart the VultAR make sure you take off all the parts. Optics, mags and such. Info: - I will not take requests for weapons as i add weapons that I feel like fit the game. - I work on these weapons on my free time so things might not… (more)
Morty's Weapons Known issues: If you use Expansion remember to set "DisableMagicCrosshair":0 Expansion turned that setting on by default and it makes weapons shoot way off. Before taking apart the VultAR make sure you take off all the parts. Optics, mags and such. Info: - I will not take requests for weapons as i add weapons that I feel like fit the game. - I work on these weapons on my free time so things might not be very speedy, but i have a good few new projects coming soon. - Some of these weapons are not 100% correct when it comes to attachements, mags or ammo. It is made like this to be easy for server owners and not clutter the CE. - Some of the models are made by me and some are bought. (Some are still WIP.) You are NOT allowed to repack or reupload this mod or its contents CE, Types.xml and spawnabletypes.xml are provided in the mod folder. Special thanks to asorrycanadian, Zeroy, Lorvack, Mass, Inkota and Teddysammler for all their help. Thanks to rang3d99 for trader cfg Contact me on Discord Morty#5817 for any questions. For more weapons join my discord. Discord Donation: Morty
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
1 chain break, all on specific classes the mod replaces wholesale — matters only if another mod patches the same classes.
No server-side script overrides. Counts hook dispatch and timers only, not what the hooks do inside. Methodology.
Chain breaks, by consequence
1 override that skip super(), ranked by how much they can affect. On any server a break replaces vanilla's behaviour on that method and silences every earlier-loaded mod hooking it.
InitAttachmentsSlotsToCheck
Only this class is affected. Matters only if another mod in your stack patches the same class.
1 class
UniversalLight1 location
TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\Entities\ItemBase\SwitchableBase\UniversalLight.c:11Other findings
super() only on some paths · 3 · warning
- M4_CarryHandleOptic.CanPutAsAttachment returns true without consulting super.CanPutAsAttachment() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\Entities\ItemBase\Inventory_base\carryhandleoptic.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.
TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\Entities\ItemBase\SwitchableBase\UniversalLight.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.
TTC_SMG.pbo::Scripts\4_World\Entities\ItemBase\SwitchableBase\UniversalLight.c:3
- M4_CarryHandleOptic.CanPutAsAttachment returns true without consulting super.CanPutAsAttachment() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
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 10 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 |
|---|---|---|---|---|
M4_CarryHandleOptic.CanPutAsAttachment |
— | yes | conditional | TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\Entities\ItemBase\Inventory_base\carryhandleoptic.c:3 |
ModItemRegisterCallbacks.RegisterPistol |
— | yes | ✓ | TTC_Pistols.pbo::Scripts\4_World\TTCPistolAnimReg.c:3 |
ModItemRegisterCallbacks.RegisterFireArms |
— | yes | ✓ | TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\TTCAnimReg.c:3 |
ModItemRegisterCallbacks.RegisterOneHanded |
— | yes | ✓ | TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\TTCAnimReg.c:72 |
ModItemRegisterCallbacks.RegisterFireArms |
— | yes | ✓ | TTC_SMG.pbo::Scripts\4_World\SMGAnims.c:3 |
ModItemRegisterCallbacks.RegisterOneHanded |
— | yes | ✓ | TTC_SMG.pbo::Scripts\4_World\SMGAnims.c:14 |
PluginRecipesManagerBase.RegisterRecipies |
— | yes | ✓ | TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\RegisterRecipes.c:3 |
UniversalLight.CanPutAsAttachment |
— | yes | conditional | TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\Entities\ItemBase\SwitchableBase\UniversalLight.c:3 |
UniversalLight.InitAttachmentsSlotsToCheck |
— | yes | ✗ none | TTC_Rifles.pbo::Scripts\4_World\TTC_Rifles\Entities\ItemBase\SwitchableBase\UniversalLight.c:11 |
UniversalLight.CanPutAsAttachment |
— | yes | conditional | TTC_SMG.pbo::Scripts\4_World\Entities\ItemBase\SwitchableBase\UniversalLight.c:3 |
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.
TTC_Optics.pbo
TTCOpticAimpointrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTC_AKMountrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTC_OpticsrequiredVersion 0.1 — requiresDZ_DataTTCOpticDMRrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOpticEotechrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOpticG28requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOptic2requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOpticHAMRrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOpticHolorequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOptic1requiredVersion 0.1 — requiresDZ_DataTTC_M16OpticrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOpticPistolrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOpticRazorrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_OpticsTTCOptic_SVT40requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_Optics
TTC_Pistols.pbo
TTC_Pistols_stuffrequiredVersion 0.1 — requiresDZ_DataTTC_DeaglerequiredVersion 0.1 — requiresDZ_Data,DZ_Pistolsdeagle_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_GlockrequiredVersion 0.1 — requiresDZ_Data,DZ_PistolsTTC_Pistols_KimberrequiredVersion 0.1 — requiresDZ_DataTTC_Pistols_M9requiredVersion 0.1 — requiresDZ_DataTTC_44MagnumrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_Firearms,DZ_Weapons_Ammunition,DZ_Weapons_Magazines,DZ_Weapons_Muzzles,DZ_Weapons_OpticsTTC_P320requiredVersion 0.1 — requiresDZ_Data,DZ_PistolsTTC_P320requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_Pistol_PartsrequiredVersion 0.1 — requiresDZ_Data
TTC_Rifles.pbo
TTCAmmo3006requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTCAmmo300blkrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_300BLK_MagazinesrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Weapons_FirearmsTTCAmmo303requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC308StanagrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Weapons_FirearmsTTCAmmo338requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC338magrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Weapons_FirearmsTTCAmmo4570requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_50Beo_MagazinerequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Weapons_FirearmsTTCAmmo50BeorequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_Ammo50BMGrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTCAmmo8mmrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_AEKrequiredVersion 0.1 — requiresDZ_DataTTC_AG3requiredVersion 0.1 — requiresDZ_DataTTC_AG3_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_A12requiredVersion 0.1 — requiresDZ_DataAK12_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_A12WornrequiredVersion 0.1 — requiresDZ_DataTTC_AKModrequiredVersion 0.1 — requiresDZ_DataRPK54_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_Attachements_DMRrequiredVersion 0.2 — requiresDZ_DataTTC_AVS36requiredVersion 0.1 — requiresDZ_DataTTC_AWMrequiredVersion 0.1 — requiresDZ_DataAWM_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_BARrequiredVersion 0.1 — requiresDZ_DataTTC_BeowulfrequiredVersion 0.1 — requiresDZ_DataBeo_SoundsrequiredVersion 0.1 — requiresDZ_DataButtstockTTC2requiredVersion 0.2 — requiresDZ_DataButtstockTTC3requiredVersion 0.2 — requiresDZ_DataButtstockTTCrequiredVersion 0.2 — requiresDZ_DataTTCMk47requiredVersion 0.1 — requiresDZ_DataTTC_RiflesrequiredVersion 0.1 — requiresDZ_DataTTCDMRrequiredVersion 0.1 — requiresDZ_DataDMRMod_SoundsrequiredVersion 0.1 — requiresDZ_DataTTCDMR762requiredVersion 0.1 — requiresDZ_DataTTCHandguardrequiredVersion 0.2 — requiresDZ_DataTTC_DMR_MagazinesrequiredVersion 0.1 — requiresDZ_DataTTC_Fal_WeaponrequiredVersion 0.1 — requiresDZ_DataTTCFAL_SoundsrequiredVersion 0.1 — requiresDZ_DataTTCFD338requiredVersion 0.1 — requiresDZ_Data338_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_G3requiredVersion 0.1 — requiresDZ_DataG3_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_HK416requiredVersion 0.1 — requiresDZ_Data416M4_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_HK417requiredVersion 0.1 — requiresDZ_DataHK417_SoundsrequiredVersion 0.1 — requiresDZ_DataTTCHKG28requiredVersion 0.1 — requiresDZ_DataButtstockHKG28requiredVersion 0.2 — requiresDZ_DataTTC_HoneyBadgerrequiredVersion 0.1 — requiresDZ_DataHoney_SoundsrequiredVersion 0.1 — requiresDZ_DataHoneyButtstockrequiredVersion 0.2 — requiresDZ_DataTTCSuppressorHoneyrequiredVersion 0.1 — requiresDZ_DataK98requiredVersion 0.1 — requiresDZ_DataTTC_KACrequiredVersion 0.1 — requiresDZ_DataTTC_L85requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_L85A2requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_LeeEnfieldrequiredVersion 0.1 — requiresDZ_DataTTC_M110requiredVersion 0.1 — requiresDZ_DataTTC_M14requiredVersion 0.1 — requiresDZ_DataTTC_M1A_SoundsrequiredVersion 0.1 — requiresDZ_DataTTCMagM14requiredVersion 0.1 — requiresDZ_DataTTC_M16requiredVersion 0.1 — requiresDZ_DataTTC_Car15_ButtstocksrequiredVersion 0.1 — requiresDZ_DataTTC_Car15_FirearmsrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_Car15_HandguardsrequiredVersion 0.1 — requiresDZ_DataTTC_Car15_OpticsrequiredVersion 0.1 — requiresDZ_DataTTC_M16A2requiredVersion 0.1 — requiresDZ_DataTTC_M16A4requiredVersion 0.1 — requiresDZ_DataM16A4T_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_M1903requiredVersion 0.1 — requiresDZ_Data1903_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_M1GarandrequiredVersion 0.1 — requiresDZ_DataM24requiredVersion 0.1 — requiresDZ_DataM24_SoundsrequiredVersion 0.1 — requiresDZ_DataTTCM24magrequiredVersion 0.1 — requiresDZ_DataTTCM4DMRrequiredVersion 0.1 — requiresDZ_DataTTC_M4DMRrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_M4TacrequiredVersion 0.1 — requiresDZ_DataM4Tac_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_M82BarrettrequiredVersion 0.1 — requiresDZ_DataTTC_M82_BarrettMagrequiredVersion 0.1 — requiresDZ_DataMAS36requiredVersion 0.1 — requiresDZ_DataTTC_MCXrequiredVersion 0.1 — requiresDZ_DataMCX_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_MK18requiredVersion 0.1 — requiresDZ_DataTTC_MP44requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_MRADrequiredVersion 0.1 — requiresDZ_DataTTC_R700requiredVersion 0.1 — requiresDZ_DataTTC_SCARHrequiredVersion 0.1 — requiresDZ_DataTTC_SCARHrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTCSCARHMAGrequiredVersion 0.1 — requiresDZ_DataTTC_SCARLrequiredVersion 0.1 — requiresDZ_DataSCARL_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_SG550requiredVersion 0.1 — requiresDZ_DataTTC_SG552requiredVersion 0.1 — requiresDZ_DataTTC_SG_MAGrequiredVersion 0.1 — requiresDZ_DataTTCSR25requiredVersion 0.1 — requiresDZ_DataSR25_SoundsrequiredVersion 0.1 — requiresDZ_DataM14SuppressorrequiredVersion 0.1 — requiresDZ_DataTTC_SVT40requiredVersion 0.1 — requiresDZ_DataTTC_TAVORrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTCSuppressorrequiredVersion 0.1 — requiresDZ_DataTTC_VHSrequiredVersion 0.1 — requiresDZ_DataTTC_AKMrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsWinchester1873requiredVersion 0.1 — requiresDZ_DataXM2010requiredVersion 0.1 — requiresDZ_Data
TTC_SMG.pbo
TTC_SMG_stuffrequiredVersion 0.1 — requiresDZ_DataTTC_MP5SDrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsMP5SD_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_MP7A1requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTCMP7_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_MPXrequiredVersion 0.1 — requiresDZ_DataTTC_PP91requiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_FirearmsTTC_UZIrequiredVersion 0.1 — requiresDZ_Data,DZ_Weapons_Firearms
TTC_Shotguns.pbo
TTC_Shotguns_stuffrequiredVersion 0.1 — requiresDZ_DataTTC_MaverickrequiredVersion 0.1 — requiresDZ_DataTTC_MossbergrequiredVersion 0.1 — requiresDZ_DataMossberg_SoundsrequiredVersion 0.1 — requiresDZ_DataTTC_RaptrrequiredVersion 0.1 — requiresDZ_DataRaptr_SoundsrequiredVersion 0.1 — requiresDZ_Data
census 1.1 · findings 1.1 · hash f63333ada4e0d6c9