Well, the official L2J sourcecode is hosted by domain owned by the L2J community (
To view the content, you need to sign in or register
) and they have software that hosts the sourcecode in what is known as an SVN repository. This is just a file server basically that holds all the decompiled .java files necessary to build the L2J server. When you use a program such as Eclipse that is configured properly with Subeclipse you can download and process the L2J SVN through Eclipse. You only need to be online when you are downloading the sourcecode. After that you can freely modify anything in the server even while offline because what you modify is only affecting what you have locally on your computer. After you modify the sourcecode there are two ways to redistribute it to others. One way is to become an "official" L2J developer and have your own account to the SVN repository. Which is almost out of the question for new L2J devs. The other way and seemingly most widely used way is creating patches through Eclipse that you upload to others. They then run those patches (either .txt or .java) through their Eclipse program and it modifies their copy of the server to equal yours. Anybody can do this method. That's pretty much it. If you have any more questions feel free to ask away.