Critical Edge: 8WAYRUN XSplit Panel Writer!

Not open for further replies.
  • Admin
As some of you probably know by now, I've all but abandoned Wirecast in favor of XSplit as my primary streaming program. While yes, XSplit has far less features than Wirecast, it just does so many things right that I felt compelled to use it. Unfortunately, with all the things it does right, there is one thing it does wrong.

That of course would be the title card system. Sure, Wirecast's title system wasn't that simple, but once you set your XML files up correctly, it was very easy to update and adjust as needed. XSplit made it easier to set up your title cards, but in turn, its very cumbersome to update and change your titles. The built-in title plugin for XSplit is a complete catastrophe. So in an effort to make it easier for myself, I've written a program to handle title updates...


Normally, if you wanted to update your titles in XSplit, you would have to go into the config screen of each and every title on your shot one by one and change the text. If you have multiple shots with the same text, you've just increased the number of shots you need to edit. And of course, since XSplit does not have a "push-to-live" function where you can edit shots in a non-live environment, the system can look rather unprofessional.

However, XSplit does have a function to make this process easier. Title slots can be set to poll a remote URL or local file and search for specific tags; it will then take the text between the tags. So originally, what I was doing was creating a custom XML file, with my custom tags, where I would store my title information. When I wanted to change a title, I would change the file, click save and then just wait up to 10 seconds till the next poll refresh.

But an issue still remained. If you look at my older XSplit recorded videos, when I switch to a screen which has a large number of polling title slots, you may notice a "lag" time during the shot change. On the shot change, XSplit must poll for text updates and until it finishes polling for updates, it freezes the video output. On my full screen game shots, this turned out to be almost a full second of stutter for the stream. I thought this was just an issue I would have to accept and pretend didn't exist.


So I continued writing my program with text files in mind. The program would take the text information from text boxes, and write them directly to my custom XML file I had previously created. Not only that, but it also had convenient "swap players" button for if players are sitting in the wrong chairs, and easy score handling with simple integer spin boxes. It even stored previously entered information to data files; so I could select player's names from drop down menus instead of continually typing them out.

That was until I went to Next Level and saw how Sp00ky was getting around the problem of text polling. Rather than using text polling at all, he was instead manually writing to title card images in Adobe Photoshop. This was an interesting discovery, as with Wirecast, the program "locks down" all files its using, so if you tried to manually write to title card images at the same time, you would get an error such as: "file is in use by another process". XSplit doesn't do this, so it created an opportunity.


Editing images manually in Adobe Photoshop still seems rather cumbersome; it solves one problem, by greatly increasing the work of the broadcaster. I aimed to solve the problem, and reduce the workload at the same time. So I expanded on my program. It would no longer output to text files; it would instead output images! It would take my blank pre-made title card images, print text on top of them, and then save the output as new files.

I have been using the program for about a week now and it's working swimmingly! So well that I've done quite a bit of work in cleaning it up so that its neat enough to be released to the public. However, there are no real "instructions" on how to use it, so if you've gotten this far into this pretty pointless rant, keep on reading so that I can inform you of a few specific usage notes of which you should be made aware.

The ZIP package attached at the bottom of this post includes some default data files and images in their own nested folders. The default settings for this program will look into those nested folders each time it boots up. The "xsplit-data" folder houses simple text files that store previously entered information from text boxes; you can edit these files freely while the program is closed to change its drop down menu options.

The "xsplit-images" folder houses your blank pre-made title card images that your text will be printed on. The program will search for 4 specific images: event.png, match.png, score.png and lower.png. If it can't find these images, you will receive an error when you try to save your text. Four "sample" images have been included in the zip packages. I would not recommend using them, as they are rather ugly and are there for demonstration purposes only.


When you make your own title card images, you will probably need to change your text. Clicking the [...] button next to each text field will bring up it's individual configurations where you can change various settings; including the default text that shows up in the text box when you start up the program. An important point of notice should be that the bottom and right position spin boxes are not actually the bottom and right positions of the text field; they are actually the height and width settings respectively.

On the "Configuration" tab of the program, you will be able to change your data source and image source folders. If you really want to change them, you can, but you shouldn't really have a reason to. The program writes your new title card images in the program root folder, so if you do change your image source folder, you should absolutely not make it the same folder as the program itself. If you do, your source title card images will be completely overwritten and you will lose your "blanks".

Also, you should keep in mind that XSplit caches your images statically. If you update the image, you will NOT see it change on your stream until you refresh your shots. There are two ways to refresh your shots; firstly, you can simply create another shot without your title card images, and then switch to and from it. The shot change will refresh the image. Or, even easier, you can set up an image slideshow with your title image and it will periodically repoll the image to look for changes.

Simple program... easy to use... download here:
v1.2 - Free
v1.5 - Pro version costs $10

