<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://warlockfe.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://warlockfe.github.io/" rel="alternate" type="text/html" /><updated>2025-10-01T17:58:27+00:00</updated><id>https://warlockfe.github.io/feed.xml</id><title type="html">Warlock Front End</title><subtitle>Warlock is an open source front end for Simutronics games.</subtitle><entry><title type="html">Welcome GS players</title><link href="https://warlockfe.github.io/2025/07/16/welcome-gs-players.html" rel="alternate" type="text/html" title="Welcome GS players" /><published>2025-07-16T02:11:00+00:00</published><updated>2025-07-16T02:11:00+00:00</updated><id>https://warlockfe.github.io/2025/07/16/welcome-gs-players</id><content type="html" xml:base="https://warlockfe.github.io/2025/07/16/welcome-gs-players.html"><![CDATA[<p>Over the past few months, I’ve added a lot of GS-specific functionality. New option to launch and
connect via Lich. GS clickable commands are mostly working. GS dialogs with progress bars, etc are
mostly working. Images in dialogs are still a work-in-progress. In-game pictures are working.
There’s a new script command <code class="language-plaintext highlighter-rouge">play</code> to play sounds. Too many fixes and changes to list here, check
the release notes for more details.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Over the past few months, I’ve added a lot of GS-specific functionality. New option to launch and connect via Lich. GS clickable commands are mostly working. GS dialogs with progress bars, etc are mostly working. Images in dialogs are still a work-in-progress. In-game pictures are working. There’s a new script command play to play sounds. Too many fixes and changes to list here, check the release notes for more details.]]></summary></entry><entry><title type="html">Been a bit</title><link href="https://warlockfe.github.io/warlock/update/2024/12/07/Been-a-bit.html" rel="alternate" type="text/html" title="Been a bit" /><published>2024-12-07T11:12:00+00:00</published><updated>2024-12-07T11:12:00+00:00</updated><id>https://warlockfe.github.io/warlock/update/2024/12/07/Been-a-bit</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2024/12/07/Been-a-bit.html"><![CDATA[<p>I released 3.0.16 a couple of days ago. I haven’t reported any of our progress since over a year ago. There’s been a
few minor fixes. Google finally landed their replacement API for clickable text, which allowed me to fix a
long-standing issue with allowing both selecting, copying, and clicking text. I migrated the installer to Conveyor.
They provide us with an automated updater, and they released an API for managing updates. Windows and Mac should be
prompted now before updating. I realized that Linux builds weren’t properly being scaled. Jetbrains provides an
improved Java runtime that fixed that issue. I replaced most of our icons with public domain SVG’s and managed to
scale the compass to actually be usable.</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[I released 3.0.16 a couple of days ago. I haven’t reported any of our progress since over a year ago. There’s been a few minor fixes. Google finally landed their replacement API for clickable text, which allowed me to fix a long-standing issue with allowing both selecting, copying, and clicking text. I migrated the installer to Conveyor. They provide us with an automated updater, and they released an API for managing updates. Windows and Mac should be prompted now before updating. I realized that Linux builds weren’t properly being scaled. Jetbrains provides an improved Java runtime that fixed that issue. I replaced most of our icons with public domain SVG’s and managed to scale the compass to actually be usable.]]></summary></entry><entry><title type="html">Mac builds are fixed</title><link href="https://warlockfe.github.io/warlock/update/2023/11/24/Mac-builds-are-fixed.html" rel="alternate" type="text/html" title="Mac builds are fixed" /><published>2023-11-24T09:50:00+00:00</published><updated>2023-11-24T09:50:00+00:00</updated><id>https://warlockfe.github.io/warlock/update/2023/11/24/Mac-builds-are-fixed</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2023/11/24/Mac-builds-are-fixed.html"><![CDATA[<p>Warlock 3.0.11 is out now.</p>

<p>Mac builds for the last few releases have been broken.
Apple creates enough hoops to get packages notarized (which is required to install packages
on modern versions of MacOS).</p>

<p>This release also includes an improved look on the drag handles.</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[Warlock 3.0.11 is out now.]]></summary></entry><entry><title type="html">Minor updates</title><link href="https://warlockfe.github.io/warlock/update/2023/02/01/minor-updates.html" rel="alternate" type="text/html" title="Minor updates" /><published>2023-02-01T17:44:00+00:00</published><updated>2023-02-01T17:44:00+00:00</updated><id>https://warlockfe.github.io/warlock/update/2023/02/01/minor-updates</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2023/02/01/minor-updates.html"><![CDATA[<p>Warlock 3.0.5 is out now.</p>

<p>The last few releases have mostly been focused on polish. Without getting into details, Warlock is still a bit slower
than I would like, but I’ve improved things a bit in 3.0.2. This release improves the appearance a bit, but mostly
just updates to the latest version of Compose and migrates from Material Design 2 to 3.</p>

