Skip to content

Releases: playstructs/structsd

Pyrexnar

27 Mar 01:56

Choose a tag to compare

Pyrexnar Pre-release
Pre-release

Like Opheliora but far less tragic.

  • Fixed bug in Proxy Join
  • Fixed tests that should have been there in the first place

Full Changelog: v0.14.0-beta...v0.15.0-beta

Opheliora

26 Mar 02:46
b85fcb3

Choose a tag to compare

Opheliora Pre-release
Pre-release

This release is a doozy. It's a significant step towards a mature codebase with working economic tooling and a battle engine tuned for fun.

Combat Engine Rewrite

The attack system was architecturally overhauled. All combat resolution logic has been centralized into AttackContext as a dedicated combat engine, replacing the previous approach where combat methods were scattered across StructCache. Every combat method now returns a typed result struct (EvasionResult, BlockResult, VolleyResult, CounterResult, RecoilResult, PlanetaryDefenseResult), and zero event writes happen during resolution. Event construction is consolidated into exactly two methods: EndShot for per-target details and Finalize for the overall attack event.

This restructuring was necessary to fix a bug where multi-shot weapons (like the Starfighter's Attack Run with 3 projectiles) were aggregating all shots into a single EventAttackShotDetail row. Damage totals were mechanically correct, but per-projectile hit/miss breakdowns were invisible to clients. Each projectile now gets its own event row, matching the proto's intended repeated EventAttackShotDetail design.

Counter-Attack Overhaul

The counter-attack system received several interrelated fixes. Structs now track counter-spent state per attack, ensuring each defender counters at most once. The ordering has been corrected so defensive counter-attacks occur before block attempts, and counter-attacks now properly fire even on evaded shots. Attack Runs were being countered too aggressively — all of these changes together bring the combat loop in line with the intended game design.

Allocation System Rework

The allocation system has been significantly reworked. The controller identifier is now PlayerId rather than an address, account abstraction has been added, and source capacity underloads are properly guarded. Allocations on import have been fixed (consensus-breaking), and provider allocations now validate the controller correctly. This touches the economic core of the chain.

Permission System Overhaul

Permissions have shifted from struct-level to a rank-based model. Guild rank now gates capabilities like kicking members. Struct-specific permissions have been removed in favor of the new system, and orphaned permissions are cleaned up. This is a meaningful governance change for guilds.

Additional Fixes

targetPlayerId moved from EventAttackDetail to EventAttackShotDetail in the proto (API-breaking for clients parsing attack events)
Planetary Defense Cannon return value was never being set — now correctly reports when cannons fire
EvadedCause was being populated even on failed evasion attempts — now only set on successful evasion
All combat logging downgraded from Info to Debug to reduce production noise
commitAll() reordered for indexer compatibility

Issue Type Author
Update Attack Events API netlag
Attack-Run countered too aggressively Gameplay netlag
Structs can only Counter-Attack once per Attack Gameplay abstrct, netlag
Planetary Defenses now accurately stack Gameplay abstrct
Guild Rank limits Guild Kick Capabilities Gameplay abstrct
Prevent Defender Block on evaded shot Gameplay abstrct, jpeg
Defensive Counter-Attack should occur before Block Gameplay netlag
PDC was counter-attacking when should be prevented Gameplay jpeg
Counter-Attack should fire on missed shot Gameplay jpeg
Guard Source Capacity Underload in Allocation Suggestion abstrct
Use AttackContext for managing attack results Suggestion abstrct
Delete orphaned permissions Suggestion abstrct
New Guild Rank Permission System Suggestion abstrct
Remove Struct specific permissions Suggestion abstrct
Proxy Join Error Handling Improvements Bug abstrct
Address Register Error Handling Improvements Bug abstrct
Allocation Controller needs validation Bug abstrct
Provider Allocations use controller incorrectly Bug abstrct
re-order commitAll() for indexer Bug abstrct, netlag
Add account abstraction to Allocations Feature abstrct
Allocation Refactoring Feature abstrct
Fix Allocations on Import Consensus,Feature abstrct
Allocation Controller now PlayerId Core abstrct
Improve Permissions Core abstrct

Full Changelog: v0.13.0-beta...v0.14.0-beta

Nebulon

22 Feb 21:31
d7a11b7

Choose a tag to compare

Nebulon Pre-release
Pre-release

More like Mystigone.

The previous release committed attributes before objects which caused massive issues in the indexer, which cascaded into grass and the interfaces. Rather than hack fixes into all those layers, we're just pushing a new release to fix the order.

Mystigon

19 Feb 15:08

Choose a tag to compare

Mystigon Pre-release
Pre-release

Various bug fixes, gameplay tweaks, and a casual complete refactoring of the caching framework.

Issue Type Requester
Energy issue during Build Cancel Bug jpeg
GoOffline() running too often Bug, CLI abstrct
Improved test coverage Consensus abstrct, netlag
Improved genesis import Bug, Consensus, Core, Feature abstrct, jpeg, netlag
Agreement Update bug Bug abstrct
Provide Create allowed for empty denom on Rate Bug abstrct
CounterAttack not doing a full readiness check Bug, Gameplay jpeg
Fix AttackCounterable as Struct-Level Override Bug, Gameplay jpeg
Add seizedOre to raid status Feature netlag
Jamming satellite effects linger after death Bug jpeg
Randomness Checks seem wrong Bug jpeg
Error on Fleet Movement to Populated Planet Bug, Core netlag
General Context Manager Feature abstrct
Energy Bug during PlanetExplore Bug, Economy abstrct
Possible Fleet PeaceDeal issue Bug, Core abstrct
Consistency Bug Bug abstrct, netlag
Always Delete Attribute on zero? Suggestion abstrct, netlag

Full Changelog: v0.11.0-beta...v0.12.0-beta

Luxoria

30 Jan 03:07

Choose a tag to compare

Luxoria Pre-release
Pre-release

This release is badass. Huge upgrades, squashed bugs, and fun gameplay changes.

Issue Type Requester
Zero block start hashing issue Bug AdamBomb, Dan, LuckyStar, jbowers, jpeg
Upgrade to IBC v10 API, Consensus, Core, Economy abstrct
Upgrade to Cosmos SDK v0.53.5 Consensus, Core abstrct
Open Hashing by Default Core, Feature abstrct
Improved error logging for indexing Core, Suggestion netlag
Missing Returns in Fleet Readiness Checks Bug abstrct
Double Commit on Same Target Bug abstrct
Target Struct Existence Not Validated Bug abstrct
Missing Weapon System Validation Bug abstrct
Missing Events for Indexer Bug, Feature abstrct, netlag
Object Deletion Inconsistencies Bug abstrct, netlag

Kalyptrix

18 Jan 15:21
1a1e1e4

Choose a tag to compare

Kalyptrix Pre-release
Pre-release

Hopefully longer lived than Junctiondale.

Fixes:

  • New Command ship now knows where it is.

Junctiondale

17 Jan 02:56

Choose a tag to compare

Junctiondale Pre-release
Pre-release

The first release ready for Sticky State! New gameplay changes to remove friction from onboarding, and to keep the action moving smoothly.

Issue Type Requester
Bug during Raid Attacker Defeated Bug netlag
Struct Activate requires unfun high Charge Bar Gameplay abstrct, netlag
Improve Import/Export for Genesis Core abstrct
Remove Online requirement from build cancel Gameplay abstrct
Event missing for Struct Defender Clear Bug netlag
Gift an initial Command Ship Economy, Feature, Gameplay jpeg
Remove charge requirement from build cancel Gameplay abstrct

Full Changelog: v0.9.0-beta...v0.10.0-beta

Isoteria

18 Dec 22:02
b09fd20

Choose a tag to compare

Isoteria Pre-release
Pre-release

A number of bug fixes and gameplay tweaks all needed for a smoother experience in the Structs UI and beyond.

Name Type Requester
New PermissionHash Core, Feature abstrct
Panic on Aimless Allocations Core, Economy abstrct
Cosmos Simulation Coverage Core, Feature abstrct, netlag
Improving Test Coverage Core abstrct
Update Guild Membership tx handlers Core abstrct, cisphyx, netlag
Implement guild_membership_cache.go Core abstrct, cisphyx, netlag
Slashing and Infusions Consensus abstrct, netlag
Stale Infusion Cleanup Core abstrct, netlag
Create InfusionCache layer Core, Feature abstrct, netlag
Add new Messages to AutoCLI Bug, CLI abstrct, netlag
Resolve Defusion/Infusion Miscalculation Bug abstrct, netlag
Remove Charge Bar hits for all Hash functions Gameplay abstrct, jpeg, netlag, trevor
Account abstraction sendTokens wrapper MsgPlayerSend Core, Feature netlag
Difficulty calc issue in Compute Bug jbowers
Guild Request/Invite Issue Bug, Consensus abstrct, cisphyx

What's Changed

Full Changelog: v0.7.0-beta...v0.9.0-beta

Helionar

31 Oct 01:44
9304ab5

Choose a tag to compare

Helionar Pre-release
Pre-release

Latest changes for testnet 103. Bug fixes, improved information/state propagation for indexing, and improved workflow changes for managing alpha infusions and guild membership.

Issue Type Author
EventProviderAddressDetail format incorrect Bug abstrct
Struct Sweep Delay Gameplay netlag
Merge Redelegate and GuildJoin Suggestion jpeg,netlag
Account Abstraction Wrappers for Staking functionality Feature netlag
GetInfusionByID Split check Bug abstrct
Improve logging system (Phase 1) Suggestion netlag
Add retreat event Core,Feature,Suggestion netlag
EventGuildBankAddres format incorrect Bug abstrct
Bond issues stake reward Bug,Economy abstrct
ualpha / alpha denom metadata missing Bug,Economy abstrct

Full Changelog: v0.7.0-beta...v.0.8.0-beta

Ghalaxia

21 Jul 20:25

Choose a tag to compare

Ghalaxia Pre-release
Pre-release

Our Most Boring Release Yet!

Almost nothing exciting is happening in this release, we are fixing some crap and adding technical improvements. The fact that it is a boring release is pretty darn exciting though, our codebase is stabilizing <3
Issue Type Requester
Expand Struct Type Metadata Feature, Gameplay jpeg
Apply latest difficulty settings Economy, Gameplay jpeg, netlag
Apply latest Struct Type changes Core, Economy, Gameplay jpeg, netlag
stake referenced in x/gov params Bug abstrct
Address Activity and Block Event Time Emit not UTC Bug abstrct
Balances incorrect when defusing API, Bug, Economy netlag
Guild Bank Redeem Panic Bug jbowers
Infuse msg to structs.grid.player.<player_id> Feature, Suggestion netlag
Defuse timing missing API, Economy, Feature jpeg, netlag
Improved Test Coverage Core netlag
docker-structsd missing dependancies Bug jbowers
ualpha / alpha denom metadata missing Bug, Economy abstrct
Add player_id to player_address_activity Suggestion netlag
Null/Zero Permission Setable Bug abstrct
Internals Addresses to Emit Event API, Core, Feature abstrct

Full Changelog: v0.6.0-beta...v0.7.0-beta