Fixing Final Fantasy XIV’s Alliance Roulette

Did I ever say that I love Final Fantasy XIV? I have written about my HUD and keyboard/mouse/gamepad gameplay and its cheating problem. Let’s rant about something else in this post: the alliance roulette.

What are roulettes?

Roulettes are the daily content of Final Fantasy XIV, there’s a leveling roulette, a trial roulette (bosses), normal and alliance raid roulettes for the main ones (main story quest, export, Lv50 to 90 roulettes are a thing too).

This content is usually ran right after the reset (at midnight Japan time), some of the content is harder to tag like the frontline roulette (PVP) if not tagged close to the reset.

Bonus experience, tomestones and other bonus are given for running a given roulette making this the main daily content that people will do every evening they login (during the European timezone).

Sadly, many players that play the alliance roulette tend to focus on the Crystal Tower raids. They do so by lowering they Item Level to match these levels:

For the rest of the raids here are the requirements:

My solution

The current maximum level a job can be is 90 and it’s really easy to attain a high Item Level with tomestones equipment. With each update to the game the requirements change for the expert roulette thus making the requirement item level higher.

So how about we scale based on the current character level?

For the ARR raids your character needs to be Lv50 with an item level between 50 and 90. The Crystal Tower is the only raid that can be queued until Lv60 (and is required to progress in the game main story quest).

Starting Lv60 we have access to the Heavensward raids if the character has an item level of at least 175. Since the game main story quest tends to give more experience it’s easy for a player to be over 60 before gaining access to the Void Ark so we cannot force Lv60 players to have unlocked the Heavensward raids yet.

But I think we should enforce it based on the player progression through the following criteria:

  • Did the player finish Heavensward main story quest?
  • Is the current selected job Lv60+?

If it meets those two conditions then we must enforce the minimum item level of 175. But this limits it only the the Void Ark, what about the rest ?
Starting Lv62 the player will be required to have unlocked the two other raids and also have the required item level to play the whole set of raids.

When the player reaches Lv70+ we apply the same rules.

But the HS/STB/SHB/EW raids are TOO long…

For some those raids seem too long or even too hard. Yeah Rabanastre, Ridorana and Orbonne can be quite challenging but if your play them often enough you’ll learn those raids.

To this day I still see people failing basic mechanics in the Crystal Tower or stop fighting to reach the door before everyone (mentor tanks do that very often).
I posted this rant last year:

This does show multiple players just leave the encounter while the door is still closed.

Dear producer Yoshida

Please make changes the alliance roulette so that we can do more than just the Crystal Tower. Other raids can be very fun and refreshing so we should be able to play the whole content of the game.

You said that you want player to discover and learn about the other Final Fantasy games through Final Fantasy XIV but how can we do that if we cannot queue for any raids?

The only time we can be lucky is when the mog tomestone events is active but that still doesn’t guarantee anything.

So please make alliance roulettes fun again.

Conclusion

I am not expecting anything to change anytime soon but I will be doing something and will be giving my feedback about this to through the appropriate means in the game. I want my voice to be heard and the only way I can do that is to speak.

I must also acknowledge that I’m acting like a total armchair game designer in this post but if this isn’t fixed I think it will hurt the game in the long run.

Fixing Blue Screen and crashes with a brand new RTX card by checking your RAM

So you just got a brand new NVidia RTX 3000 or 4000 series GPU, you already have a powerful power supply (750W+) and you PC shows one of the following symptoms:

  • Blue Screens of Death;
  • Artifacting in games;
  • Random games and app crashing;
  • Computer freezes;
  • Black screen crashes.

Well it’s most likely not your CPU, motherboard or power supply dying.

What is XMP?

XMP stands for eXtreme Memory Profile, it’s an Intel thing, other names for it can be DOCP (on some Asus AM4 motherboards) or RAMP (Ryzen Accelerated Memory Profile). To make things simple I’ll call this XMP regardless of Intel or AMD since it stands for the same thing.

When you build your computer (or have it built) you will most certainly benefit by enabling XMP in your UEFI if your RAM comes with it. In my case I have some Corsair Vengeance RAM so I’m using the profile to benefit from the advertised 3600MHz on the kit I bought.

You have enabled XMP on your RAM

The crashes are most likely caused by having the XMP profile enabled, one quick way to check is to run a memtest86 (it’s free), set it up on a flash drive and boot from it. Run a long test and you should start seeing errors pile up.

