DataTip

JSON-driven custom item tooltips via resource packs. Multi-language, rich text, NBT/condition matching, shift-protected display. No coding — just JSON.

File Details

datatip-1.2.5-forge.jar

  • R
  • Jul 17, 2026
  • 627.90 KB
  • 9
  • 1.20.1
  • Forge

File Name

datatip-1.2.5-forge.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:datatip-1564179:8450901")

Learn more about Curse Maven

DataTip 1.2.5 Changelog

This release rebuilds DataTip's tooltip layout, measurement, rendering, and session-management foundation. Complex content now uses one prepared layout for sizing, clipping, and drawing while integrating again with Minecraft's vanilla tooltip width constraints, wrapping, screen positioning, background, and border pipeline.

New Features

  • Added the stack layout so multiple nodes can share one layout area and use offsetZ for sibling layer ordering.
  • Every built-in content type now supports offsetX, offsetY, and offsetZ.
  • Every built-in content type now shares self-alignment, margins, scale, rotation, pivot, opacity, minimum/maximum size constraints, and overflow.
  • Added the translate text key for referencing resource-pack language files without editing the DataTip JSON for every language.
  • shift and conditions now work on every content type at every nesting level.
  • Added a remappable tooltip scrolling key. By default, hold Left Ctrl and use the mouse wheel to view content beyond the viewport.
  • Shift and scrolling hints display the player's actual mapped key names.
  • The Schema, data generator, and complete examples now cover all 15 built-in content types, common modifiers, Stack, scrolling viewports, and nested combinations.

Vanilla Tooltip Integration

  • Final tooltip width, height, screen position, background, and all four border edges follow Minecraft's vanilla pipeline again.
  • With max_width = 0, content keeps its natural width until vanilla screen-fit rules constrain it. A positive max_width is forwarded as a width override during vanilla component gathering.
  • Text is measured and wrapped again using the final available width, keeping measurement and rendering consistent.
  • Content taller than the screen no longer expands the tooltip indefinitely and instead scrolls inside the physically visible area.
  • Ordinary vanilla text, custom content, and the scrolling hint all participate in viewport-height calculation.
  • Changing Shift visibility preserves the current hover session and scroll position instead of jumping to the top.

Shift and Animation

  • Multiple collapsed nodes now produce one merged Shift hint.
  • Each node can collapse independently without requiring its entire children container to collapse.
  • Carousels, typewriters, animated progress bars, rotating entities, and rotating blocks advance only while visible and requiring updates.
  • Improved hover performance for long carousels, charts, and deeply nested tooltips by reducing repeated measurement, variable resolution, and geometry construction.

JSON and Compatibility

  • Modern JSON uses translate; the old trans key is no longer parsed as a modern-format alias.
  • The legacy converter still recognizes old data, normalizes trans to translate in converted output, and sends the result through the normal parser.
  • DataTip JSON files may use any filename and may be placed in any subdirectory below assets/<namespace>/datatip/.
  • Minecraft 1.21.1 / NeoForge uses vanilla data-component readers, while Minecraft 1.20.1 / Forge uses the corresponding NBT-path readers.
  • Both versions provide the same content types, layout behavior, common modifiers, controls, scrolling viewport, Schema, and resource-pack directory structure.

Documentation and Developer API

  • Fully updated the English and Simplified Chinese READMEs with directly usable complete JSON examples.
  • Updated the JSON Schema, bilingual language files, and complete generated examples.
  • Added extension APIs for prepared layouts, render commands, tooltip sessions, dependency fingerprints, and invalidation management.
  • Separated client registration from the common entry point so dedicated servers do not load client tooltip classes.