<p>Try it out, let me know what you think.</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[Warlock 3.0.5 is out now.]]></summary></entry><entry><title type="html">Warlock 3 is out of beta</title><link href="https://warlockfe.github.io/warlock/update/2022/08/03/warlock-3-is-out-of-beta.html" rel="alternate" type="text/html" title="Warlock 3 is out of beta" /><published>2022-08-03T21:38:00+00:00</published><updated>2022-08-03T21:38:00+00:00</updated><id>https://warlockfe.github.io/warlock/update/2022/08/03/warlock-3-is-out-of-beta</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2022/08/03/warlock-3-is-out-of-beta.html"><![CDATA[<p>Warlock 3.0.0 is out now! There are builds for Windows, Mac, and Linux.</p>

<p>Since the last post, I’ve improved the MacOS builds. Recent versions of MacOS require a developer license and signed builds, so I’ve delivered. They also want a notarized build (verified to be malware-free by Apple), so I’ve delivered that as well.</p>

<p>Performance of recent builds is much improved. Previously, each component (the little variable sections of the text windows) update would cause a <a href="https://developer.android.com/jetpack/compose/mental-model#recomposition">recomposition</a>. There’s still some room for improvement, but the performance is now decent.</p>

<p>I had a bit of a misunderstanding on how the output tag worked. Warlock 2 would clear it on when it received a prompt. My Wrayth profile for some reason had a variable width font set for their “column” font. Finally, after some experimentation and confusion, you should see monospace fonts applied in more situations.</p>

<p>I also added a few features. Regular expressions are now supported in highlights (very similar to Warlock2). I added aliases and text alterations. Aliases allow you to replace text in command submissions with other text or variables. Text alterations allow you to change the window or content of text coming from the game server.</p>

<p>Please feel free to contact me if you have any suggestions. Use the contact link. The best way is is to join our slack channel, but email works too.</p>

<p>Happy gaming.</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[Warlock 3.0.0 is out now! There are builds for Windows, Mac, and Linux.]]></summary></entry><entry><title type="html">Warlock 3 reaches beta</title><link href="https://warlockfe.github.io/warlock/update/2022/07/06/warlock-3-reaches-beta.html" rel="alternate" type="text/html" title="Warlock 3 reaches beta" /><published>2022-07-06T20:38:00+00:00</published><updated>2022-07-06T20:38:00+00:00</updated><id>https://warlockfe.github.io/warlock/update/2022/07/06/warlock-3-reaches-beta</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2022/07/06/warlock-3-reaches-beta.html"><![CDATA[<p>Warlock 3 beta03 is out now for testing. There are builds for Windows, Mac, and Linux. The big missing items mentioned in the last post are all implemented.</p>

<p>I promised script improvements, and I’ve delivered. You can check the docs for porting Warlock 2 scripts. The same process will mostly apply to Genie scripts if you’re interested in converting them. A couple of notes about variables: Warlock 2 had a bit of a weirdness with global/local variables. We had copied Genies usage of “$” to mark a different type of variable, except with the reverse usage as them. When I wrote the script engine, I was more familiar with Wizard scripts and I hadn’t used StormFront much. Warlock 3 gets this more correct, but please let me know if you have any issues. The “$” variable indicator has been dropped. All variables now share the same namespace. There are 3 types of variables: client variables that are stored in settings and can be used in multiple scripts, script global variables that will shadow a client variable if used, but aren’t persisted, and local variables that will shadow any other variable and are only scoped to the current function.</p>

<p>I’ve implemented an escape mechanism using %{}. Anything inside the braces will be treated as a special expression and parsed using a bit more formal parser than is typical in scripts. Variables can be prefixed with % there, but it’s not manditory. For the moment, it’s the only way to access properties of maps: ie. “%{properties[“health”]}”.</p>

<p>All preferences are now stored in a sqlite DB at %HOME/.warlock3/prefs.db. You can copy that file to back it up and overwrite it with the backup if something goes wrong with your settings. I’m planning to implement import/export functionality, but it’s not high on my list of priorities.</p>

