Elemental Fracture Mod 3.20.0 – Patch Notes
Relaunch your launcher, let it pull Mod 3.20.0, and play. The balance patch is unchanged at Game 6.4.4 and the launcher stays at 3.5.11.
This one is about watching.
Spellbreak has always had a spectate view. It’s a good one, too: you follow a player around in their own camera, you see their health and their kit, you can flip between people. But there was exactly one way into it, and that was to get exiled. You couldn’t open a match someone else was playing and just watch. You couldn’t sit in the menu and see what was happening out there. And when somebody did something they shouldn’t have in a match, once that match ended, it was gone. Two people’s memories of it, and nothing else.
3.20.0 fixes both halves of that. You can now watch any match being played, anywhere, live, from a new Matches tab in the EF Controller. And every Battle Royale match is now recorded, so when something gets reported, the staff team can go back and see exactly what happened.
Here’s the map:
- Part 1 – Matches and Spectating. Every live match, one click away.
- Part 2 – The Match Replayer. Every Battle Royale match, on the record.
- Part 3 – Fixes. The loading screen that wouldn’t leave, and XP for players who head out early.
- Part 4 – For staff. A countdown you can actually move.
Part 1 of 4: Matches and Spectating
Open the EF Controller. There’s a new tab called Matches, and it’s open to everyone.
It lists every match being played right now. Across the top you pick a region: North America, Europe, or Brazil. Under that you pick a mode: Solo, Duo, Squad, Dominion, Team Deathmatch, Team Clash, or Free-for-all. Classic matches show up under their mode with a little Classic tag next to them.
Every match tells you two things: how long it’s been going, and how many players are left. In Solo, Duo and Squad that’s the same number the HUD shows you inside the match, bots and all. In the team modes it’s how many people are in the match. The list refreshes itself every few seconds and the clock keeps ticking in between, so you can sit there and watch a lobby go from 40 to 3.
And next to each match there’s one button: Spectate.
Press it and you’re in. You don’t queue. You don’t wait for the match to end. You don’t have to be anywhere near it. You load into the match as a spectator and you watch it through the game’s own spectate view, the same one you get after an exile: the player’s name, their health, their kit, their camera. Switch players the same way you would after you go down. It works in every mode on the list, team modes included.
A spectator is not a player
I want to be really clear about this one, because the second I turned it on, the first thing I checked was whether watching a match changes it. It doesn’t.
- You don’t take a spot. A full lobby is still full. Watching never pushes a player out.
- You don’t show up in the player count. Not in the Matches list, not on the server list, not anywhere a player count is shown.
- You’re not on the scoreboard, and you earn nothing from the match: no results, no XP, no placement.
- You can’t talk to the players you’re watching. Spectators are kept out of that match’s Game chat, so nobody’s getting called out from the stands.
When you’re done, leave and you’re back in the main menu.
How we did it: three locked doors
I genuinely thought this one would be a weekend. It was not a weekend.
The engine Spellbreak is built on actually supports spectators out of the box. You tack ?SpectatorOnly=1 onto the address you connect with, the engine marks you as watch-only, and it gives you a camera instead of a character. So in theory all I had to do was add that to the connection and let you through.
In practice, Spellbreak had three separate doors between you and a match that’s already started, and every one of them was locked.
The first door is the login check. The moment a match starts, the server flips a switch that says “no one else gets in,” and every new connection after that gets turned away with “No-one can join at this time.” Fine. I taught the server that a connection asking to watch, carrying a valid sign-in, gets let through that check. It still got turned away. Turns out there’s a second check right in front of the first one, a native one, that says “Match has started!” and slams the door before the first check is even asked. So that got the same treatment.
The second door was sneakier. I’d get through login, the map would load, I’d see the island for about a third of a second, and then I’d be kicked with “The match has already started.” The engine’s normal login flow reads that ?SpectatorOnly=1 and marks you as a spectator. Spellbreak replaces that part of the login with its own code, and its own code never reads it. So the server had no idea I was a spectator, and its late-join check did exactly what it was built to do. The fix was finishing the engine’s spectator step by hand, right after Spellbreak’s version runs.
The third door is where I lost the most time. Even marked as a spectator, I still got the same kick. I’d patched the function I thought kicked late joiners, and it never even ran. Spellbreak’s own post-login step checks “has the match started?” and kicks you right there, before it ever reaches the part I’d patched. So a spectator now goes through the engine’s standard post-login instead of Spellbreak’s, which does all the normal setup for your connection, skips the kick, and skips trying to spawn a character for someone who doesn’t have one.
Then there was the camera. Battle Royale only lets you spectate if you entered the match and died, which a spectator never did, so that rule got one more exception. And once you’re in, the server puts you into the game’s own spectate mode the same way it does after you’re exiled. It picks the nearest living player, it hands you the spectate HUD, and the game’s own “next player” button does the rest. That’s why it looks exactly like spectating after a death. It is spectating after a death, minus the death.
Part 2 of 4: The Match Replayer
Watching live is half of this. The other half is being able to look back.
Every Battle Royale match is now recorded. Every Solo, Duo and Squad match keeps a full record of how it played out: where every player and every bot went, about ten times a second, every hit, every down, every exile, who was on which team, and what everyone was wearing and carrying. Class, talents, gauntlets, gear, sorceries, the lot.
Staff can replay any of it. It’s called the Spellbreak Replayer. It lays the whole match out on the map, second by second. A moderator can scrub through it, follow one player, watch two players’ paths side by side, and see exactly what happened instead of trying to piece it together from two people’s versions of the same fight.
Why this exists
Teaming in Solos. It’s been one of the most reported problems we have, and until now we had no way to prove it either way. Two players who “happen” to never fight, who drift around the map together, who both turn on a third player at the same moment. Without a record, every one of those reports was one person’s word against another’s. Now we can see it. Or, just as importantly, we can see that it didn’t happen, and clear someone who got reported for being in the wrong place at the wrong time.
What happens to the recordings
- Recordings are kept for 14 days, then they’re deleted.
- When you report a player, that match is kept for 180 days, so it’s still there when a moderator gets to your report.
- Only staff can open them. They aren’t public, and they aren’t attached to your profile.
How we did it: a black box for the island
The recorder lives inside the game server. Every tenth of a second it reads everyone’s position, health and state, and writes a tiny record of it, a couple dozen bytes per player per tick. A whole match fits in a couple of megabytes. Every hit, down and exile goes into a separate log the moment it happens, and every time someone picks up a new gauntlet or swaps a talent, that goes in too.
The important part is when it reads all of that. The game server is busy running the match, and anything that slows it down, you feel as rubberbanding. So the recorder never stops the game to read. It reads on its own thread, off to the side, and it checks every single thing it reads before it touches it. The first version of it didn’t check one thing carefully enough, a name lookup, and it took a few servers down for about twenty minutes before I caught it. That’s fixed, and that check is now the strictest one in the whole recorder.
When the match ends, the server bundles the recording into one package, takes a fingerprint of it, and uploads it before the match result goes out. The result itself carries that fingerprint. So if anyone ever edited a recording after the fact, it wouldn’t match the fingerprint in the result anymore, and we’d know.
Part 3 of 4: Fixes
No more endless loading screen
This one’s been biting people for a while, and I finally caught it in the act.
If your connection to our servers dropped while you were in a match, say a network hiccup on your end or one of our servers restarting, the game doesn’t tell you right away. It can’t show you an error in the middle of a fight, so it saves the error for later. Then you finish the match and head back to the main menu, and the main menu waits for our servers before it takes down its loading screen. But your connection is already gone, and nothing ever tries to reconnect. So it waits. Forever. You’d sit on “Loading…” until you closed the game.
Now, if you come back to the main menu and the connection is down, the game reconnects on its own after a few seconds, using the exact same reconnect the Retry button on the connection error uses. It keeps trying until it gets through, and the menu finishes loading like nothing happened.
Exiled and heading out? Your XP comes with you
If you’re exiled in a Battle Royale match and leave, your XP and Class Mastery used to wait until the whole match finished before they counted. Fine if the match had a minute left. Annoying if it had fifteen, because you’d be back in the menu looking at your old rank wondering where your progress went.
Now it counts the moment you leave. You’re out, you’re back in the menu, your rank is already updated.
The rule hasn’t changed: leaving while you’re still alive earns nothing. If you’re done, you’re done. If you bail on a fight you’re still in, that’s still a quit.
Part 4 of 4: For Staff
A countdown you can actually move. Staff Menu, Match Settings has a new Countdown control. Drag it to however many seconds you want left before the match starts, or hit the 10, 30, 60 or 120 second buttons, and it applies the moment you let go. It works whether the countdown is running or stopped, and it works in every mode, which makes setting up a test match or an event a lot less painful than “stop the countdown, wait, start it again, hope.”
Classic servers have names now. The server list used to show every Classic server as “Unassigned.” They now show as what they are: Solo (Classic), Squads (Classic), and so on.
Getting started
Already playing? Relaunch the launcher and it’ll pull Mod 3.20.0. Open the EF Controller, go to Matches, and pick a fight to watch.
New here? Grab the launcher from elefrac.com, make an account, sign in, and hit Play. Or hit Spectate first and see what you’re getting into.
See you in the arena. ⚡