EvModder / DropHeads

A highly configurable head collecting plugin for Minecraft
GNU Lesser General Public License v3.0
36 stars 28 forks source link

Wither skeleton droprate not as expected #57

Closed retsifp closed 2 years ago

retsifp commented 2 years ago

It looks like there is a bug with wither skeletons. I killed 106 wither skeletons with Looting III, and got 3 skulls. However, with Looting III, I would expect at least 5 heads.

When I run "/droprate wither_skeleton", I get the following output (while holding the Looting III-Sword):

Drop chance for WITHER_SKELETON: 2.5%
Other things affecting the droprate:
Multipliers: SpawnReason, TimeAlive, Weapon,
Vanilla wither_skeleton looting rate is enabled

However, for me, it looks like the last sentence is not the case.

Version: 3.6.13 config:

# How to announce beheadings, options are GLOBAL, LOCAL, DIRECT, or OFF
# To specify per entity, use: "entity_name: '<MODE>'"
behead-announcement:
  default: 'LOCAL'
  player: 'GLOBAL'
#  wither_skeleton: 'OFF'

# Replaces death messages if player behead announcement is GLOBAL
behead-announcement-replaces-player-death-message: true

# The messages used to announce beheading
message-beheaded: '&6${VICTIM}&r was decapitated'
message-beheaded-by-entity: '&6${VICTIM}&r was decapitated by &6${KILLER}&r'
message-beheaded-by-entity-with-item: '&6${VICTIM}&r was decapitated by &6${KILLER}&r'
message-beheaded-by-entity-with-item-named: '&6${KILLER}&r decapitated &6${VICTIM}&r using &7${ITEM}&r'

# Whether to drop heads if not killed by a player
drop-for-nonplayer-kills: false

# Whether to drop heads if killed by a projectile weapon
drop-for-ranged-kills: false

# Whether to drop heads if last-damage-cause is not a valid entity
drop-for-indirect-kills: false

# Only drop player heads (you can also do this in 'head-drop-rates.txt'
# by making all mobs except players have a 0% chance of dropping heads)
player-heads-only: false

# Only drop "simple" mob heads (one per EntityType), without any unique
# texture features based on mob traits or subtype
simple-mob-heads-only: false

# Use pre-JAPPA style heads, from before the Minecraft 1.14 texture update
# https://minecraft.fandom.com/wiki/Texture_Update
use-legacy-head-textures: false

# Whether to keep entity heads updated with the latest vanilla textures
refresh-textures: true

# Whether to reset the item name for a head when refreshing its texture
refresh-item-names: false

# Whether to reset the item lore for a head when refreshing its texture
# This setting is ignored if 'save-custom-lore' is true
refresh-item-lores: false

# When a player changes their skin, should old heads be updated to the
# new texture? Note: to trigger refresh, heads must be mined or dropped
update-on-skin-change: true

# Whether to disable head item stacking (stack to 1 instead of 64)
# Note: Currently only affects custom (non-vanilla) heads
make-heads-unstackable: false

# Track mob spawn reasons, edits drop rates using 'spawn-cause-modifiers.txt'
track-mob-spawns: true

# Enable the mechanic where the first mob killed by a charged creeper's
# explosion will drop its head with 100% probability
# Note: This overrides 'drop-for-nonplayer-kills', but not 'player-heads-only'
charged-creeper-drops: true

# A Minecraft easter egg is that mobs named 'Dinnerbone' or 'Grumm' are
# upside down.. If you want their heads to share this trait, set to true
drop-grumm-heads: true

# Should heads of saddled mobs have altered textures (when applicable)?
drop-saddled-heads: false

# Should skeletal mob heads use hollow textures on the bottom?
# Note: This relies on HD textures, which Mojang might patch
hollow-skeletal-skulls: false

# Should slimes drop semi-transparent heads, similar to their ingame model?
# Note: This relies on HD textures, which Mojang might patch
transparent-slime-heads: false

# Enable plugin auto-updates (checks for new versions and head textures)
# Note: Disable if your console shows DropHeads errors on startup
update-plugin: true

# If this is true, head-textures.txt will be overwritten each plugin update
# Set to false if you want to manually update textures (or set your own)
update-textures: true

# Run in debug mode (prints extra information to console)
debug-messages: false

# If this is set to true, players will not be able to place down head blocks
# unless they are given the 'dropheads.canplacehead' permission
prevent-head-placement: false
prevent-head-placement-message: '&7[&6DropHeads&7]&c No permission to place head blocks'

# Shows information about a head when right-clicked by a player
# Note: The output head-click-info can be configured in translate.yml
head-click-listener: true

# Saves lore of heads in GameProfile when placed (used by some other plugins)
# Only works for player-type heads, eg: won't work for minecraft:creeper_head
# WARNING: This feature is in BETA and is relatively untested
# WARNING: Lore will still get lost if the head is broken by a non-player
# WARNING: This setting overrides 'refresh-item-lores'
save-custom-lore: true

# Corrects custom lore and name when CTRL-copying a placed head in creative
fix-creative-nbt-copy: true

