Skip to content

digital-garbage/Aspyria

Repository files navigation

Aspyria

A small PyQt-based RPG, inspired by old browser-game progression: fight cursed necromancers, get items, build weird stat stacks, complete gear sets, die badly, spend permanent gold, and come back stronger.

Run

Desktop version:

pip install -r requirements.txt
python -B main.py

Console version:

python -B main.py --console

How to Play

Core Loop

You explore a chain of increasingly dangerous locations: Highcrown Fields → Chapel of Broken Bells → Old Court Road → Ashen Foundries → Veyr’s Black Citadel

After the Citadel, the loop restarts at a harder version of Highcrown Fields.

Each location has:

  • Random fights against normal enemies

  • Occasional post-fight encounters (events, shops, crafting, wishing wells, story moments)

  • A boss after a set number of fights

You level up by gaining XP from fights. At each level-up you choose a permanent stat boost. Bosses and milestones grant powerful perks and relics.

Combat

Simple Attack or Flee choices.

Combat is fully automated with a turn-by-turn log so you can watch your build in action.

Enemies have HP, attack power, and special abilities (e.g., “rage”).

You can flee most fights (with consequences based on your relics).

Gear advantage (higher total iLvl than the enemy) gives you big bonuses.

Gear & Builds

Everything is gear-driven — there are no character classes.

Items have stats (ATK, CR% (crit rate), CD% (crit damage), Luck%, etc.) and belong to item sets.

Partial set bonuses are small; completing a full set gives massive power spikes.

Items have an item level (iLvl) that scales with the location. Higher-iLvl gear is stronger.

Inventory has limited slots (you can buy more permanently from the meta menu).

Crafting & Economy

Two currencies:

Coins – used during a run (shops, upgrades, inventory expansion).

Gold – permanent currency earned on death; spent in the meta menu for lasting power.

Crafting table lets you:

Improve the quality of an item (higher stats).

Fuse three lesser items into one better random item of the same slot.

Shops and scouting events appear via encounters.

Wishing Wells & Events

Random powerful events (especially wishing wells) give huge buffs… with ugly trade-offs. Post-fight story moments with enemies and bosses often offer permanent enhancement choices.

Death & The Curse

When you die you don’t lose everything immediately. A four-step curse triggers:

Lose your best piece of gear.

Lose all coins.

Receive stat scars (negative permanent modifiers).

Die and cash out your gold.

You then spend the gold in the permanent upgrade menu (with half-cost refunds available) and start a new run stronger than before.

Permanent Menu (Meta Progression):

Accessed between runs. Here you can:

Spend gold on permanent upgrades.

Refund upgrades at half cost.

Expand inventory slots.

View your relic collection and current build power.

Game Features (v1):

  • Endless location loop with scaling difficulty
  • Gear-defined builds instead of classes
  • Automated combat with attack/flee and detailed logs
  • Level-up stat choices + milestone/boss perks
  • Location-based iLvl ranges + gear advantage bonuses
  • Named relic effects (level rewards, fleeing, boss perks, necromancer loot)
  • Full item sets with weak partial bonuses and huge complete-set bonuses
  • Permanent menu upgrades with half-cost refunds
  • Limited (and expandable) inventory slots
  • Coins (run-only) vs Gold (permanent)
  • Post-fight enhancement choices and story dialogue
  • Wishing well events with strong buffs and painful trade-offs
  • Crafting table (quality improvement + 3-to-1 fusion)
  • Four-step defeat curse progression

Modding

Aspyria is fully data-driven and extremely mod-friendly.Base content: content/en/core.json

Mods go in mods/<mod_id>/ with a mod.json manifest + content JSON files.

You can add/replace: stats, item name pools, sets, enemies, bosses, locations, encounters, level rewards, perks, relics, etc.

Encounters support messages, coin/gold rewards, items, stat buffs/debuffs, choice lists, shops, crafting, combat hooks, and more.

See MODDING.md for full examples and JSON format.

Translations are supported via translations/ folders (English is always the fallback).

Assets & Credits

Ideas, coding, testing: DigitalGarbage

Coding assistance: ChatGPT Codex

Splash art: Generated by Grok Imagine

Music: Generated by Suno AI

Sound effects: Kenney Interface Sounds – CC0 1.0 Universal

Fonts: Tiny5 by Stefan Schmidt & Pixelify Sans by Stefie Justprince

Full asset details and licenses are in ASSETS.md. Source license terms are in LICENSE.md, and commercial-use notes are in COMMERCIAL_USE.md.

License

Aspyria source code is available under terms of GNU General Public License v3.

Game music is available under terms of Suno Terms of Service, meaning re-distribution of the game on commercial basis with the music included is prohibited.

Contributing

Pull requests, bug reports, balance suggestions, and new mod ideas are welcome!

Just open an issue or PR on GitHub.

Enjoy the climb, adventurer. May your stat stacks be weird and your set bonuses legendary.

About

Open-source roguelite PyQt-based RPG game.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages