---
title: "Rust Server Plugin Guide: MagicLoot"
description: "Configure MagicLoot v1.0.5 on a Rust server: every key in oxide/config/MagicLoot.json explained, from item multipliers and blacklists to per-container extra loot."
url: "https://www.gameserverkings.com/knowledge-base/rust/magic-loot-rust-plugin-guide/"
category: "Rust"
category_url: "https://www.gameserverkings.com/knowledge-base/rust/"
published: "2026-08-01T18:24:09.829Z"
updated: "2026-08-19T05:00:48.850Z"
source_format: "html"
site: "GameServerKings"
---

# Rust Server Plugin Guide: MagicLoot

<h2><a id="plugin_config"></a>Plugin Configuration Guide</h2>
<p>Okay, now that everything is downloaded and installed, it's time to configure your drop tables.<br /><br />Step one is to log into your&nbsp;<a href="https://app.gameserverkings.com">GameServerKings Game Server Management panel</a>&nbsp;with the login details you received in your welcome email. (MagicLoot needs Oxide loaded first, which runs on any <a href="/games/rust-server-hosting/">Rust server hosting</a> plan.) From there, go to your file manager and locate&nbsp;/oxide/config/MagicLoot.json.</p>
<p>Now that you've found your MagicLoot.json (magic loot configuration file) we're going to need to edit it. Click on the pencil next to the file to open the text editor.<br /></p>
<pre><code class="language-json">oxide/
├── config/
│   ├── DeathNotes.json
│   ├── MagicLoot.json    &lt;-- edit this one
│   └── RustIO.json
└── data/
    └── MagicLoot.json    &lt;-- stack sizes live here, not in the config</code></pre>
<p><strong>This guide covers MagicLoot v1.0.5</strong>, the current release on uMod. Version 1.0.0 renamed every key in the file: the old short names such as <code>"_Settings"</code>, <code>"ItemList"</code> and <code>"LootContainersEnabled"</code> are gone, replaced by long, spaced, self-describing names like <code>"General Settings"</code> and <code>"Containers Data (Key: Container-Shortname, Value: Container Settings)"</code>. If your file still uses the short names you are running a pre-1.0.0 build, and none of the key names below will match. Update the plugin and let it write a fresh config.&nbsp;<br /><br />Credit where it's due: MagicLoot was originally written by <strong>Norn</strong>, maintained by <strong>Tricky</strong> up to v1.0.0, and is maintained today by <strong>collect_vood</strong> (listed on uMod as Malmo). Checked 19 August 2026.</p>

<h2><a id="ml_settings"></a>MagicLoot Settings Config</h2>
<p>Once inside, there are many values, but it's easy to break down into individual levels.&nbsp;<br />At the top of the file you will see some code that looks like this:</p><pre><code class="language-json">{
  "General Settings": {
    "General Item List Multiplier (All items in the 'Manual Item Multipliers' List)": 1.0,
    "Non Item List Multiplier (All items not listed in the 'Manual Item Multipliers' List)": 1.0,
    "Limit Multipliers to Stacksizes": true,
    "Multiply Blueprints": false,
    "Disable Blueprint Drops": false,
    "Random Workshop Skins": false,
    "Multiply Tea Buffs": false,
    "Force Custom Loot Tables for Default Loot on all Containers": false
  },</code></pre>