Depending on the amount of RAM you have you will see errors appear within an hour or even witness a crash.

Once you see errors feel free to cancel the test, reboot into the UEFI and disable the XMP profile (refer to your motherboard manual for instructions). Once this is done you will need to run another test but this time let it run for a couple of hours longer than previously.

Testing your system’s stability is very important and only memtest86 can do it effectively. DO NOT TRUST WINDOWS’ RAM CHECKING TOOL.

If everything goes well and no other error is detected than it means we have fixed the crashes.

Fix #1: No XMP profile

The cold, hard and sad truth is that you can no longer run the XMP profile. Just disable it to fix the problem and be done with it.

This might not be the answer you were looking for but this is the easiest way.

Memtest86 doesn’t lie and when is couldn’t find any errors without XMP enabled over several hours you can consider the problem fixed and everything will be going smoothly from there.

But… If you are willing to take risks there’s a second fix…

Fix #2: Increase RAM voltage

Disclaimer: You are responsible for whatever you do to your PC, everything is on you no matter what. Any damage caused by following these instructions are on you.
Overclocking and overvolting is not covered by your warranty and if something breaks it’s on you.

To get started you’ll have to enable your XMP profile once more, then you will have an input field for the RAM voltage. In my case the default setting was showing 1.35V.

I decided to increase the voltage to 1.37V and run memtest86. I found no errors within the hours which was good but not a promise. I let the test run for 16 hours total and I still didn’t have any errors.

In my case 1.37V is good enough. Your case is different so you’ll have to try 1.36V first, then increase it until it’s stable or your hardware can’t take anymore.
Be careful because you can damage your hardware and this kind of damage isn’t covered by any warranty.

What caused the crashes actually?

I can only speculate but I think it’s related to the transient power spikes being caused by high powered GPUs such as the RTX 3000 and 4000 series.
I’m speculating that more power is being sucked into the PCIE connector on the motherboard too, potentially causing a voltage drop in some other places where it matters such as the RAM.

I’m not sure if this is a bad design coming from the GPU, the motherboard or even the RAM but it does cause some sort of instability that then causes artifacting in some games, random blue screens (BSoD) with unrelated error codes from each other sometimes (see my screenshot below) or even other issues.

Gamers Nexus did produce a video to explain the transients in more detail but I feel that it might only be scratching the surface for the issues that some of us might encounter.

My hardware

At the time of writing I’m rocking my BEEF PC that is build around the following components:

  • AMD Ryzen 9 5900X;
  • NVidia RTX 3080Ti (Gigabyte);
  • 64GB Corsair Vengeance 3600MHz RAM;
  • Asus TUF GAMING X570-PRO motherboard;
  • Corsair 850W PSU.

This was tested and has been stable ever since I’ve increased my RAM voltage.
I have tested this on another computer with the following specs:

  • AMD Ryzen 7 5800X;
  • NVidia RTX 3090 (FE);
  • 32GB Corsair Vengeance 3200MHz RAM (voltage bumped to 1.37V);
  • MSI Tomahawk B450;
  • Corsair 1000W PSU.

Conclusion

Those new RTX 3000 and 4000 series are pretty powerful and pull all the power they can get and some more!

I understand that most of the reasoning I went through was speculation and it feels like I’m making up a reason. I’m honestly not even convinced by what I think is the problem but increasing the voltage did fix it for me so I’m not going to argue that I’m running a stable system.

 

The grind of streaming on Twitch

Update 2023/03/26:

Turns out streaming gunpla instead of video games helped so much more in getting over 3 average viewers at the same time. People also feeling more engaged and tend to participate much more in chat too.

That was really unexpected but I’m fine with that because I liked streaming my build of the HG Gundam Aerial:

I will definitely do more of that and improve my setup since I have no plans of stopping. I’ll write up a post about the setup once it’s more set in stone.

Original post:

As I’ve announced previously on YouTube and also on the blog I’m trying to get a bit more into streaming. The grind isn’t easy because the path to affiliate has some specific requirements that are actually a bit hard to achieve.

Path to Affiliate

This is what it looks like:

The harder part of it is getting an average of 3 viewers because if I stream towards an audience of no one then I’m just digging down.

I also tend to get much more views on YouTube but more on that later down the post.

Streaming on multiple platforms is forbidden

Once affiliated with Twitch I won’t be able to stream to Twitch and YouTube at the same time. Streaming towards a Restream Docker container was really convenient to automatically upload my VODs to YouTube but it increases the stream latency so much that the interactions are slow.

