About all the files:
Could I throw in a few extra words here please.
> lpi => your project (an xml file containing info the IDE needs)
Assume this is "Lazarus Project Information". It is THE file that the IDE needs to work out where everything else is.
> lps => session info. Like where was your file scrolled to.
Assume this is "Lazarus Project Session", it contains nothing of permanent significance.
> lpr => pascal code of your project. Maintained by the IDE.
Assume this is "Lazarus Program", it is the main program file which can be edited if you're writing a console mode program but should generally be left to the IDE if you're using forms etc.
> pas or pp => your units
i.e. they start "unit" not "program" and are ultimately used/imported by the main program.
> lfm => your forms
Assume this is "Lazarus Form". In general every .lfm will have a matching .pas (but not necessarily the other way round).
> res => created by the IDE.
Containing icons etc. Leave this to the IDE.
MarkMLl