promotional bannermobile promotional banner

CoolCatLib

Write it once, run it everywhere. Events, networking, registries and configs, with screen effects, custom skies, cutscenes and GUI widgets on top: the purr-fect foundation for your mods.
Back to Files

[Forge] 1.20.1 | V2001.4.0.0 RELEASE

File namecoolcatlib-forge-1.20.1-2001.4.0.0.jar
Uploader
ixDarkLorDixDarkLorD
Uploaded
Oct 22, 2026
Downloads
21
Size
1.8 MB
Mod Loaders
Forge
File ID
9284842
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:coolcatlib-916525:9284842")

Learn more about Curse Maven

What's new

v2001.4.0.0 Release | Oct 22, 2026

✨ New Features

  • World effects (api.client.vfx), as on 26.1.2: glowing shapes drawn in the world, after the whole level and before the hand, lit by nothing. They hide behind solid things and fade softly where they meet them (VfxMaterial.softness), so nothing ends in a hard line at a wall or the ground.
    • Materials (VfxMaterial): a texture, a blend (VfxBlend.ADDITIVE for light, ALPHA for smoke, LUMINOUS for black-background glow textures against bright skies), a softness, and smooth or pixel-for-pixel sampling (withSmoothing(false) keeps block and item textures crisp). Everything of one material in a frame is one draw call.
    • Effect particles (ParticleSpec, WorldParticles): size, opacity and spin follow three-point eased curves (Curve, now with Curve.FADE) over each particle's life, colour shifts around the colour wheel, lifetimes are randomised, with gravity, drag and velocity-stretched sparks (Shape.SPARK). WorldParticles.spawn, burst and line. They are not vanilla particles: nothing to register, nothing on the server.
    • Shapes every frame (WorldVfx.register with a VfxRenderer, drawing through VfxFrame and VfxDraw): camera-facing billboards, beams, flat ground quads, free quads, and ribbons that follow a Trail. One-liners that draw themselves and fade: WorldVfx.beam, flash and groundFlash.
    • Built-in textures: VfxMaterial.GLOW, SPARKLE, STAR, RING, SMOKE and STREAK.
    • Shader materials: VfxMaterial.withShader(id) draws a material with a fragment shader of the mod's own (assets/<namespace>/shaders/<path>.fsh, GLSL 150 on this version), which imports coolcatcanvas:vfx.glsl for the camera, the time and the depth-fade helpers.
    • Rifts (WorldRifts, RiftSpec, Rift): a tear in the air drawn by a built-in shader (VfxMaterial.RIFT_SHADER) that opens with a flash, a sound and a shake, hums while open, and snaps shut; rift.facing(direction) holds it facing one way, as a portal in a wall.
    • From the server (api.vfx): VfxControl.play(level, id, VfxParams) plays an effect a client registered with VfxEffects.register, and RiftControl.open(level, spec id, position[, ticks]) and close(level, id) open and close rifts, each as one small packet to the players in range.
  • Event phases reach other mods' own listeners: EventPhase.band() sorts phases into FIRST (FIRST and earlier), MIDDLE and LAST (LAST and later), and events whose loader hook fires each band at its own place run FIRST listeners before other mods' Forge or Fabric listeners of the game event and LAST ones after them. EventInvoker.invoker(Band) and hasListeners(Band) let a hook fire one band; invoker() still fires them all, in order.
  • ItemTooltipEvents.MODIFY does this on every loader (Forge's highest, normal and lowest priorities; Fabric phases before, at and after the default one).
  • ItemTooltipEvents.APPEND: lines added at the very end of an item's tooltip, after the loaders' tooltip events and every other mod's lines, with the player when there is one.
  • InteractionEvents (api.event.v2.common): USE_BLOCK, USE_ITEM and USE_ENTITY (answer with an InteractionResult: PASS lets the game go on, anything else stops it there) and ATTACK_BLOCK and ATTACK_ENTITY (interrupt to stop them), on both sides, before the game acts, the same on Fabric and Forge.
  • HeldItemSwaps (api.client.item): which changes to a held stack are quiet, so the item stays where it is in the hand instead of being put away and taken out again: quiet(...) for keys of the stack's NBT, register(...) for any test of the old and new stacks. Attachments' changes are quiet unless the attachment was built with swapAnimation().
  • GhostBlocks (api.client.vfx): blocks drawn as ghosts with their real models (block entities too), one see-through picture so only their outside shows, tinted and faded by one colour; shown through walls, in the world as real blocks would be, or always; full bright or shaded. Call it right after the level is drawn.
  • Scene viewports (api.client.viewport.SceneViewport, api.client.gui.components.SceneViewportWidget): a 3D view of blocks, block entities, entities and items, drawn into a texture of its own (by the game's own renderers, lit as the world is) for a GUI or any textured face; turned, zoomed and framed in code or by dragging, with a ground of grid lines and shadows, and text laid flat on the picture.
  • ItemRendererRegistry (api.client.registry): items drawn in code, the same on every loader: an item whose model is builtin/entity is drawn by its renderer wherever it shows.
  • ItemColorRegistry (api.client.registry): colours for items' tinted faces, the same on every loader.
  • ExtraModels (api.client.registry): models baked with the game's though no item or block uses them, for drawing in code; named outright or found in the resources as they load.

This mod has no related projects