Once I gain my affiliate status I won’t be streaming to two platforms at the same time.

Streaming on YouTube?

To enable monetisation on YouTube there are different rules:

Getting at least 1k subs is easier than keeping viewers engaged for 4k hours.

I’m thinking of trying something with the public shorts views but that would mean that I need to line up some content and be as widespread as possible.
I could edit some of my VODs on YouTube to extract some highlights but there could be much more work than I’m expecting.

I’m also not very fond of YouTube shorts as I classify that under “infinite scrolling brain dead content for zombie”.

Conclusion

Streaming is a grind and it ain’t easy.

‘Nought said.

Going into 2023

After a pretty full year of me finally committing to at least one video per month on my YouTube channel (in French) I’m thinking about getting much more into streaming because why not?

In November 2022 I streamed Breath of the Wild and I loved every second of it as usual. I’m not sure if committing to just one language will bring me success but I can’t do more than attempt tag my streams as multilanguage.

After that I went to Japan and thought about vlogging about it, honestly it’s not performing well on YouTube so I’m a bit bummed but that’s my fault for having no idea about what I was doing.

For 2023 I plan on trying to build some streaming tools for me to use as a way to avoid depending on external services and so the next tool I’m thinking about building should be my own multi chat reader for Twitch and very hopefully YouTube. I still need to figure out how to properly use that YouTube API and it doesn’t look fun nor does it look straightforward…
At least Twitch uses the IRC protocol.

I hope my streaming attempts will be met with a bit more success even though I’m not trying to transition into being a real streamer. I just want to get better at it. Making money would be some sort of bonus but clearly not what I’m aiming for (it could pay for stuff).

Other than that I’ll be gaming hard, coding hard and trying to keep up with the global apocalypse going on since 2020.
Fun times I swear.

No ShadowPlay overlay in games, no recording after install a Stream Deck

I’ve recently purchased a Stream Deck MK2 by Elgato (Corsair) after playing around with the mobile app for a while and planning out some profiles for stuff like video editing and streaming.

It’s honestly a nice piece of equipment but I’ve had it for less than 24 hours and I’ve already found some problems.

Symptoms

After running the Stream Deck software to configure the keys and browse the plugins that are available I noticed that my ShadowPlay overlay isn’t showing in the critically acclaimed Final Fantasy XIV, which is unusual.

I closed the game, relaunched it, even rebooted and nothing. Time to try another game like Monster Hunter World, same. I confirmed that the main menu would show up but I had no overlay showing the replay buffer running.

Weirder was when I attempted to record it would ask me if I wanted to enable desktop recording. That’s when I started thinking that some software was grabbing ShadowPlay and keeping it to itself without ever releasing it.

I was looking for the icons on the bottom right

How to blacklist apps from ShadowPlay

The only way to fix this is to find a way to forbid ShadowPlay from hooking into it and of course Nvidia doesn’t give us tools to deal with that.
But on the bright side we have third party tools and I used the NVIDIA Profile Inspector, download a release here.

Download it, run it and the in the box on top search for Discord:

We will now add the StreamDeck.exe utility to that list by clicking on the add application to current profile button, browse to your Stream Deck installation folder and add StreamDeck.exe to it.

You might need to relaunch the Stream Deck utility, relaunch ShadowPlay through GeForce Experience or even reboot.
After that the utility will no longer trigger the overlay notification you get when you run a game and you should be able to record gameplay without enabling desktop recording.

Closing notes

I’ll make a proper post about how I use it at a later date (maybe) but for now I’m pretty much pleased with how easy it is to configure and I have started experimenting with some plugins such as Discord (mute/deafen toggle), iCUE profile changer (for my Corsair iCUE H150i RGB PRO XT) and a plugin to show CPU and GPU temps with HWiNFO.

I’ll get started with streaming a bit more often I guess and will improve my general workflow and battlestation setup.

Corsair AIO resetting randomly with HWiNFO running

For the past two weeks I’ve had my Corsair iCUE H150i RGB PRO XT resets randomly. This happened when I swapped my Nvidia GTX 1080 for an RTX 3080Ti.

So much went wrong for no reason that I was questioning my sanity and how good I build computers.

Conflicting monitoring

It happens that I also run HWiNFO to monitor my hardware, not that I need to but just because I want to. The thing is that my AIO started reset itself and iCUE would break randomly, under load or while idling.

