Releases: playstructs/structsd
Therovis v0.19.1
More gameplay tweaks to dial in the battle mechanics.
| Issue | Category |
|---|---|
| Remove cmd ship requirement from battle actions | Gameplay |
| Shouldn’t be able to Attack unbuilt Structs | Gameplay |
| Shields Invulnerable in Fleet Away | Bug,Gameplay |
| Battleship Secondary Update to 2dmg | Bug,Gameplay |
Changelog
- 9cc2ba2 Fixing Battleship damage (1 to 2dmg)
- f40eb6b Initiating v0.19.0 upgrade. Resolving planet vulnerability error when fleet is away.
- 1c5a91b Preventing the attack of unbuilt structs, even though its completely hilarious and abstrct loves it.
- acdb0b3 Removing Online command ship requirement to battle actions including attacks, defensive changes, and stealth changes.
- a94cffd updating tests for 115b
Stellarine v0.18.0
Big gameplay fixes that will increase the pace of play, make certain weapons more viable, and hopefully balance out the OP nature of tanks.
| Change | Type | Contributors |
|---|---|---|
| Charge Bar Balancing | Gameplay | abstrct, jpeg, netlag |
| Planetary Struct Health Increases | Gameplay | abstrct, jpeg |
| Change in BuildLimit | Gameplay | abstrct |
| Battleship vs. Tank Balancing | Gameplay | netlag |
| New Raid State - Shields Vulnerable | Gameplay | jpeg, netlag |
| Immovable Structs could move | Bug | abstrct |
| Player pfp (client render) | Feature | netlag |
Changelog
- 8c54972 Added a new weapon to Battleships to counter the effectiveness of the Tank.
- 057ab77 Added new pfp_cr_attributes for holding pfp metadata
- 07693d1 Build limit changed to infinite for planetary structs that only provide shield
- 6c1febb Fix to a bug in proto-gen within the makefile. Made too many darn files
- cd39c05 Fixed small movement bug that could allow for spam transactions
- fef401d Fixing a bug in test_chain
- 57a846f Planetary Struct health increases
- 2c0693e Raids can only be won via hash when the command ship of the defender is offline or destroyed.
- 3011e04 Updates to charge bar requirements for all actions
- 1bef3c6 gitignore update
Rhevion v0.17.0
Cleaning things up just a little more. Chaosnet nears...
| Item | Category | Reporter |
|---|---|---|
| planet explore shouldn’t empty charge bar | Gameplay | abstrct |
| Players should start with 0 lastAction | Gameplay | abstrct |
| Defender taking damage when attacker is countered | Bug, Gameplay | netlag |
| Malformed Grid Entry 2- | Bug | abstrct |
| Defusion State Lagging | Bug | Kilgore |
| Ante Handler bug | Bug | netlag, jpeg |
| Optionally Set Name on Explore | Feature | abstrct |
Full Changelog: v0.16.0...v0.17.0
Changelog
- 551d293 Added optional name parameter to explore
- dbdf903 New test_chain functionality for the resolved battle bugs
- 55d9d29 Resolve an issue that allowed distant fleet structs to still defend home planetary structs.
- e281d28 Resolved defusion bug that saw the Infusion object lagging
- 78c0f49 Resolved issues in Ante controller
- d7964fa Resolved issues in defensive ordering where attacker could attack post-destruction.
- 88f66b7 orphaned grid attribute 2- cleanup
- 685380c v0.17.0 release prep: round-trip InfusionMaturitySweepQueue through genesis, register MsgGuildUpdatePrimaryReactor in the ante known-messages map (it was being bounced as unknown), add GP1 integration phase, runbooks, and ante-regression Makefile target
Quantillia v0.16.0
This month we tackled some fundamental features that structsd would need in place to graduate from a testnet chain, especially around gas handling and upgrades. We snuck a couple more gameplay fixes in there too.
| Item | Category | Reporter |
|---|---|---|
| Attack Run not dealing damage | gameplay, bug | jpeg |
| Planet Explore should require Fleet onStation | gameplay, suggestion | jpeg |
| structsd Makefile | feature | abstrct |
| Free x/staking Msgs | bug, feature | abstrct |
| Guild UGC Moderation | api, feature | abstrct, netlag |
| Custom Ante Handler Design for Structs Chain | consensus | abstrct |
| Attacks cannot easily use auto Gas | bug, consensus | abstrct, netlag |
| Implement Cosmos SDK Upgrade Handler System | consensus | abstrct |
Changelog
- 5f49b3d Added UGC moderation functionality for guilds
- a1ec2db Added UGC moderation functionality for guilds
- 964460c Added a new fleet is on station requirement for planet exploration.
- 6466e67 Added more work to the custom ante to make sure staking module queries were getting enough gas to complete. They're more complicated than normal due to the hooks they run.
- 7cfdd26 Adding in proper upgrade path framework
- e63915d Adding more strict parameters to name and pfp setting. Adding moderation events. Cleaning up some ante code.
- ca31f7e Adding new PDC related tests
- 34fe936 Custom ante handler for Structs. All Structs gameplay txs (allocations, substations, guilds, membership, permissions, ranks, reactors, address registration, proxy join, planet exploration, struct building, fleet movement, combat) work as free transactions with no fees. Standard Cosmos operations (bank sends in Phase 4b) work with normal gas fees. All 80+ message types are being processed correctly through the custom decorator chain
- 1115efe Fixed a gameplay issue where starfighter damage expectations where between 0-3 instead of 1-3. New struct type attribute for guaranteed shot is available for struct types that require a minimum.
- aacca6d Fixing an ante bug relating to reactors
- 3da6f3b Long time coming but finally putting a proper build system in place.
- 4be9cb7 Small improvements to the ante
- 36abe45 resolving a number of bugs/flaws in the latest code changes after deep review
- 45387da updating readme with make details.
Pyrexnar
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
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
Mystigon
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
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
Hopefully longer lived than Junctiondale.
Fixes:
- New Command ship now knows where it is.