https://discordapp.com/channels/154777837382008833/412220958196367361/601600912187719711
- NebulaeDragon
- Registered Member
-
Member for 6 years, 8 months, and 10 days
Last active Wed, Oct, 18 2017 13:47:47
- 0 Followers
- 5 Total Posts
- 0 Thanks
- To post a comment, please login.
-
Oct 23, 2015Arcensoth posted a message on 1.12 - Custom Loot TablesPosted in: Commands, Command Blocks and Functions
-
517
Azanor posted a message on Thaumcraft 6.1.BETA26 [no longer being developed]Posted in: Minecraft ModsI had been wrestling with the decision for a while now, and unfortunately I have decided to stop working on Thaumcraft and other mods.The simple truth is that between IRL commitments, work and studies I simply didn't have enough time to devote to modding. Something had to give and unfortunately the obvious choice was modding.
"Thaumaturgy... which giveth certain order to make strange works, of the sense to be perceived and of men greatly to be wondered at." - Mathematicall Praeface to Euclid's Elements (1570), John Dee
Thaumaturgy is the capability of a magician to work miracles. A practitioner of thaumaturgy is a thaumaturge, thaumaturgist or miracle worker.
This is what this mod is all about - drawing magic from physical objects in the form of Essentia and reshaping it to perform miracles.
Thaumcraft 6+
Simply find some vis crystals in the world, mine them and follow the clues.
Earlier Versions
The first thing you will need to craft is a wand. The first one available to you is the Iron Capped Wooden Wand crafted as shown here (using a stick and iron nuggets):
You then place a bookshelf in the world and right click on it with the wand. This gives you the Thaumonomicon which explains almost everything else you will need to know about Thaumcraft.
Suggestions are welcomed here
Go check out some unofficial wikis here, here and here.
Please help support me viaPatreon Also go check me out on Twitter @Azanor1 for announcements and such.
Direct Download Links6.1.BETA26 for Minecraft 1.12.2
Older versions6.0.BETA8 for Minecraft 1.10.25.2.4 for Minecraft 1.8.95.0.3 for Minecraft 1.84.2.3.5 for Minecraft 1.7.104.1.1.14 for Minecraft 1.7.24.1.0g for Minecraft 1.6.44.0.5b for Minecraft 1.6.44.0.4c for Minecraft 1.6.43.0.5i for Minecraft 1.5.23.0.4c for Minecraft 1.5.13.0.3 for Minecraft 1.4.73.0.1c for Minecraft 1.4.63.0.1b for Minecraft 1.4.52.1.6d for Minecraft 1.2.51.2.6 for Minecraft 1.1
For ModdersThaumcraft API for 6.1.BETA26Thaumcraft DEV Build for 6.1.BETA26Thaumcraft API for 6.0.BETA8Thaumcraft DEV Build for 6.0.BETA8Thaumcraft API for 5.2.4Thaumcraft DEV Build for 5.2.4Thaumcraft API for 5.0.3Thaumcraft DEV Build for 5.0.3Thaumcraft API for 4.2.3.5Thaumcraft DEV Build for 4.2.3.5If you want a slightly more cutting edge version of the api, go to my GitHub
Language Localization and bug reportsI have set up a Git repository so people can easily add localizations and create issues for bug reports - HERE
Thanks to the following folks for their help with translationsVexatos, jualme, crafteverywhere, Mexahoid, FrancescoDeSa, TheVikingWarrior, Hgmoa, VeryBigBro, avttrue, ferzrrn, RustyXXL, bgh251f2, Egor305, Zaltora, PlatonCraft, XuIIIHuK, Sternes, DancingPeral, GLaDTheresCake, BrunoLG, dmf444, aucunn, tyrope, m9731526
shadydeath created an IRC channel at irc.esper.net:#thaumcraft I check it regularly so pop in if you want to chat.
WARNINGThere is a very tiny chance that updates may break your save. Backup just in case.
Media
Change Log
Currently the Eldritch & Aurmancy tier of research are still heavily WIP. There is some things I need to sort out and balance before I can implement them properly.
6.1.BETA26 hotfix1
- fix altar particle related crash on servers
6.1.BETA26
- API: deprecated IStabilizable
- API: added IGogglesDisplay
- API: added oredict support in json research entries for required_item and required_craft.
- fix for crash related to the latest versions of forge (14.23.5.2768)
- infusion instability mechanics have been completely reworked. Check your thaumonomicon. TLDR version, stabilizers simply add a lot of stability to infusion now, but when paired with redstone inlay can do other fancy things. They no longer use RF.
- added advanced break seal
6.1.BETA25
- golem press will now properly consume crafting components
- more fixes to seal & logistics GUI's
- custom thaumcraft shaders should once again work
- buffer will no longer draw essentia from adjacent blocks if that side has been disconnected
- added Lamplighter infusion enchantment
- I now prevent most thaumcraft UI elements from overlapping
- when riding a minecart the arcane bore will not switch off if there are no tracks below (for whatever reason)
- tainted animals & critters will now do damage instead of just aggressive nudging
- changed the way itemstacks sync to clients which should get rid of a lot of odd behaviour in certain gui's
- greatwood trees now require 4 saplings to grow like large vanilla trees. They drop more saplings to account for this change.
- thaumatorium should now display all recipes (occasionally a recipe would be lost, like the spiritus vis crystal recipe)
- thaumatorium recipes are now sorted alphabetically
- cultist armor now have their own material types
- made many thaumcraft blocks rotateble with modded wrenches that allow it
- entity aspects can now be viewed through the thaumometer
- empty & provider seal should no longer cause golems to drop items on ground when picking up something new
- water jar can now fill vanilla cauldrons & glass bottles again
6.1.BETA24
- fixed several focal manipulator ui issues
- golem press now checks adjacent inventories for crafting materials as well
- golem appearance should now sync more consistently on servers
- provide and empty seals will no longer cause items to drop on the ground if the target inventory (as set by stock, fill, etc) is full
- stock seals will now check if the target inventory has room before creating a task
- greatly improved flying golem movement
- improved golem responsiveness
6.1.BETA23
- fixed banner server crash
- fixed crafting recipe for primal crusher
- added console command to revoke specific research from a player instead of resetting it all. Format: /thaumcraft research revoke . This will also remove any research that relies on the revoked research.
- tweaked infusion crafting instability so that instability added is on a sliding scale - the higher the instability, the less chance it has of becoming worse.
- the amount by which infusion crafting stability increases after instability occurs has been increased.
- added aspect names to display name of vis crystals and essentia phials
- fix soft-crash when you tried to craft a multiblock by clicking on the top or bottom face of a block with salis mundus
6.1.BETA22
- fixed a major bug that was causing you to only gain progress in the 'blue' theorycraft categories instead of all of them. Rounding is awesome!
- fixed void siphon crash on dedicated servers
- fixed stabilizer particles... again
- rebelanced some crafting recipes
- cloudstepper ring should now properly negate fall damage when double jumping and will not do silly things when you are underwater
- items with sounding effect will now only trigger it if sneak + right clicked instead of the other way around
- primal crusher recipe now accepts broken tools as ingredients
- rebalanced flux condenser essentia cost
6.1.BETA21
- API: fixed the AspectRegistryEvent to use a proxy object (register) that contains the actual registration methods. This was done to prevent some ASM related issues.
- fix for thaumotorium not syncing in MP
- fire bats once again cause mob damage
6.1.BETA20
- FORGE: Updated to Forge version 14.23.4.2705
- API: Certain mods that define their own item aspects have been accidentally doing so in the 'wrong' place. To prevent this I will now wipe all item aspects registration that occurs before TC defines the core item aspects.
- API: Additionally I have added an event mods can subscribe to that would be the correct place to define item aspects. The existing aspect definition methods will be deprecated and eventually will only be accessible through this event.
- API: Added events when a player gains knowledge or progresses research. See thaumcraft.api.research.ResearchEvent. The events can be cancelled.
- improved thaumatorium GUI
- harvesting golems will now try and right-click a crop first before trying to break it
- increased the knowledge gained from curios
- rebalanced some base item aspects and added a couple of alternate sources for hard to get aspects
- thaumium smelter is now 90% efficient instead of 85%
- improved arcane bore interaction with infusion enchantments like destructive
- fixed enchantment detection during research
6.1.BETA19
- fixed triple meat treat recipe
- improved foci radial menu animation and unlinked it from fps
- fixed certain foci in radial menu not showing up if they are too similar to other foci
- you can now only have one scatter modifier per focus
- prevent crash with focus pouch if you click on it while it's inventory is open
- arcane workbench should properly choose the correct crystals to use between similar recipes
- to make early game mistakes a bit more forgiving the crucible will only turn 25% of spilled essentia into flux instead of the current 50%-75%
- added a 'noSleep' config option so you can get the salis mundus recipe book without having to sleep first
- fixed eldritch crab rendering when 'mounted'
6.1.BETA18
- fixed the mod interaction bug with the hats mod
- fix out of bounds condenser crash
- increased condenser essentia suction
- flux generators now produce up to 20 rf/tick. The vis cost is still the same (1 vis = 1000 rf).
- flux stabiliser can now accept power from all sides except the front. This means 5 flux generators will be able to fully power a stabiliser as it can accept up to 100 rf/tick max.
- candles and other items are now slightly more effective during infusion and you can have up to 12 (up from 10) - a much more symmetrical number
- improved detection of enchanted books in research and recipes
- arcane ear now supports new instrument types
- scanning inventories with a thaumometer is now limited to the first 100 items to prevent lag spikes with massive inventories
- thaumcraft leaves will no longer decay if placed by a player
- entities ridden by a player can now pass through warding barriers
- fixed warded jar contents display in inventory
- warded jars crafted into void jars now retain their contents, labels, etc.
- arcane workbench now actually checks if you have the proper research
- added first bits of eldritch tier research. Much more to come
6.1.BETA17
- everful urns now act as water tanks that contain up to 1 bucket volume of water and can interact with piping systems.
- switched liquid death and purifying fluid to use the forge universal bucket. Existing buckets will no longer be valid
- fix for stabilizer server crash
- allow traveller boots and cloud ring falling damage reduction to stack with other falling reduction items and each other
- improved thaumometer performance
- fix for pedestals incorrectly allowing more than one item to be placed in them via automation
- fix datamanager declarations for some thaumcraft entities that was causing mod interaction issues
- vis crystal growth, shrinking, and spread no longer causes flux as a side-effect. Flux crystals now properly grow and shrink based on flux instead of vis.
- improved recipe recursion checking to better account for container items
- flux rifts once again close when they spawn taint seeds, but the larger they are, the more potent the spawned seed is
- added a way to manage flux & flux rifts. This is still WIP and will be expanded and balanced in future updates
6.1.BETA16
- fix for clientside particle crash
- fix for aura chunk related crash & cascading worldgen
- arcane workbench should now be able to craft vanilla recipes without the presence of crystals
6.1.BETA15
- fix for chunk loading errors on server start
- fix for seeking projectiles causing client crash
- possible fix for pedestal desync issues during infusion
- fixed moon phase descriptions
- alembic can once again be emptied on shift-right click with an empty hand
- creative flux sponge can now also remove flux rifts
- fixed armor dyes
- fixed arcane bore dupe bug and made its digger radius a bit more accurate when stationary
- vis batteries will now drop when harvested
- pattern crafter now removes the proper amount of items
- fixed possible dupe bug with certain mods combined with arcane bore, seals and breaker focus
6.1.BETA14
- new stuff: vis batteries, vis generator, stabilizer, stock seal
- fixed arcane pattern crafter
- relaxed nbt checking in crucible recipes, infusion recipes and research hand ins to account for other mods that add custom nbt tags
- fixed mod compatibility load order
- fixed an edge case bug where custom recipes from other mods could cause strange results in the arcane workbench
- tweaked amber block/brick recipes
- fixed seal filters to allow non-standard stack sizes. You might want to check all your seal filters to make sure they behave as they should
- API: seal filters now store stack sizes independently of the itemstacks themselves. New methods added to get and set those numbers.
- increased experimentation inspiration cost to 2, but also increased the amount of progress it gives
- fixed custom gui toggle buttons
- seeking focus projectiles are now 56% more seeky
- bouncing focus projectiles can now only bounce off solid blocks
- revamped infusion crafting stability mechanics
- infusion recipes now properly recognize damaged items and will transfer the damage to crafting results where appropriate
- toned down taint poison spawned by certain things
- loads of balance tweaks
FAQ
Q: What is this Baubles thing that I need? A: It is a required sub-mod that adds extra inventory slots to the player.
Q: How do I access the Baubles inventory? A: The default hotkey for baubles is 'b'. If your not running any inventory altering mods or spend a lot of time in creative it might be a good idea to swop your normal and bauble inventory bindings so you always open the baubles inventory by default.
Installation
(1) Install Forge (Modloader is NOT required - my mod uses the Forge modloader)
(2) Download this mod and place the jar into your Mods Directory.
(3) Config File Settings For the most parts it should be self explanatory with one exception: Adding TC 5 worldgen to existing worlds. See below for that.
Adding thaumcraft world gen to existing worlds
Yes, you heard that right. You can add all the ores, trees and other worldgen features to existing worlds by changing a few things in your config files. Remember: this could be risky so always backup your saves beforehand.
- If this is the first time loading Thaumcraft with that save, you can leave the regen_key setting as 'DEFAULT' otherwise set it to anything else.
- You need to choose what to regenerate. I strongly recommend you set aura_nodes to 'true' if this is the first time you are doing this. Without the aura you won't be able to do 99.9% of the things you could in Thaumcraft.
- Run the game. It will lag for a while and you should see some console spam about chunks being regenerated. This is fine - just wait it out. It shouldn't take too long. If the world had been explored a lot you might see the message reappear every now and again. This is also normal.
- If, for some reason, you wish to do this again or somehow your savefile got corrupted and your aura nodes have gone missing, all you need to do is set the regen_key value to something else. Any word would do.
Addon Mods
These are mods that use the API or other means to intergrate with or add content to Thaumcraft. More importantly they do so without breaking the balance of my mod (such as it is).
A friendly request to addon makers: I love all the addons that have been made recently, but I have a few requests. - Don't go too crazy when adding new aspects. If you do, drop me a PM. If it is something obvious or useful beyond your addon I might add it to vanilla TC.- Try not to add more than one research tab - Please try and keep your own researches on your own tab - Please don't move my researches around. You can make copies if you wish to show dependendies on your tab, but the research should remain in its original location. - Please don't alter any of my recipes. If you feel it is needed for the balance of your addon please drop me a PM. Partly to discuss if the change is required, but mostly since it might actually be a change that should be in vanilla TC.
Lastly, I've noticed some addons adding items from TC 3 or earlier. I don't have a problem with that, so go wild. However several of those items I have been planning to re-add myself. A lot of TC 2 stuff never made it into TC 3 simply due to time constraints. So don't come crying to me if and when I do that.Note - I obviously won't just copy-paste someones elses code for those items or blocks - I will implement my own versions.
If you want access to beta version of my mod to make version update go a bit smoother, send me a PM with your dropbox user info and a link to your mod (so I can check if you are actually an addon dev)
- Thaumic Tinkerer - Thaumcraft Mob Aspects - Electric Magic Tools
Texture Packs - Soartex - Faithful 32x Thaumcraft Addon
Mod Pack Policy
The code of “Thaumcraft for Minecraft” in source or binary form is the intellectual property of Azanor. See below for copyright, terms and conditions.
As a habit I ignore every PM in regards to mod-packs - both private and public. Everything you need to know about them is listed here.
You want Thaumcraft in your mod pack? All you need to meet are five simple conditions: 1. Your mod pack needs a link back to this forum post. 2. You cannot make any money off of the mod pack. 3. You cannot claim that you made any part of the mod, and you must give credit to the author of the mod (Azanor). 4. If I ever ask you to remove my mod from your pack, for whatever reason, you do so. 5. Handle any queries and bug reports internally first. This is one of the main reasons I had such a strict anti-modpack policy for such a long time - people using modpacks would come here posting errors that have nothing to do with my mod or that have been fixed ages ago, but still occurs in the modpack because it is using an older version.
If these five conditions are met, then you have my permission to use it in a mod pack.
Banner
Special thanks to...My Beta Testers, you know who you areAll the folks on the Forgecraft server for your help and support.
Dan Scott ( for all the help he gave me with some of the sprites.mr.Hazard(d95) for his awesome models Lorc, creator of the icons I use for enchanting and other things bonemouse, creator of the Isabella Texture Pack for letting me use his chest textures and skin as well as ScottKillen for making the Thaumium armor graphics based on the Isabella pack. chicken_bones for letting me base my lightning effect and deploader code from WRCBE CovertJaguar for his custom biome spawning code. Rorax for allowing me to use some of her models. J. W. Bjerk (eleazzaar)for the use of his icons for certain research categories. Find this and other open art at: http://opengameart.org BitterBusiness for the use of his Pech model.
© Azanor 2012+ This mod (plugin, patch to Minecraft source, henceforth "Mod" or "The Mod"), by the terms of http://minecraft.net/terms are sole property of the Mod author (Azanor, henceforth "Owner" or "The Owner"). By default it may only be distributed on minecraftforums.net by the Owner. They may only be mirrored or reposted with advance written permission of the Owner. URL shorteners or other attempts to make money off The Owner's Mods are strictly forbidden without advance written permission. This mod isn't open source.
Long version:TERMS AND CONDITIONS 0. USED TERMS MOD - modification, plugin, a piece of software that interfaces with the Minecraft client to extend, add, change or remove original capabilities. MOJANG - Mojang AB OWNER - , Original author(s) of the MOD. Under the copyright terms accepted when purchasing Minecraft (http://www.minecraft.net/copyright.jsp) the OWNER has full rights over their MOD despite use of MOJANG code. USER - End user of the mod, person installing the mod.
1. LIABILITY THIS MOD IS PROVIDED 'AS IS' WITH NO WARRANTIES, IMPLIED OR OTHERWISE. THE OWNER OF THIS MOD TAKES NO RESPONSIBILITY FOR ANY DAMAGES INCURRED FROM THE USE OF THIS MOD. THIS MOD ALTERS FUNDAMENTAL PARTS OF THE MINECRAFT GAME, PARTS OF MINECRAFT MAY NOT WORK WITH THIS MOD INSTALLED. ALL DAMAGES CAUSED FROM THE USE OR MISUSE OF THIS MOD FALL ON THE USER.
2. USE Use of this MOD to be installed, manually or automatically, is given to the USER without restriction.
3. REDISTRIBUTION This MOD may only be distributed where uploaded, mirrored, or otherwise linked to by the OWNER solely. All mirrors of this mod must have advance written permission from the OWNER. ANY attempts to make money off of this MOD (selling, selling modified versions, adfly, sharecash, etc.) are STRICTLY FORBIDDEN, and the OWNER may claim damages or take other action to rectify the situation.
4. DERIVATIVE WORKS/MODIFICATION This mod is provided freely and may be decompiled and modified for private use, either with a decompiler or a bytecode editor. Public distribution of modified versions of this MOD require advance written permission of the OWNER and may be subject to certain terms. -
36
Skylinerw posted a message on 1.12 - Custom Loot TablesPosted in: Commands, Command Blocks and FunctionsThis thread is no longer under development. An updated version will be posted here.
Last updated: 1.12
Index
Generic info
1. Intro
2. Errors
3. JSON Structure
Files
4. Locationi. Namespaces5. Referencing
6. Replacing default tables7. Editing
Loot Construct
8. General info
9. Luck
10. Looted entity ("this")
11. Player context ("killer_player")
12. Damage source ("killer")
Customizing tables
13. Pools
14. Entriesi. itemii. loot_tableiii. empty15. Rolls
16. Bonus rolls
17. Itemsi. Weightii. Qualityiii. Functions18. Conditions
19. Duplicate functions & conditions
i. Functionsii. Conditions
Usage
20. generic.luck, Luck, Unluck, Luck of the Sea
21. NBT datai. Empty tables
Conclusion
22. Custom table example
23. Q&A
24. External links
25. Conclusion
Generic info
Intro
1.9 has introduced an organized collection of loot tables that determines what type of items are acquired from chests, hoppers, dispensers, droppers, mob drops, chest/hopper minecarts, and fishing. They allow a map/mod maker or server owner to modify what items are obtained as default loot, as well as add custom tables to be used alongside NBT data.
Loot tables are highly customizable, allowing numerous conditions with varying depths as well as functions to further modify the item(s) to provide. For command mechanisms, they will replace most loot-providing systems, such as those that use the HandItems and ArmorItems lists.
Loot tables use the JSON format to store the loot information in external files.
Errors
When a loot table fails to provide an item due to an error with the loot table itself (whether it is related to the file or the JSON structure itself), the Game Output tab in the launcher will provide the error. If you are experiencing problems with your loot tables, you may be able to find the answer within the output.
To see the output, you must keep the launcher visible while playing. You can enable this by opening the Minecraft launcher, clicking on "Edit Profile", and changing the "Launcher Visibility" to "Keep the launcher open":
Feel free to comment here for help with an issue while providing your loot table. Ensure you paste both the loot table you're using and the error (if applicable) in spoiler tags:
[spoiler]Paste loot table and error here[/spoiler]
Common errors
1. Couldn't find resource table minecraft:tablename
Ensure the loot table exists in the correct file location and has the .json extension.
2. Expected value at line # column #
Your JSON structure is invalid. Double-check your syntax or use any JSON validator.
3. Missing [key], expected to find a [type]
Your structure does not match what's required for loot tables. "key" is the name of the key you are missing, such as "type".
4. Expected loot table to be a JsonObject, was "??"
This error may occur if your JSON is not structured as the game requires it, but can also occur if the file encoding is not correct (you should be saving files in UTF-8).
JSON Structure
The following is a list of all possible keys for loot tables. The wiki also includes the structure here.
{ "pools": [ { "rolls": 1, "rolls": { "min": 1, "max": 1 }, "entries": [ { "type": "[item|loot_table|empty]", "name": "[ID|LootTable]", "weight": 1, "quality": 1.0, "functions": [ { "function": "[FunctionID]", "treasure": true, "tag": "{display:{Name:\"Test\"}}", "data": 1, "data": { "min": 1, "max": 1 }, "damage": 1, "damage": { "min": 1, "max": 1 }, "count": 1, "count": { "min": 1, "max": 1 }, "levels": 1, "levels": { "min": 1, "max": 1 }, "limit": 1, "conditions": [ (see "conditions" below) ] } ], "conditions": [ (see "conditions" below) ] } ], "conditions": [ { "condition": "[ConditionID]", "chance": 1.0, "looting_multiplier": 1.0, "inverse": true, "entity": "this", "properties": { "minecraft:on_fire": true }, "scores": { "[ObjectiveName]": 1, "[ObjectiveName]": { "min": 1, "max": 1 } } } ] } ] }
Files
Location
Loot tables are saved within the world folder to be distributed with the world itself. More specifically, inside the data/loot_tables folder, which will not be created automatically. Here is an example structure within the world folder, where "New World" is the name of the world folder:
Namespaces
The folder that you create within the loot_tables folder will be referred to as the "namespace". This is what separates collections of loot tables, such as for different mods or maps. File/folder names must all be lowercase to circumvent issues with differing operating system file structures.
From the image example above, "skylinerwloot", "mocreatures", "anothermod", and "minecraft" are the namespaces.
The "minecraft" namespace in particular should only be used to overwrite default loot tables, such as replacing natural zombie drops. Place any new loot tables in a new namespace and not within "minecraft".
Referencing
When referencing a loot table, whether it's from within loot tables or in NBT data, you must follow the following format excluding the .json extension:
[namespace]:[filepath/to/table]
Example, targeting the file anothermod/bears/grizzly.json:
anothermod:bears/grizzly
By excluding the namespace, it will automatically assume it's meant to be "minecraft":
entities/zombie
Replacing default tables
You can create a loot table within the "minecraft" namespace with the same name as the default loot tables. Anything that uses these default tables will then use your custom one, without the need to modify NBT.
For example, given the filepath minecraft/entities/zombie.json, the following loot table will cause all default zombies to drop 0-2 feathers when killed, instead of the default rotten flesh.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:feather", "weight": 1, "functions": [ { "function": "minecraft:set_count", "count": { "min": 0, "max": 2 } } ] } ] } ] }
List of default tables
The wiki has a description for each of the default loot tables here.
minecraft:empty
minecraft:chests/abandoned_mineshaft
minecraft:chests/desert_pyramid
minecraft:chests/end_city_treasure
minecraft:chests/igloo_chest
minecraft:chests/jungle_temple
minecraft:chests/jungle_temple_dispenser
minecraft:chests/nether_bridge
minecraft:chests/simple_dungeon
minecraft:chests/spawn_bonus_chest
minecraft:chests/stronghold_corridor
minecraft:chests/stronghold_crossing
minecraft:chests/stronghold_library
minecraft:chests/village_blacksmith
minecraft:chests/woodland_mansion
minecraft:entities/bat
minecraft:entities/blaze
minecraft:entities/cave_spider
minecraft:entities/chicken
minecraft:entities/cow
minecraft:entities/creeper
minecraft:entities/donkey
minecraft:entities/elder_guardian
minecraft:entities/ender_dragon
minecraft:entities/enderman
minecraft:entities/endermite
minecraft:entities/evocation_illager
minecraft:entities/ghast
minecraft:entities/giant
minecraft:entities/guardian
minecraft:entities/horse
minecraft:entities/husk
minecraft:entities/iron_golem
minecraft:entities/llama
minecraft:entities/magma_cube
minecraft:entities/mule
minecraft:entities/mushroom_cow
minecraft:entities/ocelot
minecraft:entities/parrot
minecraft:entities/pig
minecraft:entities/polar_bear
minecraft:entities/rabbit
minecraft:entities/sheep
minecraft:entities/shulker
minecraft:entities/silverfish
minecraft:entities/skeleton
minecraft:entities/skeleton_horse
minecraft:entities/slime
minecraft:entities/snowman
minecraft:entities/spider
minecraft:entities/squid
minecraft:entities/stray
minecraft:entities/vex
minecraft:entities/villager
minecraft:entities/vindication_illager
minecraft:entities/witch
minecraft:entities/wither_skeleton
minecraft:entities/wolf
minecraft:entities/zombie
minecraft:entities/zombie_horse
minecraft:entities/zombie_pigman
minecraft:entities/zombie_villager
minecraft:entities/sheep/black
minecraft:entities/sheep/blue
minecraft:entities/sheep/brown
minecraft:entities/sheep/cyan
minecraft:entities/sheep/gray
minecraft:entities/sheep/green
minecraft:entities/sheep/light_blue
minecraft:entities/sheep/lime
minecraft:entities/sheep/magenta
minecraft:entities/sheep/orange
minecraft:entities/sheep/pink
minecraft:entities/sheep/purple
minecraft:entities/sheep/red
minecraft:entities/sheep/silver
minecraft:entities/sheep/white
minecraft:entities/sheep/yellow
minecraft:gameplay/fishing
minecraft:gameplay/fishing/fish
minecraft:gameplay/fishing/junk
minecraft:gameplay/fishing/treasure
Editing
You will need to use a UTF-8 compliant text editor when creating and saving loot tables that use unicode characters (such as the section symbol). By not encoding in UTF-8, special characters may not be saved correctly and Minecraft may fail to parse the data.
File/folder names must all be lowercase to circumvent issues with differing operating system file structures.
1. Windows Notepad is capable of saving as UTF-8, though will default to ANSI. Instructions for saving a .json in UTF-8:
1. Click Save or Save As.
2. Set "Save as type" to "All files (*.*)".
3. Name your file and append the name with ".json".
4. Set "Encoding" to "UTF-8".
5. Save.
Image example:
2. Notepad++ is a great alternative to using plain Notepad. Instructions for saving a .json in UTF-8:
1. Change the encoding to either "UTF-8" or "UTF-8 without BOM" under the "Encoding" menu. See image below.
2. Click Save or Save As.
3. Set "Save as type" to "All files (*.*)".
4. Name your file and append the name with ".json".
5. Save.
Image example:
3. Atom has multiple platform support.
Loot construct
General info
When a loot table is accessed, some specific information is passed to it for the parser to work with. For example, a killed entity will be stored and passed to the loot table to use for features that look for a "this" entity (such as the "entity_properties" condition).
Not all of the necessary information is stored. Depending on the feature using the loot table, a "damage source" is not relevant (such as opening a chest). The following will describe the information that can be stored, when it actually is stored, and how it is used and can be used.
All cases when info is stored:
1. When a mob dies
2. When minecart chests are opened
3. When minecart hoppers are opened
4. When chests are opened
5. When hoppers are opened
6. When dispensers are opened
7. When droppers are opened
8. When fishing
Luck
See also: bonus_rolls, quality, Luck usage
"Luck" is stored as a single float value, usually being the final "generic.luck" attribute value of the player but will also be modified by the player's "Luck of the Sea" enchantment level for fishing.
Note that while this value is obtained from a relevant player, that player does not necessarily get stored as player context.
Hard-coded usage:
None
Loot table usage:
1. The "bonus_rolls" parameter for pools.
2. The "quality" parameter for entries.
When it is stored:
1. When a mob dies
2. When minecart chests are opened
3. When minecart hoppers are opened
4. When chests are opened
5. When hoppers are opened
6. When dispensers are opened
7. When droppers are opened
8. When fishing
Looted entity ("this")
Stores the entity class that was looted.
Hard-coded usage:
None
Loot table usage:
1. Accessed when using the "this" context for conditions.
When it is stored:
1. When a mob dies
Player context ("killer_player")
Stores the player class, intended to signify that the player had been the one who killed the looted entity. This does not mean the player was the one who dealt the final blow. Technically it does not even have to mean the player did any killing at all, as there is a possible player for the game to potentially store when opening a chest or fishing, but is only stored in cases where a mob dies.
Hard-coded usage:
1. The "killed_by_player" condition.
Loot table usage:
1. Accessed when using the "killer_player" context for conditions.
When it is stored:
1. When a mob dies (as long as the player had struck the mob within 3 seconds before death, or as long as a zombie pigman is angry at the player)
Damage source ("killer")
Stores information concerning the final blow to the killed entity. The killing entity that dealt the final blow, if applicable, is stored alongside this information.
However, only the killing entity is ever accessed and the rest of the damage information that is stored (such as the type of damage, like "fall" or "thorns") is not yet used. Even if there was no killing entity, the damage source will still be stored but is also still unused.
Hard-coded usage:
1. The "looting_enchant" condition, obtaining the killing entity info.
2. The "random_chance_with_looting" condition, obtaining the killing entity info.
Loot table usage:
1. The killing entity info is accessed when using the "killer" context for conditions.
When it is stored:
1. When a mob dies.
Customizing tables
Pools
The collection of different items that can be dropped, dependent on conditions or other factors, stored within the "pools" list. Every record within the pool will be accessed, each of which has its own set of entries, conditions, and rolls. The following has two different records within the pool; the first record will always result in stone, while the second record will be either another stone or a stick. The end result is either 2 stone or 1 stone and 1 stick.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 } ] }, { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:stick", "weight": 1 } ] } ] }
Entries
Each pool requires a declaration of entries via the "entries" list. Each entry will then require stating what type of entry it is with the "type" string key. The accepted types are "item", "loot_table", and "empty".
The following will provide either an item, a nested loot table, or nothing.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:feather", "weight": 1 }, { "type": "loot_table", "name": "minecraft:entities/chicken", "weight": 1 }, { "type": "empty", "weight": 1 } ] } ] }
item
States that the entry will be an actual item. The "name" string key is required and defines the item ID to be used. This particular type supports the use of "functions". See the Items section for extended usage of this type.
The following will provide either a stone or a feather.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:feather", "weight": 1 } ] } ] }
loot_table
States that the entry will be another loot table. This simplifies loot tables that uses the same data as another. The "name" string key is required and defines which loot table is to be used. Does not support "functions".
Note that the other loot table's provided item is not affected by this loot table. If the other loot table has 3 rolls while this one has 1, the other loot table will cycle through all 3 of its own rolls.
A loot table may not point to itself in any manner. If the root loot table points to a second loot table that selects the root in a loop, the loot table will not function and no item will be provided.
The following will provide either an item from its own loot table, or provide item(s) from another loot table.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:feather", "weight": 1 }, { "type": "loot_table", "name": "minecraft:entities/zombie", "weight": 1 } ] } ] }
empty
States that the entry will be nothing. No item will be provided. Does not support "functions" and the "name" string key cannot be used. While "conditions" may be used, they are essentially useless.
The following will provide either nothing or a stone.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "empty", "weight": 1 }, { "type": "item", "name": "minecraft:stone", "weight": 1 } ] } ] }
Rolls
A roll is the number of times the loot table will pick an item from its pool. It can either be defined as a "roll" integer key or a "roll" compound with "min" and "max" keys defined. In either case, a roll amount is required.
The following will provide exactly 3 results from the list of items.
{ "pools": [ { "rolls": 3, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:stick", "weight": 1 } ] } ] }
The following will provide between 1 and 5 results from the list of items.
{ "pools": [ { "rolls": { "min": 1, "max": 5 }, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:stick", "weight": 1 } ] } ] }
Bonus rolls
See also: quality, Luck usage
The player's "generic.luck" attribute can optionally modify the number of total "rolls" a pool will perform. The number of bonus rolls is specified with the "bonus_rolls" integer/compound key. If compound, it defines a minimum and maximum range with the "min" and "max" integers.
The formula is:
rolls + (bonus_rolls * generic.luck)
As such, if the bonus roll is negative while luck is positive, the number of total rolls provided is decreased. For example, with 1 roll, -1 bonus rolls, and a luck value of 1, the result is 0 rolls from that pool:
1 + (-1 * 1) = 0
The following will always provide 2 stone (due to 2 initial rolls), and will also provide 1 extra stone for each point of "luck" the player has. If the player has 0 luck, they will be given 2 stone. If they have 1 luck, they will be given 3 stone.
{ "pools": [ { "rolls": 2, "bonus_rolls":1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 } ] } ] }
The following will provide between 2-6 extra stone.
{ "pools": [ { "rolls": 2, "bonus_rolls": { "min": 2, "max": 6 }, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 } ] } ] }
Items
Weight
A weight determines the chances of an item being picked in comparison to the weights of other items. If all items have the same weight, they all have the same chance of being picked. A weight is defined by the "weight" integer key and is optional. If not specified, the value defaults to 1. The following will provide 1 stone at half the rate as 1 stick.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:stick", "weight": 2 } ] } ] }
To get an idea of how weights are used, imagine the instance of each item being multiplied by its weight. Using the above table, the following is a visual representation in which there are 2 sticks (weight of 2) and 1 stone (weight of 1). Since there are 2 sticks, they have a higher chance (exactly double) of being chosen compared to stone.
minecraft:stone, minecraft:stick, minecraft:stick
Quality
See also: bonus_rolls, Luck usage
Optionally changes the "weight" of the entry based on the killing/opening/fishing player's "generic.luck" attribute value. The attribute can be modified by either worn gear with the "AttributeModifiers" list or by giving the player the "Luck" potion effect.
The formula is:
weight + (quality * generic.luck)
The following will provide either stone or diamond at equal rates while the player does not have any Luck, but if the player has a Luck value of 2, the diamond will have its "weight" changed to 7.
{ "pools": [ { "rolls": 20, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:diamond", "weight": 1, "quality": 3 } ] } ] }
Functions
Functions are optional operations to perform on the item, such as providing it a count between two values, giving it NBT data or a Damage value, as well as enchanting it using a random enchantment. The "functions" list will hold multiple compounds, while the "function" string key states which function is to be used. Individual functions may ask for more data, which is covered in the next section.
The IDs for functions will have the resource namespace default to "minecraft" (e.g. "minecraft:set_attributes") when not specified. If using mods, the namespace will be whatever the mod has implemented. Note that you cannot create your own functions without modding.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "set_damage", "damage": 0.6 }, { "function": "minecraft:enchant_with_levels", "levels": { "min": 20, "max": 30 } } ] } ] } ] }
List of functions
The following is a list of all possible functions that can be used, along with any extra applicable data. Open the spoiler before clicking a link to be taken to the description.
1. set_count
2. set_data
3. set_damage
4. set_nbt
5. set_attributes
6. enchant_randomly
7. enchant_with_levels
8. looting_enchant
9. furnace_smelt
set_count
Sets the "Count" NBT value of the item either to an exact value or randomly between a minimum and maximum value. The range is defined within the "count" integer or compound. If this function is not used, only one of that item will be dropped.
The following provides exactly 4 stone.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1, "functions": [ { "function": "minecraft:set_count", "count": 4 } ] } ] } ] }
The following provides between 3 and 5 stone.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1, "functions": [ { "function": "minecraft:set_count", "count": { "min": 3, "max": 5 } } ] } ] } ] }
set_data
Sets the "Damage" NBT value of the item to the specified value or randomly between a minimum and maximum value. The exact value is defined with the "data" integer key, while the range is defined within the "data" compound.
Cannot be used with items that have durability.
The following provides a mob head with a Damage value of 3 (resulting in a player head).
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:skull", "weight": 1, "functions": [ { "function": "minecraft:set_data", "data": 3 } ] } ] } ] }
The following provides a dye with a Damage value randomly chosen between 1 and 4.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:dye", "weight": 1, "functions": [ { "function": "minecraft:set_data", "data": { "min": 1, "max": 4 } } ] } ] } ] }
set_damage
Sets the percentage of durability remaining for items that have durability. 1.0 is 100% of durability remaining (undamaged) while 0.0 is no durability remaining. Does not function for items that have no durability. The "damage" float/compound keys will define the value.
The following will either provide either an item at half durability or an item between 75% to 100% durability remaining.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:set_damage", "damage": 0.5 } ] }, { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:set_damage", "damage": { "min": 0.75, "max": 1 } } ] } ] } ] }
set_nbt
Sets the "tag" NBT value of the item. The input is raw NBT data, just like the show_item action for hoverEvents in the JSON text component. The value is defined within the "tag" string key. Be sure to escape nested double quotes!
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:set_nbt", "tag": "{display:{Name:\"Test\"}}" } ] } ] } ] }
set_attributes
Applies attribute modifiers to the item via the "modifiers" list.
Each modifier will require:
1. An "attribute" string that states the attribute ("generic.maxHealth", "generic.armor", etc).
2. A "name" string that states the custom name of the attribute. Can be anything.
3. An "amount" float or compound, stating how much to modify the attribute. If compound, "min" and "max" floats define the range.
4. An "operation" string, stating which operation to use. The accepted inputs are "addition", "multiply_base", and "multiply_total".
5. A "slot" string or list, stating which one of the specified slots the item can be used in. Note that if using it as a list, it will randomly selecting one of the specified slots. Accepted slots are: "mainhand", "offhand", "feet", "legs", "chest", "head".
Optional input:
1. An "id" string tag that specifies the UUID of the modifier.
The following will provide a diamond sword that will increase the "generic.maxHealth" attribute, choosing a value randomly between 3.5 and 6.0, using the "addition" operation. The slot it is applied to will either be "mainhand" or "offhand".
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:set_attributes", "modifiers": [ { "attribute": "generic.maxHealth", "name": "More Health", "amount": { "min": 3.5, "max": 6 }, "operation": "addition", "slot": [ "mainhand", "offhand" ] } ] } ] } ] } ] }
The following will apply a "generic.attackDamage" modifier of exactly 1.0 in specifically the "chest" slot. The UUID is 00000000-0000-0001-0000-000000000001.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond_sword",
"weight": 1,
"functions": [
{
"function": "minecraft:set_attributes",
"modifiers": [
{
"attribute": "generic.attackDamage",
"name": "More Damage",
"amount": 1,
"operation": "addition",
"slot": "chest",
"id": "00000000-0000-0001-0000-000000000001"
}
]
}
]
}
]
}
]
}
enchant_randomly
Randomly applies a single enchantment from a list of enchantment IDs, specified with the optional "enchantments" list. If "enchantments" is not specified, the item will be enchanted randomly with a compatible enchantment for that item.
The following will apply a random enchantment and level of either Looting, Depth Strider, or Sharpness, along with a secondary enchantment that is compatible with the item.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:enchant_randomly", "enchantments": [ "minecraft:looting", "minecraft:depth_strider", "minecraft:sharpness" ] }, { "function": "minecraft:enchant_randomly" } ] } ] } ] }
enchant_with_levels
Applies an enchantment as if it were enchanted through an enchanting table, using a minimum and maximum level defined through the "levels" integer key or compound. The range of levels are the experience levels required for the enchantment, not the level of the enchantment applied.
The "treasure" boolean key will allow treasure-only enchantments to be used (such as Mending or Frost Walker). If not defined, it will default to false.
The following provides a diamond sword enchanted at exactly level 30 while allowing the use of treasure-only enchantments.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:enchant_with_levels", "levels": 30, "treasure": true } ] } ] } ] }
The following provides a diamond sword with a random enchantment obtained between levels 25 and 30, disregarding treasure.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:diamond_sword", "weight": 1, "functions": [ { "function": "minecraft:enchant_with_levels", "levels": { "min": 25, "max": 30 } } ] } ] } ] }
looting_enchant
The number of extra items to drop if the entity has the Looting enchantment on the item in their mainhand. Does not need to be a player entity, but must extend "LivingBase" (essentially all mobs, whether hostile or passive, as well as armor stands). Uses the same "count" integer/compound as set_count. The "limit" tag ensures that the resulting number of items cannot exceed that value.
The following provides an extra 30 stone for each level of Looting, but the player can receive no more than 80.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1, "functions": [ { "function": "minecraft:looting_enchant", "count": 30, "limit": 80 } ] } ] } ] }
The following provides between 10 and 20 extra stone.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1, "functions": [ { "function": "minecraft:looting_enchant", "count": { "min": 10, "max": 20 } } ] } ] } ] }
furnace_smelt
If the item to drop has a smelted crafting recipe, that resulting item will be supplied instead. The following provides charcoal instead of a log.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:log", "weight": 1, "functions": [ { "function": "minecraft:furnace_smelt" } ] } ] } ] }
Conditions
Conditions are a list of requirements that must be met before either a pool can be used, an individual item can be selected, or before a function can be run. All conditions are stored within the "conditions" list, with the "condition" string key stating which internal condition function is used. Conditions may be applied at the same depth as "items", alongside each individual "item", or within "functions".
The IDs for conditions will have the resource namespace default to "minecraft" (e.g. "minecraft:random_chance") when not specified. If using mods, the namespace will be whatever the mod has implemented. Note that you cannot create your own conditions without modding.
Each condition runs one at a time. If any condition fails, the remainder in the same list will be ignored.
The following only provides items within the pool if the condition is met. Both the stone and stick will only be provided when killed by a player, otherwise nothing is provided.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:stick", "weight": 1 } ], "conditions": [ { "condition": "killed_by_player" } ] } ] }
The following only provides the individual item if the condition is met. The stone will always drop, but the stick will only drop when killed by a player. If the conditions are not met when selecting an item, the entry will not be selected. The pool will not re-roll and ignores the entry instead.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1 }, { "type": "item", "name": "minecraft:stick", "weight": 1, "conditions": [ { "condition": "minecraft:killed_by_player" } ] } ] } ] }
The following will only run the individual function if a condition was met. The following will run the "furnace_smelt" function only if the mob was killed by a player. If a player kills the mob, smooth stone will drop. Otherwise, cobblestone will drop.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "functions": [ { "function": "minecraft:furnace_smelt", "conditions": [ { "condition": "minecraft:killed_by_player" } ] } ] } ] } ] }
List of conditions
The following is a list of all conditions that can be used. Open the spoiler before clicking a link to be taken to the description.
1. random_chance
2. random_chance_with_looting
3. killed_by_player
4. entity_properties
5. entity_scores
random_chance
Adds a modifier to the drop chances of the item/pool or chance to execute a function. The "chance" float key will hold a value between 0.0 and 1.0, with 1.0 being 100% chance.
The following has a 30% chance to provide smooth stone. Otherwise, it provides cobblestone.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "functions": [ { "function": "minecraft:furnace_smelt", "conditions": [ { "condition": "minecraft:random_chance", "chance": 0.3 } ] } ] } ] } ] }
random_chance_with_looting
Modifies the chances of success based on the Looting enchantment on the item in the mainhand of the killing entity. Does not need to be a player entity, but must extend "LivingBase" (essentially all mobs, whether hostile or passive, as well as armor stands). The "chance" float key holds the base chance value while the "looting_multiplier" float key modifies the chances based on the Looting level.
The following formula is used to determine the chances.
chance + (looting_level * looting_multiplier)
The following will smelt the cobblestone at a base 10% chance, increasing by 15% with each level of Looting. For example, with Looting 3, the following smelts cobblestone 55% of the time (0.1 + (3 * 0.15) = 0.55).
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "functions": [ { "function": "minecraft:furnace_smelt", "conditions": [ { "condition": "minecraft:random_chance_with_looting", "chance": 0.1, "looting_multiplier": 0.15 } ] } ] } ] } ] }
killed_by_player
Provides an item/pool or executes a function if the mob was specifically killed by a player. The "inverse" boolean key, when set to true, will only do so if the mob was not killed by a player.
The following will smelt the cobblestone only if the mob was not killed by a player.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "functions": [ { "function": "minecraft:furnace_smelt", "conditions": [ { "condition": "minecraft:killed_by_player", "inverse": true } ] } ] } ] } ] }
entity_properties
Provides an item/pool or executes a function if the target entity defined by the "entity" string key has the properties defined within the "properties" compound.
"entity" is restricted to: "this", "killer", and "killer_player". Target selectors or exact names do not work.
The IDs for properties will have the resource namespace default to "minecraft" (e.g. "minecraft:on_fire") when not specified. If using mods, the namespace will be whatever the mod has implemented. Note that you cannot create your own properties without modding.
"on_fire" (boolean)
The following will only provide a stick if the mob was killed while it was on fire.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "conditions": [ { "condition": "minecraft:entity_properties", "entity": "this", "properties": { "minecraft:on_fire": true } } ] } ] } ] }
The following will only provide cobblestone if the killing player was not on fire.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "conditions": [ { "condition": "minecraft:entity_properties", "entity": "killer_player", "properties": { "minecraft:on_fire": false } } ] } ] } ] }
entity_scores
Provides an item/pool or executes a function if the target entity defined by the "entity" string key has the scores defined within the "scores" compound.
"entity" is restricted to: "this", "killer", and "killer_player". Target selectors or exact names do not work. Note that because of this, you may need to copy fake player scores to your desired killers/victims.
Within the "scores" compound will either be an integer or another compound, both of which uses the objective name for its own key name.
The following will only provide stone if the killing player had an "ObjA" score of exactly 1, as well as an "ObjB" score between values 1 and 25.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "conditions": [ { "condition": "minecraft:entity_scores", "entity": "killer_player", "scores": { "ObjA": 1, "ObjB": { "min": 1, "max": 25 } } } ] } ] } ] }
Duplicate functions & conditions
Multiple of the same functions and conditions can be applied, though not all will work or are useful.
Functions
set_count
Only the last "set_count" function specified will be used.
set_data
Only the last "set_data" function specified will be used.
set_damage
Only the last "set_damage" function specified will be used.
set_nbt
NBT data will merge. If duplicate tags are declared, the last "set_nbt" function specified will take precedence. For example, the following would provide an item that contains the lore from the first function, but the second function overwrites the display name from the first.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "functions": [ { "function": "minecraft:set_nbt", "tag": "{display:{Name:\"Function 1\",Lore:[\"text\"]}}" }, { "function": "minecraft:set_nbt", "tag": "{display:{Name:\"Function 2\"}}" } ] } ] } ] }
set_attributes
Attributes will be appended. Note that if "id" is duplicated, the game will not account for it. Do not use multiple of the same UUID.
enchant_randomly
Enchantments will be appended, rather than merged. Note that if the same enchantment is picked twice, they will not merge together and will instead be listed one after the other (and does not have to have the same level).
enchant_with_levels
Enchantments will be appended, rather than merged. Note that if the same enchantment is picked twice, they will not merge together and will instead be listed one after the other (and does not have to have the same level).
looting_enchant
Counts will be merged. For example, the following provides 42 stone with Looting I; 1 for initial, an extra 30 for the first function, and an extra 11 for the second function.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone", "weight": 1, "functions": [ { "function": "minecraft:looting_enchant", "count": 30 }, { "function": "minecraft:looting_enchant", "count": 11 } ] } ] } ] }
furnace_smelt
Each function will run one at a time, processing the item before moving on to the next. For example, in the following, the first function will turn the cactus into green dye, and the second function will fail because green dye has no smelting recipe.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cactus", "weight": 1, "functions": [ { "function": "minecraft:furnace_smelt" }, { "function": "minecraft:furnace_smelt" } ] } ] } ] }
Conditions
random_chance
Each condition runs one at a time (so long as no conditions fail), which can greatly change the rate of selection. For example, the following has a 50% chance for the first function, and if the first function succeeded, a 25% chance for the second function.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:stone_sword", "weight": 1, "conditions": [ { "condition": "minecraft:random_chance", "chance": 0.5 }, { "condition": "minecraft:random_chance", "chance": 0.25 } ] } ] } ] }
random_chance_with_looting
Each condition runs one at a time (so long as no conditions fail), which can greatly change the rate of selection. See Duplicate random_chance, which essentially functions the same way (albeit without a looting multiplier).
killed_by_player
Each condition runs one at a time (so long as no conditions fail). However, since the only option is whether or not the mob was killed by a player, it would be pointless to have multiple of these conditions at the same depth.
entity_properties
Each condition runs one at a time (so long as no conditions fail). It would be pointless to have multiple of these conditions if "entity" remained the same. However, it will function well for different targets. For example, the following would provide stone so long as both the mob and the killer were on fire.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "conditions": [ { "condition": "minecraft:entity_properties", "entity": "this", "properties": { "on_fire": true } }, { "condition": "minecraft:entity_properties", "entity": "killer", "properties": { "on_fire": true } } ] } ] } ] }
entity_scores
Each condition runs one at a time (so long as no conditions fail). It would be pointless to have multiple of these conditions if "entity" remained the same. However, it will function well for different targets. For example, the following would provide stone so long as the killed mob had an "ObjA" score of 1, and the killer had an "ObjA" score between 1 and 2.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:cobblestone", "weight": 1, "conditions": [ { "condition": "minecraft:entity_scores", "entity": "this", "scores": { "ObjA": 1 } }, { "condition": "minecraft:entity_scores", "entity": "killer", "scores": { "ObjA": { "min": 1, "max": 2 } } } ] } ] } ] }
Usage
generic.luck, Luck, Unluck, Luck of the Sea
There are numerous features in-game that refer to "luck", such as the attribute, potion effect, and enchantment. Luck is specifically used with loot tables in order to modify potential loot chances. See "bonus_rolls" and "quality" for implementing into loot tables.
In default vanilla, the only thing that "luck" affects is fishing. It is a common misconception that "luck" does anything else. It does not affect mob or chest loot because the default loot tables for them do not implement the "bonus_rolls" or "quality" tags. Custom loot tables would need to be created to implement them. As well, the "Lure" enchantment no longer affects loot chances.
The "generic.luck" attribute is what controls the player's current luck value, with a base value of 0. The player can be given items that modify this value using all of the features of attribute modifiers. For example, the following provides the player with an iron ingot that, when held in the off-hand, increases the player's "generic.luck" attribute by 2.0:
/give @p minecraft:iron_ingot 1 0 {AttributeModifiers:[{AttributeName:"generic.luck",Name:"More Luck",Amount:2.0,Operation:0,Slot:"offhand",UUIDLeast:1l,UUIDMost:1l}]}
The "Luck" and "Unluck" potion effects will apply modifiers to the player's "generic.luck" attribute, adding 1.0 per effect level of "Luck" or removing 1.0 per effect level of "Unluck". For example, the following gives the player "Luck" 10 and "Unluck" 4, which has a final resulting "generic.luck" value of 6:
/effect @p minecraft:luck 30 9 /effect @p minecraft:unluck 30 3
The "Luck of the Sea" enchantment does not directly add an attribute modifier like the "Luck" or "Unluck" effects. Instead, the level of the enchantment is added onto the player's final "generic.luck" value (but only when obtaining fishing loot). As such, the enchantment supersedes other modifiers placed on the player. If the player had a modifier that reduced their attribute value by 100% (which occurs after any addition modifiers), their enchantment would still work because it is adding the enchantment level onto the final base of 0.0.
For example, the following provides the player with a "multiply total" attribute modifier, reducing their "generic.luck" by 100%, as well as a fishing rod with a high "Luck of the Sea" enchantment. The result is the player being guaranteed to fish treasure items because the enchantment value is added after obtaining the final attribute value (0.0 attribute + 85 enchantment = 85 "luck", the lowest value needed to guarantee treasure from fishing):
/give @p minecraft:iron_helmet 1 0 {AttributeModifiers:[{AttributeName:"generic.luck",Name:"100% reduction",Amount:-1.0,Operation:2,Slot:"head",UUIDLeast:1l,UUIDMost:1l}]} /give @p minecraft:fishing_rod 1 0 {ench:[{id:61s,lvl:85s}]}
After all of these values are totalled up, the resulting value is what loot tables will use when modifying the "bonus_rolls" and "quality" tags.
For example, the following gives the player an iron helmet that, when worn, increases the player's "generic.luck" value by 100% (doubling their value), a "Luck" effect of 40 (which provides a modifier of +40.0), and a fishing rod with a "Luck of the Sea 5" enchantment. The result is a final attribute value of 80.0 (40 * 2), with 5 added on from the enchantment, finally resulting in 85 (guaranteeing treasure while fishing):
/give @p minecraft:iron_helmet 1 0 {AttributeModifiers:[{AttributeName:"generic.luck",Name:"100% More",Amount:1.0,Operation:2,Slot:"head",UUIDLeast:1l,UUIDMost:1l}]} /effect @p minecraft:luck 30 39 /give @p minecraft:fishing_rod 1 0 {ench:[{id:61s,lvl:5s}]}
NBT data
"LootTable" (string)
The "LootTable" tag holds the filepath to the desired loot table. This tag's usage is restricted to the following: chests, hoppers, dispensers, droppers, minecart chests, minecart hoppers.
The following will create a chest that will populate with items from the "chests/simple_dungeon" loot table:
/setblock ~ ~1 ~ minecraft:chest 0 false {LootTable:"minecraft:chests/simple_dungeon"}
"LootTableSeed" (long)
Instead of being random every single time, inventory population can be deterministic based on seed. A default survival world will use this to always generate the same loot whenever a new world with the same seed is created. Value must not be 0, otherwise a new seed will be chosen randomly. This tag's usage is restricted to the following: chests, hoppers, dispensers, droppers, minecart chests, minecart hoppers.
/setblock ~ ~1 ~ minecraft:chest 0 false {LootTable:"minecraft:chests/simple_dungeon",LootTableSeed:123L}
"DeathLootTable" (string)
Mobs use this tag to determine what loot table is used when killed. Note that the "HandItems/ArmorItems" data for mobs is unrelated to loot tables and can drop separate items.
/summon Creeper ~ ~1 ~ {DeathLootTable:"minecraft:chests/simple_dungeon"}
"DeathLootTableSeed" (long)
Same as "LootTableSeed", except for mobs.
/summon Creeper ~ ~1 ~ {DeathLootTable:"minecraft:chests/simple_dungeon",DeathLootTableSeed:123L}
Empty tables
An empty loot table may be declared by using "minecraft:empty". This will prevent any default loot from generating, provided that this table has not been overwritten with a custom table.
/summon Creeper ~ ~1 ~ {LootTable:"minecraft:empty"}
Conclusion
Custom table example
Since the "LootTable/DeathLootTable" tags states the path to the desired loot table within the target folder, rather than using hard-coded tables, you can add your own table to the mix.
The following is an example of a loot table named custom_table_a.json within the "entities" folder, inside the "customloot" namespace. It has a 1% chance of providing TNT, so long as it was on fire and killed by a player, otherwise it provides nothing.
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "minecraft:tnt", "weight": 1, "conditions": [ { "condition": "minecraft:random_chance", "chance": 0.01 }, { "condition": "minecraft:killed_by_player" }, { "condition": "minecraft:entity_properties", "entity": "this", "properties": { "minecraft:on_fire": true } } ] } ] } ] }
And then using that in-game is the same as before, replacing the name with the name given to the JSON file. The following summons a creeper that, when killed, has a 1% chance to drop TNT when killed by a player and on fire.
/summon Creeper ~ ~1 ~ {DeathLootTable:"customloot:entities/custom_table_a"}
Q&A
Q&A last updated: 16w02a.
Q: Is there an easy way to reload loot tables in-game if I've made changes?
A: Yes, hold F3 and press T to reload all resources.
Q: Do custom loot tables work on servers?
A: Yes, the file structure is exactly the same. A singleplayer world with custom loot tables can be copied to a multiplayer server with no need to change the tables.
Q: Are loot tables a part of resource packs?
A: No. Loot tables (and structures) are server-side, while resource packs are client-side. The difference is the client themselves being unable to change server resources. Loot tables and structures are not packaged with a resource pack.
Q: Where can I find the default loot tables?
A: You will need to extract "assets/loot_tables" from: /.minecraft/versions/15w49a.jar (or higher)
Q: There is no "loot_tables" folder within my world save, does it get created automatically?
A: It does not; the folder must be created manually.
Q: Why should I not use the "minecraft" namespace for new tables?
A: It is bad practice to use the default namespace for tables that are not default. There is also the risk of the filename you create being used in the future, resulting in unexpected overwriting of default resources. You should always put new loot tables into a separate namespace.
Q: Can I use target selectors for "entity"?
A: No, we are currently restricted to "this", "killer", and "killer_player".
Q: Can I use fake player scores for "entity_scores"?
A: No, we are currently restricted to "this", "killer", and "killer_player". You can use /scoreboard to duplicate the desired fake player score onto the killer or victim. You'll want to apply the score to as few targets as possible to save on scoreboard.dat bloating. For example, there will likely be fewer players compared to mobs in a CTM map, so you'll copy the fake player scores to the players ("killer_player") rather than to the killed mob ("this").
Q: Do I have to include "minecraft" before item IDs, condition IDs, and function IDs in loot tables?
A: No, the namespaces will default to "minecraft" when not defined.
Q: Accented characters/section symbol does not show up correctly in-game. What happened?
A: Your JSON file was not encoded in UTF-8. See Editing for info.
Q: What does "luck" do for default vanilla Minecraft?
A: The only thing luck affects in default vanilla is fishing loot tables. It is a common misconception that it affects mob drops or chest loot, but that is incorrect because default loot tables do not incorporate luck into anything except the fishing loot tables.
External links
- Generic JSON Validator
- Minecraft Wiki: Loot table
- Javascript loot table generator by MrPingouin1
Conclusion
If there is information that needs to be added, corrected, or clarified, please post! -
188
jaquadro posted a message on NBTExplorer - NBT Editor for Windows and MacPosted in: Minecraft ToolsNBTExplorer is a low-level graphical NBT data editor originally based on NBTedit. The key difference is NBTExplorer's full support for Minecraft .mcr/.mca region files, a directory-tree interface for easily exploring multiple worlds, and support for the latest NBT standard. NBTExplorer is built on top of Substrate.
NBTExplorer can read:- Standard NBT files (e.g. level.dat)
- Schematic files
- Uncompressed NBT files (e.g. idcounts.dat)
- Minecraft region files (*.mcr)
- Minecraft anvil files (*.mca)
- Cubic Chunks region files
The NBTExplorer zip and installer packages for Windows now include a second utility, NBTUtil.exe, for command-line control of NBT data. NBTUtil currently has a limited featureset compared to NBTExplorer.
Windows Users
NBTExplorer is a Windows .NET application, and requires .NET framework 2.0 or higher to run. Note: If you run Windows 8 or later, you may get a SmartScreen warning when first running the program. See the related FAQ entry for more information.
Linux Users
NBTExplorer has been tested for compatibility with recent Mono runtimes. Minimally, your system needs the mono-core and mono-winforms packages, or whatever set of packages is equivalent.
Mac Users
A Mac-specific version of NBTExplorer is available with a native UX. It is compatible with Mac OS X 10.7 or higher. It will not run on 10.6, sorry.
As of August 22, 2013, I've begun signing NBTExplorer with an Apple Developer ID certificate. If you have GateKeeper configured to only allow software from the App Store, then you will need to change GateKeeper to allow running signed downloaded applications, or following these instructions to bypass GateKeeper:
For older unsigned versions of NBTExplorer, you may also receive a cryptic "OSStatus error -67053" if you try to bypass GateKeeper the normal way by right-clicking the app and selecting 'Open'. Here are some instructions to bypass GateKeeper for NBTExplorer:
- Download NBTExplorer
- Copy the NBTExplorer.app out of the zip, to your /Applications folder
- Open your Terminal, found in /Applications/Utilities
- At the prompt the Terminal gives you, type exactly the following: ", courier, monospace">xattr -rd com.apple.quarantine /Applications/NBTExplorer.app
If you have problems with the native client or you're running OS X 10.6 or older, you can still run the Windows version of NBTExplorer on your Mac by following the Linux instructions and installing the Mono runtime. You may still need to disable GateKeeper quarantine on the downloaded files.
Download: Windows / Linux (Version 2.8.0) [MSI installer or ZIP archive]
Download: Mac (Version 2.0.3)
Project Page: Github
I recommend backing up worlds before modifying them with this tool.
Frequently Asked Questions
Q: NBTExplorer didn't save my changes -- why?
A: It's possible you forgot to save. The more likely answer is NBTExplorer did save your changes, and if you were to immediately re-open your world in NBTExplorer, you would see that your changes are still there. Instead, Minecraft erased or ignored your changes when you loaded your world. The most common trap is editing player settings or inventory on a single-player world and making your changes in a .dat file instead of in level.dat. Minecraft will overwrite your .dat file on load with the contents of the player tag in level.dat.
Q: I'm on Windows and NBTExplorer crashed on start / didn't run.
A: Did you get a message box listing one or more exceptions? Reply to this thread with the information so you can be better helped.
If you didn't get any message box though, or you only received a standard "program has stopped working" message box, then you have deeper issues with your .NET environment. Do any other .NET programs run on your computer? If yes, then try deleting the NBTExplorer.exe.config file that was installed / came with the zip. This will cause NBTExplorer to prefer the .NET 2.x/3.x framework over the 4.x framework, and may allow the program to run if your .NET 4.x framework is toast. You should still do something about that, of course.
Q: I'm on Windows and NBTExplorer crashed with a scary warning.
A: Windows 8 and later includes a program filter called "SmartScreen" that prevents unrecognized software from running. Its warning looks something like this:
If you see this screen, press the "More info" link to get a "Run Anyway" button. This will launch the program, and you shouldn't see the warning again unless you update NBTExplorer.
NBTExplorer is SAFE and has an established reputation in the Minecraft community. However, you don't need to take my word at face-value. The source code is publicly available for inspection, and you can download and build your own copy if you so wish.
SmartScreen builds up reputation on individual files. So you may see this warning if you download a freshly released update of NBTExplorer, but not if you download a version that has been out for a while. Unfortunately the permanent fix for this is to buy very expensive signing certificates that must be renewed annually, which is not viable for a free tool like this.
Q: The Mac version doesn't run on my Mac!
A: If you're running OSX 10.6.x or earlier, the Mac version is confirmed to not work. It has been tested and confirmed to work for people on 10.7.x and 10.8.x, although that may still not be a guarantee that it will work for you, or that it will be bug-free.
If you're having problems running the Mac-specific version of NBTExplorer, there is still a high probability that you can run the Windows/Linux version instead. thhinds has posted a more detailed set of instructions here. It won't be as pretty -- you'll get a very crude looking version of Windows UI styling instead of native OSX styling, but it should still do the job. I can't do anything about this unless an experienced Cocoa developer that also has some .NET/Mono experience is willing to step up and help me determine why it won't run on older versions of OSX.
Q: When I run the Mac version, I see: OSStatus error -67053
A: It has been reported that this is caused by Gatekeeper disallowing NBTExplorer from running because it is not a properly signed application. Please refer to the instructions in the "Mac Users" section above for bypassing GateKeeper's check. NOTE: As of August 22, 2013, I have begun signing NBTExplorer. Try downloading the latest version first. -
2
colejagdtiger posted a message on Thaumcraft 6.1.BETA26 [no longer being developed]Posted in: Minecraft Mods
I think it's better that new magic mods get created. Stagnation is a huge problem, as seen with all the "backport to 1.7.10" complaints and how buildcraft and IC2 are unused/boring due to not being updated and changing hands too often.
Thaumcraft has remained popular because of it's phoenix style rebirth that shuffle the features and add new things while abandoning others, creating a new mod every MC update.
Yeah I remember every time an new edition of thaumcraft was released I would be a bit sad that something I loved from the old one was gone, however I would quickly find that it had been replaced and by something at least ten times more awesome that the old.
-
6
d95 posted a message on Thaumcraft 6.1.BETA26 [no longer being developed]Posted in: Minecraft ModsI think it's better that new magic mods get created. Stagnation is a huge problem, as seen with all the "backport to 1.7.10" complaints and how buildcraft and IC2 are unused/boring due to not being updated and changing hands too often.
Thaumcraft has remained popular because of it's phoenix style rebirth that shuffle the features and add new things while abandoning others, creating a new mod every MC update.
-
4
CaerMaster posted a message on Thaumcraft 6.1.BETA26 [no longer being developed]Posted in: Minecraft Mods
You know, going back to the "infinity gauntlet" thought ... instead of tiers of gauntlets, how about an upgradeable gauntlet? (Or perhaps combine both concepts.) Have slots in the gauntlet itself which enable you to upgrade it by installing ... oh, foci, magical glyphs, various different types and tiers of upgrades each of which either adds a new ability to the gauntlet, or upgrades or augments some specific property of the gauntlet. Higher tier gauntlets made from materials with higher magical affinity could then differ principally in having more upgrade slots (and, on a further thought, perhaps bonuses to the effectiveness of the upgrades). A basic leather or cloth gauntlet might have only one slot. The heirarchy might go something like cloth/leather (equivalent), alchemical brass, gold, thaumium, voidmetal. You could have several different gauntlets each optimized for different purposes. The upgrade slots could be semi-permanent — which is to say, you can remove an upgrade to replace it with a different or better one, using the proper tools, but with a variable chance of breaking the upgrade depending upon the type and tier of upgrade. The lowest tier of upgrades might be as simple as a piece of paper (or a chip of stone) with a rune inscribed on it. Perhaps the lowest tier of runic upgrade might be paper, then stone, then runed metal sigil, then runed gemstone.
And ... should gauntlets go in the offhand slot, or in a Baubles slot? Why shouldn't you be able to hold a staff (or a pickaxe for that matter, or a chicken egg, or a pork chop) in your gauntleted hand? Instead of a Hoe of Growth, you might perhaps have a leather gauntlet fitted with an upgrade that causes accelerated growth of any crop or seedling planted using that gauntlet. -
9
Tmtravlr posted a message on Potion Core - Lots of New Potion Effects and Attributes!Posted in: Minecraft ModsHave you ever gotten tired of the vanilla potion effects? Wanted something new and interesting? Well then this mod has plenty to offer!
This mod contains a whole bunch of potion effects that I plan to use in some other mods! There is no way to get the potions besides the creative menu in this mod (since this is just a core mod), but check out Not Enough Potions, which has recipes and new brewing mechanics.
There are quite a few added potion effects, including:
Attack:
Trueshot - Increases projectile damage (like how strength increases melee damage).
Klutz - Decreases projectile damage (like how weakness decreases melee damage).
Magic Focus - Increases magic damage (like how strength increases melee damage).
Magic Inhibition - Decreases magic damage (like how weakness decreases melee damage).
Recoil - Reflects a portion of damage back to the attacker.
Burst - Makes you explode but doesn't hurt you (only your enemies), and doesn't do block damage.
Explosion - Explodes you.
Combustion - Sets you on fire.
Lightning - Strikes you with lightning.
Launch - Shoots you up into the air.
Defense:
Vulnerability - Increases all damage to you (like how resistance decreases all damage to you).
Broken Armor - Decreases your armor
Iron Skin - Increases your armor
Diamond Skin - Increases your armor toughness
Magic Shielding - Protects you from magic damage (which is normally unblockable)
Solid Core - Gives you knockback resistance.
Revival - If you die with this effect on, you will revive with 2 hearts per level.
Utility:
Slowfall - Slows your fall and prevents some fall damage at level 1, and all fall damage at level 2.
Step Up - Increases your step height so you can step up a full block.
Reach - Increases your reach distance.
Climbing - Lets you climb walls like spiders.
Corrosion - Damages your armor and held item (except for gold items/armor).
Repairing - Repairs your armor and held item.
Flight - Lets you fly like in creative mode.
Random Teleport - Teleports you to a nearby location.
Surface Teleport - Teleports you to the top surface block.
Spawn Teleport - Teleports you to your spawn point if you stand still with it for 10 seconds.
Love - Causes breedable entities to breed with eachother.
Antidote - Prevents you from taking poison damage.
Purity - Prevents you from taking wither damage.
Other:
Drowning - Makes you only breath underwater.
Weight - Negative jump boost; makes it so you can't jump up a full block.
Disorganization - Shuffles your inventory
Perplexity - Reverses your controls so forwards is backwards, sneak is jump, etc.
Extension - Prevents one other potion on you from ticking down per level. Essentially doubles the length of another potion on you.
Chance - Gives you one random potion effect (could be good or bad).
Bless - Gives you one random good potion effect.
Curse - Gives you one random bad potion effect.
Cure - Clears all bad potion effects from you.
Dispel - Clears all good potion effects from you.
Inversion - Inverts all potion effects on you (like regeneration -> wither, strength -> weakness, etc.).
Potion Sickness - Disabled by default. Has a low chance of giving you a random bad potion effect.
It also changes the way a few vanilla potions work:
Blindness - Now the fog comes closer per level (making you more blind), and it also affects mobs, so they won't attack you unless you are close to them.
Jump Boost - You can control how high you jump by holding down the space bar, so you can jump up one block instead of shooting into the air.
There are also a few new attributes (that can be applied to armor and tools as well):
Projectile Damage
- Attribute Name: potioncore.projectileDamage
- Default: 1
- Range: 0 - 2048
- What it does: Represents your projectile damage from bows, thrown items, etc. Used by the archery and klutz potions.
Magic Damage:
- Attribute Name: potioncore.magicDamage
- Default: 1
- Range: 0 - 2048
- What it does: Represents your magic damage, which in vanilla minecraft is only from throwing harming/healing potions. Used by the magic focus and magic inhibition potions.
Jump Height:
- Attribute Name: potioncore.jumpHeight
- Default: 1
- Range: 0 - 2048
- What it does: Represents the height you can jump. Used by the weight and vanilla jump boost potions.
Dig Speed:
- Attribute Name: potioncore.digSpeed
- Default: 1
- Range: 8.1E-4 - 2048
- What it does: Represents your dig speed. Used by the vanilla haste potion (mining fatigue doesn't use it, since it's effects aren't linear).
Reach:
- Attribute Name: potioncore.reach
- Default: 4.5
- Range: 0 - 2048
- What it does: Represents your reach in blocks. Used by the reach potion.
Step Height:
- Attribute Name: potioncore.stepHeight
- Default: 0.6
- Range: 0 - 256
- What it does: Represents how high you can step. Used by the step up potion.
Damage Resistance:
- Attribute Name: potioncore.damageResistance
- Default: 1
- Range: -2048 - 2
- What it does: Represents your damage resistance, where 1 is normal, 2 is 100% resistance, and values below 1 decrease your resistance. Used by the vulnerability and vanilla resistance potions.
Magic Shielding:
- Attribute Name: potioncore.magicShielding
- Default: 0
- Range: 0 - 20
- What it does: Represents your magic 'armor', which protects you from magic damage (since magic damage penetrates normal armor). Used by the magic shield potion.
There's also a new potion mechanic, Potion Sickness, that limits how many beneficial potions you can drink at once (in case you don't want to get too overpowered). After you reach a certain configurable number of good potion effects, you will get potion sickness, which will rarely give you bad potion effects as long as you have it. So if you are too greedy, you could literally blow yourself up. It is disabled by default; you can enable it in the config file.
Most settings can be enabled/disabled/modified in the config files.
This is a regular mod; just install forge and then drop this in your mods folder! If you don't know how to install forge, there are many tutorials out there.
Download:
There is an old beta version for 1.7.10. I don't plan to update it further, but it's there if you really want a version for 1.7.10.
Yes, this is allowed in modpacks. Just link back here to this page, and list me as the author.
If you want to use this mod in one of your mods, you can load it as a library by:
- Download both the deobf and src (sources) files for the version you want from the download page.
- In your forge dev environment, create a libs folder.
- Drag both files into the libs folder.
- If you are using eclipse, go to the libs folder, right click on the deobf file, and click Build Path -> Add to Build Path
- It should now be loaded at the bottom of Referenced Libraries.
- Try to open a class, click Add Source, and point it to the sources file.
- It should now be loaded as a library.
Enjoy the potions!
-
1
Tmtravlr posted a message on Potion Core - Lots of New Potion Effects and Attributes!Posted in: Minecraft ModsHey everyone!
I have updated the mod to 1.10.2 and 1.11.2! =)
Please let me know if you find any bugs.
-
3
ancients5 posted a message on Thaumcraft 6.1.BETA26 [no longer being developed]Posted in: Minecraft Mods
The issue with Taint was that even at high level play, it was an exercise in futility to deal with beyond using absolutely egregious numbers of purifying blooms or an entire forest of pure nodes. Not to mention that in 5, the Taint also disintegrated the ground, so if you used enough blooms to actually cure it, they would often break each other's bases via disintegration and pop them off into the sea of dust.
When you make something a threat, but never give a good reward for trying to find ways to fight it and instead make it sheer busywork, it goes from interesting to frustrating. I'd rather it be a setpiece than something that was irritating to deal with even when you're tearing worlds asunder with your magic power.
I could be committing a crime by suggesting this, buuut maybe taint shouldn't even exist within a biome, rather only as a "punishment". I mean, it makes sense for players to have to fight taint because of their own irresponsible actions that caused it to appear in the first place. I always found myself disabling taint biomes or at the very least disabling taint spread completely because of the exact thing you said. I had this constant pressure to deal with something that gave me no reward and it was frustrating. However, I'd understand and completely ignore the frustration if it was cleaning up a mess I had caused / dealing with a consequence of my actions rather than just some random biome. - To post a comment, please login.
3