<p>These are your basic MagicLoot settings. To change what these do, just change the value after the colon. For example:&nbsp;<code>"General Item List Multiplier (All items in the 'Manual Item Multipliers' List)": 2.0,</code>&nbsp;would set every item listed under "Manual Item Multipliers" to a 2x drop rate. The key names are long, and they are part of the key &mdash; copy them exactly, quotes and brackets included, or the plugin will not read the value and will overwrite it with the default on the next load.<br /><br />Below is a list of these values and all they do.<br /><br /></p>
<table border="1" cellpadding="15px">
<tbody>
<tr>
<td>
<h4><strong>Variable</strong></h4>
</td>
<td>
<h4><strong>Value Type</strong></h4>
</td>
<td>
<h4><strong>Description</strong></h4>
</td>
</tr>
<tr>
<td>General Item List Multiplier</td>
<td>Decimal value</td>
<td>The drop multiplier applied to every item listed in "Manual Item Multipliers". Multiplied together with that item's own value, so a general multiplier of 2 and a manual scrap multiplier of 2 gives scrap 4x.</td>
</tr>
<tr>
<td>Non Item List Multiplier</td>
<td>Decimal value</td>
<td>The drop multiplier for everything <em>not</em> listed in "Manual Item Multipliers". Set both this and the one above to the same number to multiply the whole server evenly.</td>
</tr>
<tr>
<td>Limit Multipliers to Stacksizes</td>
<td>true/false</td>
<td>When "<code>true</code>", a multiplied stack is capped at the stack size recorded for that item in <code>oxide/data/MagicLoot.json</code>. Set to "<code>false</code>" to let multipliers run past the stack limit.</td>
</tr>
<tr>
<td>Multiply Blueprints</td>
<td>true/false</td>
<td>When "<code>true</code>", blueprints are multiplied like any other item. Left at "<code>false</code>" blueprints skip the multiplier entirely and drop at Rust's own amount.</td>
</tr>
<tr>
<td>Disable Blueprint Drops</td>
<td>true/false</td>
<td>When "<code>true</code>", blueprints are converted into the item they would have taught, so no blueprints spawn in loot at all.</td>
</tr>
<tr>
<td>Random Workshop Skins</td>
<td>true/false</td>
<td>When "<code>true</code>", spawned items get a random approved workshop skin. Hazmat suits are always skipped.</td>
</tr>
<tr>
<td>Multiply Tea Buffs</td>
<td>true/false</td>
<td>When "<code>true</code>", the multipliers also apply to the gathering bonus from teas. Left at "<code>false</code>" tea buffs are untouched by the plugin.</td>
</tr>
<tr>
<td>Force Custom Loot Tables for Default Loot on all Containers</td>
<td>true/false</td>
<td>When "<code>true</code>", every container ignores Rust's own loot table for its normal contents and uses MagicLoot's rarity-based table instead. This is the global version of the per-container "Utilize Vanilla Loot Tables on Default Loot" switch further down the file.</td>
</tr>
</tbody>
</table>

<p>Right at the <strong>bottom</strong> of the file, after the container list, sits a single&nbsp;<code>"Debug": false</code>&nbsp;key. That one belongs to the plugin author &mdash; it only turns on extra console spam, so&nbsp;<strong>leave it alone</strong>.&nbsp;<br /><br /></p>
<hr />
<h2><a id="exclude_extraloot_config"></a>Blacklists and Extra Loot Config</h2>
<p>Next come the two blacklists. These replace the old "Exclude" and "ExcludeFromMultiplication" blocks, which no longer exist.&nbsp;"Blacklisted Items (Item-Shortnames)" is a flat list of item shortnames that MagicLoot will not spawn into its own loot tables, and "Blacklisted Workshop Skins (Workshop Ids)" is a list of workshop skin IDs that "Random Workshop Skins" will never pick.</p>
<pre><code class="language-json">"Blacklisted Items (Item-Shortnames)": [
  "ammo.rocket.smoke"
],
"Blacklisted Workshop Skins (Workshop Ids)": [
  10180
],</code></pre>
<p>To stop an item being <em>multiplied</em> without blacklisting it, give it a multiplier of&nbsp;<code>0</code>&nbsp;in the "Manual Item Multipliers" list instead &mdash; MagicLoot reads a manual multiplier of 0 as "leave this item exactly as Rust dropped it".</p>
<p>Next, we have "Extra Loot", it should look something like this.</p>
<pre><code class="language-json">"Extra Loot": {
  "Enabled": false,
  "Extra Items Min": 0,
  "Extra Items Max": 0,
  "Prevent Duplicates": true,
  "Prevent Duplicates Retries": 10,
  "Force Custom Loot Tables for Extra Loot on all Containers": false
},</code></pre>
<p>These values add random extra items on top of whatever a container already spawned. An example of a change made would be:&nbsp;<code>"Extra Items Min": 5,</code>&nbsp;by changing this value, you've set the minimum extra items spawned in every container to 5. Also,&nbsp;<code>"Extra Items Max"</code>&nbsp;should now be set to a value 5 or higher in this instance.&nbsp;Note that these are added <em>on top of</em> any per-container "Extra Items Min" / "Extra Items Max" you set later in the file &mdash; the two are summed, not overridden.</p>

