Here the script what I wrote to dump out objects. Now it save every tile what have object on it to a new file so it can generate 30k+ file, or you change it to use a PHP script, what save the values to MySQL. Why I do to save every X/Y to a new file? If i don't it do too much duplicated save. Who have better ideas to do this feel free to post. 
The script:
Code:
import java.io.*;
import java.net.*;
import java.util.Map;
import com.speljohan.rsbot.script.Methods;
import com.speljohan.rsbot.script.wrappers.RSObject;
import com.speljohan.rsbot.script.wrappers.RSPlayer;
import com.speljohan.rsbot.script.wrappers.RSTile;
import com.speljohan.rsbot.bot.Bot;
import com.speljohan.rsbot.script.Script;
public class TileExplorer extends Script {
final int blocks[][] = Bot.getClient().getGroundDataArray()[Bot.getClient().getPlane()].getBlocks();
final RSPlayer player = getMyPlayer();
@Override
public String getAuthor() {
return "Laxika";
}
@Override
public String getName() {
return "Tile Explorer";
}
@Override
public String getScriptCategory() {
return "Other";
}
@Override
public String getScriptDescription() {
String html = "";
html += "<html>";
html += "<center>";
html += "<h2>" + getName() + "</h2>";
html += "<br />";
html += "<b>Author:</b> " + getAuthor();
html += "<br />";
html += "<b>Version:</b> " + getVersion();
html += "</center>";
html += "</html>";
return html;
}
@Override
public double getVersion() {
return 1.0;
}
@Override
public int loop() {
try {
final RSPlayer player = getMyPlayer();
final RSTile location = player.getLocation();
final int locX = location.getX();
final int locY = location.getY();
for (int x = locX - 25; x < locX + 25; x++) {
for (int y = locY - 25; y < locY + 25; y++) {
final RSObject object = getObjectAt(x, y);
if (object != null && object.getID() != 0) {
// URL url = new URL("http://127.0.0.1/addToDB.php?x="+x+"&y="+y+"&object="+object.getID());
// URLConnection con = url.openConnection();
// con.connect();
File file = new File("ObjectDump/" + object.getID() + "/" + x + "_" + y + "_" + object.getID() + ".xml");
if (!file.exists()) {
File file2 = new File("ObjectDump/" + object.getID());
file2.mkdirs();
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write("<?xml version=\"1.0\"?>");
bw.newLine();
bw.write("<maptile>");
bw.newLine();
bw.write(" <xcoord>" + x + "</xcoord>");
bw.newLine();
bw.write(" <ycoord>" + y + "</ycoord>");
bw.newLine();
bw.write(" <mapobject>" + object.getID() + "</mapobject>");
bw.newLine();
bw.write("</maptile>");
bw.flush();
bw.close();
}
}
}
}
} catch (IOException e) {
System.out.println("ERROR!");
e.printStackTrace();
}
return 1000;
}
@Override
public boolean onStart(final Map<String, String> args) {
return true;
}
}
PHP script:
Code:
<?php
$x = $_REQUEST['x'];
$y = $_REQUEST['y'];
$object = $_REQUEST['object'];
//echo "object: $object x: $x y: $y";
$mysqlIp = "127.0.0.1";
$mysqlUser = "tehnoobshow";
$mysqlPass = "noobninja";
$mysqlDb = "rsobjectdump";
mysql_connect("$mysqlIp", "$mysqlUser", "$mysqlPass");
mysql_select_db("$mysqlDb");
mysql_query("SET NAMES 'utf8'");
$isEmpty = mysql_num_rows(mysql_query("SELECT * FROM objectdata WHERE coordX = '" . $x. "' AND coordY ='".$y."'"." AND objectId='".$object."'"));
if ($isEmpty == 0) {
mysql_query("INSERT INTO objectdata SET coordX ='" . $x . "', coordY ='". $y . "', objectId = '" . $object . "'");
}
?>