1.8.0
Compatibility
Changes
Changelog
All notable changes to Astra Shastra will be documented here. This project follows Semantic Versioning.
[1.8.0] — 2026-10-03 (NeoForge 1.21.1)
The Dharma update. Rolls up the unreleased v1.5–v1.7 development plus the v1.8 Brahmastra gate and quest HUD: an alignment system, a guided quest, three new Asuras, the four Kaurava warriors, five rideable vahanas, weapon mastery and the Biome Trinity.
Updating from 1.4.0: seven named armor sets were cut (see Removed). Items from those sets will disappear from existing worlds — back up your worlds first.
Added
- Dharma (-100 to +100): Asura kills +5 (Mahishasura +10), Kaurava kills +3, seeking counsel +2, sleeping +5; killing animals -2, villagers -10, attacking Krishna or a Pandava -15. Daily caps +50 / -30. A HUD bar shows your tier and kill counters. Divine astras refuse Adharmaratha players (dharma ≤ -50); the Brahmastra requires Dharmaratha (+50).
- Vanvas Quest + HUD objective tracker. Krishna appears near you when you load into a world; follow him to Yudhishthira → Bhima → Arjuna → Nakula & Sahadeva, then return to Krishna for his Biome Trinity guidance. The Pandavas are rare natural spawns in forests, jungles, mountains and deserts. Crouch + right-click Krishna for the world map.
- Map of Bharata Varsha (paper + compass): in-game habitat guide.
- Three new Asuras — Naga (jungle, 25 HP), Hidimba (dark-forest mini-boss, 80 HP, 1.6×), Dhumaketu (badlands, day-active fire demon, 40 HP).
- Four Kauravas — Duryodhana, Karna, Drona, Bhishma. They camp on the plains and never strike first; each kill is +3 dharma and drops Divine Shards or weapon fragments.
- Five vahanas — Makara, Nandi, Ushtra, Simha and Garuda (full 3D flight). They spawn pre-tamed and saddled; whistles recall them.
- Biome Trinity. In ocean, mountain, badlands and forest terrain, Rakshasa, Daitya and Mahishasura resist your damage (95% / 65% / 30% / 0% for 0–3 matched slots) unless you ride the matching vahana, wear the matching full kavacha set and hold the matching weapon family (or a divine weapon).
- Weapon Mastery — five weapon families level 1–10 as you deal damage (XP ×3 on kills, ×5 against Rakshasa/Daitya/Mahishasura).
- Ascension Altar — upgrades a wooden Chakra / Gandiva / Kaumodaki to iron (10 wooden weapons + 10 iron ingots + 10 fragments, Mastery level 3). Creative inventory only.
- Chakra / Gandiva / Kaumodaki Fragments and Divine Shards as mob drops.
Changed
- Armor recipes. Each themed set now has a distinct recipe — one themed item in the gap of the standard armor shape: Varuna (prismarine crystals), Vajra (lightning rod), Surya (blaze rod), Mahishasura-Mardini (golden apple); Divine stays plain netherite. Iron Kavacha now needs 1 leather per piece (its plain iron shape was shadowed by vanilla iron armor).
- Mod description updated to match the above.
Fixed
- Vajra's left-click melee did 1 damage instead of 25. In 1.21
SwordItem(Tier, Properties)doesn't apply the tier's damage; Vajra now sets its attribute modifiers explicitly (25 attack damage, sword attack speed). - Gandiva and Kaumodaki ignored Adharmaratha — they now refuse at dharma ≤ -50 like Chakra, Vajra and Brahmastra.
- Pandavas had no natural spawn (egg only) — rare spawns in forests, jungles, mountains and deserts.
- Chakra Fragment had no source — the Naga drops it. 18 of 40 crafting recipes were shadowed by another recipe — see Changed.
Removed
- Seven named armor sets and their set bonuses: Kavacha-Kundala (Karna), Kirita-Mukuta (Arjuna), Gada-Kavacha (Bhima), Vaijayanti-Kavacha (Krishna), Yamadharma-Kavacha, Agni-Kavacha, Vayu-Kavacha. The seven sets that remain are Wooden, Iron, Divine, Varuna, Vajra, Surya and Mahishasura-Mardini.
Known limitations
- The quest currently ends at Krishna's Trinity guidance; the three deity temples, a Garuda reward and the Svarga Key are planned.
- Of the Mastery unlocks announced at levels 3/5/7/10, only the Chakra's sweep-radius bonus changes gameplay so far.
- The Biome Trinity covers Rakshasa, Daitya and Mahishasura; Naga, Hidimba and Dhumaketu take normal damage.
- Divine Shards have no crafting use yet.
Backports
- Forge 1.20.1 and NeoForge 1.21.11 remain at their earlier feature levels (v1.4 / v1.1).
[1.4.0] — 2026-05-31 (NeoForge 1.21.1)
Asuras of the Mahabharata. First mob expansion — three hostile demons that roam the world (or in Mahishasura's case, must be summoned). The Asuras tie the new armor sets back into combat: kill the buffalo-demon boss and you earn the full Mahishasura-Mardini Kavacha, lore-accurate to Durga's victory over him.
Added — 3 hostile Asuras
| Mob | Role | HP | Damage | Notes |
|---|---|---|---|---|
| Rakshasa | Random spawn (forest demon) | 30 | 4 | Baseline hostile, drops bones + flesh |
| Daitya | Random spawn (giant demon) | 60 | 7 | Tankier, scaled 1.5×, may drop iron |
| Mahishasura | Summon-only boss | 200 + 150 shield | 12 | Drops full Mahishasura-Mardini armor + 2-4 netherite |
Added — boss mechanics (Mahishasura)
- Divine shield system — 150 HP of damage absorption sits in front of Mahishasura's 200 HP. Yellow shield bar drains first; once depleted, glass-break sound plays and red HP bar starts taking hits. Effective TTK: 350 damage.
- Single split boss-bar HUD — custom client-side renderer
(
AstraShastraBossBarRenderer) draws ONE bar visually split 60/40: red HP on left, yellow shield on right, black divider between. Shield% is encoded into the bar's display-name suffix on server tick, parsed back out on client — avoids needing custom network packets. - Shield state is NBT-persistent — survives world reload mid-fight.
Added — spawn eggs
- 3 spawn eggs (vivid red Rakshasa, rust-brown Daitya, royal-purple Mahishasura).
- Mahishasura is summon-only (no natural spawn), egg is the intended encounter trigger.
Implementation
- All mobs codegen'd from
tools/gen_mob.py(template script — edit the spec there, not the generated Java). Adds an entity class, renderer, attribute supplier, spawn placement, spawn egg, loot table, and lang entries per mob. - All 3 mobs extend vanilla
Zombiefor free hostile AI + animation rig. Textures: vanillazombie.pngtinted per Asura via PIL. Bespoke models tracked for v1.4.x polish. - Spawn placement uses
SpawnPlacementTypes.ON_GROUND+MOTION_BLOCKING_NO_LEAVES- standard
Monster::checkMonsterSpawnRulespredicate.
- standard
Backports
- Forge 1.20.1 — backport in progress (v1.4.1).
- NeoForge 1.21.11 — deferred (lab version, fewer downloads).
[1.3.0] — 2026-05-30 (NeoForge 1.21.1 + Forge 1.20.1)
Kavacha armor expansion. 56 new armor items across 14 sets — 3 tiered progression sets (wooden / iron / divine kavacha) and 11 named legendary sets, each tied to a deity or hero from the Mahabharata/Puranas with a full-set gameplay bonus.
Added — 14 armor sets (helm + cuirass + greaves + boots each)
Tiered (no set bonus, for progression):
- Wooden / Iron / Divine Kavacha — leather→iron→netherite tier stats.
Named legendary (full-set bonus when all 4 pieces worn):
- Kavacha-Kundala (Karna) — projectile immunity. The birth-armor that made Karna untouchable by arrows.
- Kirita-Mukuta (Arjuna) — bow damage +50%. The divine crown gifted by Indra.
- Vajra-Kavacha (Indra) — 50% melee thorns. Returns lightning to attackers.
- Gada-Kavacha (Bhima) — damage resistance + knockback resistance.
- Vaijayanti-Kavacha (Krishna) — regeneration aura.
- Surya-Kavacha (Surya) — damage boost in daylight under open sky.
- Yamadharma-Kavacha (Yama) — +50% damage vs monsters.
- Varuna-Kavacha (Varuna) — water breathing + dolphin's grace.
- Agni-Kavacha (Agni) — fire & lava immunity.
- Mahishasura-Mardini (Durga) — +50% damage vs monsters (anti-asura).
- Vayu-Kavacha (Vayu) — movement speed boost.
Implementation
- All armor codegen'd from
tools/gen_armor.py(template script — edit the spec there, not the generated Java). KavachaArmorItembase class carriessetId+setBonuskeys;AstraShastraArmorEventschecks for full-set match every server tick and on damage events.- Textures: vanilla iron armor templates recolored per set (Karna gold, Indra electric-blue, Agni fire-red, etc.). Hand-painted replacements TODO for v1.3.x polish.
- Recipes: simple shaped (wood/iron/netherite ingot in classic armor patterns).
Backports
- Forge 1.20.1 — shipped (verified in dev client). Custom enum-based
KavachaMaterial implements ArmorMaterial(interface, not record);tools/gen_armor_forge_120.pyshares the SETS spec from the master codegen. - NeoForge 1.21.11 — deferred (ArmorItem class was removed in 1.21.5, requires Equipment data component approach; lab version, fewer downloads).
[1.1.0] — 2026-05-24
Multi-version release. Ships two jars covering the most-played 1.21.x ends: the original NeoForge 1.21.1 build (full 11 weapons) plus a new NeoForge 1.21.11 build (6 weapons, subset). Establishes the multi-version infrastructure for adding more MC versions in follow-up releases.
Added — NeoForge 1.21.11 support (new jar)
- 6 weapons ship for 1.21.11: Wooden / Iron / Sudarshana Chakras, Wooden / Iron / Divine Kaumodakis.
- New project structure:
versions/1.21.11/sibling tomod/. Each version is a self-contained NeoForge build. - Gandiva, Brahmastra, and Vajra deferred for 1.21.11 — they depend on classes that were heavily refactored between 1.21.1 and 1.21.11 (
SwordItem/Tierremoved in 1.21.5,AbstractHurtingProjectile/GameRulesmoved packages,Arrowmoved,EventBusSubscriber.Busannotation removed). Per-class ports tracked for v1.1.x.
API ports applied for 1.21.11
InteractionResultHolder<ItemStack>→InteractionResult(sealed interface with static constants).Item.use()returnsInteractionResult(no generic).Item.releaseUsing()returnsbooleaninstead ofvoid.UseAnim→ItemUseAnimation.- Item registration:
register(name, Supplier)→registerItem(name, factory, properties)(required because Item constructors now check for an ID on Properties). - Item cooldowns:
player.getCooldowns().isOnCooldown(this)→isOnCooldown(stack)(takes ItemStack now). - Recipe ingredient format:
{"item": "X"}→"X",{"tag": "X"}→"#X"(plain strings only). - Item models: added required
assets/<namespace>/items/<name>.jsondefinitions alongside existingmodels/item/<name>.json(1.21.4 item model rewrite). ParticleTypes.DRAGON_BREATHswapped forENCHANTin divine Chakra ring (DRAGON_BREATH becameParticleType<PowerParticleOption>, no longer directly usable asParticleOptions).
Unchanged — NeoForge 1.21.1 build
- Same 11-weapon feature set as v1.0.0. Just a version bump.
Added — Forge 1.20.1 support (new jar)
- All 11 weapons ship for Forge 1.20.1. Full feature parity with the 1.21.1 build.
- Major port work: NeoForge → Forge package swaps (
net.neoforged.*→net.minecraftforge.*),RegistryObjectvsDeferredHolder,FMLJavaModLoadingContextbus pattern,SwordItem4-arg constructor,Tier.getLevel(): int(vs 1.21.x'sgetIncorrectBlocksForDrops()), 1.20.1hurtAndBreak(amount, entity, Consumer<T>)signature,Arrow(Level, LivingEntity)2-arg constructor,AbstractHurtingProjectile6-arg constructor with separate xyz components,SoundEvents.Xdirect constants (no.value()Holder unwrap),pack.mcmetarequired for resource pack detection.
Targets per jar
astrashastra-1.1.0.jar(frommod/) — Minecraft 1.21.1 · NeoForge 21.1.230+ · Java 21+ · 11 weaponsastrashastra-1.1.0.jar(fromversions/1.21.11/) — Minecraft 1.21.11 · NeoForge 21.11.42+ · Java 21+ · 6 weaponsastrashastra-1.1.0.jar(fromversions/forge-1.20.1/) — Minecraft 1.20.1 · Forge 47.4.6+ · Java 17+ · 11 weapons
Known limitations
- 1.21.11 jar ships 6 of 11 weapons. Gandiva / Brahmastra / Vajra ports planned for v1.1.x (heavy API churn in 1.21.x makes these substantial work).
- No intermediate 1.21.x versions yet (1.21.2 → 1.21.10). Each would need similar porting effort.
[1.0.0] — 2026-05-23
First stable release. Eleven Mahabharat-inspired weapons across five families, fully tested in-game across multiple iteration cycles. Drops the -alpha suffix carried through 0.1–0.4 development.
Highlights since v0.1.0-alpha
- 11 weapons across 5 Mahabharat families (Sudarshana Chakra × 3, Gandiva × 3, Kaumodaki × 3, Vajra, Brahmastra).
- Custom entity infrastructure — Brahmastra now fires a custom projectile that renders as the divine arrow item sprite (no longer looks like a Ghast fireball). Foundation for future custom projectiles.
- Charge mechanics — Gandiva (hold-to-draw bow) and Brahmastra (hold-to-charge missile) with power scaling.
- Ranged + melee + mining for Vajra — left-click melee (25 dmg), right-click ranged lightning at aimed target, mines blocks like a divine multi-tool.
- Water-safe divine particles for Sudarshana Chakra — end-rod + dragon-breath + flame ring works underwater.
- Tiered progression for the three physical weapons (Wooden → Iron → Divine) with distinct visuals, damage, durability, and particle effects per tier.
Weapon catalog (release feature set)
| Weapon | Tiers | Right-click | Highlights |
|---|---|---|---|
| Sudarshana Chakra | Wooden / Iron / Divine | Radial AOE sweep | Particle ring scales by tier; divine is unbreakable |
| Gandiva | Wooden / Iron / Divine | Hold-to-draw bow, 1/2/3 arrows in fan | Vanilla bow animation, crit on full charge |
| Kaumodaki | Wooden / Iron / Divine | Ground-slam AOE shockwave | Morning-star design, divine has lava+explosion particles |
| Vajra | Divine | Ranged lightning at aimed target (50-block) | + Left-click 25-dmg melee, + mines blocks |
| Brahmastra | Divine | Charge 1 s + release divine missile | 8× explosion power, custom-rendered projectile |
Targets
- Minecraft 1.21.1
- NeoForge 21.1.230+
- Java 21+
Known not-yet-shipped features (deferred to v1.1+)
- Throwable returning projectile for divine Sudarshana Chakra
- Tracking-arrow / never-miss mechanic for divine Gandiva
- Forge 1.20.1 backport (separate jar, same 11 weapons)
- Quest system, armor sets, boss mobs, Kurukshetra dimension (original roadmap v0.2–v1.0 → now v1.1+ roadmap)
[0.4.0-alpha] — 2026-05-23 (superseded by 1.0.0; not separately uploaded)
Custom Brahmastra fireball entity + renderer. Replaced vanilla LargeFireball (Ghast appearance) with a custom BrahmastraFireball entity that renders as the Brahmastra item sprite with a flame trail. Introduced custom entity registration infrastructure.
[0.3.0-alpha] — 2026-05-23 (superseded by 1.0.0; not separately uploaded)
Gandiva hold-to-draw charge mechanic for all 3 tiers. Power scaling, crit on full charge, range bumped 50%.
[0.2.0-alpha] — 2026-05-23 (superseded by 1.0.0; not separately uploaded)
Added Gandiva × 3, Kaumodaki × 3, Vajra (divine), Brahmastra (divine). Kaumodaki redesigned as morning-star. Vajra reworked to ranged lightning + block mining. Brahmastra charge time and explosion power tuned.
[0.1.0-alpha] — 2026-05-22
First public release. Validated the mod packaging + CurseForge publish pipeline.
Added
- Sudarshana Chakra family — three tiers of Krishna's divine discus:
- Wooden Chakra — 2 sweep damage, 2.5-block radius, 60 durability. Ring of flying wooden sticks.
- Iron Chakra — 5 sweep damage, 3.0-block radius, 250 durability. Ring of iron nuggets + metallic sparks.
- Sudarshana Chakra (divine) — 8 sweep damage, 4.0-block radius, unbreakable, fire-resistant, Epic. End-rod sparkles + dragon-breath + flame (renders in water).
- Crafting recipes for all three tiers.
- "Astra Shastra" creative tab between Tools and Combat.
- Mod logo in the in-game Mods list.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:HtjQZyYX:HcEkKVnX"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:HtjQZyYX:HcEkKVnX"
}

