Two things. You're trying to retrieve a server variable (DOCUMENT_ROOT) by slapping a $ on the front of it. Ain't gonna happen. Try the solution posted by planetsim, like so:
include_once($_SERVER['DOCUMENT_ROOT'].'/rpg/footer.php');
Notice I did not add the $_SERVER[] inside the array, because I've just always found it to be cleaner and look better to concatenate (perhaps even work more often) to escape out of strings when using array-indexed variables.
Also, when you tried:
include_once("/home/public_html/mp/rpg/footer.php");
I believe you misunderstood the directory structure of linux servers. The public_html folder should be (and is, I'll bet) a folder inside each user's home directory, or '/home/<username>/'. That is because you are only giving access to your 'home' folder, i.e. '/home/mp/'. It would be silly and confusing to have "two" home folders, located in separate places, i.e. "/home/mp/" and "/home/public_html/mp/" . IF you still wanted to hardcode the path (not recommended if you can avoid it; make your script dynamic and flexible), the correct path most likely looks like this:
include_once("/home/mp/public_html/rpg/footer.php");