using UnityEngine; //You'll probably need this... namespace Mod { public class Mod { public static void OnLoad() { // Optional initialization method - runs when mod is first loaded } public static void OnUnload() { // Optional cleanup method - runs when mod is unloaded/game closes } public static void Main() { // register item to the mod api ModAPI.Register( new Modification() { OriginalItem = ModAPI.FindSpawnable("Power Hammer"), //item to derive from (better physics than Brick) NameOverride = "SledgeHammer", //new item name DescriptionOverride = "A heavy demolition sledgehammer.", //new item description CategoryOverride = ModAPI.FindCategory("Melee"), //new item category ThumbnailOverride = ModAPI.LoadSprite("sprites/sledgeHammerView.png"), //new item thumbnail (relative path) AfterSpawn = (Instance) => //all code in the AfterSpawn delegate will be executed when the item is spawned { Instance.GetComponent().sprite = ModAPI.LoadSprite("sprites/sledgeHammer.png"); //get the SpriteRenderer and replace its sprite with a custom one var physical = Instance.GetComponent(); if (physical != null) { physical.InitialMass = 8f; //make it heavier for realistic sledgehammer feel physical.TrueInitialMass = 8f; //ensure the mass is actually applied // Add custom impact sounds for different collision types physical.OverrideImpactSounds = new AudioClip[] { ModAPI.LoadSound("sfx/simple-hit.wav"), ModAPI.LoadSound("sfx/hard-hit.wav") }; // Add custom bullet impact sounds (when shot) physical.OverrideShotSounds = new AudioClip[] { ModAPI.LoadSound("sfx/hard-hit.wav") }; } // Add a spawn sound when the hammer is created var audioSource = Instance.GetComponent(); if (audioSource == null) { audioSource = Instance.AddComponent(); } // Play spawn sound var spawnSound = ModAPI.LoadSound("sfx/spawn.wav"); if (spawnSound != null && audioSource != null) { audioSource.PlayOneShot(spawnSound); } Instance.FixColliders(); //fix colliders to match new sprite } } ); } } }