First I just want to say that SGDK2 is superb. Much better than Gamemaker and SGDK1.
Great to hear -- thanks for the comments!
I started using SGDK 2 like a week ago and so far I've gotten my player to walk and jump. Now, I've looked at the sample file TVSGDK2 (The one with Metalman) and I've tried to replicate the shooting in a tryout project I'm working on. The only thing is the function "AddSprite" only seems to be available in the TVSGDK2 file. Only "AddSpriteHere" appears in my project and they seem to operate in different ways. Was this function custom made by the user?
Yes AddSprite was added as a custom function in that project. Then I added "AddSpriteHere", realizing that a similar, but easier-to-use function should be included in the intrinsic code. So AddSpriteHere is the right thing to use.
Anyway, I've got my player shooting with the "AddSpriteHere" function and the bullet moving using the "dy" function. I was thrilled I've finally got it working and walked around my map shooting randomly until it crashed, giving me an error saying a sprite collection has exceeded 100. I figured I could just increase the limit but then I realised that I'd need to deactivitate the sprites to make the game run more effectively.
Very good -- that all worked as designed and you've chosen wisely

.
Though when I deactivate it, it crashes again saying:
Attempted to execute MoveByVelocity on an inactive sprite
Is there anyway to make a specific bullet disappear while still allowing me to shoot like in the TVSGDK2 tutorial?
You can try one of a few things to eliminate that error:
1) Try to find a better time to deactivate the sprite. Instead of de-activating it in the middle of your set of rules, make it the last rule. If you de-activate it in the middle, any rule that references the sprite after that will cause an error because the code tried to prevent you from acting on inactive sprites. If you simply check for de-activation at the end of the rule list instead of the beginning of middle, you might be able to get around this problem.
2) If you must de-activate the sprite in the middle of the rule sequence, maybe you could just set a flag on a sprite parameter to tell it to de-activate later, when the rest of the rules for this sprite have finished.
3) If the above suggestions weren't good enough for whatever reason, you could try to add a check if the sprite is active before executing rules that are causing the error (such as MoveByVelocity). I see that I neglected to provide a sprite rule function to determine if a sprite is active (presumably because usually a sprite's rules won't be executing when it's inactive), but you can easily implement such a rule be selecting:
Type=If
Function= "=="
left operand = "isActive" (type in in there manually)
right operand = "true"
If you look closely, you'll notice that the rules in the TVSGDK2 project for de-activating the bullet are the last rules that execute along their respective execution paths. There are other rules afterwards, but they only execute under different conditions (using "Else").