PerfixTitleText-1.0.77
Curse Maven Snippet
What's new
PerfixTitleText Mod (tmd) — Version 1.0.77
Minecraft 26.1.2 · Fabric
This update expands the Dragon Fireball Staff into a full projectile-ammo system, adds configurable mode and ammo switching, and fixes dedicated-server crashes caused by client-only key handling.
Highlights
- Four projectile types for the Dragon Fireball Staff
- Bindable mode key + right-click to switch between Single and Multiple targeting
- Bindable ammo key + right-click to cycle projectile types
- Single-target mode now uses line-of-sight targeting with no component range limit
- Dedicated-server crash fix related to client key mappings
Added
Projectile ammo system
The Dragon Fireball Staff now supports four ammo types, cycled with the ammo key (default V) + right-click:
| Type | Behavior |
|---|---|
| Normal Fireball | Standard small fireball; ignites and deals fire damage |
| Explosive Fireball | Custom small fireball that explodes on impact (radius 2, no block damage by default) |
| Wither Fireball | Impact creates a wither effect cloud; does not place fire blocks |
| Dragon Fireball | Original dragon breath cloud behavior |
Configurable key bindings
MODE_SWITCH_KEY— defaultLeft Shift, fully rebindable in Options → Controls → Key BindsAMMO_SWITCH_KEY— defaultV, fully rebindable- Both keys are registered as standard
KeyMappingentries and can be changed without editing config files
New component field
DragonFireballComponent now includes:
String projectileType
The field is serialized with a fallback (orElse(DRAGON)), so existing items from older versions remain compatible and default to the Dragon Fireball type.
Tooltip updates
- Shows the currently bound mode-switch key
- Shows the currently bound ammo-switch key
- Displays current targeting mode
- Displays current projectile type
- Single mode shows
Line-of-sight (max 64 blocks) - Multiple mode shows the configured AoE range
Changed
Single-target targeting
Single mode no longer uses amountToAddInAllDirections as a detection radius.
- Targeting is now based on the player's look vector
- Ray length is fixed at 64 blocks
- Block collision is respected: entities behind walls are not targeted
- Multiple mode still uses the component's configured range
Mode switching
Mode switching is no longer tied to player.isShiftKeyDown().
- The client tracks the bindable mode key
- Key state is synced to the server via
KeyStatePayload - The server performs the actual component update in
use()
Ammo switching
Ammo switching follows the same client-to-server key-state sync pattern and updates projectileType on the held stack.
Explosive and Wither fireballs
- Both are custom
SmallFireballsubclasses onHitBlockintentionally skipssuper.onHitBlock()to avoid placing fire blocks- Explosion behavior is controlled through
Level.ExplosionInteraction - Wither cloud uses
AreaEffectCloudwithMobEffects.WITHER
Fixed
- Dedicated server crash caused by
DragonFireballStaffItemreferencingModKeyson the logical server - Client-only class loading issues by moving key detection to
ModClientand syncing state through networking - Tooltip mismatch where single mode incorrectly displayed an AoE range value
- Incorrect projectile spawn position when using target-based direction calculations
Technical Notes
Networking
- Added
KeyStatePayload(boolean modePressed, boolean ammoPressed) - Registered as a C2S play payload via
PayloadTypeRegistry.serverboundPlay() - Server stores per-player key state in
ServerKeyStateTracker - State is cleared on player disconnect to prevent memory leaks
Entity registration
EXPLOSIVE_SMALL_FIREBALLWITHER_FIREBALL
Both are registered with ResourceKey<EntityType<?>> and rendered client-side with ThrownItemRenderer.
Compatibility
- Existing worlds and items remain compatible
- Older items without
projectileTypeare treated as Dragon Fireball - No changes required to existing datapacks
Known Limitations
- Explosive fireball currently uses a fixed radius of
2.0Funless modified in code - Wither cloud duration and amplifier are currently code-side constants
ThrownItemRendereris used for custom fireballs; custom models/textures are not included in this release
Upgrade Notes
- Back up your world before updating.
- Replace the old mod JAR with
PerfixTitleText-1.0.77.jar. - Launch the game once to allow the new entity types and payload types to register.
- Rebind
MODE_SWITCH_KEYandAMMO_SWITCH_KEYin Controls if desired.
Full Changelog: 1.0.74-hotfix.1...1.0.77
This mod has no additional files

