Stray
Registry name
etfuturum:stray
Audit correction: previously written as
etfuturum.stray(wrong separator). Evidence:core/proxy/CommonProxy.java:224registerEntity(EntityStray.class, "stray", 5, ...)
Basic info
-
Health: Inherited from
EntitySkeleton(standard skeleton health: ~20 HP) -
Armor: Inherited from
EntitySkeleton -
Size: Inherited from
EntitySkeleton(standard) -
Spawn conditions: No natural spawn is registered by default.
EntityRegistry.addSpawn(EntityStray.class, ...)sits inside anif (ConfigWorld.oldStraySpawning)block and that flag defaults to false (configuration/configs/ConfigWorld.java:203), so with default settings strays never spawn naturally — spawn egg / commands only.When
oldStraySpawning = true: in allBiomeDictionary.Type.SNOWYbiomes vanilla skeleton spawn is removed and replaced byEntitySkeletonweight 20 +EntityStrayweight 80, both group 4–4 — strays are 80% of skeleton spawns in snowy biomes. Evidence:core/proxy/CommonProxy.java:225-231.Audit correction: the previous text said “cold/snowy biomes; same spawn rules as skeleton” — it omitted both the 80:20 weight split and the default-off state.
Configuration gate
- Entity registration:
ConfigEntities.enableStray, keyenableStrays, default ON (ConfigEntities.java:60). - Natural spawning:
ConfigWorld.oldStraySpawning, default OFF (ConfigWorld.java:203) → no natural strays by default. Forced ON when OptiFine is detected (CommonProxy.java:200-203). - Drops:
- Arrows: 0–3 (+ fortune)
- Bones: 0–3 (+ fortune)
- Bow (always equipped)
- Behaviour: Skeleton variant with Slowness箭. Overrides ranged attack to fire
EntityTippedArrowwith Slowness effect instead of normal arrows.
Key differences from Skeleton
| Feature | Stray | Skeleton |
|---|---|---|
| Arrow type | EntityTippedArrow (Slowness) |
Normal EntityArrow |
| On hit (melee) | Applies Slowness (140 × difficulty ticks) | Nothing |
| Ambient sound | minecraft:entity.stray.ambient |
minecraft:entity.skeleton.ambient |
| Step sound | minecraft:entity.stray.step |
minecraft:entity.skeleton.step |
| Halloween costume | Can wear pumpkin | Same |
Ranged attack
- Uses
EntityTippedArrowshot from bow - Arrow carries Slowness potion effect
- Arrow damage:
baseDamage × 2 + random_gaussian + difficulty × 0.11 - Enchantments (Power, Punch, Flame) apply normally
- Arrow entity uses
ModItems.TIPPED_ARROWNBT for the potion data
AI tasks
- Swimming
- Restrict sun (stays in shade)
- Flee sun
- Wander
- Watch closest player
- Look idle
- Arrow attack (task 4, added at spawn via
onSpawnWithEgg) - Target: hurt-by-target
- Target: nearest player
Notes
- Extends
EntitySkeleton— inherits full skeleton attributes, AI, equipment, etc. setCombatTask()called on init: swaps AI to useEntityAIArrowAttack- Spawn egg returns skeleton egg via
ModEntityList.getEggFromEntity addRandomArmor()calls super then forces bow in main handdropFewItemsoverride: arrows + bones only (no bow drop)