There was no pattern, I thought the problem would be coming from the cooler itself or the motherboard.

It turns out that HWiNFO might conflict on rare occasions with iCUE, Corsair and Asetek coolers. How do I know it might be that?
I didn’t run HWiNFO since yesterday and my AIO didn’t reset once or default to hardware RGB.

Setting up HWiNFO to not conflict with the AIO

Honestly when it comes to making two pieces of software not conflict all I can imagine doing is just turning off one of them. However this isn’t a solution for Corsair iCUE and my cooler still needs to work with the curve I setup.

I’ve started running OCCT to diagnose some stuff on my PC and found in the settings some checkbox for Corsair stuff. I thought to myself that HWiNFO might have one too.

All I need is to uncheck this box and I should be good to go.

Corsair iCUE might still fail

I like Corsair but iCUE can be garbage sometimes and this isn’t acceptable when the software is in charge of interacting with cooling.

Sometimes the sensors will no longer update in the dashboard and in the cooling settings, thus making it impossible to follow the temperatures and fan speed.
When this happens all I need to do is restart the iCUE service but I feel like it shouldn’t hang and I can’t help but be concerned about it.

Now the good news is that I no longer need to RMA the cooler. I can focus on other problems.

The cheating problem of Final Fantasy 14

It’s weird that we can disagree on what’s cheating and what’s not sometimes, so I guess this is just my opinion.

Following a discussion I found on reddit and after listening on Discord to someone justifying using those third party tools to know the target’s moves in advance and even getting “help”, I can’t really believe that people are defending the use of those tools.

While some do claim that it improves the accessibility, I think that it solves the problem in a bad way.

Let’s talk about one tool in particular first.

What is Cacbot?

As described on GitHub it’s an ACT overlay that provides raiding tools for Final Fantasy XIV. Presented like that it doesn’t seem like much until you start looking at the screenshot below:

Cacbot taken from a YouTube video

On the middle of the screen there’s a notification and an order to avoid the next action the boss will do: Get out of front.

It can’t be made more obvious than that. Notifications and automatique callouts are accompanied with a bell sound or whatever is setup.

On the top left we have a timeline of actions:

These actions have a countdown on the right so you know what will happen and what to expect.
It does other things too and it’s not the only kind of tool that I would call a cheat.

The game’s stance on third party tools

A post was made on the Lodestone about third part tools. Basically third party tools are strictly prohibited, they say they will suspend and permanently ban repeat offenses. Do they really ?

Well let’s say that they did ask players to not push in this video:

In the case of ACT, it permits users to graph the DPS and other numbers, how different is that to typing the numbers manually on a calculator?
Yoshida argues that there’s no end to such a conversation and he’s right.
The whole video is interesting on its own so check it out.

The part where basically players shouldn’t push it is during the harassment part. Players shouldn’t be judging and discussing other players numbers. Player shouldn’t discriminate based on numbers shown in a third party tool.

On my part I can’t defend parsing because at some point we all meet a very toxic player telling you how to optimize your damage output. If the analytical tools like DPS meters were used only on a personal level, with no DPS shaming, then I don’t think these tools would be an issue.
Some great analytical tools exist such as xivanalysis that helps you improve your rotation. But like the music says one brings shadow, one brings light

But what about the Cacbot tool mentioned above? Well to me that falls in the category of cheats since it appears to be able to display a timeline of actions that a target will take.
This does affect my experience too and I do not consent playing with cheaters.

No running anticheat

Final Fantasy XIV has taken the approach of not running a classic anti-cheat with the game and that’s ballzy. Any other game would be running along with some kernel driver monitoring the game or some sort of other implementation just to make sure the players are playing by the rules.

Not having to deal with the down sides of an anti-cheat is great as it doesn’t impact the game’s performance.

Conclusion

Cheaters sicken me.

If you need a third party tool to do the callouts or you do callouts based on that tool then you shouldn’t be bothering with the game. Especially if you suck at it with cheats.

Don’t defend the use of the Cacbot, it’s like having a wallhack in FPS. You know what’s coming. You know how it’s coming.

And don’t you dare talk to me about how you hate spoilers if you have a precise timeline for each and every action the boss is going to do. You are the one spoiling the fight and you are affecting my game with your cheats.

Discord animated voice PNGs

Update 2023/05/03

Use Reactive.Fugi.Tech instead, it’s easier. You can setup your profile pictures and share a link to be integrated into OBS. It just works.

