NOTE: If your fps is just over your club limit, do not cut the spring. Instead, wrap solder around the piston (If you have the space to do this) and then use a little electrical tape to hold it on. This will slow the piston down and then you should be under your limit. You can remove the solder once the spring has worn in.
To make your FPS more consistent and to give your spring longevity you are best to choose a spring that is bigger than what you need and then cut it down. If done right the spring, once cut, should only just be compressed a little in the cylinder. For example, in my VSR10 I use a Laylax SP190 spring that can produce really massive amounts of energy (way more than I need). I cut a few coils off the spring so that it is only just compressed about 10mm when the gun is not cocked. This means that over the period of time between games the spring does not lose its rigidity. Also once the spring does start to wear down you can make a little round washer/spacer to fit behind the spring on the guide to put the fps back up a little. With weaker springs you will need to put in a bigger spacer to make a reasonable difference but with stronger springs that have thicker wires, you will only need a little spacer.
Note: When choosing the spring, only get one that is about 50-70fps above your desired rating that you wish for. If you go too big then you will have to cut more coils off the spring and then the spring may fit loosely in your cylinder and may bounce around. Also, before cutting the spring, leave it in your cylinder for 2-3 weeks. This will mean that the initial main loss of energy should have happened and the spring should have stabilized more.
Another interesting note is that manufacturers often test the "M" ratings on springs with a short inner barrel of 220mm x 6.08mm. So if it says "M150" then it is most likely 492fps (150 meters a second)using 0.2gm bb's with a 220mm long inner barrel. Often in your own setup, the fps will be higher as you may have a longer inner barrel
Here is a rough guide for spring ratings once they have worn in. M90 = 270-285fps M100 = 300-315fps M110 = 330-345fps M120 = 360-375fps M130 = 390-405fps M140 = 420-435fps M150 = 450-465fps M160 = 480-495fps M170 = 510-525fps M180 = 540-555fps M190 = 570-585fps Or SP130 = 445fps SP140 = 480fps SP150 = 510fps SP160 = 545fps SP170 = 581fps SP180 = 615fps SP190 = 650fps
PDI 100% = 290-300fps
PDI 120% = 320-330fps
PDI 140% = 335-345fps
PDI 150% = 350-360fps
PDI 170% = 395-405fps
PDI 210% = 420-430fps
PDI 240% = 450-460fps
PDI 270% = 480-490fps
PDI 300% = 520-530fps
One good thing to note is that Laylax VSR10 springs will also work in a Maruzen/WELL L96 but you may have to drill out the piston a little. Most aftermarket L96 pistons will fit a VSR spring straight off without modification.
Even though Laylax springs cost a little more, I really rate them as they last a lot longer than most other springs.
How to cut a spring
Step 1: Cut the spring with side cutters or hack saw. Normally 1 coil will be about 20fps on a M130 spring. The bigger the spring the more FPS a coil will be. So a M190 spring is normally about 30 fps per coil. (This is only a guideline as not all brands or springs are the same). If you are wanting to take off 2 coils then cut just before 2 coils. So cut about 1 and 3/4 coils.
Step 2:Heat the spring and flatten the pointed part that sticks out.
Step 3:Grind any sharp points
Also note that spring lengths can effect joule creep.
If a spring has been cut to be the same length as the cylinder, the spring will apply not much force when the piston has reached the end of its travel because the spring will be fully extended. This will mean that the piston will travel fast at the start of its movement but then only gain very little acceleration after the initial burst.
When making a JC rifle, you want the piston to travel slow as the start of its movement and fast at the end. So in this instance, long springs are good.