1. Mutilate-a-Doll 2
  2. News

Mutilate-a-Doll 2 News

Gunsmithing Test

Welcome to Guns Guns Guns - Gunsmithing


Gunsmithing adds various settings for modifying guns as well as bullet properties via the Detail tool.



It currently mostly works, but still needs further testing and ideas for fleshing it out, so

[h3]it's available on the Experimental branch:[/h3] Right click on MaD2 in your Steam Library and select [Properties > Betas > Experimental]



If you find any bugs, or have any ideas for more modifiable things, leave feedback in the Discussions or MaD2 Discord.

More new guns will follow once the test is finished.

[h2]Gunsmith[/h2]



Most of the previously-hidden internal firearm values can now be modified.



[h3]Notes:[/h3]
- Velocity and Scatter affect the velocity that bullets shoot at, which is not affected by the bullet's weight. A baseline forward Velocity is applied first away from the barrel position, which is then modified by a random Scatter. For example a Velocity 100 / Scatter 100 bullet can vary between 50 and 150 final velocity. Meaning that Scatter can make bullets shoot backwards if it's too high.

- Recoil affects the force applied to the gun, which is affected by the gun's weight. There is no upwards recoil.

- Bullet Size % may be wildly different between different types of bullets, because it's a multiplier of the size of the bullet (whose models may be of various sizes -- e.g. the model used for shotgun pellets at 100% are huge.)

- Most old guns don't have reloading, as it was added later on. For example the Assault Rifle shoots infinitely as it has a Magazine Size of 1 bullet and Reload Time of 6 frames, as opposed to modern guns using Bullet Delay for the time between each bullet, and Reload Time only after the magazine is empty.

- Bullet Delay, Reload Time, and Burst Delay are measured in frames (aka ticks/updates.) The game tries its best to run at 60 frames per second. For example most assault rifles use 3-6 frames delays between bullets (aka 10-20 bullets per second fire rate.)

- Burst Amount enables burst shooting when above 1, which makes the gun automatically shoot multiple bullets in a row when triggered. Bursting uses Bullet Delay between each bullet, Burst Delay between each burst, and Reload Time once the magazine is emptied.

For example Battle Rifle shoots as follows:
Bullet
(Bullet Delay)
Bullet
(Bullet Delay)
Bullet
(Burst Delay)
...
(Reload Time)

[h2]Bullet Jacket[/h2]



A fancier name for bullet properties. Previously bullets only inherited properties from guns, which caused various issues since dolls would often be touching those firearms.



[h3]Notes:[/h3]

- It's Detail tool only for now, and may remain as such for boring technical reasons.

- It's called Bullet Jacket to describe the fact that the properties only apply to generic physical bullets.

Meaning that a good chunk of weirder projectiles won't use the properties at all, because most properties require a collision to apply them.

E.g. A lot of weapons use raycasts instead of physical projectiles (Blasters, Lasers, Rays, etc.)
E.g. Various weapons shoot ghosted AoE projectiles (Microwave Gun, Shockwave Gun, etc.)
E.g. Some weapons don't spawn any projectiles (Boomstick, Frost Cannon, etc.)

- Some properties aren't available for bullets, e.g. most Alive and Physics properties, because they would break things or not work at all. If you find any other properties or combinations that don't work properly, please bug report them.

- A search bar is coming once the property list and menu is finalized.

[h2]Muzzle[/h2]



Currently the exact same as the Sounds menu for other items, allowing you to override the sound and volume the item makes.

May be expanded to also include other muzzle things, in some form, at a later time.

Guns Guns Guns





Guns Guns Guns Patchnotes


[h2]Items (read: guns)[/h2]

Added an arsenal of guns and gun attachments:
(you can find them in [Library > Guns Guns Guns])