# Displays the type of head (eg: player, mob, HDB) in the head item's lore
# Note: Applies to custom player/mob heads, but not to WITHER_SKULL etc.
show-head-type-in-lore: true

# Adds support for DropHeads-namespaced heads in the vanilla "/give" command
# WARNING: This feature is in EARLY-BETA and may not end up being supported
substitute-dropheads-in-give-command: true

# Only drop heads if the killer used an axe; overrides 'must-use'
must-use-axe: false

# Drop chances are multiplied by this number for each level of looting
looting-multiplier: 1.01

# This number is added to the drop chance for each level of looting
looting-addition: 0.0

# Defer wither skeleton skull handling to vanilla Minecraft
# This bypasses 'head-drop-rates.txt', custom looting multiplier/addition,
# 'must-use-axe', 'drop-for-nonplayer-kills', and other DropHeads settings
# However, it does not bypass permissions such as 'dropheads.alwaysbehead'
vanilla-wither-skeleton-skulls: true

# Replace Zombie_Pigman heads with Zombified_Piglin heads in 1.16+
update-zombie-pigman-heads: true

# If this is false, all heads will be forced to use the player_head type
# This changes the material type of zombie, creeper, skeleton & wither skulls
prefer-vanilla-heads: true

# If this is true, Iron Golems will drop "cracked" heads which can be repaired
# to the normal texture by placing them and clicking on them with iron ingots
cracked-iron-golem-heads: false

# A list of mob heads a player can wear to avoid provoking endermen
endermen-camouflage-heads: []

# How the head item from a beheading should be handled, options are:
# EVENT - add the head to normally dropped loot,
# SPAWN - spawn the head separately from the event,
# PLACE - place the head on the ground if spot is available (within 3 blocks)
# PLACE_BY_KILLER - same as PLACE but checks if killer has build permissions
# PLACE_BY_VICTIM - same as PLACE but checks if victim has build permissions
# GIVE - try to put the head directly into the killer's inventory
# You can do multiple of these in a list; i.e., ['GIVE', 'SPAWN'] will try to
# give a head to the killer, but will drop the item if their inventory is full
head-item-drop-mode: 'EVENT'

head-place-overwrite-blocks: ['AIR', 'WATER', 'GRASS']

# (Optional) Select weapons required to be used in order to get heads to drop
# If this list is empty, any weapon can be used to get heads
must-use:
#  - IRON_SWORD
#  - DIAMOND_AXE
#  - WOODEN_HOE

# (Optional) Let certain tools have a higher chance of beheading
# The number is the percent increase in drop chance when using that tool
# Eg: 0.8 = 80% more likely, -0.1 = 10% less likely, 2.0 = +200%, etc.
specific-tool-modifiers:
  GOLDEN_AXE: 3
  NETHERITE_AXE: 1
  DIAMOND_AXE: 0.8
  IRON_AXE: 0.6
  STONE_AXE: 0.4
  WOODEN_AXE: 0.2
  SHEARS: 2
  DIAMOND_SWORD: 0.2
  IRON_SWORD: 0.1

# (Optional) Modify head drop chance based on how long a mob has been alive
# Format is "X: V", where if the mob has been alive for X or more time, then
# the drop rate is increased by V percent (similar to above; can be negative)
time-alive-modifiers:
#  0s: -0.9
  1m30s: -0.5
  5m: 0
  2h: 0.1
  1d: 2.0
  1w: 3.0
  30w6d11h55m33s: 10.0

# Changes the death "Event Priority" that DropHeads registers at
# Low values => DropHeads runs BEFORE other plugins; high values => runs AFTER
# Possible values: [LOWEST, LOW, NORMAL, HIGH, HIGHEST, MONITOR]
death-listener-priority: LOW

# Set drop chance multipliers for custom permission groups
custom-droprate-multiplier-permissions:
#  dropheads.group.droprate2x: 2.0
#  dropheads.group.droprate150percent: 1.5

# Attempt to replace headA with headB whenever possible (server-wide)
# The head on the left is replaced with the one on the right when updated
replace-heads:
  'PIG_ZOMBIE': 'ZOMBIFIED_PIGLIN'
#  'ILLUSIONER': 'VILLAGER|FLETCHER|SWAMP'

# Whether to enable logging for certain events
log:
  enable: true
  filename: 'dropheads-log.txt'
  log-mob-behead: true
  log-mob-behead-format: '${TIMESTAMP},mob decapitated,${VICTIM},${KILLER},${ITEM}'
  log-player-behead: true
  log-player-behead-format: '${TIMESTAMP},player decapitated,${VICTIM},${KILLER},${ITEM}'
  log-head-command: true
  log-head-command-format: '${TIMESTAMP},gethead command,${SENDER},${HEAD}'
EvModder commented 2 years ago

I think for 106 kills, getting 3 heads instead of the expected 5 is not that far outside the normal distribution (in other words, statistically it seems more likely it was just a streak of bad luck rather than a droprate issue).

(Sorry it took me 2 weeks to respond to this -- if you've gathered more data in this time LMK, because if the rate still looks that low with 1000+ kills then it starts to become much more suspicious)

retsifp commented 2 years ago

That's not how one should deal with serious bug reports.