Ok, I've been learning UScript for a few days now, and today I ran into a problem I didn't understand. Just for fun and practice, I was making a tweeked version of the Ripper which would shoot a subclass of Razor2 (the normal projectile for the ripper) that would bounce 30 times instead of 7. I called the new projectile SuperBlade and made it a subclass of Razor2, and I made the SuperBlade Launcher a subclass of Ripper and only changed its ProjectileClass to MyMod.Superblade. What I did in SuperBlade was overload the HitWall( ) function and change the number of wall bounces it did before calling Destroy( ) to 30 instead of 6. When I tried to compile it, it gave me an error and said that the function SetRoll( ), called at the end of HitWall( ), wasn't defined (even though it should have been inherited from Razor2). So I cut and pasted the SetRoll( ) function from Razor2 into SuperBlade and tried again, and this time it compiled. I found that I could tweak the damage and speed in the default properties for SuperBlade, but for some reason it wouldn't acknowledge any changes to HitWall( ) and still vanished after bouncing 7 times. Finally I used the method from the tutorials on WoD and just copied and pasted the entire code from Razor2 into a new class, changed the code there to make it bounce 30 times, and made SuperBlade a subclass of Projectile and it worked. My question is, why didn't making SuperBlade a subclass of Razor2 work? Both HitWall( ) and SetRoll( ) I noticed are simulated functions.. can simulated functions not be overridden in a subclass of the class where they're defined? Can simulated functions not be inherited at all? Thanks in advance to anyone who replies.