They say knowledge is power, so I hope this thread will inform all of you who are wanting to make a server, the basics to get you on your way, and for those of you who just want to play a server, I hope this will help you better understand what your owners/developers do for you.
Set-up
JavaThis is a must for all private server developers and future programmers, go to java.com, head to downloads and look for the latest version of jdk and download the one that matches your system.
Port ForwardingPort forwarding is the most important step to making a server, it is what allows others to connect to your server, for many people this is the difficult part that makes them give up, but it's not that tricky once you understand. First you must identify what type of router you have this can be found the router itself. Once you've identified your router head over to
Portforward.com and search for your router. Once you've found it, you will have a very simple and fully laid out guide for you to portforward. Once you've completed this guide you can check if you're port is forwarded by going to
canyouseeme.org and entering your ip and port, or by using any status checker.
FirewallSome people may have a firewall causing problems with connecting to the server, if this applies to you the fix is simple, If you're using windows 7 open your start menu and search for "firewall" and open the advanced settings. If you're using windows 8 simply search "firewall" and open the advanced settings. One your in your firewalls advanced settings you'll see "inbound rules" and "outbound rules" add your port that you're forwarding to both of them.
Environmental VariablesIf you've completed all of the steps above, but you're Command prompt is saying it doesn't recognize Java, you need to set you environmental variables. This is not a difficult process though despite how it may look, or sound. All you have to do is open your control panel, go to your system settings, you will see a button that says environmental variables, go there. You will then see two boxes, in the bottom box look for "Path" add this to the string that you see ";C:\Program Files\Java\jdk1.7.0_02\bin" change the jdk to which ever one you have.
Programming
Now that you've completed the necessities to owning and developing a server time for the basics of how to start coding.
ObjectsAs new programmer this is all very strange to you, but it's actually much simpler than it looks. To begin with server development I will explain the process of adding/removing objects. First off search your source files for a file called "ObjectManager.java" open that look for "loadCustomSpawns" under there you will see lines of code similar to this "c.getPA().checkObjectSpawn(13628, 3086, 3251, -1, 10);" well here's what they mean to you. the first number in the parentheses is the object ID, change this to -1 if you wish to remove an object. The second number is the X coordinate, the third number is the Y coordinate. Coordinates may be found using the ::mypos command on most servers. The fourth number is which direction the object is facing. and the last number will not be covered in this section.
ShopsAll servers are in need of shops, so don't settle for the generic shops, here is how you add/change shops. Open your source files search for "shops.cfg" open it up, You will see lines of code similar to this "shop = 59 Dungeoneering Mastery 2 2 18508 100 18509 100 18510 100" here's what that means, "shop = x" the x is the shop ID all shops must have a unique ID. "Dungeoneering Mastery" is the shops title. the 2's are for if you want the shop to sell/buy items. The numbers that follow work like this, the first numbers is the item ID, the second number is the quantity. MAKE SURE YOU TAB BETWEEN EVERYTHING.
NPC'sNPC's much like everything else in here look complicated, but they're not. Simply search for "spawn-config.cfg" open that up, you will see lines of code similar to this, "spawn = 494 2642 4728 0 0 0 0 0 Banker" this means "spawn = x" x is the NPC ID, the first number is the X coordinate, the second number is the Y coordinate, the third number is the height, the fourth number 1 if you want it to walk, 0 if you want it to be still, If it's a combat NPC the fifth number is its' max hit, the sixth number is its' attack, and the seventh number is its' defense, if it is not a combat NPC you can leave them all at 0, the last column is the npc description, it is mainly for you. once again make sure you tab every column.
I hope this guide is helpful to all you beginners out there, if you have more advanced request just ask.