promotional bannermobile promotional banner

CrazyPhone

A held-item smartphone : contacts, group texting, photos and optional Simple Voice Chat calls and voice messages.
Back to Files

crazyphone-1.5.0-beta.1.jar

File namecrazyphone-1.5.0-beta.1.jar
Uploader
LordFinnLordFinn
Uploaded
Sep 5, 2026
Downloads
2
Size
1.2 MB
Mod Loaders
NeoForge
File ID
8818180
Type
B
Beta
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:crazyphone-1646289:8818180"

Learn more about Curse Maven

What's new

Fix invisible photo item borders/back, stop deleted photos orphaning shared/physical copies, bump version to 1.5.0-beta.1

  • CrazyPhonePhotoItemRenderer: the photo item's border edges and back face went fully transparent in hand, on the ground, and in item frames. FRAME_TEXTURE's own interior is transparent by design (lets the inset photo show through the front's border-ring window), but the edge strips and back face were still sampling that same texture, which entityCutout then alpha-tested away entirely. Both now use the same dedicated opaque backing texture CrazyPhonePhotoFrameRenderer already uses for its own box sides, in every render path (hand, ground/GUI/item-frame, and the >=26 SpecialModelRenderer equivalents of both).

  • PhotoSavedData: deleting a photo from one phone's gallery no longer erases its bytes outright. "Delete" now only ever removes the id from that owner's own list - the shared entry's bytes are only actually freed once nothing else needs them (no other owner's gallery still lists the id, and no physical Photo item was ever taken out for it via CrazyPhoneGivePhotoItemPacket's "Save to Inventory"/TAKE handling, which now marks that). Previously, deleting your own copy of a photo could silently break a group-chat partner's still-listed copy, or turn an already-printed physical item into a ghost that could never be viewed or re-imported again. The same per-owner eviction cap (oldest photo dropped once you exceed the configured limit) now respects this too, instead of unconditionally erasing.

  • CrazyPhoneHelper: clicking a Photo item onto a phone (or vice versa) to import it into that phone's gallery gave no feedback at all on failure, and even on success its confirmation sound never reached the acting player - Level#playSound(except, ...) broadcasts to every nearby player EXCEPT "except", so passing the clicking player there (as the existing playNotifySound helper does) meant only bystanders ever heard it. Both the success chime and a new VILLAGER_NO refusal cue (matching this codebase's own existing "action refused" convention) now play for the player who actually performed the click.

  • scripts/dev-launch.ps1: server stop now asks for a graceful "save-all flush" + "stop" over RCON before ever falling back to a hard kill, since a killed dedicated server never runs its own shutdown hooks - any SavedData (phone/contact/conversation/photo registries) not yet caught by a periodic autosave was simply gone, not just delayed, confirmed live and repeatedly the hard way this session. Also adds a "client2" kind (a second, differently- named client auto-joining the same node, for testing calls/contacts/multiplayer features that need two players) and default dev-server settings applied on every launch: creative (force-gamemode), peaceful, eternal day, eternal clear weather, and LordFinn pre-opped.

This mod has no additional files