DropParty: The First Mod

Hello, everyone. I made a thing! Actually, two things: The first is a general-purpose modloader called Leather, and the second is a mod that lets server owners change the drop tables on their server called DropParty. Getting tired of how quickly players collect things, or want to turn your server into a zany cod knockoff? Go for it! You can rewrite the drop tables more or less from scratch, I guess.

So how do you get started?

Install Leather:

  1. Shut down your server.
  2. Download leather 1.1.1: http://www.mediafire.com/download/fjryffwrrd7kay3/LeatherLoader-1.1.zip
  3. Download furnace: https://www.mediafire.com/?8v5si150obj4poe
  4. Go into your server via FTP or file manager or whatever you’ve got. You should have an accessible Rust_Server_data folder, so navigate into it.
  5. Upload the contents of LeatherLoader.zip to this folder.
  6. Download the file entitled mainData (YOU SHOULD PROBABLY BACK THIS UP OR SOMETHIN) and drop it into a folder by itself with the contents of Furnace.zip.
  7. Run Furnace.exe to “cook” mainData into something leathery that runs mods!
  8. Upload your cooked mainData over the old one.

That was tough, but now it’s easy to install mods! By the way, quick note: as long as Leather is installed, your server will mark itself as “Modded”.

Install DropParty:

  1. Download DropParty 1.1: http://www.mediafire.com/download/015m61udq8azii8/DropParty-v1.1.1.zip
  2. Take a moment to pop DropParty open. By default, it comes with config files set up for all the current loot tables to remain the same. You should read “Configuring DropParty” to do something about those.
  3. Upload the mods folder and its contents into the Rust_Server_data folder.

You should restart your server! Now all your shit is crazy and awesome!

Configuring DropParty:

So in the DropParty zip (mods/config/DropParty) there’s a bunch of config files- each one of these represent a loot table (the filename correspond precisely to the loot table name), and its contents are set up with the vanilla Facepunch values. NONE OF THESE FILES ARE ACTUALLY NECESSARY AS IS- if a loot table doesn’t have a corresponding file in config/DropParty/, then it just won’t get overwritten. The files are just there to make editing easier for you- you should probably delete the file for any loot table you don’t plan on changing.

So when setting up the loot tables, it’s important that you know that there are 6 important loot tables:

  • SupplyDropSpawnListMaster is the table used for airdrop boxes
  • ZombieLootList is the table used for zombie drops
  • JunkSpawnList is the table used for the brown crates
  • WeaponSpawnList is the table used for the white boxes
  • AmmoSpawnList is the table used for green(?) boxes
  • MedicalSpawnList is the table used for the red(?) boxes (I might have these reversed!)

The other tables are only important because they’re referred to (directly or indirectly) by the above 6. Remove all the references to the other tables, and they stop being important. Oh, and you can add new files to add new tables! TableName.cfg, if set up properly, will add new table named TableName.

The format of these files is pretty darn self-explanatory, I believe. The files are tab-delimited (there MUST be at least one tab between each field). Blank lines and lines that start with # are ignored. Each file has one header line and one or more table entries. The first field in each entry is a weighting, not a percentage. Bigger number means more likely to drop versus the other items. Each entry is of type T for table (the third field must be the name of another loot table) or I for item (the third field must be an item name- the name of all items in the game is in the items.txt file included with DropParty).

When Facepunch drops a game update, you’ll want to rebake your mainData file, but you should be good to go otherwise. I’ll also be redumping & providing new Items.txt & default table cfg files so people who want to make only small changes can stay synced with the vanilla game (although again, deleting table files you’re not modding will make this far easier).

Have fun, let me know if more mods is something that interests you, and let me know what you do with this tech- hopefully something interesting!

I wouldn’t recommend anyone downloading this until verified by a mod/dev if it’s safe/legal.

I can open source everything if you’d like.

I think it is great we are already (potentially) seeing mods and stuff for rust.
Installed it and it works great :smiley:

The Links are dead.
And i reported the Thread.
I think its not allowed to mod the Servers.

Thanks for telling me about the links! They got broken when I copied over from wordpad, but they’re fixed now. I guess we’ll find out how the developers feel about mods, but considering how long they extended the life of DayZ (or, heck, Arma II) I think it’d be crazy to come down on modding. Anyway, this solution doesn’t directly require passing around Facepunch’s property and doesn’t require the server restrictions Facepunch has put into place to be taken down. Seems like a slam dunk to me.

I think they allow modding after the game is fully out.

they don’t want mods at the moment because it is an alpha, if you add mods then it can potentially confuse the devs as they wont be able to tell if errors and crashes are due to their code or some shitty mod some scriptkiddy tried to make.

Setting aside the unnecessary barb, Leather is quite noisy and testing verified that exceptions in the server log also make clear the origin of the issue. It shouldn’t be difficult at all to determine that a server log is coming from a modded server, but I’m sure I can do more. Perhaps a big ol

--------------MODDED RUST BELOW THIS POINT WOE TO ALL YE WHO ENTER-------------------

might be enough, yes?

Pretty sure the devs will have no issue telling someone with a modded server that its their issue.
Mods are great for the longevity of the game.

The point is, any and all bug reports from servers with this mod are useless because the server has been tampered with. And the point is to be testing Rust, not modded versions of Rust.

wow. you are a special kind of stupid.

(User was banned for this post ("flaming" - MaxOfS2D))

I’m afraid I’m going to have to disagree. If my role here was to be a tester, I would remember giving Facepunch a job application, and not $20. If what Facepunch really wants from me is my time and data, they’re welcome to return the cash. “Early Access” is not a “beta”, it’s literally getting access to the game, early. I’m willing to put up with whatever inconveniences accompany that, but I believe that the software-for-money exchange ends my responsibilities to Facepunch, outside of what is required in the EULA.

EDIT: This probably came off as unnecessarily harsh, but my core point is that you get into betas, where you’re expected to test, for free. On the contrary, I bought this product, which Facepunch sold to me because they needed money, chiefly, and I don’t feel like I owe Facepunch anything in particular beyond what I paid. Surely that’s fair?

If this isn’t some prank or virus then you sir just stepped into a whole new league.
I’ll be sure to subscribe to this thread and wait for people to verify it.

Other than that… Sounds awesome!

Okay, here it all is: https://github.com/LeatherLoader

5 project files: UnityAssetsLib is consumed by Furnace. Then you’ve got Leather, DropParty, and another mod I threw in for good measure, DumpTruck- I used it as sort of a lab to look at various game data while building DropParty, and right now I use it to dump the vanilla items list & loot tables.

It’s all licensed under MIT (although I haven’t yet done my diligence in putting that everywhere it needs to be). Another issue: Leather, DumpTruck, and DropParty are missing project files because I need to move them over to MonoDevelop and haven’t done it yet and maybe this will force me to. :stuck_out_tongue:

Hopefully that’s enough that everyone can look and see that they do what I claim they do. Maybe you can even help out, or make stuff!

Great work mate, Why would they include a seperate “Modded” section in the server list if they didn’t want people to Mod the game

great work, im wondering if there is any events/actions you can hook onto and create an api for?

I’m not really sure yet myself- most of my luck/progress has been in the form of messing with data after it’s been initialized via the class’s ordinary public accessors. I think if you’re interested in developing mods, you’re best off looking into how unity works, since there are some events & actions that unity exposes that you can plug into to get things done. I’m not real familiar with Unity myself yet, and this is all kind of new. I’m kind of feeling my way around still.

yeah im definitely having a peak. we should be able to modify more than just the unity assets

Would it be possible to make a mod that modifies the spawn rates of zombies, bears, etc…?