PunchThemAll

Punch different blocks to obtain the ressources you need !

File Details

pta-1.20.1-2.0.0.jar

  • R
  • Jul 18, 2026
  • 241.10 KB
  • 9
  • 1.20.1+1
  • Forge

File Name

pta-1.20.1-2.0.0.jar

Supported Versions

  • 1.20.1
  • 1.20

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:punchthemall-1046761:8459245")

Learn more about Curse Maven

Changelog

All notable changes to PunchThemAll are documented here. The format is based on Keep a Changelog, and the project aims to follow Semantic Versioning.

Version tags use the form MC-version - mod-version, e.g. 1.20.1-2.0.0.


[1.20.1-2.0.0]

A large, fully backward-compatible update. Every existing interaction file keeps working; the new features are opt-in. If you author interactions, this is the release to read.

Why 2.0.0? This release introduces a new interaction format (schema_version: 2), a rebuilt parser, multiplayer synchronisation, and a big set of new capabilities — a major step up for the mod. It is still 100% backward compatible: old files continue to load unchanged.

TL;DR for pack makers

  • A new, cleaner schema_version: 2 JSON format (strictly valid JSON, better error messages).
  • Interactions can now do a lot more: guaranteed drops, multiple rolls, Fortune bonuses, potion effects, sounds/particles, and conditions (time, weather, altitude, light, sneaking, food, XP).
  • JEI now works correctly on dedicated servers, and shows the new features.
  • You can optionally load interactions from datapacks as well as the config folder.

Added

  • New interaction format (schema_version: 2). Opt in by adding "schema_version": 2 to a file. Benefits:
    • Strictly valid JSON — no more editor/linter complaints. NBT is written as a normal SNBT string (e.g. "{Damage:0}").
    • Unified match selectors everywhere: a single id, a list of ids, or a #tag.
    • Precise, path-based error messages when a file is malformed.
  • Advanced rewards (rewards block):
    • guaranteed — items always dropped, in addition to the weighted pool.
    • rolls — draw the weighted pool multiple times.
    • fortune — add a Fortune/Looting-style bonus to weighted drops based on the held tool.
  • Player effects & feedback:
    • effects — apply potion effects to the player on success (with per-effect chance).
    • sound / particles — play feedback on the interaction itself (not only on transformations).
  • Conditions (conditions block): gate an interaction by time (day/night), weather, y_range, light level, requires_sneaking, and player_state (min_food, min_xp_levels), in addition to the existing biome/dimension filters.
  • Typed NBT predicates (nbt_predicates on hand and target): match item/block-entity data with a clean path + int_range + optional where filter — a validated replacement for the old embedded RangeTag convention.
  • Multiplayer JEI sync. The server now sends its interaction registry to clients, so the JEI category is correct on dedicated servers (previously it could be empty or wrong).
  • Optional datapack loading. With Loader.load_from_datapacks = true, interactions are also read from data/<namespace>/pta/interaction/*.json, layered on top of the config folder and synchronised to clients by vanilla. New config key: Loader.load_from_datapacks (default false).
  • Expanded JEI display. The category now shows guaranteed drops as extra output slots, typed nbt_predicates in the hand/target tooltips, and a summary tooltip on the arrow listing rolls, Fortune, effects, conditions and whether the interaction plays a sound/particles.
  • Documentation & examples. A full v2 reference, a CurseForge overview, and 17 focused, copy-paste example files under configExamples/interactions/v2/.

Fixed

  • Unknown ids/tags in a file are now reported clearly instead of silently becoming air/empty.
  • NBT blacklist range checks (RangeTag in a blacklist) now work correctly and support short values (enchantment levels), instead of never matching.
  • Interaction cooldown now uses world time, so it no longer wrongly blocks a player after a respawn or dimension change.
  • Right-click interactions no longer risk double-processing (once per hand); one click is handled once.
  • An invalid NBT snippet no longer discards the whole interaction file — it is skipped with a log.
  • Assorted null-safety fixes (biome lookups, entity reach attribute on fake players).

Changed / Deprecated

  • The original JSON format (no schema_version, or schema_version: 1) is now deprecated. It still loads exactly as before, but logs a one-time warning per file suggesting migration to v2. A migration table is in docs/interaction-format.md.
  • Filtering is now indexed by click type and target, so packs with hundreds of interactions evaluate a click faster. Behaviour is unchanged.
  • Internal parsing was rebuilt on Mojang serialization Codecs for the v2 path (better validation and error reporting). No gameplay change.

Notes

  • Nothing about existing (v1) interactions changes in-game. You can migrate file-by-file at your own pace, or not at all.
  • The new JEI display has been built and validated to compile; if you spot a rendering glitch, please report it with the interaction id shown in the click tooltip.

[1.20.1-1.1.0]

  • Modular common config (Interactions, Players, Drops, Loader, Debug) with per-section keys and presets.
  • Recursive interaction discovery and deterministic, path-based interaction IDs.
  • Fake-player/automation support with dedicated config gates.
  • Updated particle handling and general stability fixes.

[1.20.1-1.0.0]

  • Initial release: JSON-defined interactions (click a block, fluid, or the air with an optional hand item), weighted drop pools, block/fluid transformations, player damage and hunger costs, biome and block-state/NBT filters, and a JEI category to browse them.