EuForia Bedrock POV

Minecraft Bedrock's camera system is powerful — but only if you know exactly what you're doing. The /camera command gives you raw control over position, rotation, easing, and facing direction, but it's entirely manual. Want a smooth cinematic orbit? You're calculating trigonometric functions by hand. Want a shoulder follow cam? Good luck getting the easing curves right without trial-and-error.


For years, Bedrock storytellers, mapmakers, and content creators have been piecing together camera setups with command blocks, scoreboard timers, and spreadsheets full of coordinates. It works — but it's painful.


EuForia Bedrock POV is our answer. It's a complete camera presets system for Minecraft Bedrock Edition — 33 hand-crafted presets across 6 categories, a smart per-type customizer, per-player memory, favorites, and instant switching. Open the menu with /pov and tell your story. All built on the stable Scripting API — no command blocks, no redstone clocks, no spreadsheets.

✅ Achievement-Friendly — product_type: addon

🌐 euforiaproject.com  |  💬 Join our Discord

// KNOWN_LIMITATION

⚠️ Camera Conflict Warning

EuForia Bedrock POV drives every preset through the native /camera command. Bedrock only allows one custom camera state to exist at a time — there is no stacking, no layers, no blending. Last writer wins.

Will It Conflict With Other Addons?

Yes — potentially. Any addon that also issues /camera commands will overwrite POV's active preset. If multiple sources fight over the camera:

  • ❌ Overwrites: The last writer wins — your cinematic preset is silently replaced
  • ❌ Stale indicator: The actionbar may still show the old preset name even though the camera state has changed
  • ❌ Silent failure: No error is thrown — the camera simply isn't where you left it

Mitigation Strategies

StrategyHow
Re-apply via /povWhenever another addon or a manual /camera command changes the camera state, just open /pov and apply your preset again
Don't stack camera addonsAvoid running other camera-controlling behavior packs alongside POV during cinematic shots
Check before installingReview your active behavior packs — if any issue their own /camera commands, expect conflicts

Other Known Limitations

  • F5 perspective switch: Manually switching perspective via F5 exits Bedrock's custom camera mode entirely — the active preset is disabled until you re-apply it from /pov
  • No emoji rendering: All UI strings are intentionally text-only — Minecraft Bedrock does not render emoji characters
  • Preset sharing: Import/export of custom presets between players or worlds is planned for a future update
Bottom line: If EuForia Bedrock POV is the only thing touching your camera, you're fine. If you run it alongside other addons or scripts that issue /camera commands, you will see conflicts — last writer wins. Plan accordingly.
// FEATURE_SET

What It Does

The entire system lives behind the /pov command, which opens a GUI menu with six core features:

[+] Quick Switch

  • Instant perspective toggles: First Person, Third Person Back, Third Person Front, Reset Camera
  • Zero delay: Runs the corresponding /camera command immediately
  • Saves state: Your recent quick switch is remembered per-player for reapply on join

[O] Preset Categories

  • 33 hand-crafted presets across 6 curated categories — Cinematic (8), Action (6), Artistic (5), Utility (4), Fun (5), Special (5)
  • Preset detail view: See the full config (mode, type, distance, height, FOV, easing, tick interval, orbit params) before applying
  • Favorite toggle: Star any preset for quick access from the Favorites list
  • Duplicate: Copy any built-in preset as a starting point for your own custom preset

[@] Smart Customizer

  • 2-step wizard: Pick a camera type → see only the sliders relevant to that type
  • Per-type sliders: Follow/Fixed/Drone get Distance + Height + Lateral; Orbit gets Radius + Speed + Height; Topdown gets only Height
  • 12 easing curves: Linear, Smooth, Snap, Dramatic, Organic, Overshoot, Bouncy, Springy, Ease-Out variants
  • Facing modes: Player (camera always faces you), Forward (faces your look direction), World (fixed world rotation)
  • Freeze toggles: Lock pitch and/or yaw independently (available for non-player facing modes)
  • Save limit: Up to 20 custom presets per player, validated (name required, max 32 chars, no duplicates)

