Writing a script to attach a decal to a wall and emit a dust cloud is simple.
var BulletHole : GameObject;
var Smoke : GameObject;
// Later on inside shoot function where the raycast hits something
if(BulletHole) //Check if the object exists
{
BulletHole.transform.position = hit.point;
var rotation = Quaternion.FromToRotation(Vector3.up, hit.normal);
var BulletHole : GameObject = Instantiate(BulletHole, hit.point , rotation);
//Bullet Hole Stick Onto Object
BulletHole.transform.parent = hit.collider.transform;
var Smoke: GameObject = Instantiate (Smoke, hit.point , rotation);
}
This script is part of my raycast shoot script here but it should work if your weapon works via collisions.
Peace, Aaron Lewis
PS: Sorry I couldn't help with your problem, If you had made a forum topic something like this would have come up.