PowerCards API Script on Roll20 and a YouTube Channel?

So I ran across a Roll20 API script called PowerCards, which lets you create nicely formatted output cards for abilities and attacks. Stuff like this:

I really like this kind of thing, as it add some flare to the game beyond the fairly simply built-in die rolls.

I wanted to add a few features to the script, and the author had long since stopped supporting and updating it, so I contacted him about taking it over. He was agreeable, and I’ve released two updates to the script so far (You can find the current thread at https://app.roll20.net/forum/post/6264588/script-powercards-3-thread-5). A couple of the changes involve a system that lets you specify video and audio effects based on character attributes instead of baking them into your PowerCard macros. That way you can use generic macros and still have customized effects.

This system is hard to describe in text, though, and one of the users in the tread above was looking for a better way to understand it.

So, armed with nothing except my headset and some free software I found online, I started up a youtube channel and recorded a demo. I don’t have a professional mike, and I’ve never done any video recording before, but I think it came out well enough to do the job. You can find my new channel here : https://www.youtube.com/channel/UC4-KDSu0CE_DRasvXqVKA9g

and the video itself (right now, it’s the only thing on the channel!) is here : https://www.youtube.com/watch?v=JwUkdO-F3LQ&t=134s

D&D 5E: Initiative Variation

I DM a bi-weekly D&D 5E game on Roll20.net, and while we are relatively new to the platform, I’ve been refining how I use it with each session. I’d like to do a series of posts about how I use macros and API scripts to run the game, but I need to iron out the kinks first.

In the mean time, I thought I’d talk about initiative. One of the things I like least about playing on a VTT is tracking initiative. Yes, there are tools built into Roll20 to help, but one of the issues I’ve had (both on a VTT and a “meat-space” game) is that usually the NPCs end up acting in a single (or a couple) of initiative points because it is just plain easier to run all of the enemy attacks at once than try to keep track of what could be upwards of 10-15 critters and when they act in the round.

I also feel like long delays can tune players out of the fight. Someone who rolls particularly poorly on their initiative roll might just decide to switch over to another tab and browse the web for a while waiting for their turn, etc. In browsing around, I stumbled across a variation on initiative (not specific to 5E) with a couple of different names, but most commonly called “popcorn initiative”. I really think “hot-potato initiative” might be a better name for it, but essentially it goes like this:

At the beginning of the fight, everyone rolls initiative, applies all of their modifiers, etc (this includes the monsters), but only the highest initiative result matter. Whomever has the highest initiative total takes control of the action. They can take their turn as normal (but they cannot hold their action – holding an action is the same as deciding to not take an action on their turn). When they are finished, they pass the initiative to anyone involved in the fight that hasn’t already taken an action during the round. That could be someone on their side of the fight or someone on the opposing side. After everyone has taken an action, the round ends and the last character to have taken their action decides who acts first in the next round – possibly even themselves.

I created a couple of simple macros using the token-mod API script to help (one marks selected tokens as having taken an action, one marks bonus actions, on marks reactions, and one clears all three of these markers for any selected tokens), and we tried it out in our last session. Overall, I think things went very well. I explained the basics of the system and that there couldn’t be a discussion about who to select next – the acting player needs to promptly pass the initiative. The players initially thought I was nuts.

When the fight started, one of the PCs won the initiative. He unleashed an eldritch blast at one of the enemies and passed the initiative to another player. They were all going to be able to act before the enemy got a chance to do anything! This was great! When the last PC acted, they wanted to pass the initiative back to the first PC. I reminded them that the enemy still needs to take their actions, so they reluctantly selected one of the enemies to act.

I ran through each enemy action, and finished off with a monster that was able to roll out use a special attack that grasped one of the PCs in necrotic vines, requiring a saving throw or inflicting both immobility and necrotic damage. Now that the PCs knew they had identified the most powerful member of their opposition, , they were eager to get back to their turns so they could unleash on it. Except that the apparition selected itself as the first person to act in the next round and attacked the same PC with its necrotic touch-  draining her strength and inflicting additional damage. It choose one of its allies to act next, and the same happened for that ally. When half of the enemy had acted, they choose the PC stuck in the necrotic grasp to act next.

This triggered the necrotic grasp’s effect again – allowing that PC to repeat the saving throw which she again failed, resulting additional necrotic damage. By this point, she was in some serious hit point trouble, was strength-drained, and in a bit of a quandary. If she attacked, she might be able to weaken the apparition – but if the priest didn’t heal her and she failed her next saving throw to escape the grasp, it was possible that the necrotic damage would incapacitate her. She ended up burning her own healing spell on herself – giving the monsters a round without her damage output.

By now, the players realized that, by stacking all of their actions at the beginning of the round, they had potentially allowed each enemy to take two actions before any of the PCs got their second action. I’ve got some fairly sharp players, so right away they understood that they needed to try to ensure that they ended up with one of them going last in each round so they would control the start of the following round. (Obviously incidental chatter isn’t going to be preventable, and really that was one of the points I wanted them to realize anyway). Just as reasonably, they came to a fairly organic conclusion that the healing-domain priest should probably be really close to the end of the round so that she could provide aid if needed (perhaps to two different PCs if the round had been particularly damaging by selecting herself to act first in the following round).

After that, the choices became interesting. If a character was knocked unconscious, was it better to pass the initiative to the healer (or an off-healer) to get them back up, possibly costing the PCs the coveted end-of-the-round spot? How about passing the initiative to an out-of-position player so they can move into a flaking position and gain advantage not only for themselves, but for one of their allies that may have acted before them under the standard initiative system?

We’ve only played with this system once so far, but I really like it. Everyone was focused because you never knew when your turn might come up, and there were actually advantages to being late in the initiative order. I can think of lots of interesting ways to use this system to the advantage of one side or the other (if the players can set up combo attacks, the enemy can too!) I thought there was a LOT less bookkeeping required with this system as well.

Macros

Below are the macros I’m currently using to run this system. They require the tokenmod API script – and hence a paid subscription to Roll20:

!token-mod --set statusmarkers|stopwatch

This places the stopwatch marker on the token to indicate they have acted in the round. At the end of the round, all active tokens will have a stopwatch – and of course anyone with a stopwatch can’t be selected as the next to act.

I have two similar macros for bonus actions:

!token-mod --set statusmarkers|fist

and for reactions:

!token-mod --set statusmarkers|screaming

When a round has been completed, I highlight all of the tokens on the board and use:

!token-mod --set statusmarkers|-stopwatch
!token-mod --set statusmarkers|-screaming
!token-mod --set statusmarkers|-fist

To clear these indicators.

I need to make a few refinements – I’m updating my NPC/Monster actions to include setting the “stopwatch” marker after running – why do that as two separate actions. I also need to consider how to handle things that are in effect “until the beginning of your next action” – right now they just aren’t marked and we are mentally tracking them.

Rebels of Ravenport

Rebels of Ravenport, playable on Tabletopia

One of my favorite Kickstater creators is Dan Coleman, who has produced an excellent series of D&D 5E compatible adventures in his Dungeons on Demand series, and a complete campaign setting called Ebonclad as a hardback book, so when his brother Mike launched a project for a card drafting game called Rebels of Ravenport, it was a no-brainer to kick in for it.

My friends and I frequently have game nights, and it is always nice to have a new game to play, especially something that is easy to pick up and plays fairly quickly. Rebels of Ravenport looks to check off both boxes. It is also nice that it supports up to six players, as that is our normal group size.

Each player in the game leads a guild of rebels in an effort to defeat the Overlord and his monster minions that have invaded the town of Ravenport. You start with a small band of rebels and defeat monsters to gain victory points and reputation. Reputation can be spent to recruit new members of your guild. Each rebel has a dice value, and rolling that number on your turn allows that rebel to deal damage to the monster you are fighting. Build up a powerful enough guild and you can challenge the Overlord himself. Killing him wins you the game outright no matter how many victory points your opponents might have collected. Players can also win by consuming the entire pool of victory points, but each of your recruited guildmembers contribute to your victory point pool as well, so there are multiple paths to boost your guild to prominence.

Check it out on Kickstarter. The game rules are very straightforward, and you can even play it online for free at Tabletopia (link in the KS campaign page) as a nice try-before-you-buy.

Updated Form-Fillable Character Sheets

AD&D 2E Fillable Character SheetI’ve had the opportunity to convert both of my character sheets (AD&D 2E and D&D 5E) to be form-fillable. The AD&D 2E sheet even fills in the various attribute-related columns for you based on attribute scores (It knows if you are using Skills & Powers too!)

The existing versions of the sheets are still available on the RPG Resources page, and here are direct links to download the new fillable versions:

 

D&D 5E Fillable Character Sheet

Download Old School AD&D 2E Character Sheet - Fillable Version

Download D&D 5E Character Sheet - Form Fillable Version

 

 

Using C.H.I.P. as a Repetier-Server

My wife got me a 3D Printer (the MonoPrice Maker Select V2) for Christmas, and while I initially had it connected directly to my PC, when I rearranged things it was no longer close enough to be practical to connect with a USB cable.

I backed the C.H.I.P. kickstarter a while back, and had a $9 computer I had played with for a while and then not gone back to, so it seemed like a great opportunity to put it to use. I had been using Repetier-Host on my PC with its embedded Repetier-Server, so I really wanted to keep using the software as it was my favorite of the 3D printing apps I’ve tried so far.

A Small Note

If you are an experienced Linux user, this is a very straightforward process. When I went looking to see if Repetier-Server would run on the C.H.I.P. pretty much the only thing I found was “it should” and some references to running it on the Raspberry Pi. Besides the instructions themselves, another major intent of this article is just to say that yes, it works, and it doesn’t require a lot of convoluted process to set up.

Flashing your Chip

I had flashed my C.H.I.P. right after I got it so I could use the VGA adapter I got with it, but when I tried to set it up (monitor, keyboard, and all) connected to the 3D printer, I ran into some issues. It wasn’t connecting to the printer, and when I installed Repetier-Server it couldn’t find the printer. After some searching around (most of the stuff out there is for the Raspberry Pi, which is a very similar device) it seems like the first builds of the C.H.I.P. firmware didn’t include the USB Serial drivers in the kernel. Apparently, /dev/ttyUSB0 should have been a choice, and it wasn’t there.

I also hadn’t used the device in quite a while, so I figured it was a good idea to reflash my C.H.I.P. to get the latest and greatest image for the device and hope this was resolved. As it turns out, in the 4.4 firmware at least, it is!

In order to perform a flash, you will need to put your C.H.I.P. into “FEL Mode”. This is a bit of an odd step, as you will need to unfold a paperclip and plug it into a couple of the pins on your C.H.I.P. Here is my C.H.I.P. all ready for flashing:

After that is done, head over to http://flash.getchip.com and follow the wizard to flash your device. I choose the “Headless Kernel 4.4” image since I was going to set this up as a server without a monitor and keyboard. You might want a different image if you intend to make the repetier server a side-job for your C.H.I.P.

Updating C.H.I.P.

After flashing, I needed to set up my C.H.I.P. so it would connect to my wireless network. There are some excellent directions here: https://www.dexterindustries.com/howto/connect-to-chip-headless-mode/ on doing just that. Just remember to be patient after plugging in your C.H.I.P. it takes a few seconds for the computer to boot up and be available via the COM port.

Once you’ve connected to your network and can connect to your C.H.I.P. via SSH over wireless (use the same putty application you used to set up the network), it is time to perform some updates. If you logged in as root, you can follow the commands below directly. If you are using one of the desktop firmware version, you will need to preface these commands with “sudo” and provide the “chip” when the system asks for a password.

To update your installation sources and package information, run:

apt-get update

after the completes, go ahead and let the C.H.I.P. update the packages installed on the system:

apt-get upgrade

This will likely take a few minutes, as there are a lot of packages to update from the base firmware. Just let it run, and pick back up when it finishes.

Downloading Repetier-Server

Head over to http://www.repetier.com and click on the Download link under Repetier-Server. There will be a number of options here, but the one we want is for “armhf“, since the C.H.I.P. is a 32-bit ARM processor. The easiest thing to do here is to right click on the download button and copy the link to the clipboard. Then pop back over to your putty session and download the file with wget. From the command line, type “wget ” and right click to paste the URL into the putty window. Hit enter, and the file will download. In my case:

wget http://download.repetier.com/files/server/debian-armhf/Repetier-Server-0.80.3-Linux.deb

After downloading, we need to install the package:

dpkg -i Repetier-Server-0.80.3-Linux.deb

Finally, we just need to start the service:

service RepetierServer start

Troubleshooting note: I had an issue where the RepetierServer service did not start when I restarted my C.H.I.P. After connecting with putty and experimenting, I found that, for some reason, the repetierserver user had disappeared from /etc/passwd. I just reran the dpkg command above and reinstalled and didn’t have an issue after that.

Server Setup

For the rest of the setup, we need to switch to a web browser. Once the service is started, your C.H.I.P. will be running a web server on port 3344. In your browser, navigate to http://chip.local:3344 and you should see the Repetier-Server interface:

From here, click on “Add new Printer” and follow the wizard. When asked about the port to use, my server determined it automatically:

Follow through the rest of the wizard (the details will be dependent on your particular printer), and you should now have a printer now available on your server.

Connecting with Repetier-Host

Now that the server is set up, head over to https://www.repetier.com/ and download the most recent Repetier-Host for your OS. I’m using Windows, but I suspect the Mac and Linux versions are not very different.

Once you have Repetier-Host installed (you can install without the local repetier-server), we need to configure the program to connect to the server we just set up. Open up Repetier-Host and click on the “Connect” button. It should fail and ask you if you want to open the printer settings dialog (alternatively, you can select Config -> Printer Settings from the menu bar).

 On the Connection tab, select Repetier-Server as the Connector, and enter chip.local for the IP address. Now, we need to enter our API key to allow us to connect to the server. Click on the “Show” button next to the API key field and your default browser will open to the Repetier server’s connectivity screen. Copy the API key (a long hex value) and past it into the API Key field in the dialog box above and click “Connect to Continue”.

Your printer should be automatically selected. If not, click the dropdown for Printer and select it. Click on “Copy Server Config Settings” to transfer information about your printer (size, heated bed, etc) to Repetier-Host. You can review the other tabs in this dialog if you like. Again, these details will depend on your printer model. Click “Ok” when done, and you are ready to print!

 

Old School AD&D 2E Character Sheet

After a (very) short stint with Deadlands, my group decided to go retro and start up a new AD&D 2nd Edition campaign. Of all of the revisions to D&D, 2E is probably my favorite. Sure, it is a little wonky as far as the details are concerned, but everyone in the group is familiar with it. Having just about every supplement ever made for it helps too 🙂

I went digging through some of my old files and located a text file I had created in a DOS text editor about 25 years ago with what I considered to be a nice character sheet for 2E. I used the old DOS line-drawing characters (we didn’t have fancy things like multiple fonts back then!) At some point I had updated it to include the Skills & Powers attributes, though it still works equally well without S&P (which we aren’t using).

old-school-add-2e-character-sheet-preview

I opened the file in Word 2016 and it happily converted it and kept the whole layout. I made a few minor changes to fill the page width and saved it out as a PDF so I could use it for our new game. Also, if I upload it here, I’ll be able to find it again later! 🙂

You can download the PDF here:

Old School AD&D 2E Character Sheet

PICO Poker (and framework demo)

pico_poker.p8While working on my Pico-8 RPG, I decided that it would be nice to put together a simple game to work out any issues with the PICO-8 Framework I’ve been working on. To this end, I put together PICO Poker, a simple video poker game (with self drawn terrible art!)

The framework is based on XNA’s game component system, and allows you to compartmentalize your code to focus it on a specific task instead of tracking game states across a huge chunk of code. I’ve included the P8Coder source file (a nice little utility for working on large projects).

No sound, because I’m awful with the sound editor.

Consider the code (and the graphics) as CC0. Utilize them in your own projects however you wish. If you want to mention me or link back to the blog, great. If not, that’s fine too!

Download the P8C file here : Download

(NOTE: The game itself has been moved inside a “Read More” to keep it from beeping every time the page loads)

Continue reading

PICO-8 Work in Progress

My last blog entry was about a fantasy console called PICO-8. Since then, I’ve been having quite a bit of fun playing around with the thing.

I’m pretty bad and drawing even “programmer graphics”, but when you only have 8×8 pixels and 16 colors, it doesn’t really matter… it isn’t going to be a masterpiece anyway!

Below is a GIF of the game I’ve been working on. It is coming along nicely considering that I haven’t really gotten a chance to put that much time into it. It is an old-school RPG, similar in style to the very early Ultima games.

So far, I’ve got the overland map and travel working, and I’ve put together a town map system that isn’t limited by the built-in map size of the PICO console (essentially unlimited town maps, though given the size of the game I don’t really need that many – but I need more than will fit into the built-in map editor).

My next project is to implement dungeons, and then flesh out the character generation and game system (stats, monsters, items, etc). Then I can populate the towns with NPCs, add quests, and the like.

pico_adventure

The beginnings of an old-school RPG for PICO-8.

Nothing actually playable at this time, but I’m getting there. Working with PICO really reminds me of coding on the Commodore 64 (though LUA is much more advanced than C=64 Basic, and alot less tedious than 6502 assembler!) In fact, this is the kind of thing I put together on a regular basis on the Commodore.

 

Fun with PICO-8

I backed the CHIP Kickstarter about a year ago, and as the shipment date for my pledge level approaches (late May, and they say they are on time), an update was posted indicating that a CHIP specific version of PICO-8 will be included with PocketCHIP. I had never heard of PICO-8, but once I knew what it was, I immediately went over and purchased a copy though their Humble store.

PICO-8_3

PICO-8’s editors are all built into the console. Here is the sprite editor used to create graphics for your games.

PICO-8 is described on the Lexaloffle website as a “Fantasy Console”, and is essentially a self-contained “emulator” for a console that never actually existed. The console is designed with extremely limited hardware/software specifications, intended to mimic a classic 8-bit environment. Developers can create custom cartridges that can be shared with other users or played on the web through the Lexaloffle forums. Each cartridge is limited to 32k, contains up to 128 8×8 pixel sprites, and a 128×32 cell world map.

PICO-8 includes a complete development environment within the program, including code editor, sprite editor, map maker, sound effects editor, and music track editor. With the full version (not the web player) you can switch over to the code and resources for any cartridge you are playing and begin editing. You can start from scratch and create your own cartridge entirely, or modify an existing game to change it in any way you wish.

Code is based on the LUA syntax, without the LUA libraries. There is a provided API that lets you play sound, display sprites, and draw maps in addition to the standard pixel and shape-oriented drawing tools.

Continue reading

Windows 10 Fall Update (1511) APC_INDEX_MISMATCH

TL;DR: This page is getting a lot of views as the Win 10 deadline approaches. If you have a Dell machine, boot in safe mode or remote in via remote desktop and rename the file “C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe”. This should allow you to boot without the blue screen.

So we rolled out the Windows 10 Fall Update (1511) to a couple of PCs at the office that were running Windows 10 RTM. Every machine appeared to upgrade fine, but once any user logged into the PC, it would throw up a frowny-face blue screen stating that “Your computer experienced a problem and needs to restart”. The “if you want to know more” reference was listed as “APC_INDEX_MISMATCH”. Searching around for this points to a driver issue, though there wasn’t really an indication of what exactly it might be.

There wasn’t enough time between the login and the blue screen to do any troubleshooting, but there were a few interesting notes:

  • The PCs could stay at the lock screen or the login screen indefinitely. The blue screen only occurred AFTER logging in. This would indicate that the issue is unlikely to be a driver, as drivers would load prior to logging in.
  • The blue screen appeared after login regardless of network connectivity. Wire plugged in or not, right after hitting the desktop the system would crash. The implication here is that the problem is something already on the PC as opposed to something running in the network logon script.
  • All of the machines were Dell Optiplex desktops, but several different models.

Taking these items together, it would seem to point to a startup program. To test that, we could boot into safe mode (which doesn’t run startup items) and disable them. Microsoft has made it quite a bit harder to get into Safe Mode on Windows 8/10 (especially since this blue screen isn’t happening during startup, so it doesn’t trigger the repair mode automatically), but that is where we needed to turn to solve the problem.

If you aren’t familiar with getting into safe mode on Windows 10 (when you can’t get to the desktop to do it through the menu, anyway), power up the machine and wait for the Windows Logo to appear and the “busy” circle to start spinning at the bottom of the screen. Hold down the power button and shut the machine off before it boots up. Repeat this process a couple of times, and instead of the spinning busy circle, the text “Starting Automatic Repair” will appear. Let this run and you will be presented with a couple of tiles on the screen. Click on the Advanced options tile, and click on Startup Options. You will be asked to reboot again. Do so, and a startup options menu will appear. Select Safe Mode (or safe mode with networking, etc).

To solve this particular problem on our Dell machines, after booting into Safe Mode, open Task Manager, click on Details, and click on the Startup tab. We started by disabling all of the startup programs and rebooting into normal mode. This allowed us to log in without the blue screen.

After that, it was just a matter of starting each of the startup items until we hit a blue screen. The culprit for us turned out to be “Realtek HD Audio Manager”. The executable is located at “C:\Program Files\Realtek\Audio\HDA\RtkNGUI64.exe”. Running this .exe file immediately blue screens every PC we have tried it on that has the fall update installed.

I’m sure there will be an update for this eventually, but since you can’t even run updates while this error persists, it can be a real pain to get your PC back in working order. You can avoid the whole problem by disabling this startup executable prior to updating to the Windows 10 Fall Update.

  • Advertisement