Files
ppg-modkit/extracted_wiki_content/snippets/adding_a_firearm.txt

48 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

URL: https://wiki.studiominus.nl/snippets/simpleGun.html
Title: People Playground Modding - Adding a firearm
==================================================
Adding a firearm
This code snippet shows an example on how to add a firearm with custom properties and sprites.
ModAPI.Register(
new Modification()
{
OriginalItem = ModAPI.FindSpawnable("Pistol"), //item to derive from
NameOverride = "Mauser C96 -TooManyGuns", //new item name with a suffix to assure it is globally unique
DescriptionOverride = "World War era pistol developed by the Germans.", //new item description
CategoryOverride = ModAPI.FindCategory("Firearms"), //new item category
ThumbnailOverride = ModAPI.LoadSprite("c96view.png"), //new item thumbnail (relative path)
AfterSpawn = (Instance) => //all code in the AfterSpawn delegate will be executed when the item is spawned
{
//setting the sprite
Instance.GetComponent<SpriteRenderer>().sprite = ModAPI.LoadSprite("C96.png");
//getting the FirearmBehaviour for later manipulation
var firearm = Instance.GetComponent<FirearmBehaviour>();
//creating a custom cartridge for the gun
Cartridge customCartridge = ModAPI.FindCartridge("9mm"); //load a copy of the 9mm cartridge
customCartridge.name = "7.63×25mm Mauser"; //set a name
customCartridge.Damage *= 0.8f; //change the damage however you like
customCartridge.StartSpeed *= 1.5f; //change the bullet velocity
customCartridge.PenetrationRandomAngleMultiplier *= 0.5f; //change the accuracy when the bullet travels through an object
customCartridge.Recoil *= 0.7f; //change the recoil
customCartridge.ImpactForce *= 0.7f; //change how much the bullet pushes the target
//set the cartridge to the FirearmBehaviour
firearm.Cartridge = customCartridge;
//set the new gun sounds. this is an array of AudioClips that is picked from at random when shot
firearm.ShotSounds = new AudioClip[]
{
ModAPI.LoadSound("c96_1.wav"),
ModAPI.LoadSound("c96_2.wav"),
ModAPI.LoadSound("c96_3.wav"),
};
// set the collision box to the new sprite shape
// this is the easiest way to fix your collision shape, but it also the slowest.
Instance.FixColliders();
}
}
);