<table border="1" cellpadding="15px">
<tbody>
<tr>
<td>
<h4><strong>Variable</strong></h4>
</td>
<td>
<h4><strong>Value Type</strong></h4>
</td>
<td>
<h4><strong>Description</strong></h4>
</td>
</tr>
<tr>
<td>Enabled</td>
<td>true/false</td>
<td>Changing this value to "<code>true</code>"allows for spawning random extra items in containers.</td>
</tr>
<tr>
<td>Extra Items Min</td>
<td>integer</td>
<td>The minimum number of extra items to add to every container.</td>
</tr>
<tr>
<td>Extra Items Max</td>
<td>integer</td>
<td>The maximum number of extra items to add to every container. A random number in the inclusive range is picked per container.</td>
</tr>
<tr>
<td>Prevent Duplicates</td>
<td>true/false</td>
<td>When set to "<code>true</code>", extra loot will not duplicate an item that is already in the container &mdash; the plugin re-rolls the random item until it finds one that is not a duplicate. Set it to "<code>false</code>" to allow duplicates. This defaults to "<code>true</code>".</td>
</tr>
<tr>
<td>Prevent Duplicates Retries</td>
<td>integer</td>
<td>How many times the plugin re-rolls a duplicate before giving up and leaving the duplicate in place. Only used when "Prevent Duplicates" is "<code>true</code>".</td>
</tr>
<tr>
<td>Force Custom Loot Tables for Extra Loot on all Containers</td>
<td>true/false</td>
<td>When "<code>true</code>", extra items are drawn from MagicLoot's own rarity-based table on every container rather than Rust's. This is the global version of the per-container "Utilize Vanilla Loot Tables on Extra Loot" switch.</td>
</tr>
</tbody>
</table>
<p>There is no longer a minimum stack size setting here. The amount an extra item spawns in is rolled between 1 and the stack size recorded for that item in&nbsp;<code>oxide/data/MagicLoot.json</code>. Edit that data file to change what can spawn and how large &mdash; setting an item's value to&nbsp;<code>0</code>&nbsp;stops it spawning as extra loot at all.</p>
<h2><a id="item_list"></a>Manual Item Multipliers Config</h2>
<p>Next in the config file is the manual item list, under the key "Manual Item Multipliers (Key: Item-Shortname, Value: Multiplier)". These are the items that the "General Item List Multiplier" affects. By changing that general multiplier, you change the multiplier of all of these items. If you don't want to do it that way, you can change the multiplier on the individual items by changing the values of each item individually, if you wanted to tune your loot drops for example. MagicLoot fills this list on first run with every component item plus scrap, and it is a flat dictionary &mdash; there is no nested "list" block any more.</p>
<table border="0">
<tbody>
<tr>
<td><code>"Manual Item Multipliers (Key: Item-Shortname, Value: Multiplier)": {</code><br />&nbsp; &nbsp; &nbsp;&nbsp;<code>"bleach": 1.0,</code><br />&nbsp; &nbsp; &nbsp;&nbsp;<code>"ducttape": 1.0,</code><br />&nbsp; &nbsp; &nbsp;&nbsp;<code>"gears": 1.0, &nbsp;&nbsp;</code><br />&nbsp; &nbsp; &nbsp; &nbsp;<code>...</code><br />&nbsp; &nbsp; &nbsp;&nbsp;<code>"scrap": 1.0</code><br />&nbsp; &nbsp;&nbsp;<code>},</code></td>
<td>
<p>As you can see, if you wish to add an item all you must do is add a new line, type the item's shortname inside quotation marks, add a colon, then a decimal type number, then add a comma.&nbsp;<strong>The final item does not receive a comma if it has one it will break the code.&nbsp;</strong>For example:</p>
<pre><code class="language-json">...
"rope": 2.0,
"scrap": 1.0
}</code></pre>
</td>
</tr>
</tbody>
</table>
<h2><a id="loot_container_config"></a>Loot Container Config<br /><br /></h2>
<p>The container list lives under "Containers Data (Key: Container-Shortname, Value: Container Settings)" &mdash; the old "LootContainersEnabled" and "list" tags are gone, and containers now sit directly under that one key. All of these have the same values, and will be listed underneath.&nbsp;</p><pre><code class="language-json">"Containers Data (Key: Container-Shortname, Value: Container Settings)": {
  "crate_normal_2": {
    "Enabled": true,
    "Extra Items Min": 0,
    "Extra Items Max": 0,
    "Loot Multiplier": 1.0,
    "Utilize Vanilla Loot Tables on Default Loot": true,
    "Utilize Vanilla Loot Tables on Extra Loot": true,
    "Utilize Random Rarity (depending on Items ALREADY in the container)": true,
    "Rarity To Use (ONLY if 'Utilize Vanilla Loot Tables' is FALSE &amp; 'Utilize Random Rarity' is FALSE | 0 = None, 1 = Common, 2 = Uncommon, 3 = Rare, 4 = Very Rare)": [
      1,
      2,
      3,
      4
    ]
  },
  "crate_tools": {
    ...
  },
  ...
},
"Debug": false
}</code></pre>
<p><strong>This section starts empty.</strong> MagicLoot does not ship a list of containers &mdash; it adds each one, with the defaults above, the first time that container type spawns on your map, and saves the file itself. So if a container you want to tune is missing, let the server run for a wipe cycle and it will appear. If you wish to change your settings, simply find the container name, and edit it. For Rust Loot table references you may visit our knowledge base article on this here: Rust Loot Containers (currently under construction!)</p>
<table border="1" cellpadding="15">
<tbody>
<tr>
<td>
<h4><strong>Variable</strong></h4>
</td>
<td>
<h4><strong>Value Type</strong></h4>
</td>
<td>
<h4><strong>Description</strong></h4>
</td>
</tr>
<tr>
<td>Enabled</td>
<td>true/false</td>
<td>Set to "<code>false</code>" and MagicLoot ignores this container type entirely &mdash; it still spawns, but with plain vanilla loot. It does not stop the container appearing.</td>
</tr>
<tr>
<td>Extra Items Min</td>
<td>integer</td>
<td>The minimum number of extra items inserted into this container type. Added on top of the global "Extra Loot" figures if those are enabled.</td>
</tr>
<tr>
<td>Extra Items Max</td>
<td>integer</td>
<td>The maximum number of extra items inserted into this container type.</td>
</tr>
<tr>
<td>Loot Multiplier</td>
<td>decimal value</td>
<td>A multiplier applied on top of the general and manual multipliers, for this container type only.&nbsp;</td>
</tr>
<tr>
<td>Utilize Vanilla Loot Tables on Default Loot</td>
<td>true/false</td>
<td>When "<code>true</code>", this container's normal contents come from Rust's own loot table. Set to "<code>false</code>" to have MagicLoot roll the contents itself from the rarities below.</td>
</tr>
<tr>
<td>Utilize Vanilla Loot Tables on Extra Loot</td>
<td>true/false</td>
<td>The same switch for the extra items. When "<code>false</code>", extra loot is drawn from MagicLoot's own rarity table rather than Rust's.</td>
</tr>
<tr>
<td>Utilize Random Rarity (depending on Items ALREADY in the container)</td>
<td>true/false</td>
<td>When "<code>true</code>", MagicLoot copies the rarity of an item already in the container and picks the new item from that tier, so extra loot matches what the crate was going to give anyway.</td>
</tr>
<tr>
<td>Rarity To Use (…)</td>
<td>list of integers</td>
<td>The rarity tiers MagicLoot may pick from, as numbers: <code>0</code> None, <code>1</code> Common, <code>2</code> Uncommon, <code>3</code> Rare, <code>4</code> Very Rare. One is chosen at random per item. Only read when both "Utilize Vanilla Loot Tables" and "Utilize Random Rarity" are "<code>false</code>".</td>
</tr>
</tbody>
</table>
<p><br />If there's anything you think this article is missing you may contact us 24/7 via live chat so that we can make it better! Thanks for reading!</p>
