i found out why my piston was doing that. and i feel like an idiot now.
when i test fired, i place my finger gentle over the nozzle to soften the piston & cylinder head impact (as i heard its very bad to test fire without a barrel & bb).
so therefore my stock spring was not powerful enough to push air out of the cylinder before the gear goes around again. (even though it was on semi.)
therefore it now works with my stock spring and everything. just no finger over the nozzle