Description
§4𝕀𝕟𝕥𝕠 𝕆𝕓𝕝𝕚𝕧𝕚𝕠𝕟 — v2 REWRITE UPDATE
A Herobrine Horror Add-On for Minecraft Bedrock Edition
by matmath_asosocer
«"He was never supposed to exist. He has no name in any record. No origin. No purpose. But he found your world. And now he will never leave."»
Overview
Into Oblivion is a full psychological horror add-on for Minecraft Bedrock Edition. This is not a skin swap or a simple mob replacement. Herobrine in this add-on watches, follows, and escalates — and no matter where you go, the Overworld, the Nether, or the End — he will always find you.
This update is a complete rewrite of the AI, animation, sound, and event systems. Everything was rebuilt from the ground up to fix bugs, eliminate lag, and create a far more unsettling and immersive experience.
Features
- 111 Unique Stalking Behaviors — Herobrine's AI selects from a pool of 111 context-sensitive movement modes. What he does underground is different from what he does at night, in the Nether, in caves, or across multiple visits. He never repeats himself.
- Pure Presence AI — No aggro meter. No random attacks. Herobrine stalks. He circles, watches, approaches, retreats, and returns. He only becomes aggressive if you strike him directly.
- 121-Event Atmospheric System — A tiered event pool with 121 entries that unlock as your encounter count rises. Footsteps, distant breathing, doors opening alone, signs with no author, torches going out, world corruption. Events escalate over time.
- 3 Difficulty Subpacks — Choose Normal, Balanced, or Aggressive directly in the pack settings. Each subpack changes his distance, cooldowns, visit frequency, event rate, and mode aggression.
- Custom Fog System — Three tiers of fog that respond to his phase. Stalking fog dims the horizon. Enraged fog closes visibility to 12 blocks.
- Dimension Following — Change dimensions and he follows. Every time.
- World Corruption — Netherrack pillars, obsidian rings, signs, ground corruption, torches extinguished near him. The world changes around you as visits accumulate.
- Knocker Events — Footsteps, scratching, door rattling, breathing — all triggered randomly when he's nearby.
- Sleep Haunting — He approaches while you sleep. He will not let you rest in peace.
- Phase-Based Speed — Slow and deliberate while stalking. Faster when night falls. Sprint speed when enraged.
- Structure Spawning — Pyramids, ritual rings, wooden crosses, and glowstone figures appear near his position as visits deepen.
The Stalking System
Herobrine does not chase you. He studies you.
His AI tracks your position history, movement direction, whether you're running or still, your depth underground, the time of day, and which dimension you're in. He uses all of this to pick the mode most likely to unsettle you in that exact moment.
Mode Examples
Mode| Behavior Oblivion Stare| Teleports directly into your line of sight — vanishes the moment you look at him Void Pull| Slowly closes distance from 22 blocks to 6 over the entire visit Fog Ghost| Weaves through your field of view in a sine-wave pattern, always close, never catchable Frozen Silhouette| Stands completely still at the edge of your peripheral vision Death Stare| Locks position and holds unbroken eye contact without moving Shadow Blink| Teleports to your flanks every few seconds instead of walking Gravity Well| Orbital physics — pulled in when too far, pushed back when too close Silent Apex| Appears directly overhead — vanishes instantly if you look up Hunger Approach| Closes distance relentlessly as visit count increases Consume| Approaches to within 8 blocks, then retreats — repeating endlessly Fracture| Cycles through four angular positions relative to your view direction Last Light| Circles behind you, switching sides rhythmically Predator Circle| Orbits you tightly, always in your peripheral vision Rear Approach| Approaches only while you are moving forward, stops the moment you turn Unravel| Expanding and contracting orbit that never settles
Mode selection is weighted by context. Underground he favors close, claustrophobic modes. At night he favors silhouette and stare modes. While you run he chases from behind. While you stand still he creeps closer.
The Event System
While Herobrine is present, atmospheric events fire from a pool of 121 entries across four tiers.
Tier| Unlocks At| What Happens Tier 0| Visit 1| Subliminal sounds only — footsteps, breathing, faint cave ambience, distant mob sounds at 2–10% volume Tier 1| Visit 2| World edits begin — torches go out, signs appear, obsidian rings form. Atmospheric subtitles appear occasionally Tier 2| Visit 5| Combined events — corruption + subtitle, fog pulse, warden sounds, dimension-specific events Tier 3| Visit 9| Multi-system events — world burns + message, full corruption sequences, enderman chorus over 90 ticks
Events are weighted. Common atmospheric sounds fire often. World-altering events fire rarely, and only on higher tiers. Nothing destroys your inventory or kills you through events.
Difficulty Subpacks
Select in Pack Settings when applying the behavior pack.
Setting| §aNormal| §eBalanced| §cAggressive First appearance| 6 min| 3 min| 1.5 min Visit cooldown| 10–18 min| 5–10 min| 3–6 min Preferred distance| 36–65 blocks| 26–48 blocks| 18–38 blocks Cave distance| 14–26 blocks| 9–18 blocks| 5–14 blocks Gaze vanish| 4s stare| 2.7s stare| 1.7s stare World events| ~every 4 min| ~every 100s| ~every 60s Mode duration| 1200–3200t| 500–1200t| 300–800t
Normal is fully casual-game compatible. Herobrine appears occasionally, stays far away, and mostly just watches. Aggressive is relentless — he is always close, always present, always escalating.
Custom Fog System
Fog| Visibility| Trigger "fog_stalk"| 44 blocks| Active from visit 2 onward "fog_enraged"| 12 blocks| Active when Herobrine is struck "fog_clear"| Default| Clears on death, respawn, or visit end
Installation
Download the add-on file.
Depending on your browser or device, the file may download as a ".zip" archive instead of ".mcaddon".
If the file downloaded as ".zip", rename it to ".mcaddon".
Example:
into_oblivion.zip → into_oblivion.mcaddon
Open the ".mcaddon" file — both packs install automatically.
Activate both packs in your world settings.
Go to World Settings → Experiments and enable Beta APIs.
Set difficulty to Normal or Hard.
Enter the world — he will find you.
Manual summon: "/summon herobrine:herobrine"
Requirements
| Platform| Minecraft Bedrock Edition 1.21.0+ Experiments| Beta APIs must be enabled Difficulty| Normal or Hard Multiplayer| Fully supported
FAQ
He's not spawning. Make sure Beta APIs are enabled and difficulty is Normal or Hard. Natural spawning is disabled — he only appears via the scripted visit system after a short delay.
He stopped moving. Intentional. Many stalking modes keep him completely still. Check your peripheral vision and behind you.
The fog won't clear. Fog clears on respawn or when the visit ends. It will lift on its own.
He's moving too fast / too slow. Change the difficulty subpack in pack settings. Try Normal for a slower, more distant experience.
Can I use this in a video or on my server? Yes. Credit matmath_asosocer and link back to this page.
Credits
Created entirely by matmath_asosocer. Original Herobrine texture and model from the pamobile asset. All scripting, AI, fog design, and mcfunction authoring by matmath_asosocer.
He is already in your world. He has been here this whole time.
📋 Changelog
v2.0 — Complete Rewrite (Current)
«The old system is gone. Everything was rebuilt.»
New — AI Overhaul
- 111 stalking modes — up from an unstructured single-function system. Every behavior is now a named, purposeful function with its own movement logic, context conditions, and duration range
- Added 24 new Into Oblivion-themed modes including "oblivionStare", "fogGhost", "voidPull", "eclipse", "shadowBlink", "nullZone", "obsidianTower", "lastLight", "ascent", "fracture", "infiniteHorizon", "gravityWell", "oblivionEdge", "phaseOut", "consume", "mirrorVoid", "absorption", "crumble", "unravel", "silentApex", "netherrackTrace", "endlessWatch"
- Mode selection is fully weighted and context-sensitive — underground, nether, end, night, running, still, early/late visit counts all shift the probability pool independently
- Mode durations tuned per-category: short modes 80–200t, default 300–800t, long modes 800–1600t (Aggressive subpack)
- Herobrine now tracks player position history, movement direction, descent rate, run state, and base coordinates to inform mode selection
New — 121-Event Atmospheric System
- Replaced the old 16-branch "worldEventTick" with a weighted pool of 121 events across 4 tiers
- Tier 0 (37 events): pure ambient sound — footsteps, breathing, wrong-direction mob sounds at 2–12% volume
- Tier 1 (45 events): world edits + atmospheric subtitles — signs, torches, obsidian rings, knocker functions
- Tier 2 (65 events): combined events — warden sounds, dimension-specific triggers, sound + subtitle + world edit sequences
- Tier 3 (73 events): multi-system combos — full corruption + fog sequences, 90-tick enderman chorus, burn + subtitle
- Events fire through a weighted random pool rather than a flat "roll < X" chain — common sounds weight 10, rare world events weight 2–3
New — Difficulty Subpacks
- 3 selectable subpacks available via the gear icon in pack settings
- "§aNormal" — passive, distant, casual-game compatible
- "§eBalanced" — default experience (what the base pack uses when no subpack is selected)
- "§cAggressive" — relentless close-range pressure with short cooldowns and fast mode cycling
Bug Fixes
- Fixed: "isValid()" called as method — was "hb.isValid()" (throws error), corrected to "hb.isValid" (property)
- Fixed: "master_tick.mcfunction" fighting the JS AI — was teleporting Herobrine 20× per second via tick.json, causing constant stuttering as it conflicted with every JS-controlled position update. Emptied — all positioning is now JS-only
- Fixed: "random_stroll" overriding all 111 modes — both stalking phases had "minecraft:behavior.random_stroll" active, causing Herobrine to pathfind to random positions and completely ignore every JS stalk mode. Removed from both phases
- Fixed: Walk animation permanently frozen — "variable.gliding_speed_value" was never initialized before being used as a divisor in the pre_animation script. Division by undefined produced NaN → "Math.clamp(NaN)" returned 0 → the variable driving the entire walk animation was always 0. Initialized to "0.1"
- Fixed: "arm_controller" referencing vanilla controller — "controller.animation.iron_golem.arm_movement" does not exist for custom entities, throwing silent errors every frame. Removed from the animate list
- Fixed: Iron golem render controllers — "controller.render.iron_golem_cracks" was applying health-based crack texture overlays designed for iron golem sprites that do not exist on the Herobrine texture, causing visual artifacts. Replaced with a dedicated "controller.render.herobrine_herobrine"
- Fixed: All step() movement speeds — 49 step calls were set to 0.7–2.2 blocks per call. At 6-tick intervals this produced instant teleport appearance rather than visible walking. Normalized to 0.04–0.42 blocks per call producing proper walk, jog, and run pace
- Fixed: Duplicate death sound — "events/on_death" function played the death sound AND the BP animation controller "herobrine.death" state played the same sound simultaneously. Removed the duplicate from the animation controller
- Fixed: Natural spawn rules bypassing visit system — weight 3 with overworld surface and underground conditions caused Herobrine to randomly spawn alongside normal mobs, completely bypassing the scripted visit/cooldown system. Set conditions to "[]"
- Fixed: RP "min_engine_version" mismatch — resource pack declared "[1, 17, 0]" while behavior pack required "[1, 21, 0]". Updated to match
- Fixed: Duplicate "trailGhost" key in pickMode weight dict — second entry silently overwrote the first weight value
- Fixed: "on_target_acquired" broken selector — contained "execute as @e" with no type filter, attempting to iterate every entity in the world. Replaced with correct targeted commands
- Fixed: "standing_sign" invalid block name — pre-1.21 block identifier. Corrected to "oak_sign"
- Fixed: "stalk_event" scheduled but empty — registered at weight 10, firing every 14–22s, but contained no commands. Now calls "world/extinguish_torches"
- Fixed: Double inner "execute as @e" in stalk functions — "face_player", "creep_closer", "shadow_shift" were wrapping commands in a redundant inner entity selector despite already executing in entity context. Removed
- Fixed: "@minecraft/server-ui" phantom dependency — declared in BP manifest but never imported. Removed
Cleanup
- Removed 12 foreign animation controllers (nethercat, dinosaur species, rhinoceros) from "custom.animation_controllers.json"
- Removed 200+ foreign lang entries ("pa:", "lamborghini:", "animal:") from "en_US.lang" — Herobrine now has correct name and spawn egg labels
- Removed 23 foreign item texture atlas entries from "item_texture.json"
- Removed unused "pabullet.json" and "patnt.json" entity models
- Emptied unused "controller.render.fish" and "controller.render.translucence" render controllers
- Replaced all entity sounds from iron golem to enderman at appropriate low atmospheric volumes
- Removed "metadata/generated_with" from both manifests (was causing engine warnings)
- Corrected "resource_pack_name" fields to ""herobrine"" in both texture atlas files
v1.1 — Bug Fix Update
- Fixed balanced spawn rules
- Added structure spawning (pyramids, ritual rings, wooden crosses, glowstone figures)
- Herobrine can now properly despawn at visit end
- Minor stability fixes
v1.0 — Initial Release
- First public release of Into Oblivion
- Basic Herobrine stalking AI
- Custom fog system
- Dimension following
- World corruption events
- Knocker sound events
Created by matmath_asosocer · Minecraft Bedrock Edition 1.21.0+


