Skip to content

VFXWeaver API

Cinematic VFX library for Minecraft (Fabric & NeoForge): screen post-processing, camera shake, world/entity overlays, in-game screen images and click-through desktop picture windows - from datapacks or a Java API.

FabricNeoForge
Loaders
FabricNeoForge
Downloads on Modrinth
1.8K
Followers on Modrinth
21
versions
88
Updated
October 22, 2026Oct 22
Published
in 2026
This is a library — other mods need it, and it adds nothing to the game by itself
Entity & Block Outlines & Vortex — Dynamic entity_outline, block_tint overlays applied to 3D models. The custom blocks featured are from the Analog mod. · swipe

At a glance

A library: other mods need it
Runs on Fabric and NeoForge
For Minecraft 1.21.11–26.2
Needed in the game; optional on the server
Latest version — 2.5.0 from October 22, 2026
License MIT — free
Where it's needed
In gamerequiredOn serveroptional

Needed in the game; optional on the server

Game versions1.21.11–26.2

A client-side VFX library/API for Minecraft 26.2, 26.1.x and 1.21.11 (Fabric and NeoForge). Drop-in cinematic effects — screen post-processing, camera shake, block/entity overlays, in-game screen images and real desktop picture windows — either from chat commands, from datapacks, or programmatically from your own mod through a tiny Java API.

Author: Artition · License: MIT


What it does

  • 30+ post-processing effects rendered through a ping-pong FBO (fullscreen, per-pixel shaders): chromatic aberration, color grading, distortion, dent, gradient map, posterize, blur, pixelate, hue isolation, vignette, screen flash, motion blur, bloom, film grain, scanlines, depth of field, letterbox, invert, vortex, speed lines, slice shift, noise warp, solarize, double vision, eyelids, iris wipe, digital glitch, VHS, shockwave, afterimage, stop motion, and the world/sky texture patterns.
  • Screen images — screen_image draws a picture (a resource-pack PNG with an optional .mcmeta animation, or an image a mod registers) over the game frame at a chosen screen layer: under the GUI, above the hand, or over everything including chat and hotbar.
  • Desktop picture windows — window_create / window_control open a real frameless, transparent, click-through window on the desktop and show a picture in it; move, resize, fade and retitle it by name. Neither is a post-processing pass nor world geometry.
  • Camera effects — simplex-noise shake with a smooth envelope, dutch-angle roll, FOV modifier.
  • World overlays — block_tint / block_outline (world-space geometry), light_beam, pulse_ring, guide_line, particles and block_chain.
  • Entity effects — entity_tint / entity_outline / entity_displace applied to entities by UUID (second-pass model render, texture-aware).
  • Datapack-defined effects — plain JSON, no code. Keyframe animation, easing curves, world/camera/player bindings, math expressions, collections, sounds.
  • Server → client triggers — effects fired from a server command, or from your own mod over the network.
  • Public Java API for other mods (VFXAPI), including registerImage to show an image your own mod renders.

Requirements

Minecraft26.2, 26.1.x, 1.21.11
LoaderFabric (>= 0.18.4 on 26.x / >= 0.17.3 on 1.21.11) or NeoForge
Fabric APIrequired on Fabric
Java25+

Effect types

Screen post-processing

EffectWhat it does
chromatic_aberrationRGB channel separation toward the screen edges
color_gradeSaturation / contrast / brightness + tint
distortionBarrel / pincushion distortion of the screen
dentLocal radial (or line) warp around a point / segment
gradient_mapMaps luminance into a two-color gradient (linear or hard threshold)
posterizeReduces the number of colors (clean quantization)
blurTwo-pass Gaussian blur
pixelatePixelation
hue_isolationKeeps one hue, the rest goes grayscale
vignetteDarkens / colors the screen edges
screen_flashFullscreen color overlay
motion_blurDirectional blur from camera rotation speed
bloomGlow around bright areas
film_grainAnimated film grain
scanlinesCRT bands drifting across the screen
depth_of_fieldTilt-shift: sharp band, blur away from it
letterboxCinematic bars top/bottom
invertInverts the screen
vortexSwirls pixels into a funnel around a point
speed_linesSpeed lines from the screen borders toward a point, random length per line
slice_shiftA straight line slices the frame; the halves slide along it
noise_warpAnimated value-noise field warps the picture in fluid patches
solarizeBright pixels invert, dark stay untouched
double_visionTwo ghost copies of the frame with a slow drift
eyelidsTwo soft curved dark lids slide in from top and bottom
iris_wipeOld-film iris transition: everything outside a circle goes black
digital_glitchBand tearing + RGB split in gated bursts
vhsWorn tape: tracking band, wobble, colour bleed, washed contrast
shockwaveA refraction ring ripples outward from a point
afterimageDecaying history echo — trails linger in a feedback buffer
stop_motionThe picture updates only a few times per second
surface_patternA shape/texture projected onto the surface behind the pixel (screen layer 0)
sky_patternA shape/texture drawn on the sky dome

