lego were you talking about me? Well, starting in coding can be a very easy, or very hard thing to do. You should start off with edits first, because they are the easiest. The main thing that you ned to know for editing a .cs is datablocks at this point. Datablocks care actually (in my mind) advanced variables or place holders, it all depends on how you use them. You always need to change the datablocks to make a good edit. here is a portion of the gun.cs. I have highlighted in red all of the datablocks that needed to be changed. when you want to create a new .cs just copy an existing one, and rename it.
/gun.cs
//audio
datablock AudioProfile(
gunShot1Sound)
{
  filename  = "./sound/gunShot1.wav";
  description = AudioClose3d;
  preload = true;
};
datablock AudioProfile(
insert name herebulletHitSound)
{
  filename  = "./sound/arrowHit.wav";
  description = AudioClose3d;
  preload = true;
};
//shell
datablock DebrisData(
gunShellDebris)
{
shapeFile = "./shapes/gunShell.dts";
lifetime = 2.0;
minSpinSpeed = -400.0;
maxSpinSpeed = 200.0;
elasticity = 0.5;
friction = 0.2;
numBounces = 3;
staticOnMaxBounce = true;
snapOnMaxBounce = false;
fade = true;
gravModifier = 2;
};
//muzzle flash effects
datablock ParticleData(
gunFlashParticle)
{
dragCoefficient   = 3;
gravityCoefficient  = -0.5;
inheritedVelFactor  = 0.2;
constantAcceleration = 0.0;
lifetimeMSÂ Â Â Â Â Â = 25;
lifetimeVarianceMSÂ Â = 15;
textureName     = "base/data/particles/star1";
spinSpeed = 10.0;
spinRandomMin = -500.0;
spinRandomMax = 500.0;
colors[0]Â Â Â = "0.9 0.9 0.0 0.9";
colors[1]Â Â Â = "0.9 0.5 0.0 0.0";
sizes[0]Â Â Â = 0.5;
sizes[1]Â Â Â = 1.0;
useInvAlpha = false;
};
datablock ParticleEmitterData(
gunFlashEmitter)
{
  ejectionPeriodMS = 3;
  periodVarianceMS = 0;
  ejectionVelocity = 1.0;
  velocityVariance = 1.0;
  ejectionOffset  = 0.0;
  thetaMin     = 0;
  thetaMax     = 90;
  phiReferenceVel = 0;
  phiVariance   = 360;
  overrideAdvance = false;
  particles = "
gunFlashParticle";
};
datablock ParticleData(
gunSmokeParticle)
{
dragCoefficient   = 3;
gravityCoefficient  = -0.5;
inheritedVelFactor  = 0.2;
constantAcceleration = 0.0;
lifetimeMSÂ Â Â Â Â Â = 525;
lifetimeVarianceMSÂ Â = 55;
textureName     = "base/data/particles/cloud";
spinSpeed = 10.0;
spinRandomMin = -500.0;
spinRandomMax = 500.0;
colors[0]Â Â Â = "0.5 0.5 0.5 0.9";
colors[1]Â Â Â = "0.5 0.5 0.5 0.0";
sizes[0]Â Â Â = 0.15;
sizes[1]Â Â Â = 0.15;
useInvAlpha = false;
};
datablock ParticleEmitterData(
gunSmokeEmitter)
{
  ejectionPeriodMS = 3;
  periodVarianceMS = 0;
  ejectionVelocity = 1.0;
  velocityVariance = 1.0;
  ejectionOffset  = 0.0;
  thetaMin     = 0;
  thetaMax     = 90;
  phiReferenceVel = 0;
  phiVariance   = 360;
  overrideAdvance = false;
  particles = "
gunSmokeParticle";
};
//bullet trail effects
datablock ParticleData(
insert name herebulletTrailParticle)
{
dragCoefficient   = 3;
gravityCoefficient  = -0.0;
inheritedVelFactor  = 1.0;
constantAcceleration = 0.0;
lifetimeMSÂ Â Â Â Â Â = 525;
lifetimeVarianceMSÂ Â = 55;
textureName     = "base/data/particles/thinRing";
spinSpeed = 10.0;
spinRandomMin = -500.0;
spinRandomMax = 500.0;
colors[0]Â Â Â = "0.3 0.3 0.9 0.4";
colors[1]Â Â Â = "0.5 0.5 0.5 0.0";
sizes[0]Â Â Â = 0.15;
sizes[1]Â Â Â = 0.25;
useInvAlpha = false;
};
datablock ParticleEmitterData(
insert name herebulletTrailEmitter)
{
  ejectionPeriodMS = 3;
  periodVarianceMS = 0;
  ejectionVelocity = 0.0;
  velocityVariance = 0.0;
  ejectionOffset  = 0.0;
  thetaMin     = 0;
  thetaMax     = 90;
  phiReferenceVel = 0;
  phiVariance   = 360;
  overrideAdvance = false;
  particles = "
insert name herebulletTrailParticle";
};
datablock ParticleData(
gunExplosionParticle)
{
dragCoefficient   = 8;
gravityCoefficient  = -0.5;
inheritedVelFactor  = 0.2;
constantAcceleration = 0.0;
lifetimeMSÂ Â Â Â Â Â = 700;
lifetimeVarianceMSÂ Â = 400;
textureName     = "base/data/particles/cloud";
spinSpeed = 10.0;
spinRandomMin = -50.0;
spinRandomMax = 50.0;
colors[0]Â Â Â = "0.9 0.9 0.6 0.9";
colors[1]Â Â Â = "0.9 0.5 0.6 0.0";
sizes[0]Â Â Â = 0.25;
sizes[1]Â Â Â = 1.0;
useInvAlpha = true;
};
datablock ParticleEmitterData(
gunExplosionEmitter)
{
  ejectionPeriodMS = 1;
  periodVarianceMS = 0;
  ejectionVelocity = 5;
  velocityVariance = 1.0;
  ejectionOffset  = 0.0;
  thetaMin     = 89;
  thetaMax     = 90;
  phiReferenceVel = 0;
  phiVariance   = 360;
  overrideAdvance = false;
  particles = "
gunExplosionParticle";
};
datablock ParticleData(
gunExplosionRingParticle)
{
dragCoefficient   = 8;
gravityCoefficient  = -0.5;
inheritedVelFactor  = 0.2;
constantAcceleration = 0.0;
lifetimeMSÂ Â Â Â Â Â = 300;
lifetimeVarianceMSÂ Â = 100;
textureName     = "base/data/particles/star1";
spinSpeed = 10.0;
spinRandomMin = -50.0;
spinRandomMax = 50.0;
colors[0]Â Â Â = "1 1 0.0 0.9";
colors[1]Â Â Â = "0.9 0.0 0.0 0.0";
sizes[0]Â Â Â = 0.2;
sizes[1]Â Â Â = 0.2;
useInvAlpha = false;
};
datablock ParticleEmitterData(
gunExplosionRingEmitter)
{
lifeTimeMS = 50;
  ejectionPeriodMS = 1;
  periodVarianceMS = 0;
  ejectionVelocity = 5;
  velocityVariance = 0.0;
  ejectionOffset  = 0.0;
  thetaMin     = 89;
  thetaMax     = 90;
  phiReferenceVel = 0;
  phiVariance   = 360;
  overrideAdvance = false;
  particles = "
gunExplosionRingParticle";
};
datablock ExplosionData(
gunExplosion)
{
  //explosionShape = "";
soundProfile = bulletHitSound;
  lifeTimeMS = 150;
  particleEmitter =
gunExplosionEmitter;
  particleDensity = 10;
  particleRadius = 0.2;
  emitter[0] =
gunExplosionRingEmitter;
  faceViewer   = true;
  explosionScale = "1 1 1";
  shakeCamera = false;
  camShakeFreq = "10.0 11.0 10.0";
  camShakeAmp = "1.0 1.0 1.0";
  camShakeDuration = 0.5;
  camShakeRadius = 10.0;
  // Dynamic light
  lightStartRadius = 0;
  lightEndRadius = 2;
  lightStartColor = "0.3 0.6 0.7";
  lightEndColor = "0 0 0";
};
AddDamageType("
Gun",  '<bitmap:add-ons/ci/gun> %1',  '%2 <bitmap:add-ons/ci/gun> %1',0.5,1);
datablock ProjectileData(gunProjectile)
and it goes on, you get the idea. look around in you shapes, sound, and other folders in your addon folder. you can add sounds to your sound folder, and change it is your .cs files. that is a baisic overview of how to make .cs files and mods. if you ned help, there are alot of experianced users in the coding help section of the forums that can answer your questions.
you dont code from scratch unless you know torque script, you can get the torque engine here:
http://www.garagegames.com/
3d modeling: there are lots of ways ad programs that you can model things, what you should start with is google sketchup, it is avery easy to use program, and is a good start, for exporting your model to .dts files form the sketchup file, you can just ask on the forums, you ill get an answer. it can be found here:
http://sketchup.google.com/good luck