[=] Favorites & My Presets

  • Favorites: Star up to 20 presets for one-tap access
  • My Presets: View, edit, delete, and apply your own custom presets
  • Per-player persistence: All data stored via player.setDynamicProperty() — survives world reloads and stays private to you

[#] History

  • Recently applied presets are remembered per-player
  • One-tap restore: Jump back to the camera angle you were last using instantly

[~] Settings

  • Default on Join: "None" (start fresh) or "Last Used" (auto-reapply your last active preset)
  • ActionBar indicator: Toggle the active POV name display in the actionbar
// TECH_STACK

Technology Stack

Behavior Pack (EuForia Bedrock POV [BP])

ComponentTechnologyVersion
RuntimeMinecraft Bedrock Scripting API@minecraft/server 2.8.0 (stable)
UI RuntimeMinecraft Bedrock Server UI@minecraft/server-ui 2.1.0
LanguageJavaScript (ES Modules)
Entry Pointscripts/main.js88 lines, thin lifecycle orchestrator
Architecture8 modular files — strict separation of concerns, 1,733 lines total

Key APIs used:

  • player.dimension.runCommand() — camera command execution (workaround for removed Player.runCommand)
  • player.camera.setFov() — FOV control via the Camera API
  • Player.location, Player.getRotation(), Player.getViewDirection() — camera math inputs
  • system.runInterval() — tick loop for dynamic and immersive modes
  • ActionFormData, ModalFormData, MessageFormData — all UI forms
  • player.setDynamicProperty() / world.setDynamicProperty() — all persistence
  • player.onScreenDisplay.setActionBar() — active POV indicator
  • customCommandRegistry.registerCommand()/pov command registration

Camera Math Implementation Detail

// front_follow: camera in front of player (+viewDir), yaw-based horizontal offset
const yawRad = rotation.y * (Math.PI / 180);
const fwdX = -Math.sin(yawRad);
const fwdZ = Math.cos(yawRad);
camX = loc.x + fwdX * cnf.distance + fwdZ * cnf.lateral;

Uses yaw-based body direction (not viewDir) for horizontal positioning so the offset stays consistent even when looking straight up or down — critical for bodycam and dancer cam presets.

Resource Pack (EuForia Bedrock POV [RP])

ComponentTechnology
Localizationtexts/en_US.lang
UI System100% code-driven via @minecraft/server-ui (no JSON UI files)

Module Architecture

EuForia Bedrock POV/
├── behavior_pack/
│   ├── manifest.json              (BP manifest)
│   └── scripts/
│       ├── main.js                (88 lines — entry, lifecycle, command registration)
│       ├── constants.js           (110 lines — colors, slider presets, storage keys)
│       ├── commands/
│       │   └── pov.js             (615 lines — full UI hub, customizer wizard)
│       └── core/
│           ├── camera-engine.js   (291 lines — camera math, tick system, NaN safety)
│           ├── database.js        (152 lines — world/player dynamic property CRUD)
│           ├── form-builder.js    (149 lines — ActionForm, ModalForm, MessageForm helpers)
│           ├── messenger.js       (46 lines — player feedback: actionbar, chat, sounds)
│           └── preset-library.js  (282 lines — 33 hand-crafted presets across 6 categories)
│
└── resource_pack/
    ├── manifest.json               (RP manifest)
    ├── pack_icon.png
    └── texts/
        └── en_US.lang              (localization strings)

Manifest Features

  • Achievement-compatible: "product_type": "addon" metadata preserves world achievements
  • Min engine: 1.21.100+
  • No experimental features required
// ENGINEERING_NOTES

Challenges Resolved

Developing this addon required navigating several Bedrock Scripting API pitfalls. Here's what we learned:

Player.runCommand Removed

Player.runCommand() and Player.runCommandAsync() were removed in @minecraft/server 2.0.0. All camera commands now run through player.dimension.runCommand() with @s resolved to the player's quoted name.

NaN / World Border Bug

Missing config properties produce NaN in camera math → Bedrock interprets NaN coordinates as the world border (~30M blocks). Solution: two-layer defense#safeConfig() defaults every numeric field before use, and #exec() string-rejects commands containing "NaN" or "Infinity". You will never fly to the world border.

ModalForm API Breakage (2.8.0)

form.slider() and form.toggle() changed from positional arguments to an options-object pattern — and the slider's defaultValue inside the options object is silently ignored by the runtime. Resolution: a hybrid approach — dropdown and textField use the new options-object format, while slider and toggle use the old positional format for reliability.

Easing Overlap & Stutter

Immersive mode with high tickInterval values (5, 8, 15) caused large position deltas per update → easing interrupted at ~50% completion → rubber-banding stutter. Fix: all immersive presets run at tickInterval: 1 — small deltas per tick make easing restarts imperceptible.

// TARGET_AUDIENCE

Who This Is For

  • 🎬 Content creators — Cinematic shots without command blocks. Drone sweeps, tracking shots, Dutch angles, pans — all at the press of a button
  • 🗺️ Mapmakers — Dramatic establishing shots, hero entrances, and transition cameras for adventure maps
  • 🎮 Casual players — Switch to third-person shoulder cam, selfie mode, or top-down tactical view instantly
  • 🖥️ Roleplayers — Bodycam POV, interview angles, dancer cam — perfect for immersive roleplay scenes
  • 🔧 Addon developers — Study the preset system as a reference architecture for modular Minecraft Scripting API projects
// SETUP_GUIDE

Installation

  1. Download the Addons .mcaddon (or the separate Behavior Pack and Resource Pack .mcpack files) from euforiaproject.com.
  2. Open the file — Minecraft Bedrock imports it automatically into your library.
  3. Open or create a world, navigate to World Settings → Add-Ons, and activate EuForia Bedrock POV [BP] under Behavior Packs.
  4. Activate EuForia Bedrock POV [RP] under Resource Packs.
  5. Load the world and run /pov to open the camera menu!

To remove, deactivate both packs from the same Add-Ons menu.

// ROADMAP

What's Next?

This is V.1.0.0 — the foundation. Future updates we're considering:

  • Keyframe sequences — Chain presets together for automated camera routes
  • Timeline editor — Visual timeline for sequencing camera movements
  • Preset sharing — Export/import custom presets as strings or files
  • Per-player FOV slider — Let each player fine-tune the field of view independently
  • Smooth transition blending — Crossfade between presets for professional scene transitions
// LICENSE_INFO

License

Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

✅ What You Can Do

  • Use this addon in your own worlds, servers, and content
  • Modify, remix, and build upon it for personal or community projects
  • Share it with friends, communities, and players

❌ What You Cannot Do

  • Sell it, bundle it in paid products, or use it for commercial monetization
  • Re-upload it as-is (direct rehost) on CurseForge, MCPEDL, or any other platform — substantial modification and added value are required before redistribution

📋 Attribution Policy

By downloading and using EuForia Bedrock POV, you are automatically considered to have given appropriate credit. You do not need to write out attribution text or include a credit line — using the addon is credit enough.

📄 Full license terms: creativecommons.org/licenses/by-nc/4.0/

// COMMUNITY

Feedback & Community

Found a bug? Have a feature request or an idea for a new camera preset? We would love to hear from you.

💬 Join our Discord

Drop your suggestions, bug reports, or just say hello — the EuForia community is always open.

"Every camera angle tells a story.
We built the tool so you can focus on telling yours."

— EUFORIA_PROJECT
// GET_STARTED

📥 Download

Minecraft Bedrock 1.21.100+  ·  CC BY-NC 4.0  ·  Achievement Friendly