1.4.1
Compatibility
Required content
Changes
Wisp & Willow 1.4.1 โ The Soul Gateway
Familiars are no longer something you spawn โ they are something you negotiate for. This update adds the whole chain that gets you one: a pact written at an altar, a soul taken from a living creature, and a portal built of willow logs that burns Fluxia for as long as it stays lit.
Feeding that portal needed real power, so generation got a serious pass too.
Existing worlds are safe. Everything here is additive. Altars, pools and networks you already built keep working, and the rituals you know still match the same circles.
๐ฏ๏ธ Familiars, Properly Earned
Getting a familiar is now five steps, and every one of them costs something.
| Step | Where | Cost |
|---|---|---|
| Amethyst Paper | Crafting โ pressed from Amethyst Sugar Cane | 3 cane โ 3 paper |
| The Written Pact | A new 6ร6 rite at your altar (Tier II) | 500 ฦ โ 4 blank pacts |
| Prime the pact | Drop in a charged Fluxia Pool | 5,000 ฦ + a ghast tear |
| Take a soul | Right-click a living creature | The creature is spent |
| Seal it | Back in the pool | 25,000 ฦ + echo shard + astralite |
Then cast the sealed pact into a lit Soul Gateway and the familiar steps out, binding itself to the nearest altar on its own.
Only certain creatures answer a pact. Press one against anything else and nothing answers; the creature is unharmed and the pact is unspent.
๐ธ๐ฆ Two New Familiars
| Creature | Becomes | Boon |
|---|---|---|
| Allay | Wisp Familiar | +20,000 Fluxia reserve |
| Axolotl | Axolotl Familiar | 50% cheaper rites |
| Frog | Frog Familiar | +25% bonus output |
| Bat | Bat Familiar | 15% cheaper, +10% bonus, +5,000 reserve |
The Frog Familiar takes the Bountiful boon โ a real chance of a second copy of whatever a rite produces. The Bat Familiar takes Balanced: a little of everything, none of it as much as a specialist gives.
Both boons existed in the code since 1.4.0 with nothing granting them. Every entry in the boon table is now something you can actually bind to an altar.
Bats live in every cave, and that is deliberate โ the generalist should be the one you can get hold of first, and the specialists should be worth going looking for. Each new familiar has three colour variants.
One familiar per altar tier
An altar attends to one familiar per tier โ one at Tier I, up to five at Tier V. Extras still orbit and still cannot be harmed; they simply contribute nothing until you lay another ring of runes beneath them. When an altar is over its limit, the closest familiars are the ones kept.
๐ The Soul Gateway
A five-by-five wall of Willow Logs with a three-by-three opening, and a Gateway Core in the middle of the bottom row. Fifteen logs and the core.
- To open: 10,000 ฦ
- To stay open: 200 ฦ/second, every second
- Per pact cast: 25,000 ฦ
Run the core dry and the gateway shuts itself, loudly. Knock a single log out of the wall while it is lit and the whole thing collapses. Wear the Arcane Goggles and it will tell you how many seconds of fuel it has left.
The portal surface is drawn as a layered, drifting starfield that shifts as you walk past it.
โก Fluxia Generation โ Two New Blocks, and Big Buffs
A gateway is a standing load, and the old flowers could not come close to carrying one.
New
- Fluxia Dynamo โ burns anything a furnace would, including Amethyst Coal, at 300 ฦ/s. One of these holds a gateway open indefinitely.
- Astral Font โ no fuel at all, only an open sky. 75 ฦ/s by day, 150 ฦ/s at night. Halved in rain, halved again in thunder. Put anything solid above one and it stops.
Buffed
| Generator | Was | Now |
|---|---|---|
| Solrosa | 0.33 ฦ/s | 4 ฦ/s |
| Luxinias Flower | 10 ฦ/s, flat 30 s per fuel | 40 ฦ/s, uses the fuel's real burn time |
Solrosa's rate constant was named "per second" but ran once every three seconds โ it was producing a third of what it claimed. Luxinias burned every fuel for a flat 30 seconds regardless of what it was, so an Amethyst Coal gave it a fifth of what the same coal gives a furnace.
๐ฎ Rituals Worth Casting
Several rites did not pay for their own chalk. Fixed:
| Rite | Was | Now |
|---|---|---|
| Flame Bloom | blaze rod โ 3 fire charges | blaze rod โ 3 blaze rods |
| Minor Binding | 3 glowstone dust | 12 glowstone dust |
| Magicka Solidificus | diamond โ 8 Fluxite | diamond โ 24 Fluxite |
| Lunar Gate | 1 pearl โ 2 eyes | 1 pearl โ 3 eyes |
Flame Bloom was the worst of them: you fed it a blaze rod and got back three fire charges, strictly less than you put in. It is a rod duplicator now. Fluxite got the largest bump because the Dynamo, the Font and every rune all draw on it.
๐ Fixes
Broken links stayed on the map. Flux links are stored only on the source node, so breaking the block on the far end left the source holding a dead position โ drawn by the goggles as a live link and counted in the link total. Nodes now tell their neighbours when they are removed, and the network prunes anything that slips past.
Altars only ever noticed one familiar. The altar was stacking boons correctly on the server, but the check deciding whether to tell the client had no familiar state in it โ so the goggles kept showing whatever was true when the first familiar arrived. Binding or banishing a familiar now updates immediately.
The altar's floating display ignored its own buffs. The orbiting preview showed a rite's raw numbers, so an altar with three familiars serving it looked identical to a bare one โ the discount was real but invisible unless you were wearing the goggles. The altar now shows the price you will actually pay, what the runes and familiars are taking off it, and how many familiars are in service, updating the moment one is bound or banished.
Infusions wanting more than one of something could never fire. The pool compared the number of item entities against the number of ingredients, and dropped items merge โ four astralite ingots in a pool are one stack of four, so a recipe asking for four never matched. Greater and Grand Tablets were both unobtainable. The pool now counts items, leaves surplus behind, and takes tablets as ingredients instead of refusing to look at them.
The linking wand could not reach several blocks. A block's own right-click runs before the item's, even with a full hand, so the Mana Pool's charge adjustment and the Gateway Core's toggle were swallowing every wand click. The wand now gets through.
The Fluxia Spitter never told the client about its links, so the goggles reported every spitter as unlinked and drew no beam from one.
Axolotl Familiars rendered as missing textures โ the variant names did not match the texture files. They also always spawned as the same variant; all six now appear.
๐จ Visual
- Goggle links and flux arcs glow again โ a bright core inside a soft bloom, still properly hidden behind walls.
- The Wisp Familiar is a model now rather than a billboard, with three colour variants.
- Soul Gateway surfaces drift and parallax as you move.
๐ The Grimoire
New entries for The Soul Gateway, Dynamo & Font, and The Written Pact. The Familiars entry now lists what you actually need, which creatures answer a pact, and how many an altar will keep.
The list of creatures that answer is generated from the same table the pact itself reads, so the book cannot claim a species the pact would refuse.
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:a6zCFWRP:Utn4JZzD"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:a6zCFWRP:Utn4JZzD"
}


