
PTCGL Replay update (v0.4.1): early mobile support, bug fixes galore, and genuine appreciation 💖
a couple months ago i shared my passion project PTCGL Replay with you all, and the response has been downright humbling. 🙇🏻♀️
thousands of you have visited and dozens of you have filed feedback through the in-app reporter. i have read (and hopefully fixed) every single one. this post is half changelog, half love letter. 💖
screenshot showing the updated PTCGL Replay in action (usernames blurred for privacy)
^((sidenote: if you recognize this gamestate and are reading this,) ^(thank you so much)^(! this screenshot came from a feedback submission that surfaced) ^(an inordinate amount) ^(of bugs. you're awesome, thanks for the feedback, hope you continue to enjoy!))
what's new 🎉
- early mobile support. yes, i know i said i wouldn't support it in the original post, but unsurprisingly mobile made up a lot of the traffic and feedback requests. so:
- you can now paste a battle log straight from your clipboard
- playback no longer scroll-hijacks the page
- the panes tab neatly on small screens
>i wouldn't call it optimized yet, but it's functional. as always, more feedback is welcomed here, and i will do what i can to improve the experience on mobile without degrading it on desktop.
- duplicate pokémon behave. with multiple same-named pokémon in play, effects no longer all pile onto the first copy -- energy, damage, heals, and tools each find the copy that actually makes sense.
>this is another limitation of the battle log export being incredibly vague with targeting. there is a new logical pass on replays to differentiate between same-named pokémon using abilities, being assigned damage, etc using a background bench slot tracker as a workaround. i expect this to still be imperfect but greatly improved.
- trainer energy attachments. these were being parsed but not rendered properly, leading to an eventual corrupted gamestate in certain scenarios.
>the bug that surfaced this issue led me to reclassify how "abilities" from non-pokémon sources are read. this should be relatively solid and future-proof* (knock on wood).
- bench targeting improvements. things happen on the bench. bench knockouts, snipe damage (cruel arrow etc), and active-vs-bench targeting should all now resolve where intended.
>another issue due to vague replay output and largely rectified by the aforementioned background bench slot tracker. two for one special!
- edge case resolutions. cards that "break the rules" (grand tree, area zero's 8-slot bench, etc) reconstruct correctly now.
>this was working in much earlier builds, but constantly optimizing for edge cases is difficult when the tool is configured to adhere to standard gameplay regulations. i've retooled my approach to trust card text that conflicts with game rules more broadly.
- quality of life: full keyboard playback controls, glow effects when energy and tools attach, opponent's revealed cards render face-up in their hand, and a refreshed landing page.
what hasn't changed 🚫
- still free and privacy-first. no ads, no accounts, no subscriptions, no data collection.
- still strictly a replay viewer; it will only ever work with a battle log exported from PTCGL.
- still one person doing this in her spare time on her own dime (it still rhymes).
the feedback thing 🤓
every engine bug reported through the in-app reporter has a fix live right now, and the optional "attach my replay" consent is the reason. i can't fix what i can't see, so if the reconstruction ever looks wrong, please consider that little button in the bottom-left.
thank you for using it, for sharing it, and for caring enough to file bug reports. i hope your replays look better than ever, and i look forward to the next person who finds fourteen bugs in one game. 😅
💖 , seru