Spellweaver
A First-Person elemental spell-slinging game combining elemental status effects to maximize damage
What is the game?
Spellweaver is a 3D first-person spellcasting prototype where players choose an elemental loadout and experiment with different spell combinations to achieve maximum damage. By strategically chaining spells, players unlock and discover 27 unique Magical Status Effects, revealing the inner workings of the spellcasting system. The game encourages experimentation, mastery, and creative problem-solving, with local leaderboards tracking their top performances.
Design Goals
Exploration & Choice: Allow players to select a new loadout of spells each round, creating a fresh playstyle every time and encouraging experimentation with different approaches.
Tactical Spellcasting: Shift the focus away from aim-based execution and toward the strategic timing and combination of spells to create and utilize a variety of status effects.
Spellbook Discovery: Encourage players to explore the Magical Status Effect Spellbook, gathering information about effects, unlocking new strategies, and refining their approach through experimentation.
System Depth & Modularity: Build robust, modular systems that support extending the game with new spells and effects while maintaining clean, scalable code structure.
What I Did Next
To bring these goals to life, I focused on two core systems that define Spellweaver:
Ability System
Status Effect System
These systems allow players to experiment with spell combinations, uncover powerful effects, and master the intricate mechanics of elemental magic.
Ability System
The Abilities System in Spellweaver is designed to encourage experimentation, strategic timing, and creative combinations. Every spell follows a modular framework through Scriptable Objects, making it easy to extend, balance, and combine with other abilities.
Basic Attacks: Firebolt
Firebolt (and all Basic Attacks) have varied projectile speed, damage, and status effect application to make each useful in it’s own application. All Basic Attacks apply their associated elemental effect on the third cast for a foundation to teach the elemetnal effect combiniations.
Glacier Crash:
Glacier Crash lets the player summon a storm of Ice Crystals over a targeted area, with the final center crystal to fall dealing double damage. The delay before impact requires careful timing and placement, and is most effective when combined with Status Effects that can further boost its high damage.
Poison Spell: Venom Tide
Venom Tide encourages strategic timing and placement to spread the poison effect across a large area, while leaving behind gas clouds that deal increased damage to already poisoned enemies. Though low damage, it provides a long-duration Poison effect that can be used to set up other potent Status Effects or abilities.
Want more Abilities?
For a complete breakdown of all abilities, including stats, elemental type, and status interactions, see the [Spellweaver Abilities Spreadsheet].
Status Effect System
The Status Effect System in Spellweaver allows players to experiment with combinations of elemental abilities to discover and maximize damage potential. There are 27 unique status effects, all derived from the four core elemental effects: Burn, Poison, Chill, and Shock. Rather than hard-coding every possible interaction, the system uses a combination of base classes and a reaction mixer so that simple rules can combine into surprising effects. Players are rewarded for experimenting with different elemental combos and timing, discovering synergies that feel powerful and intentional.
How It Works
At the core are two base classes:
[StatusEffect] — defines the lifecycle (
Apply,Update,Remove) for any effect. When an effect is applied, it first checks with the EnemyElementMixer to see if it should instead trigger a reaction. If a reaction occurs, the new effect is not added directly.[DamageOverTimeEffect] — extends
StatusEffectfor DoTs, handling total damage, duration, and tick intervals. It computes per-tick damage and applies it over time.
On the enemy side:
[Enemy] tracks active effects, global and per-element damage multipliers, and applies damage with the formula:
finalDamage = base × globalMultiplier × elementMultiplier[element].
This ensures effects like Brittle or Scroches global and element-specific damage multipliers layer cleanly. Enemies also store the last damage source, which reactions use for scaling.[EnemyElementMixer] looks at the current effects + the new one being applied and decides whether to trigger a reaction. If triggered, it executes a dedicated function (
TriggerPlague,TriggerSupercharged, etc.) removes or consumes effects, and applies outcomes (new effects, damage, multipliers, VFX).
Plague
PlagueEffect is the “upgrade” of Poison, created when enough Poison stacks (5) accumulate.
Flow:
Multiple Poison applications stack until the threshold is exceeded.
The mixer consumes all current Poison stacks and combines their damage into a single Plague DamageOverTimeEffect.
Plague ticks normally, but every ~2.5s it also pulses:
Applies Poison to nearby enemies at reduced strength.
Triggers an area of effect VFX burst, spreading more Poison to surrounding enemies.
Supercharged
SuperchargedEffect is an elemental effect that makes Ice and Lightning hits deal more damage and triggers an additional direct damage burst.
Flow:
When Chill is applied to a Charged enemy, Charged is consumed, and the enemy immediately takes an additional Ice direct damage scaled by the triggering spell.
The Supercharged status is applied for 5 seconds.
Reactions:
Fire/Burn + Plague → Toxic Blaze
Consumes Plague and re-applies the same total damage budget, but compressed into half the duration and double the tick rate. This creates a faster, deadlier melt.
Lightning/Shock + Plague → Viral Surge
Deals Lightning damage to every enemy currently affected by Plague, scaling from the player’s last Lightning hit. Perfect for detonating infections across a group.
Player use:
Plague encourages players to lean into Poison stacking and positioning. It shines when you spread status effects across groups, then “detonate” with Fire or Lightning to amplify the damage and create high-impact stacking DoT effects.
While active:
The enemy’s multipliers for Ice and Lightning are increased (x1.5).
When the effect ends, the multipliers revert to normal.
Player use:
Supercharged rewards timing and synergy. You can follow up with chained Lightning or Ice spells for a high-damage burst window. Coordinating abilities to trigger and then capitalize on Supercharged; otherwise normal spells turn into damage-boostered powerhouse abilities.
Want more effects?
For a full list of all Spell status effects in the game, see the [Spellweaver Status Effect Spreadsheet].
Final Note
Spellweaver represents an evolving foundation for a more expansive magic-focused combat system.
All linked code is production code from Spellweaver, written and maintained by me.
Feedback is always welcome as I continue iterating on this design.