<p>The biggest improvement in beta02 is the introduction of the dashboard. You can now quickly connect to any previously connected character. beta03 brings the ability to reconnect without restarting the client, and connect through Lich. Lich 5 has a few issues preventing it from working with Warlock, but I have a working fork here: (https://github.com/sproctor/lich-5).</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[Warlock 3 beta03 is out now for testing. There are builds for Windows, Mac, and Linux. The big missing items mentioned in the last post are all implemented.]]></summary></entry><entry><title type="html">Switch to Compose</title><link href="https://warlockfe.github.io/warlock/update/2021/09/16/switch-to-compose.html" rel="alternate" type="text/html" title="Switch to Compose" /><published>2021-09-16T13:04:00+00:00</published><updated>2021-09-16T13:04:00+00:00</updated><id>https://warlockfe.github.io/warlock/update/2021/09/16/switch-to-compose</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2021/09/16/switch-to-compose.html"><![CDATA[<p>Well, I never really had anything too interesting made with TornadoFX. It turned out that I wasn’t very motivated to learn another UI toolkit and other priorities got in the way again. I had a decent PoC, but not much more. Which brings me to the point of this post, I’m happy to announce a slightly more complete Warlock using the new Compose Desktop UI.</p>

<p>If you’re interested in this project, feel free to send me an email. The UI can use a lot of polish, and a lot of features are missing. Implemented so far: rudimentary scripting support, framework for parsing the StormFront protocol, compass/vitals/hands views. Big missing items: highlights, StormFront streams, status indicators.</p>

<p>Warlock2 offered some compatibility with Genie scripts. There was always something about their implementation that bothered me, and we never got it quite right. My plan for Warlock3 is to support compatibility with most StormFront scripts and add a bit of functionality on top. The StormFront script processor is completely forgiving and allows some really nasty stuff. I would like to give notice about bad behavior rather than silently ignoring it. From Genie, we’ll support gosub
and whatever else makes sense. Already, I’ve implemented a pretty powerful “if” parser that allows complicated expressions in “if”. I want to add an ability to escape into the expression parser to allow the same capabilities in arbitrary places in the scripts. My question is which symbol to use that doesn’t break compatibility with existing StormFront scripts.</p>

<p>That’s all for now. I’m going to try to do some polishing and publish an alpha release when I have time.</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[Well, I never really had anything too interesting made with TornadoFX. It turned out that I wasn’t very motivated to learn another UI toolkit and other priorities got in the way again. I had a decent PoC, but not much more. Which brings me to the point of this post, I’m happy to announce a slightly more complete Warlock using the new Compose Desktop UI.]]></summary></entry><entry><title type="html">Welcome to the new Warlock site!</title><link href="https://warlockfe.github.io/warlock/update/2018/03/22/welcome-to-the-new-warlock-site.html" rel="alternate" type="text/html" title="Welcome to the new Warlock site!" /><published>2018-03-22T14:20:28+00:00</published><updated>2018-03-22T14:20:28+00:00</updated><id>https://warlockfe.github.io/warlock/update/2018/03/22/welcome-to-the-new-warlock-site</id><content type="html" xml:base="https://warlockfe.github.io/warlock/update/2018/03/22/welcome-to-the-new-warlock-site.html"><![CDATA[<p>I’m starting work on Warlock again. This includes a website redesign (which you are now looking at) and a redesigned client.
I’d like to apologize for how poorly Warlock has been maintained these past few years. We’ve had a mix of declining user
interest and developers with other priorities.</p>

<p>When we are active, we’ve done a lot of work that never made it into a release. The current state of the Warlock 2 application is
much better in the github repository than the last version that was pushed over to SourceForge. <del>You can find some newer builds
over on our build site. Those will not be automatically updated because I never figured out how to
get the updater working when we updated Eclipse versions.</del> Which brings me to the point of all of this…</p>

<p>Upgrading versions of Eclipse was extremely painful. It broke the updater and cause strange behavior in the UI. The solution to
both of those problems was to start re-architecting things. If we stayed with Eclipse, it was going to be a lot of work invested
into a platform that appears to be stagnating. The complications to the release cycle that come from building on Eclipse do not
appear to be worth what they provide when there are options now that didn’t exist when we started this project. Which brings me to
the <em>actual</em> point of this…</p>

<p>I’ve started a <a href="https://github.com/sproctor/warlock3">complete rewrite</a> of Warlock 2 in Kotlin and TornadoFX/JavaFX. The UI will be
very similar to Warlock 2. This project is still in its infancy. I expect to have something worth demonstrating in a couple of
weeks.</p>

<p>You can view <a href="https://sourceforge.net/p/warlock/news/">our old posts here</a>.</p>

<p>Update:</p>

<p>RIP warlock.cc. Due to lack of use, Marshall has retired warlock.cc. The old builds are now lost to time. They can still be made from our git repository, but they’re no longer available for download.</p>]]></content><author><name>Sean Proctor</name><email>sproctor@gmail.com</email></author><category term="warlock" /><category term="update" /><summary type="html"><![CDATA[I’m starting work on Warlock again. This includes a website redesign (which you are now looking at) and a redesigned client. I’d like to apologize for how poorly Warlock has been maintained these past few years. We’ve had a mix of declining user interest and developers with other priorities.]]></summary></entry></feed>