Screen images & desktop windows

EffectWhat it does
screen_imageDraws a picture over the game frame at a chosen screen_layer
window_createOpens a click-through picture window on the desktop
window_controlMoves, resizes, fades and retitles an existing window by name

Camera

EffectWhat it does
camera_shakeSimplex-noise shake with smooth envelope
camera_rollDutch-angle tilt with optional sinusoidal wobble
fov_modifierField-of-view change

World overlays — block_tint, block_outline, light_beam (soft vertical column), pulse_ring (expanding ring), guide_line (dashed parabola arc), particles (vanilla particles in animated shapes), block_chain (real block-model links) Entity effects — entity_tint, entity_outline (by UUID), entity_displace (per-vertex displaced echo)


Quick start

All mutating commands require operator rights (/vfx list is open to all).

/vfx play vfxweaver:screen_flash
/vfx play vfxweaver:speed_lines {count:80, length:0.8, seed:"t * 2.0"}
/vfx play vfxweaver:screen_image {texture:"vfx_demos:textures/vfx/screen_anim", size_w:0.3, size_h:0.3}
/vfx playat vfxweaver:block_outline 100 64 200
/vfx playentity vfxweaver:entity_outline @e[type=!player,distance=..10]
/vfx stop vfxweaver:speed_lines
/vfx set vfxweaver:motion_blur {intensity:0.8}     # live override a running effect
/vfx list

Datapack effects (no modding)

Drop a JSON into `data//vfx/.json, run /reload, and the effect id is :`:

{
  "type": "speed_lines",
  "duration": 60,
  "easing": "ease_out_cubic",
  "params": {
    "count": 80,
    "length": { "expr": "0.4 + 0.4 * t" },
    "seed": { "expr": "t * 2.0" },
    "intensity": 1.0
  }
}
  • Animated params via keyframes (t = 0..1 progress) or math expressions over player state (health, hunger, speed, light level, time of day, position).
  • World/camera/player bindings (bind: screen_x, bind: proximity, ...) so effects follow the world instead of the screen.
  • Collections — play several child effects with per-child delays.
  • Definitions sync automatically to clients on join and after /reload on dedicated servers.

Java API (for other mods)

Static entry point dev.vfxweaver.api.VFXAPI — a one-liner per call.

// Server → client
VFXAPI.sendEffect(serverPlayer,
    Identifier.fromNamespaceAndPath("vfxweaver", "screen_flash"),
    Map.of("intensity", 0.8F), null);

// With a world anchor (block/entity effects follow the position)
VFXAPI.sendEffect(player, effectId, somePos, Map.of(), null);

// Locally on the client (no packet)
VFXAPI.playEffect(Identifier.fromNamespaceAndPath("vfxweaver", "camera_shake"),
    20, Map.of("amplitude_x", 0.2F), null);

// Show an image your own mod renders (ARGB pixels), anywhere a texture id is accepted
VFXAPI.registerImage(Identifier.fromNamespaceAndPath("mymod", "textures/hud/icon"),
    width, height, argbPixels);

// Stop / live-tune
VFXAPI.sendStop(player, effectId);
VFXAPI.sendSetParam(player, effectId, "intensity", 0.3F);
VFXAPI.sendKeyframe(player, effectId, "intensity", 10, 1.0F, EasingType.EASE_OUT_CUBIC);

The network layer (vfxweaver:vfx_trigger) is protocol-versioned; the client silently ignores packets with an incompatible version. Full API, packet layout and definition-registry access are documented in the repo's docs/API.md.


Docs

Commands, effect params, datapack format, bindings — the full usage guide is in the project repo. Build it yourself with ./gradlew build (requires JDK 25), or grab a release jar from the Releases tab.

FAQ

How to install VFXWeaver API?

Install Fabric for your Minecraft version, download VFXWeaver API for the same version and loader, put the file into the mods folder and launch the game with the loader profile.

Which Minecraft versions does VFXWeaver API support?

VFXWeaver API has builds for Minecraft 1.21.11–26.2.

Is VFXWeaver API needed on the server?

Needed in the game; optional on the server

License and source
MIT Licensefree to use and share with credit to the author
Original — Modrinth↗Files unchanged, verified with SHA-512Is this your mod? For rights holders

The site uses cookies: the necessary ones for sign-in and the theme, plus the Yandex Metrica and LiveInternet visit counters — they show us how the site is used. We have no advertising cookies. More