A Salt Pistol
Action Hero Pistol
Armour Breaker
Assault Pistol
Assault Shaker
Attachment Point
Barrel Bottle
Barrel Hook
Big Bullet Gun
Blanker Attachment
Boomstick
Bottle Suppressor
Bullet of Unusual Size
Carrot Gun
Chroma Extractor
Coil Musket
Coil Pistol
Devolving Barrel
Devouring Gun
Disc Repeater
Explosive Bullet
Extra Receiver
Festive Rifle
Futuristic Stock
Glass Blaster
Glinthusk
Hakarhal Coil
Heavy Rifle Magazine
High-Explosive Magazine
Intense Scanner
Launching Barrel
Lawbreaker
Marksman Stock
Melting Pistol
More Bullet Magazine
Packed Magazine
Pincher SMG
Pistol Belt
Pistol Grip
Poly Bullet
Poly Revolver
Rifle Clip
Rodclobber
Shell Belt
Speedloader Clip
To Whom It May Concern

Add puny non-gun items:
Trigger Next and Untrigger Next (Triggers/Untriggers the next linked item, in the order they were linked. (Note: multi-linking may cause the order not to be as expected.)




[h2]Tweaks[/h2]

Add console command: simpleignores 0/1 (temporarily toggles whether or not ignore lines are drawn using simple/dashed lines)

Modify generic explosion volume to be lower
Modify item loading speed on launch to be faster

Modify Aim Tool not to reselect the same item when stopping aiming
Modify Aim Tool stop button to follow items

Modify Arc Grenade damage to be higher
Modify Devouring Drone to have more max speed
Modify Fire Resist to also resist napalm-type items
Modify Glass Pane to be easier to break by default (its strength can be modified via the Default Tool)
Modify Tesla Coil to use Trigger Force as damage multiplier and resist shocking by default
Modify Turbo Effectator to remove linked items' effects on untrigger

Modify guns to pass opacity value to projectiles
Modify guns to pass triggerCustom to projectiles if it doesn't exist already
Modify plain bullets to ignore their firearm
Modify various xml properties to be applied even if the item doesn't have a trigger
Modify item model refreshing to display tooltip



[h2]Fixes[/h2]

Fix C4 not exploding after saveload
Fix Devouring Drone sticking to linked items
Fix Futuristic Monopod not working
Fix Joint Slinger aiming wrong with Aim Tool
Fix Mover type items not waking up items
Fix Mutilation Booth environment not zapping
Fix Open World causing damping
Fix armour pieces dragging wrong if the armour joint is manually cut
Fix bulletholes sometimes deleting stainless ragdolls
Fix firearms not waking up from recoil
Fix gloves not being re-equipable if the original hand is destroyed
Fix regrowing new bodyparts or fixing them producing weaker bodyparts
Fix some firearms shooting twice when triggered with RMB while dragging



[h2]MaD Lab functionality[/h2]

MaD Lab is the item editor made from scratch specifically for MaD2 content creation.

See the documentation for more info: https://gitlab.com/RavaGames/madlab/



Add generic properties: ghostOnContact, weldOnContact, killOnContact
Add generic value temperatureMolten=numberInCelsius (when temperature exceeds it, the item melts into lava)
Add firearm values: angle=numberInDegrees, bulletAngle=numberInDegrees
Add firearm properties: invisibling, aimhacking

Add triggers (see the xml of various new items for reference):
Triggers::BeltAttachment
Triggers::BlockBarrelAttachment
Triggers::SoundBarrelAttachment
Triggers::StockAttachment
Triggers::TriggerNext

Add projectiles:
crabber (spawns crabs on the item on collision)
monochrome (melts items into paint pellets)
decorated (spawns a decorated tree on collision)
ballandchain (spawns a heavy ball that attaches to the gun)
boom (explodes)
blasterbullet (see: xml coilmusket)
armourbreaker (destroys armour on collision)
laserbeam (spot-cutting bullets that draw a line to the firearm's center)
blorch (see: xml towhomitmayconcern)

Modify Disc projectiles to support various new features in triggerCustom (see xml towhomitmayconcern / xml coilmusket)

P.S. guns

April Fixes

A small patch is out now, patchnotes:

Add an approppriate amount of organs and bones inside ragdolls

This part of the patch was of course april fools, but if you missed it, or enjoyed it very much,
you can still use the console command "notSpookyEnough" to enable them again
(open the console with the [Home]-key, or via [Settings > Menus > Console].)



Add console command "notSpookyEnough" to enable organs and bones
Add console command "tooSpooky" to disable organs and bones
(open the console with the [Home]-key, or via [Settings > Menus > Console])

Modify updating a custom item to update spawn menu and library focus

Modify Joint Slinger to only sling one joint per trigger when Duration is set to 0
Modify cloner descriptions to be more descriptive

Modify Joint visibility toggle to be above visual settings
Modify Joint visual settings to be visible even if the joint is invisible (so they can still be customized for use with the Selected Joints setting, which will make them visible when selected)

Fix Neodymium Sword not being magnetic or triggered by default
Fix longbow arrow not having fletching
Fix Disc launcher discs not being explody enough
Fix cloners not launching items
Fix Resist Deadly not resisting Death bullets
Fix RandomEffectOnHit items not triggering on collision
Fix Double Light Saber not respecting Ignores
Fix Turbo Effectator throwing errors if it had no effect

Fix respawning rotating items wrong when spawn angle is set
Fix scaling reseting spawn rotation
Fix Locked property tooltip saying it's not saveable
Fix user content failing to share if you had no existing user content
Fix Ignore loading performance issue

Things That Do Things Update



[h2]Things That Do Things[/h2]

- Added 50+ new things that do things.

- Added 0 new things that don't things.

- Fixed things that didn't do things well, or that did things wrong.



[h3]New Items[/h3]
The theme for this update was (obviously) things that do things, with lots of interesting customization via tweakable values and linking. The only exception was no guns, as those will follow in a future update ːMaDFirearmː.

The next couple updates will be purely more and more items, to even further flesh out the MaD Lab functionality system (see the Lab section below for more info.)

Find them all under [Library > Things That Do Things].

3D Printer AC Unit Airstrike Flare All-Knowing Shell Annoying Alarm Clock Apocryphal Blade Arcade Machine Atomizer Au Gratin Pan Auto Link Brick Mine Bricking Hammer Bus Stop Sign Can of Worms Card Box Celestial Compass Celestial Star Chaotic Hammer Charged Judgement Cheap Firecracker Chili Spear Core of the Earth Crane Magnet Crucible Curserot Cyber Tire Dirtbike Wheel Disposal Barrel Door Switch Drain Field Egg Carton Electric Iron Exploding Sign Futuristic Monopod Gibstick Single-Use Sword Single-Use Sword Blade Single-Use Sword Box Single-Use Sword Hilt Joint Slinger Link Beam N-Sided Die Neodymium Sword Opacity Switch Pastaff Prisoned Rift Remote Camera Slipping Sign Smart Ice Cube Spring-Loaded Glove Swinging Bottle

[h3]Item Tweaks[/h3]

- Blight only affects Alive items

- Bricks are heavier by default

- Burning items produce more varied sounds with a higher quality (at the cost of there being an occasional tiny gap since it's no longer a single looped sound)

- Lighter-type items trigger Fireworks on touch

- Neuro gas deals more damage in a smaller radius

- Sticky items stick more (to more items at once, and with more force to walls)

- Chainsaw won't spawn more than ten sounds at once (wromrrromrowromowrromor)

- Magma projectiles have fancier visuals, are now hotter, and are destroyed when extinguished (e.g. Dragon's Breath)

- Magnets no longer affect ignored items

- Melting triggers on-destroy effects

- Random property effects can't apply disintegrating or ghost (so the property-applying item can actually hit them again)

- Worms now also deal damage on bite instead of just applying bleeding



[h3]Damage Tweaks[/h3]

- Generic blunt damage is higher by default

- Giblets have been tweaked to have more varied sizes and models, to inherit more velocity, burst into blood better, and disintegrate more randomly

- Slightly larger chunks are allowed to turn into giblets, but on average fewer giblets will spawn compared to before

- Low-mass alive items will produce fewer giblets, to avoid gibsplosions when rapidly cutting



[h3]Misc Tweaks[/h3]

- Main menu does things now

- Add console command "detaillocked [0/1]" (temporarily toggles whether or not detail tool can area select locked items)

- Launch tool has been improved to use wheel rotation and mass rotation

- Wheel rotation has been modified so selected item only rotates while dragging/moving



[h3]Item Fixes[/h3]

- Bleach+Ammonia collision works properly again

- Electricity and Neuro gas won't cause bleeding any more

- Explosions are more explody aka previously-intended more cuts per explosion were not working properly

- Items with Resist Shock are no longer triggered by Shock power


[h3]Misc Fixes[/h3]

- Cloning no longer disables Vanilla spawn property

- Compressed triggerCustom won't fail to load sometimes

- Wheel speed setting loads at correct values now





[h2]MaD Lab[/h2]
MaD Lab is the item editor made from scratch specifically for MaD2 content creation.

The Cryolab update added an XML-based model functionality support to MaD Lab and MaD2, which has since been expanded to be the main content creation workflow for the game.

See the documentation for more info: https://gitlab.com/RavaGames/madlab/



While the system was originally made to make item creation easier for myself, all of the new functionalities in this update were also made to be as generic as possible so they can be applied to other models as well and tweaked. (At least, where feasible, e.g. there's kind of no way to generalize an item that spawns spaghetti.)

From my point of view the system works brilliantly for content creation -- tweaking item model values in Lab while the game is running and then refreshing to see the changes in-game is just great.

More items and more functionalities will follow.

[h3]Misc[/h3]

- Add temperature and temperatureMelt attribute support into functionality

- Add "stormcloud" projectile

[h3]Triggers[/h3]
Use via trigger="triggers::TriggerNameCaseSpecific" in functionality XML.

- AimAtLinkedAttachment (makes gun aim at linked item while attached, e.g. triggerPos="0,-20" triggerForce="100" triggerColour="e92d15")

- Airstrike (Spawns Force amount of linked items every Duration after triggered, items ignore walls and trigger on collision)

- AnnoyingAlarmClock (Bounces around.)

- ApplyEffectInRadius (applies body effect in radius, e.g. triggerCustom="gib")

- ApplyEffectOnSharp (applies body effect on sharp hit, e.g. triggerCustom="gib")

- ApplyForceSpecific (e.g. Slipping Sign: triggerForce="100" triggerRadius="200" triggerPos="150,0" triggerCustom="items=doll_foot,doll_leg;force=1,0;pos=0,100;randomForce=true")

- AutoJoint (welds items to itself when something hits the joint line, similar to firearm attachments. E.g. triggerPos="0,-20" triggerColour="e92d15")

- CameraFollowLinked (makes camera follow the first linked item)

- D20 (Rolls a number between 1 and Force. Triggers items when the highest value is rolled.)

- DestroyOnColour (Destroys other item when hit by layer with Colour. e.g. triggerColour="FF00FF")

- DisintegrateIntoItems (same as SpawnItem except spawns multiple items by adding amount=n in triggerCustom)

- DisintegrateIntoParticles (e.g. triggerCustom="particle=tinysprinkle;amount=20" triggerColour="FF00FF" triggerContact="10")

- DisintegrateOnHit (applies DisintegrateIntoItems to items it hits, with same triggerCustom parameters, e.g. triggerCustom="items=chilipepper;posX=0;posY=0;scale=0.5;destroy=false;amount=10;randomScale=1;randomPos=1;particle=fire3" triggerColour="FF0000" triggerCollide="50")

- DoorSwitch (toggles ghost and sets alpha to Force% on trigger, and resets on untrigger. Only toggles alpha when triggerState="1")

- DrainHeal (drains Force health from items in Radius, and sends it to linked items.)

- DrawStage (draws the stage on the item, e.g. triggerCustom="posX=0,posY=-60,scale=0.075")

- EmitProjectile (triggerForce="Forward Emit Force", triggerDuration="Frames To Emit", triggerPos="X,Y", triggerCustom="Projectile Name")

- ExplodeInRadius (makes all items in radius explode every duration frames)

- FireworkGrenade (same as firework except explodes more and doesn't fly, e.g. triggerForce="1000" triggerRadius="200" triggerPos="0,-15" triggerDuration="30")

- JointSlinger (1. Creates a joint from Pos forwards, up to Radius away. 2. Pulls towards it at Force for Duration. 3. Destroys the joint and starts all over again. E.g. triggerForce="100" triggerDuration="30" triggerColour="94deef" triggerPos="36,0" triggerRadius="1962")

- LinkLinkedToRay (links from linked items to items that touch the ray. E.g. triggerForce="100" triggerColour="259e25" triggerPos="20,0")

- LinkToJointed (Links linked items to jointed items when triggered.)

- MagnetWhenSwung (attracts items in triggerRadius by triggerForce when spinning or moving fast enough, e.g. triggerRadius="200" triggerForce="500")

- MeltAndPour (Temperature in radius, destroy on colour, and pour projectiles combined. E.g. triggerForce="100" triggerRadius="50" triggerCustom="items=magma,lava;start=-10,-25;end=10,-25;angle=75;chance=0.05" ignore="magma" triggerColour="FF00FF")

- PourSpawnProjectile (e.g. triggerCustom="items=worm;start=-10,-20;end=10,-20;angle=75;chance=0.05")

- ProjectilesOnEverything (Spawns custom projectiles when moving too fast, or hitting with sharp)

- ProjectilesOnSharp (Spawns custom projectiles the next frame after hitting with sharp)

- ProjectilesWhenSpun (spawns custom projectile every duration frames, when spinning faster than force e.g. triggerCustom="magma" triggerDuration="8" triggerForce="50")

- ProjectilesWhenSpunOrSwung (Spawns custom projectiles when speed exceeds force)

- RandomEffectInRadius and RandomEffectOnHit

- RandomPropertiesOnHit (Adds force amount of random properties to the item
(not its victims) on hit and while triggered, capping at 50)

- Refactor generic visual effects (e.g. burn/freeze/radiation/etc visuals on alive items. This should change nothing, but is mentioned for bug reporting purposes in case any issues are found.)

- RotAndWorms (e.g. triggerColour="6a6533" triggerDuration="30")

- SayRandomLine (says a random line of text when shaken or thrown e.g. triggerCustom="Yes.;No.")

- SetTemperatureInRadius (Heats or cools temperature of items in Radius towards Force over Duration)

- SpaghettiInRadius (Summons spaghetti in Radius that slaps items away with Force. E.g. triggerRadius="200" triggerForce="100" triggerPos="0,-30")

- SpawnItems (triggerCustom="items=id,id,...;posX=number,number,...;posY=number,number,...;rot=number,number,...")

- SpawnItemsCraft (same as SpawnItems, except has "targets=a,b,c" in triggerCustom, only triggering when hitting any of those items, e.g. triggerCustom="items=glasssword;targets=glassswordblade;posX=0;posY=-38;rot=0")

- SpawnItemsSlowly (spawns linked items slowly, e.g. triggerCustom="posX=0,posY=0,forceX=0,forceY=0" triggerDuration="120")

- SpawnItemsWhenSwung (spawns items every triggerDuration frames when spinning or moving fast enough, inheriting base item's velocity multiplied by triggerForce, e.g. triggerCustom="items=brick;destroy=0;temporary=1;posX=-10;posY=-20;rot=0" triggerContact="100" triggerForce="1000" triggerDuration="10" ignore="brick")

- TeleportBehindOnHit (teleports on sharp every triggerDuration frames, moving towards hit body at triggerForce e.g. triggerForce="100" triggerDuration="10")

- TemperatureInRadius (Modifies temperature of items in Radius by Force each frame.)

- TriggerLinkedOnDestroy (triggers linked items when the item is destroyed)

Night of the Living Staplers



Patchnotes:


[h2]Pumpumpkinpumpkin:[/h2]
Add Night of the Living Staplers minigame where you mow down hordes of living staplers using a chainsaw before they eat all your pumpkins
(it will be permanently available in the Minigames section of environments.)

Rename Pumpkin Defence as War of the Pumpkins
Modify War of the Pumpkins to use non-elevator music

[h2]Gameplay:[/h2]
Modify Locked property to be saveable (the property is still available via Detail tool only)
- Note: This means that levels may now contain items that can't be dragged/deleted like usual. To unlock or delete such an item, use the Detail tool. Reseting still deletes them.

Add [Ctrl+C] hotkey to quick-clone selected items (click to position and spawn them)
Modify cloning not to reset spawn properties (settings are still reset for boring technical reasons.)

Add [Settings > Mouse > % Wheel Rotation] to controls the rotation speed of dragged items when rotated with the mouse wheel

Modify all items to use physics rotation when rotated with the mouse wheel by default ([Shift+Mouse Wheel] rotates their angle directly if you miss the old functionality.)

Modify wheel physics rotation force to be higher by default for better swinging action
Modify currently selected item (1) to rotate with the mouse wheel while paused (overriding zooming while the item is selected)
Modify default wheel rotation angle step to be 15 degrees (this is also affected by wheel rotation setting)

Modify mass rotation to be the default when multiple items are rotated with arrow keys
Modify mass rotation with [Shift+Arrow Keys] to rotate all items around their centre when multiple items are selected

[h2]Items:[/h2]
Modify chainsaws to go brrbrrbrrbrr wromwromwrmorwrmmmm

Modify Stinger Drones to allow targeting other drones when affected by Sinister Software
Fix Sinister Software being able to attach to two drones at once

Buff Braveheart heal to match new fire damage, and make it customizable via Trigger Force
Modify Braveheart to apply Resist Concuss to avoid fire damage overwhelm concussion

Modify Turrets to be treated as firearms (so attachments work)
Modify Turret bullets to have more bullet per bullet

Modify recoil attachments to be stackable (so a tripod and a stock can both be attached)
- Note: Removing any of them will return the firearm to its original recoil

[h2]Damage:[/h2]
Modify Drain property damage+heal to be more in line with new doll healths
Fix Drain property visual effect not respecting blood colour

Modify healing to reset damage overwhelm concussions

Buff blight damage to match new default healths better

Buff some firearms to shoot faster by default

Fix walls bleeding on blunt collisions

[h2]Saves:[/h2]
Modify MaD Lab model saving to check for unique models to avoid duplicates bloating the save size and causing loading performance to tank
Rename Load Content as Browse Content

[h2]Misc:[/h2]
Modify integer snapping to apply to newly spawned items as well as moving items
Add console command "snap [0/1]" (variant of "integerscaling [0/1]"). When enabled causes item positions to snap to the nearest full number when spawned/moved so things can be perfectly aligned without worrying about floating point precision. Default: 0.

Add console command "ps [0/1]" (variant of "prioritizeselection [0/1]"). When enabled, toggles prioritizing selected items with tools (default: 1)

Fix prev/next item keys in spawn menu not working properly

Fix non-bullet items sometimes being treated as bullets

Fix decomposing items (e.g. Shard Sword) not respecting skin

Fix library reseting when spawning a custom item