Treasure Maps











Find a Map, Follow the Mark, Unearth the Treasure.
Turn your loot containers into chances for players to go on Treasure Hunts.
Treasure Maps can be spawned into vanilla loot containers based on map tier.
Each map tier has its own Loot Table, injection chance, treasure contents, and container types.
Unwrap a map to receive a randomly selected Treasure Location randomly in the world.
The destination can be shown with the Grid Coordinate and an optional Loot Ping.
Once you reach the location, the treasure is revealed with effects and a custom loot container.
Treasure is owner protected - other players cannot loot your discovered treasure.
Active hunts are saved and restored across plugin reloads and server restarts.
Completed hunts are announced through Discord when a webhook is configured.
Supports Common, Rare, and Elite map tiers out of the box.
Commands
/givemaps - Requires Admin Permission - Gives the player one of every configured Treasure Map tier for testing.
Permissions
TreasureMaps.Admin - Required for admin commands.
Config
| 1 | { |
| 2 | "Enable Map Injection Into Loot Containers": true, |
| 3 | "Max Concurrent Hunts Per Player": 1, |
| 4 | "Treasure Reveal Radius": 8.0, |
| 5 | "Minimum Search Distance From Monument": 25.0, |
| 6 | "Maximum Search Distance From Monument": 100.0, |
| 7 | "Dig Site Spawn Attempts": 30, |
| 8 | "Show Grid Coordinate In Chat": true, |
| 9 | "Show World Ping": true, |
| 10 | "World Ping Duration": 600.0, |
| 11 | "Treasure Container Lifetime": 600.0, |
| 12 | "Monument Exclusion List": [ |
| 13 | "tunnel-entrance", |
| 14 | "substations" |
| 15 | ], |
| 16 | "Discord Webhook": "", |
| 17 | "Map Tiers": [ |
| 18 | { |
| 19 | "Tier Name": "Common Map", |
| 20 | "Map SkinID": 3789608084, |
| 21 | "Map Custom Name": "Common Treasure Map", |
| 22 | "Container Prefabs": [ |
| 23 | "crate_basic" |
| 24 | ], |
| 25 | "Injection Chance": 0.05, |
| 26 | "Min Maps Per Container": 1, |
| 27 | "Max Maps Per Container": 1, |
| 28 | "Min Items In Treasure": 3, |
| 29 | "Max Items In Treasure": 5, |
| 30 | "Loot Table": [ |
| 31 | { |
| 32 | "Item ShortName": "scrap", |
| 33 | "Item Custom Name": "", |
| 34 | "Item SkinID": 0, |
| 35 | "Min Amount": 50, |
| 36 | "Max Amount": 150, |
| 37 | "Drop Probability": 70 |
| 38 | } |
| 39 | ] |
| 40 | }, |
| 41 | { |
| 42 | "Tier Name": "Rare Map", |
| 43 | "Map SkinID": 3789608263, |
| 44 | "Map Custom Name": "Rare Treasure Map", |
| 45 | "Container Prefabs": [ |
| 46 | "crate_normal", |
| 47 | "crate_normal_2" |
| 48 | ], |
| 49 | "Injection Chance": 0.08, |
| 50 | "Min Maps Per Container": 1, |
| 51 | "Max Maps Per Container": 1, |
| 52 | "Min Items In Treasure": 4, |
| 53 | "Max Items In Treasure": 6, |
| 54 | "Loot Table": [ |
| 55 | { |
| 56 | "Item ShortName": "scrap", |
| 57 | "Item Custom Name": "", |
| 58 | "Item SkinID": 0, |
| 59 | "Min Amount": 200, |
| 60 | "Max Amount": 500, |
| 61 | "Drop Probability": 70 |
| 62 | } |
| 63 | ] |
| 64 | }, |
| 65 | { |
| 66 | "Tier Name": "Elite Map", |
| 67 | "Map SkinID": 3789608411, |
| 68 | "Map Custom Name": "Elite Treasure Map", |
| 69 | "Container Prefabs": [ |
| 70 | "crate_elite", |
| 71 | "heli_crate", |
| 72 | "bradley_crate" |
| 73 | ], |
| 74 | "Injection Chance": 0.15, |
| 75 | "Min Maps Per Container": 1, |
| 76 | "Max Maps Per Container": 1, |
| 77 | "Min Items In Treasure": 5, |
| 78 | "Max Items In Treasure": 8, |
| 79 | "Loot Table": [ |
| 80 | { |
| 81 | "Item ShortName": "scrap", |
| 82 | "Item Custom Name": "", |
| 83 | "Item SkinID": 0, |
| 84 | "Min Amount": 500, |
| 85 | "Max Amount": 1200, |
| 86 | "Drop Probability": 70 |
| 87 | } |
| 88 | ] |
| 89 | } |
| 90 | ] |
| 91 | } |
Lang
| 1 | { |
| 2 | "NoPerms": "[<color=#d4af37>Treasure Maps</color>] You do not have permission to run this <color=#b5533c>Command</color>!", |
| 3 | "MapUnwrapped": "[<color=#d4af37>Treasure Maps</color>] Your <color=#f0d98c>{0}</color> marks a spot in grid <color=#ffd970>{1}</color>. Get digging.", |
| 4 | "MapUnwrappedNoGrid": "[<color=#d4af37>Treasure Maps</color>] Your <color=#f0d98c>{0}</color> marks a spot somewhere out there. Good luck.", |
| 5 | "HuntLimit": "[<color=#d4af37>Treasure Maps</color>] You already have <color=#b5533c>{0}</color> hunt(s) running. Finish one first.", |
| 6 | "TreasureRevealed": "[<color=#d4af37>Treasure Maps</color>] You unearthed the <color=#f0d98c>{0}</color> treasure in <color=#ffd970>{1}</color>!", |
| 7 | "NotYourTreasure": "[<color=#d4af37>Treasure Maps</color>] This treasure belongs to <color=#b5533c>someone else</color>.", |
| 8 | "NoSpawnFound": "[<color=#d4af37>Treasure Maps</color>] The map is water damaged and unreadable. Try another.", |
| 9 | "MapsGiven": "[<color=#d4af37>Treasure Maps</color>] Maps Issued.", |
| 10 | "DiscordTitle": "Treasure Unearthed", |
| 11 | "DiscordFind": "**{0}** unearthed the **{1}** treasure in grid **{2}**." |
| 12 | } |