And of course, if you appreciate this program, don't forget to donate!
Application now targets .NET Framework 3.5 instead of 4.0! XSplit itself uses 3.5, so its only natural that this program targets the same framework. Now its simple, if you can run XSplit, you can run the XSplit Panel Writer without having to install any additional frameworks!​
However, I should warn people, that because of this change, they MIGHT get errors if they used the previous versions. But don't worry, they are easy to fix. Navigate windows explorer to C:\Users\<user>\AppData\Local\8wayrun and simply DELETE the entire folder. This will fix any issues you have... it will also delete your custom settings in the app, so make sure you have them backed up.​
Added a TWITTER tab. The twitter tab works very similar to the Twitch.TV tab in where you sign in and authorize the app to access your account. After you log in, it gives various buttons where you can add text from event info, match info, your status and the link to your stream. You can use this system to quickly and easily construct up-to-date tweets about your stream.​
The "Match" button on the twitter tab constructs data using the following format "Game Round - Player1 VS Player2". Normally this would be too verbose, so you can now "shorten" game/round info. Simply add a {TAG} to the end of a game/round and that will be it's shortened form. Shortened tags will only appear for tweets, they will not appear on your actual title images.​
Added a TEAMS tab. The teams tab is pretty much reserved for 4 player games... so now that I think about it, the name is a misnomer. Basically it has been put in place for Smash Bros, Sony All-Stars, or games of similar ilk. The teams tab has a similar structure to the regular match titles tab, except that its 4 players instead of only 2.​
Up until now, this program has been free, and I will continue to make these older versions available for free. However, this next version I release: version 1.4 will be sold at a $10 premium. Why the charge? Because this new version hooks directly into the TwitchTV API, which allows you to not only update your channel status from within the program itself, but also run commercials according to timers! Since these new versions deal directly with making money, I'm charging for it...​
As you can see, the new layout of the program is "shorter" and "wider". If you're using a 1080p monitor, and are streaming at 720p, the program will now snap in nicely below XSplit without covering the bottom row of scene buttons. Because of this, I added an "Event 4" field just to fill in the extra space. The "Match Titles" tab has been unchanged.​
The "Lower Third 1" tab has been changed quite a bit. In the previous version, each lower third tab had 1 header, and 1 summary; the "Lower Third 2" tab keeps this design, but the "Lower Third 1" tab has gained a second set of headers and summaries. The reason for this, is that it makes it easier to give names and twitter tags to commentators, as well as swap the names, in case they switch seats. Naturally, if you don't like this change, you dont have to use the second set of headers and summaries...​
The big change to this mod is the addition of the "Twitch.TV" tab. Its pretty self-explanatory... You sign in and authorize the app. Then you can edit your channel's status directly from within the program. In addition to that, you can run commercials with a click of a button; and set a timer to remind you to run commercials periodically (when the timer is reached, the tab title will change to the clock). In addition to that, you can set it to run the commercials automatically based on the timer!​

Added the most requested feature I've gotten yet! You can now import/export your settings from within the program. Some people have multiple layouts in xSplit, depending on what event they are running. This new system will let you export your current settings as an XML file so that you can import them at a later time.​

Added support for a second "lower thirds" tab. Some people may want multiple sets of lower thirds, for example, one for the commentator cam, and one for the player cam; so because of this, I've added a second lower thirds tab. The file names have been slightly changed from "lower.png" to "lower1.png" and "lower2.png".​
Added support for CTRL+S. Yes, that is right, you can now click CTRL+S on your keyboard to save all images instead of having to click buttons. Keep in mind that clicking the big red "SAVE" buttons will update the "current" image, but hitting CTRL+S will save ALL images.​
If you have any feature requests, let me know.
Jason Axelrod

Jason Axelrod

Owner and Operator of 8WAYRUN
XSplit seems to be caching the images, and therefore does not automatically update when I change an image using this program. What gives?
You can also use the Image Slideshow plugin included with newer versions of XSplit. You can set it up to poll the images to be updated, or you can hit a key to update the selected image. This allows you to update it without switching back and forth between Views.
Good stuff man. I approve of this and will definitely be pushing this and trying it out hard!

Appreciate it a lot!
Awesome plugin Jaxel, thanks for this. Any way to change what image resolution it outputs? By default it's 720p images, any way to default it to 432p images instead?
It outputs whatever your source images are.

Ah okay. I tried changing the match.png etc. images to be 768x432, but next time I opened the exe it changed them back to 1280x720. Sorry for the noob questions but can you tell me how to do it?
Also, even when I delete The Jaxel-dome lines etc. from the text files, it still defaults to those when I load the program. Any way to get rid of those as the defaults?
Ah okay. I tried changing the match.png etc. images to be 768x432, but next time I opened the exe it changed them back to 1280x720. Sorry for the noob questions but can you tell me how to do it?
There is nothing else to really say... it uses your source images; end of story.
Any chance of getting the source for this published? I'd love to mod it to be used from the command-line; I have a Python file that currently generates my xml files for overlays (it manages a lot of things for me, really), and I've been contemplating writing an image creator, but you've done a much nicer job making it configurable than I'd bother doing and I'd love to extend it to be invoked from command line. Of course, any derivative build and source would be shared alike, to add value (open-source <3).

Also, I you mentioned in the Streaming Tutorial that there was a way to eliminate the blank title issue via XML construct hackery and syncID's... Is it at all feasible to get more information? I get not writing a full article, but even if I could just get ahold of some modified source that has it working, I could probably figure out what you've done to make it work. This program seems really awesome, but as it stands it'll be tricky to work into my workflow; the syncID hack might be a more straightforward approach.

Thanks for the awesome software, though!
Not open for further replies.

Live streams

35 Viewers
[PC] Tira/Talim Ranked & Toxic Tuesday Lobby
23 Viewers
Educational Stream. VOD Review.
15 Viewers
Top Raphael/Setsuka player in the WORLD

Forum statistics

Latest member