it will be
easyer to pick up if you understand some lua. theres the lua user's wiki
, which should help you understand the language itself. theres a console based lua interpreter which is good to help you better understand the syntax of the language which you can get here
. once you understand the language then picking up the freespace implementation should be a bit more straight forward.
once you have a base understanding of lua, go through the scripting.html file and see what functions are available to you. once you start playing around with stuff youl catch on quick. you will want to keep up with the latest head builds of course.
debugging can be a *****. the main reason being you have to load the engine every time you want to test something. for that reason i recommend a clean mod directory with little or no mod material, and no media vps (it will reduce the loading times). retail data also assures the most stable scripting environment. i usually use release builds for testing, they are abit faster. im not sure if debug builds have an advantage when debugging script. they might but youl have to ask wmc.
some hooks run every frame, others at a specific time, like on init. the init hook is the place to define functions. you could write a function to draw a crosshair for example, and call it in hud as many times as you want. when dealing with objects, be sure to use .isValid() to see if the object is available.
of crashes are caused by trying to access objects that dont exist (like if you try to change beta 2's velocity before it jumps in during a mission). so you can use isValid with an if statement. anyway familiarize yourself with lua first because it really comes in handy when you got a problem.