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
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: 2JSON 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": 2to a file. Benefits:- Strictly valid JSON — no more editor/linter complaints. NBT is written as a normal SNBT
string (e.g.
"{Damage:0}"). - Unified
matchselectors everywhere: a single id, a list of ids, or a#tag. - Precise, path-based error messages when a file is malformed.
- Strictly valid JSON — no more editor/linter complaints. NBT is written as a normal SNBT
string (e.g.
- Advanced rewards (
rewardsblock):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 (
conditionsblock): gate an interaction bytime(day/night),weather,y_range,lightlevel,requires_sneaking, andplayer_state(min_food,min_xp_levels), in addition to the existing biome/dimension filters. - Typed NBT predicates (
nbt_predicatesonhandandtarget): match item/block-entity data with a cleanpath+int_range+ optionalwherefilter — a validated replacement for the old embeddedRangeTagconvention. - 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 fromdata/<namespace>/pta/interaction/*.json, layered on top of the config folder and synchronised to clients by vanilla. New config key:Loader.load_from_datapacks(defaultfalse). - Expanded JEI display. The category now shows guaranteed drops as extra output slots, typed
nbt_predicatesin 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 (
RangeTagin 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, orschema_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 indocs/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.