Original post

When building your streaming overlay you might want to add the other users that are in your current vocal chat but you want to customize a bit the way it’s displayed.

Discord doesn’t offer any of those options natively but with OBS Studio it’s possible to use some tricks.

CSS & web knowledge required to understand how to use CSS and how to link images.

Setting up the widget

Nothing really hard here, got to the Stream Kit page for Discord in the overlay section.

Setting up the server and the voice channel to be used will alter the URL so make sure you are using the right channel, but it’s possible to use a personal and private channel to use for PNG VTubing.

In OBS within your scene you need to create a browser source and use the provided link as such (no preview until it’s saved):

This is the basic setup. Next we will need a way to get the user ID on Discord.

Setting up Discord

To be able to get the user IDs we need to enable the developer options within Discord. Go to your settings within Discord and in the advanced tab you’ll find the developer toggle:

Getting the user’s ID is as simple as right clicking a name in the chat and clicking on the Copy ID button:

Customizing the widget

Since the widget is a web page within a web view in OBS Studio it’s easy to customize through CSS. Here’s the code to copied & pasted into the custom CSS text area in the browser source:

/*
To be used with the Voice Widget from the Discord Stream Kit
https://streamkit.discord.com/overlay

Do not hotlink images, please rehost them to avoid stealing
bandwidth and keep control over your images, Imgur is a fine
option for this.

Credits:
- Generator by kukushie: https://www.reddit.com/r/VirtualYoutubers/comments/k4q8jw/css_generator_for_discord_reactionary_images_that/
- Edited & improved by SenpaiSilver: https://twitter.com/SenpaiSilver

Please keep the credit chain when making & publishing your changes.
*/

@keyframes speak-now {
    0%  { bottom:0px; }
    15% { bottom:15px; }
    30% { bottom:0px; }
}

body {
    background-color: rgba(0, 0, 0, 0);
    margin: 0px auto;
    overflow: hidden;
}

/* Aligning everything on the same line */
.voice-state {
    display: inline-block;
}

/* Images must be square, change height for it to be scaled
back to 128px wide, or else deal with bad alignments */
.avatar {
    height: 128px !important;
    width: auto !important;
    border-radius: 0% !important;
    filter: brightness(50%);
}

.speaking {
    border-color: rgba(0,0,0,0) !important;
    position: relative;
    animation-name: speak-now;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    filter: brightness(100%);
}

/* Hiding names because the discord parameter on the streamkit
doesn't seem to be taken into account correctly */
.name { display: none; }

/* Default avatar */
.avatar {
    content: url("https://link-to-image.png");
}

/* Users go here: */

.avatar[data-reactid*="new"] {
    content: url("https://link-to-image.png");
}
.speaking[data-reactid*="new"] {
    content: url("https://link-to-image.png");
}

The result is an overlay, where the images change went talking in some way:

  • Brightness is increased;
  • The image is bumped 15 pixels higher;
  • The image changes depending if an image is set for talking only.

Explaining some parts of the code further

It’s important to understand some parts of the properly before running this code, even though it’s just CSS.

First of all you cannot trust users, I recommend using a default image for users that are not part of the CSS to avoid displaying potentially unwanted profile pictures:

/* Default avatar */
.avatar {
    content:url("https://link-to-image.png");
}

This code will replace the img tag’s content with the provided image for everyone that connects to the voice channel. After that it will be possible to set below the specific users with their IDs:

.avatar[data-reactid*="user discord id"] {
    content:url("https://link-to-image.png");
}
.speaking[data-reactid*="user discord id"] {
    content:url("https://link-to-image.png");
}

When we override .avatar we are already setting the default image for the user, by specifying that the attribute data-reactid contains a certain string we can refine our selector and make it target a specific user ID (since they are unique).

In this case the same applies when .speaking is added to the user .avatar.

If you wish to retain round avatar you will need to tweak the border-radius within the first definition of .avatar.

Possible improvements

Since we are dealing with images, animated GIFs are an option and could be used to display an animation with transparency.

If the GIF format doesn’t provide enough colors then it’s possible to fallback to something like the animated WebP or APNG format.

Credits, warranties & notes

This code is based on a generator found on reddit, I’ve changed it to make it work better and fit my own settings. If you modify the code please keep the credit list and add yourself to it.

The code is provided as is and might break one day if the Stream Kit is updated.

This code can be used for son PNG VTubing too.