ExperienceMod
ExperienceMod is a plugin that makes it possible to add, or change, the types of player activity that awards experience points. This can be anything from mining blocks (also ensures no cheating with silk touch), placing blocks, crafting, brewing or even smelting.
Configure the experience system in Minecraft 1.3 to be more challenging, more like 1.2.5 - or, go the other way. You can experiment, finding a system that works for you. It's all configurable.
- Download 2.6.0 for Minecraft 1.4.7
- Download 2.5.0 for Minecraft 1.3.1
- Download 2.2.6 for Minecraft 1.2.5 or Tekkit
- Removing or changing the new 1.3 experience.
- Source (Github)
- Forum Thread
Up-to-date developer builds of this project can be acquired at my Jenkins server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Features
- Modify or remove the dropped experience by a number of factors:
- Name of mob or creature
- The type of damage that killed the mob/creature. Deny experience from using splash potions!
- Whether or not a mob has spawned from a monster spawner
- Drop experience when placing and breaking blocks, along with crafting, brewing and smelting items:
- By block name and durability, and whether it was placed by a player.
- By potion effect, level, extended duration, and more.
- Prevent experience loss upon death.
- Set how much experience a player will get for killing another another.
- Broadcast a message to the server or a specific channel (HeroChat and ChannelChat only) when experience is being awarded. You can also limit the rate of messages transmitted.
- Use a different configuration for every world, or even particular players or groups.
- Add experience to fishing!
- Set a range of experience to drop. Can handle decimal numbers.
- Use (optionally) permissions to decide who will be affected by the modifications.
- Reward experience through currency (requires the Vault plugin).
- Drop currency items instead of being given currency directly.
- Reward by dropping additional items.
- Change the maximum enchanting level from 30 to anything you'd like.
- Set the amount of bookcases you need to get the maximum enchanting level.
- Set how much experience you need to level up a level. Recreate the 1.2.5 experience system perfectly.
Configuration
Note that the default configuration file has been written mostly to demonstrate the functionality of this plugin. The configuration page has some better (and more usable) examples, along with a detailed documentation.
Commands
Syntax | Description | Permission |
---|---|---|
/experiencemod reload | Reloads the configuration files | experiencemod.admin |
/experiencemod debug | Toggles debug mode | experiencemod.admin |
/experiencemod warnings | Displays the most recent parsing warnings. | experiencemod.admin |
/experiencemod item [action] [block] | Displays the experience worth of a block/item. | experiencemod.admin |
/experiencemod mob [mob-name] | Displays the experience worth of a mob. | experiencemod.admin |
/expmod | Alias for the experiencemod command. | experiencemod.admin |
/spawnexp amount | Spawn the given amount experience at the target location of the cursor. | experiencemod.admin |
Mod Support
This mod supports Tekkit servers and its custom blocks. Simply download and install ExperienceBridgeMod 1.2.0 to enable the feature.
The following client and server-side mods are supported:
More information can be found on the ExperienceBridgeMod page.
Permissions
You can disable permissions in global.yml.
Permission | Description |
---|---|
experiencemod.keepexp | Prevents the loss of experience upon death. |
experiencemod.maxenchant | Ensures that the last slot on an enchantment table will always be the highest possible. |
experiencemod.admin | Allows administrators to reload or debug ExperienceMod. |
experiencemod.info | Allows access to warning and debug messages. |
experiencemod.rewards.block | Rewards mining blocks with experience. Will not be awarded if the player has silk-touch. |
experiencemod.rewards.bonus | Rewards destroying non-renewable blocks with experience. Will always be awarded, unlike block. |
experiencemod.rewards.placing | Rewards placing blocks in the world. |
experiencemod.rewards.crafting | Rewards crafting items with experience. |
experiencemod.rewards.brewing | Rewards brewing potions with experience. |
experiencemod.rewards.smelting | Rewards smelting ores with experience. |
experiencemod.rewards.fishing | Rewards fishing and failing to catch a fish. |
autoupdate.announce | Receive a notification when a new version of ExperienceMod is available. |
autoupdate.update | Download a new version, if available, for the next server restart. |
Options
Note: Not all permission plugins support options.
Option | Description |
---|---|
experiencePreset | The preset to load for this player or group. This allows you to have different configuration files for each world, group or even player. |
Statistics Collection
This plugin uses MCStats to generate and publish anonymous usage statistics, but you can easily opt-out by setting use metrics in config.yml to false.
If enabled, the following is sent every ten minutes:
- Metrics revision version (currently 5).
- Server's GUID
- Players currently online (not max player count)
- Server version string (the same version string you see in /version)
- Current version of ExperienceMod
- Whether or not any of the optional plugins are installed AND hooked. This allows me to determine which plugins I should spend time supporting:
- This includes: LogBlock, HawkEye, Vault, HeroChat, ChannelChat and ExperienceBridgeMod.
- The number of "warnings" (configuration errors and general exceptions) encountered since the plugin was last reloaded.
Will this be updated? For example, Enderdragons and withers are not on this list :) Nevermind, Ender Dragon and Wither is what they are called. It'd be helpful if you changed that on this page(http://dev.bukkit.org/bukkit-plugins/experiencemod/pages/main/configuration/listings/mob-names/)! ^_^
@aadnk
can you add new command like give exp from your plugin ? cuz your plugin have different exp with vanilla exp :)
then i cant do /exp 500 from Essentials plugin
After messing around with it for a bit, now I get this in the console;
[ExperienceMod] ?cWarning: Preset 'onePreset' threw exception: java.lang.NullPointerException
So I think now it's finding the file, but something else is going wrong?
Thank you for the quick reply and fix! That did solve the issue, high level enchantments work now. But...I'm having another issue, I can't seem to get custom presets to work. I'm using Groupmanager for permissions, and I have written under the "info" section of a group
"experiencePreset: onePreset"
And in my presets.yml I have (with correct formatting that I can't paste here)
onePreset:
file: one.yml
and of course, I have a file called "one.yml" that is currently just a copy of the default config.yml, but with a different multiplier value. This is what I keep getting in the console;
"[ExperienceMod] ?cWarning: Could not find preset onePreset. Please check spelling."
I'm copying and pasting these names, I know I haven't misspelled anything, am I screwing something else up? I can provide pastebins of the files if this isn't enough information. What I'm trying to do is have different multiplier values for different groups; am I going about it the right way, or is there an easier way to accomplish this? Sorry for bothering you so much, but this plugin is very important for what I'm doing with my server.
@zedarean
I've fixed it in build #3 on the Jenkins server (see above), though it does require ProtocolLib. Let me know if it works for you.
@zedarean
Seems like this is an issue in 1.7.5 (and earlier - at most 1.5.2), probably because they moved the experience level check around.
I'm considering using ProtocolLib (or just TinyProtocol in 1.7.2+) to get around this, if possible. It seems pretty doable, at least.
I'm using the latest snapshot of this, it seems to mostly work alright, but one problem I've encountered is when I change "Maximum Enchant Level" to a high value, such as 300 or something. In game I can place an item on the enchantment table, and the values are adjusted appropriately, but when I try to select a high level enchantment (above 80 or so) it won't work. Lower level enchantments work fine. I'm not sure if this plugin is ever going to be updated, but if so, could you take a look at that? Thanks!
@aadnk
please add support with mob name please :)
ex: The Undead: first: 1 last: 10 or make your plugin to vanilla exp :)
I was using 2.6.1 from your Jenkins server and was still having problems. I'll PM you.
@cg49me
Hm, I could take a look at it if you send me a PM with the stack trace.
But have you tried using the latest development build (see the link to the Jenkins server above)? I know I've fixed a crash or two since 2.6.0.
@cg49me
For the record, this plugin was DEFINITELY causing crashes on my 1.6.4 server (may have been conflicting with another plugin, of course). I removed it a couple weeks ago, and I haven't had a crash since. I REALLY like this mod, so I'm hoping it gets some attention again (I know aadnk has had his hands full with ProtocolLIb).
Will this awesome plugin handle the new experience system? I prefeer the old experience system (still enchants for 50lvl) and this plugin is just great for this purpose.
EDIT: The smelting result feature does not seem to work in 1.7.2 Spigot..
I'm running this mod on a 1.6.4 server, and have experienced some crashes that I believe are due to it. I have the log files from the crashes - would you like to take a look at them?
@Simofie
I could give you a few pointers, especially if you need help in navigating the source code, but I have a lot of things going on the moment. I also have to be prepared for when CraftBukkit 1.7 is finally released, and get ProtocolLib up to speed.
Still, hit me up on IRC (or through PMs) if you want help. I'm on EsperNet (#nms or #experiencemod).
Thank you very much sir, downloading it now.
As for the previous version 1.4.7 version, let me tell you what worked with it. I was able to set an XP amount for mobs from Forge API based mods in the following ways, by entity type id number from -1 to 255. What would occur though was a little strange in one sense. I expected that any custom metadata mob at -1 would all get the same xp and this was true, unless... they had they had a vanilla mod word in their name. This would sometimes result in them getting the xp listed for that entity type id as defined elsewhere. The other custom mob result I expected was that any mod created as a meta data for a vanilla mob entity type id would get the same xp as the base mob entity type id. As for tile entitie types like electric furnaces and such, I could not get experiencebridge mod working very well on 1.4.7 but I would love to have it work for 1.5.2.
What we used ExperienceMod for previously was that we wrote a tiny little mod that called the xp level to grant permissions, thus letting us use ExperienceMod as a way of setting the XP for a rpg leveling system. I had previously put the project on hold but I am now updating it for 1.5.2. If you have the time I would love to talk some more about this mod or ask for your help on some matters if you have time.
@Simofie
Ah, sorry - I had to move hosting provider, and set up the Jenkins afresh. But I completely forgot about ExperienceMod in the process.
It's up now, though.
As for supporting entities from mods - you could try ExperienceBridgeMod, but I'm pretty sure you have to specify custom entities by type ID.
aadnk sir,
I was going to download the latest dev build of experience mod, but it seems to be missing from your jenkins? I am very interested to see what has changed as I was using it previously in 1.4.7 to a limited degree and was hoping that the updated version might have additional support for entites from mods.
simofie
The latest dev build worked like a charm. I'll continue to use it until you have the "official release".
Thanks!
On a side note: I can't get the groups working right. I'm using the latest PEX with a mysql database and I think I just don't understand how the presets work.
I've tried this method before and it didn't work: In config.yml
?|guest: EXPERIENCE *0.25 ?|vip: EXPERIENCE*0.15
I've also tried this: with presets
/pex group guest set experiencePreset guestPreset /pex group player set experiencePreset guestPreset /pex group player+ set experiencePreset guestPreset /pex group vip set experiencePreset vipPreset /pex group vip+ set experiencePreset vipPreset
Then I copied the config.yml and made vip.yml with everthing the same. config.yml has ?|: EXPERIENCE *0.25 vip.yml has ?|: EXPERIENCE *0.15
I then changed the presets.yml to this: guestPreset: file: - config.yml vipPreset: file: - vip.yml
It throws a null.point error and want to spellcheck the presets.. not sure what I'm doing wrong here. Please advise.
Well, we are using the bukkit-forge: MCPC+ 1.5.2. It probably has similar if not identical coding to spigot since the one who developed mcpc+ and spigot is the same guy (md5).
I'll try your dev build and report with some feedback.
@rsmKaelub
Are you using Spigot, by any chance? I did fix an experience orb problem (caused by eager merging) back in June, and this could be related.
If possible, I'd recommend downloading the developer build. I can push a new minor version to BukkitDev if it corrects the problem.