Thanks laugh
A team member asked me to add flares at the beginning and the end of the beam, and I increased the resolution of the sprites, other than that it's done.

If anyone should ever need an animation of lightning, I made a script-plugin for the GIMP to speed the process up, cause I was to slack to make 50 frames per hand every time I wanted to make a new animation.

This took much longer than expected. So here's the script if anyone needs it, because I'd hate if this was made for only one use...

Well but at least now I know GIMP's script fu which is extremly useful.

Usage:
  • Install by dropping into GIMP's script folder (you can find that under edit-preferences-"folders"-"scripts". Any of the folders listed there will do. Just save it in there as "lightning.scm"
  • Refresh the scripts in GIMP (Filters->Script-Fu->Refresh)
  • Make a beam on a transparent layer, which goes from the left side of the image to the right side of the image (any straight line will do, blur it a little to get a better effect).
  • Call the script from Filters->Custom->Lightning
  • Fiddle with the parameters. It won't change your original image so feel free to try different settings with only a few "layers" selected. Note that "layers" is the equivalent to the number of frames the animation should have.
  • Save as png of tga file with a "+XX.tga" ending, where XX stands for the number of layers/frames.
  • Ready for use in 3dgs.


P.S. The script could also be useful for any other distorted animation. It works by taking the base layer, duplicating it and displacing each of the duplications with a random noise layer. This means it doesn't have to be a beam, it could also work with a circle or any other object that you want randomly distorted.

Code:
; Script by Micha Pfeiffer
; Used to quickly generate a set of layers from a base layer which are all displaced by a random cloud layer.


(define (generate-lightning-layers inImg inLayer inNumberOfLayers inRoughness inIntensity inBeamsPerLayer)
	(let* (
		(width (car (gimp-drawable-width inLayer)))
		(height (car (gimp-drawable-height inLayer)))
		(newImg (car (gimp-image-new width height RGB)))
		(noise-layer (car (gimp-layer-new newImg width height RGB-IMAGE "Noise" 100 NORMAL-MODE)))
		(roughnessLow (/ inRoughness 2))
		(roughnessHigh (/ inRoughness 2))
		(i 0)
		(j 0)
		(layer-copy1 0)
		(selection 0)
		(film-image 0)
		(imgList (cons-array 1 'long))
		
		(offset-y 0)
		
		)

		(aset imgList 0 newImg)
		
		(srand (realtime))
		(set! roughnessHigh (- 255 roughnessHigh))
		
		(gimp-image-add-layer newImg noise-layer 0)
		
		(gimp-edit-copy inLayer)
		
		(while (< i inNumberOfLayers)
			; copy the selected layer, create a new displacement map, 
			;(set! layer-copy (car (gimp-layer-copy inLayer FALSE)))
			(set! j 0)
			(while (< j inBeamsPerLayer)
				(set! layer-copy1 (car (gimp-layer-new newImg width height RGBA-IMAGE "Displaced" 100 NORMAL-MODE)))
				(gimp-image-add-layer newImg layer-copy1 -1)
				;(gimp-layer-add-alpha layer-copy)
				(set! selection (car (gimp-edit-paste layer-copy1 FALSE)))
				(gimp-floating-sel-anchor selection)
				(plug-in-solid-noise RUN-NONINTERACTIVE newImg noise-layer 0 0 (rand 99999) (+ 1 (rand 2)) (* (/ 15 inBeamsPerLayer) (- inBeamsPerLayer j)) (+ 2 (rand 3)))
				(gimp-levels noise-layer HISTOGRAM-VALUE roughnessLow roughnessHigh 1.0 0 255)
				(plug-in-displace RUN-NONINTERACTIVE newImg layer-copy1 inIntensity inIntensity TRUE TRUE noise-layer noise-layer 0)
				
				(gimp-layer-set-opacity layer-copy1 (+ 70 (+ (rand 10) (* (/ j inBeamsPerLayer) 20))))
				
				(if (> j 0)
					(gimp-image-merge-down newImg layer-copy1 2)
				)
					
				(set! j (+ j 1))
			)
			
			(set! i (+ i 1))
		 )
		
		(gimp-image-remove-layer newImg noise-layer)
		
		(set! film-image (car (plug-in-film RUN-NONINTERACTIVE newImg 0 0 '(0 0 0) 0 "" '(0 0 0) FALSE FALSE 1 imgList)))
		
		; create a group to undo all the changes in this script with only one click
		(gimp-image-undo-group-start film-image)
		
		(set! offset-y (/ (- (car (gimp-image-height film-image)) height) 2))
		(gimp-image-crop film-image (car (gimp-image-width film-image)) height 0 offset-y)
		
		(plug-in-colortoalpha RUN-NONINTERACTIVE film-image (car (gimp-image-get-active-drawable film-image)) '(0 0 0))
		
		(gimp-image-delete newImg)
		
		; display everything you've done:
		(gimp-display-new film-image)
		(gimp-displays-flush)
			
		; end the undo group
		(gimp-image-undo-group-end film-image)
	)
)

(script-fu-register "generate-lightning-layers"
  _"Lightning..."
  _"Generate multiple displaced layers"
  "Micha"
  "Hrvoje Horvat"
  "01 April, 2011"
  "RGB* RGBA*"
  SF-IMAGE "Input image"    0
  SF-DRAWABLE    "Input drawable" 0
  SF-ADJUSTMENT _"Number of layers" '(5 1 200 1 10 0 1)
  SF-ADJUSTMENT _"Roughness" '(140 0 255 1 10 0 1)
  SF-ADJUSTMENT _"Intensity" '(6 0 50 1 10 0 1)
  SF-ADJUSTMENT _"Beams per Layer" '(3 1 10 1 5 0 1)
)

(script-fu-menu-register "generate-lightning-layers"
                         "<Image>/Filters/Custom")




~"I never let school interfere with my education"~
-Mark Twain