Welcome to My World

Hey everyone, Conash here! With the recent public release of Harem Collector v0.46, I thought now might be a good opportunity to talk about the new modding feature we have! Though this is more going to be a, “How we added it” sorta blog post rather than “How to make them”, for that information I would advise checking out the mod section of our forums (found here) or to join our discord via the link under the ‘Follow Us’ section to find advice or ask questions. Now then, on with the show!

To begin with, it’d probably be good to start with what prompted me to want to get into this. I was already pretty familiar with a lot of the way that RPG Maker stores it’s data files. Heck, the fact that we have the lite releases is because there’s only one file that you have to change to update the game, and we’ve already had a few fans modding their own games with stuff like Cazador’s oldschool Faceset mod, Romeo and Moonblack’s Cerulean+Wiki tan mod, or Omegon’s Extra Hard Mode mod. What really got the ball rolling is I was chatting with a good friend of mine who was thinking of trying their hand at making a mod that would add in an often requested sex scene of that we aren’t planning to add in ourselves. I was inspired to give fans the means not only to make thier own mods but for other players to install them, as a legitimate option in the game.

Any of you who’ve worked with RPG Maker probably have a bit of an idea as to how this wasn’t exactly going to be an easy road, especially those of you who have made scripts in Ruby before. The original plan that I had wasn’t too hard to implement after I did some digging, cross referencing the ‘Index’ they include with the software alongside some scripts we have and a few google searches to learn a few of the various command options you have with the ‘File’ class, but I found what I needed. You see, RPG Maker has a custom made ‘Load Data’ function built into it, based off of some pre-existing functions in Ruby that accomplish something similar. This not only allows it to read data from it’s specially encrypted data, but prioritizes it. This is all well and good for standard play, but I need it so that even when players have an encrypted data set it will sometimes load non-encrypted data stored elsewhere. Not wanting to really divide too deep into how the ‘load_data’ function worked, I instead opted to create a function that would have it so that anytime it tried to load, say, ‘Data/Map003.rvdata2’ it’d first add ‘Mods/’ to the start of it, so if it found a file at ‘Mods/Data/Map003.rvdata2’ it’d load that one instead. This method would work great for Cazador’s mod since that’s exactly what was needed for a graphical mod, and it’s work fine for Romeo and Moonblack’s mod as it was basically built to function this way, but since our game is still in development this function alone wouldn’t be enough.

See, if we take Omegon’s Extra Hard Mode as an example, that mod works by changing how the invisible Hard Mode status works, but with every release of the game we usually add in more status effects so if the game was set to load his file instead of the in-game file it’d risk breaking the game for every release after the mod was made. The same thing would happen for Common Event data, Enemy data, Item data, various things like that, something with a bit more nuance was needed. Now, I’ve got a bit of experience not only working with third party scripts but also making some third party scripts of my own for other games, and for those of you unaware we generally try to setup our codes to make use of ‘tags’. ‘Tags’ are various unique text that you add to something that will create a special interaction with the code we made that way the game developer doesn’t need to have their own resident Conash to custom build every little programming thing, so I decided the best way to go about this was to integrate that into here. This is easy enough for Items, Enemies, Actors, and most of the databases, the modder in question will add a ‘<Modded>’ tag into the ‘note’ section (one of the few times that I will praise Enterbrain for their forward thinking as that section is a godsend for us third party programmers), I then setup my code so that when it’s loading in these databases it will check for a ‘Mods/Data/Enemies/’ folder, create an array of all the files in there, load them up one by one so long as they have ‘.rvdata2’ in their name, and check every entry, if it includes the ‘<Modded>’ tag then it’s to replace the base database, determined by the above paragraph, then it replaces the base database’s entry with this ‘<Modded>’ version. I did worry this might cause some slowdown, but it only runs this once when it starts the game and it should only cause slow down if you’ve got a lot of mods installed. There was however a bit of a snag with this problem, see there are three databases which don’t have a note section. The Animation database, the Troop database, and the Common Events database. Eventually I settled on a way to add tags to these anyways, by either including ‘<Modded>’ in the name of the animation, or by going to the common event/first page of the Troop in question and making the first line of it be a comment that only says ‘<Modded>’. Not the prettiest or most intuitive methods but it functionally accomplishes the same thing. One nice advantage of this more complex modding method though is that it’s also future proofing itself a bit, while I worry that some modders may find it cumbersome to create mods that go into the ‘Mods/Data/CommonEvents/’ folder, this method allows my code to know what the data is to be used for based on the folder it’s in while also allowing the modder to name it say ‘ChimeiTranslated’ or something both so that it doesn’t overwrite their ‘3DSexScene’ Common event data and so that if they ever want to uninstall the mod they know exactly what file does what. This method took me awhile longer to figure out since I had to get all the pieces moving right, but I am happy with how it came out.

Another little modding issue that came up, Maps. See, because of the nature of how the data in RPG Maker maps are stored you can’t exactly just add ‘<Modded>’ and expect it to translate nicely, there’s so many different types of data stored in Maps that I was left with leaving them with the more simple modding that I described before, but that wasn’t exactly going to be satisfactory because several players had expressed interest in making their own custom maps that weren’t in the game already. One noteable example of this is HorseHater who’s working on a custom dungeon where you bring all of the Iron Waifu champions and get to interact with them, I’ve gotten to see a bit of it and highly recommend you keep an eye out for it in the forums! Getting back on track though, there are two major issues that arise with this in that you’d have to coordinate with others what map data you’d be replacing as to not make two mods that try to use say Map950 to store their custom data, but also RPG Maker offloads a lot of the data for all maps into the ‘MapInfo’ file, which means you’d run into the exact same issue that Omegon was having if you want your map to be functional. This is where Map Packs come into play. See, I had this idea where I’d allow the game to store a string that it’d then use to intercept the process of grabbing map data, this would allow modders to say edit an existing map to have a specific script call to load in the name of their map pack, and then transfer the player to one of the maps in it, and then give them a way to return to the base game when done. As long as the player included all the relevant map files and the MapInfo file from when they made the maps this would all be simple right? Well, the first problem is setting up a way for players to enter your Map Pack. They could edit an existing map but that would pose some risks of stepping on the toes of other modders, needing to update their chosen map if we change it later, or various other things, so I wanted to have a way to work into the base game a way to access these Map Packs so that the modder wouldn’t be required to create their own front-door if you would. That’s when I remembered the code machine. You see, when you enter a name into the code machine, with how we have it working it stores whatever you enter as a string, with that knowledge I set it up so that if you entered ‘Map Pack’ as a code, it then asks for a second code, using this it will load the player into Map001 inside the folder of whatever map pack you entered there! I also set it up so that the player will be blind, in the event the modder needed to move you somewhere else or they didn’t like my little back-door entrance so they wanted to send you back for you to enter some other way.

Everything is good with map packs now right? Not exactly, the next issue would be Self switches. Self switches are used a lot in RPG Maker, and are a fundamental tool used for controlling event data to make sure things work properly. See, if I left things at this stage it would open a lot of potential bugs with self switches. How you might be asking? Well, even though it looks like self switches are connected to the events that reference them, they aren’t, at least not directly. Self Switches are all stored independently in the game data, the game just stores each switch in a unique location based on the ID of the map that called for it, the Event it’s associated with, and if it’s switch A, B, C, or D. The thing with Map Packs is they would allow a theoretical infinite number of events that are on different maps sharing the same Map ID and have the same event ID, making it so that if you got unlucky these map packs could start stepping on either one another’s toes or worry about conflicts with the base game. The fix to this one however was easy, I added it in so that if the string where it stores your Map Pack ID has a string in it, that’s also used to determine where it stores the Self Switch, now you’d not only need to have the same Map ID, Event ID, but also the same folder name for the Map Pack, but by that point one set of MapInfo data is already going to have to overwrite the other so I think we’re safe at this point. I have also additionally added in the ability to include ‘Enemy’ data inside Map Packs, this is so that you can have unique enemies for a custom made dungeon that only appear inside the map pack. We ran into a few issues with that though, namely since we used the Yanfly Battle system it turns out that there was some code there that added in extra enemy data that’s not in a base file whenever you loaded the game, and this extra data was required to not crash the game whenever the enemies attacked. The fix to that issue was to just load in this extra data both when loading in the new enemy data, and when returning to the old enemy data when the player returns to the base game. Man, if you ever try to add modding into your own RPG Maker VX Ace game for some reason, if you hit this point you’ll probably find that the most important command throughout all of this is the ‘File.file?’ command to make sure that there’s a file at the location you’re looking at before you try to load in data that doesn’t exist.

This may all seem fairly comprehensive to all of you, but there was one last point that I sorta glossed over throughout all of this, script modding. Script modding is a bit different, see while most files in the ‘Data’ folder are handled by the ‘DataManager’, the ‘DataManger’ itself is apart of the script data. What actually determines the script data being loaded is a combination of the .ini file and some of the secret code Enterbrain doesn’t let us see, heck viewing said secret code would even break the Terms of Service so I don’t advice any of you go looking for it either. Still, this leaves me in a bit of a bind because script are a huge part of how the game runs, and not allowing modding in for them would close off a large segment of options to modders. For now though, I’ve managed to get it into the 0.46.4 release so that if you include either some ‘.rvdata2’ or even a ‘.txt’ file inside the ‘Mods/Data/Scripts/’ folder that the game will run it both when you start a new game and when you load an existing game, this won’t be able to replace any existing script data sadly, as it seems to either hold that data on a higher level or constantly reads it in again overwriting any changes you tried to make. I have also talked with Romeo some more, and I’ve got another addition, ‘Map Scripts’ as I like to call them which will basically serve the same role only they’ll be loaded in every time you change to a different screen in RPG Maker (this distinction is mainly to handle load times while still giving people who like to mess with this stuff a wide range of options), which will help open a few more doors, but sadly I’m afraid that at this time I’m unable to add in the full functionality that script modding would need. I’ll keep looking for how to add in the few bits of script based functionality that are missing in, but I wouldn’t hold your breathe since I’ve hit multiple dead ends on this matter.

But yeah, hope that my rambling didn’t devolve into incoherent nonsense and that a few of you at least enjoyed listening to me gush about programming and how I am totally super smart. Either way, I’ll see you all later (hopefully when I actually get to detailing out what the Yamamaya redesign entailed >.<).

Conash uses “Wall of Text”

Hey people, now you might be thinking this blog post is late but we were actually totally planning on delaying it an extra day because… Uh… Freedom I guess? Listen, things just happen sometimes… So now that we’ve got me making yet another blog post, let’s talk about something dealing with mechanics and design!

Let’s see… Well for one thing I’m hoping to be able to fit a nice quality of life improvement into the trophy trader. People were asking to be able to trade in multiple trophies at a time and I think that’s a good idea so why not! It’s a bit of a slow process though, because while I could turn the whole trophy trader process into some script stuff to make it dynamically generate the proper text, choices, and all of that at this point that’d honestly be more work than just hard-coding it, but hey why don’t we take this opportunity to talk about what I mean by that, as a little insight into my thought process for other aspiring game designers!

So, let’s take any one trophy trader to start with and break down what goes into the interactions with them in their current incarnation, I’ll even open up RPG Maker to get this completely accurate. First up is a small introduction to the shop, and then a tutorial about what the trophy traders are if you haven’t seen it, and then the trader asking if you want to trade, this is going to have to be hard-coded either way so it probably wouldn’t be until after this point that I’d begin a script if I was designing one.

First there’s a little bit where they say hello, and if it’s your first time visiting a trophy trader they explain what they are, pretty straight forward with no real variability to it so that’d be left to the event editor no matter what.

Here’s the start of a trophy trader event so that you can follow along!

Next comes the Yes/No option, those pretty easy to add in RPG maker even in script format all you need is to create an array that has the name of the options, tell the program to throw them at the player, then the player selects something and it’s returned to you, from there you use a case/select conditional (basically you input a variable and it compares it to various predetermined results that you specified) to determine what you do. If the player chooses ‘No’ you show them a dialogue box (these are more complicated as you have to specify the image the face you’re using is found, which of the 8 faces on that image you’re using, then specify the text where you’ve got to be considerate of formatting and won’t have feedback on when it clips outside of the box, then combine it with a few other pieces of code to make sure that it’s a new separate dialogue box instead of just changing an existing one, not hard per say but there’s a lot of details that you have to double check outside of the programming area to make sure it all works) and then let the event end, simple enough. If they choose ‘Yes’ and you’re using the RPG Maker editor you drop a label so that you can immediately jump back here later so that players can keep trading trophies. So if I were to make this into a script, I’d just move the entire process from here on out into another function so that I can easily make the process loop around to this point, either way you then need to make sure the player has at least 25 silver otherwise you drop another dialogue box about them not having money and end things, conditionals like these are very easy.

Script version of a dialogue box. It’s about 5 times easier to make a dialogue box in some map players can’t access then use the map ID, event ID, and ID of where the dialogue begins to access it in other events than it is to build a dialogue box in the script editor from scratch.

If they do have the money another dialogue box about what they want to exchange, a list of Shiny Bits, Monster Fang, and Pocket Tome then come up (with an extra option if the player chooses to exit out), the player chooses one and from here on out we’ve got to keep track as to what you’ve done, so what I’d probably do is drop a variable that contains the item ID of which one you selected and go from there. We also have to make sure that you’ve actually got at least one of those items, otherwise we need to send you back to the trading screen so that you can change your selection (after a dialogue box of course), then we ask you what you want to receive and here’s where switching to a script format would start to benefit us.

Basically imagine that last portion added in 6 times, for each combination of trophy traded in and trophy received, and that’s a single event page for one city. While it’s not the hardest work in the world, NoMoshing has put in a lot of busy work into Harem Collector!

See, with our current manual system we obviously have to manually keep track as to which area we’re in (by this point there’s already so much in the event that it can be easy to forget if you’re in the ‘Pocket Tome’ or the ‘Monster Fang’ sections), while in a script as I’m generating the array of choices for the player I can basically just say, “Add Monster Fang unless variable == X” making it easy for the game to auto-generate the options needed, so if we ever added in a fourth trophy we’d definitely want to switch to scripts so that we wouldn’t have to redo 16 different choice selections (probably more due to a few story events but irrelevant to my point). This is kinda what I refer to when I talk about generating stuff dynamically, I’d code stuff in a way that I as the game designer don’t need to know if you’re in Westcastle trading in a Monster Fang as I teach the game how to do it, so if we add in a fourth trophy I spend 5 minutes adding in a few extra options where it matters and let my code handle the rest, but as I said that’s not what we’re looking at so even if the hard-coded stuff takes longer to search for bugs, typos, and all that it just makes more sense to spend my time adding in new stuff than changing existing stuff that works just fine.

Sample of a dynamic choices dialogue from the fast-travel horse. While it may seem like a lot, keep in mind that I reference this exact same code for all 5 horses and the code figures out based on where you are and what houses you’ve unlocked everything else, which would take us 8-16 different combination of conditionals per horse in the event editor. About twice as much work compares to 1 conditional option, but prevents us from doing 48 different conditionals.

So then we’ve got a dialogue box, reducing the player’s gold, decreasing the trophy they’re trading in and giving them the one they want, then yet another dialogue box but this one specifies the name of what you chose, so from a scripting perspective I’d need to have stored the trophy you want to receive in another variable then dynamically generate the text that’d go inside this dialogue box by checking that variable and adding in the name of the relevant item. After that we throw them back to the beginning of that ‘Yes/No’ option so that they can do more trading if they want to and that’s what we’ve got. It’d be annoying to turn that into scripts and we’d need to keep track of which city the player is at to make sure that we show the right faces and dialogue from the trader, but it’s just busy work there… But that’s what we’ve already got, let’s look at what I want to add in.

So what I want to add in is simple, after the player has made decided on what they want to trade in and what they want to receive we’d need to ask them how many they want to trade, so give them a number input box, store that into a variable. Since the code in the number input box is rather limited, the best thing to do here is to show the player their money while they do this and store the inputted number into a variable, after that if the player entered 0 then we just treat that as ‘cancelling’ and let them leave, if they enter 1 then we go through with the old code, if they enter 2 or more we now need to verify they’ve got enough of the chosen item and enough money for this transaction, if so we go through with it and specify how many of the new trophy they’ve received. There’s nothing too complex there, but if you recall the trader says a line as you receive the new trophies, plus since the existing code is already hard-coded this means that even if I made a script to handle just this portion I’d still need to customize the script call to specify what the player is giving, receiving, and where they are, then program into it several dialogue responses depending on the location, or what I do is I basically create all of that with events, copy and paste it, but change the conditionals and comparisons along the way… Hmm… You know when I say it like that, doing this new part all in scripts actually wouldn’t be that bad since I’d only need to store in 4 dialogue boxes that are location based, and then I have a 5th box that has it’s text dynamically generated. It’s still going to take some time to get it in either way but hey, look forward to it!

Event version of me adding this in. Only got one of these added in, and it’s in a test version so hasn’t been implemented into the main game yet

Now, since I’ve finished that rather dry talk there, what else is there…? Oh, not sure if it was mentioned in the release notes but the achievement system should have gotten an update to include a tracker as to your progress towards any achievements you’ve unlocked hints for! Now if only I could remember if that was added into the 0.40 release or the 0.41 mini-release….

Ah! So I appreciate all the feedback that I got on ‘tanking’, after some discussion with NoMoshing we decided that the core of the issue dealt with how AoEs were just too potent (effectively doing 400% damage and status effects compared to their single target versions) I had shared some of the math breakdown of say Force Barrage (Damage type AoE force spell that gets a lot of complaints) and how statistically speaking getting 1 or 2 knockdowns when it’s used against you is more likely than 0, though I had gotten some of that math wrong the point is that AoE abilities just really break the action economy, so instead of trying to make tanking better so that you can take AoE hits a lot easier we thought it’d be better to instead roll out a balance to AoEs themselves by having them scale in effectiveness based on the number of targets you’re looking at. What this would mean is that while you will always do more total damage and have a higher potential of inflicting several status effects the more targets an AoE has, the damage and chance of infliction will be decreased on any given target as there are more of them (so if there’s one boss it’ll take damage/statuses as normal, but if there’s say 4 bosses each of them will be taking 50% damage and have 50% chance of status infliction, but it’ll total up to 200% damage and a higher chance of inflicting statuses in general).

I’m still not entirely sure what numbers I want to use, and I made sure to wait until after the mini-release to add this in so that the first people who have to deal with it are testers to get their help in fine-tuning things. I understand this probably isn’t going to be the most well received choice as it’s going to make your mages in general pack less of a punch, but it should serve to greatly curtail a lot of the issues seen in say force barrage (and to clarify, if you set it up so that you have your tank take the hits in everyone’s place, each individual hit will still be reduced to 50% effectiveness on damage and status as it still had 4 targets). Evocations will not be impacted by this since their unpredictability already serves to debuff them against many targets, they have a static number of hits, and the momentum requirements of them already makes them a generally undesirable type of magic to many players. Feel free to share your questions, comments, or concerns here, on the forums, or on the discord and I’ll do my best to respond to them!

The Life of a Tank

It’s been awhile! Hope you all are enjoying Iron Waifu, I know I’ve had a few surprises myself, and several not so surprises, but it seems to be turning out very well. The voting numbers tell a bit of an interesting story compared to last year but perhaps it’d be better to get into that after all is said and done, needless to say we’re very happy to see the how things have been turning out this year!

Now, it’s been awhile since I’ve made a post so it’d be a good idea for me to talk about what I’ve been working on and while I probably could go into the new victory barks feature that we’ve got I’d rather talk about that after the upcoming release as there’s still a lot of odds and ends I’m ironing out there, instead let’s talk about tanks in RPGs in general.

See, I’m sure that we can easily identify a character that’s got a lot of HP, that has high defensive stats, maybe it’s a character who gets a lot of super armor, that’s not hard to find, but something that I’ve noticed in a lot of games that I’ve played throughout the years is that while you can find MANY tanks, there’s a lot fewer successful tanks, at least in the games that I play. What do I mean by that? Simple, a successful tank isn’t just about being able to take punishment but it needs to take punishment instead of the rest of the party, after all being basically unkillable rarely is the key to success (though there’s been a few fights when I found it easier to solo a boss with my unmovable rock character than waste items keeping party members alive), instead if you have a character who skipped out on other things to pursue (damage, speed, healing, buffing, debuffing, etc.) to focus on it’s own defensive abilities it needs to be able to supplement the other important roles by making sure the rest of the team can do those with very little issue, and it’s very important to keep this in mind because if a tank cannot prevent damage going to other allies in one way or another then you’re not apart of the team you exist next to the team. I’ve seen a number of people who try to play say tabletop games thinking that simply having high HP or defense is enough to make them a tank, when in actuality the party only lives thanks to the DM being generous and intentionally attacking the hard to kill character even when there is little or no penalty for attacking another character and a much bigger reward (like taking out the cleric or wizard), so keep that in mind if you plan to play the ‘tank’, if you don’t have a way to ensure that damage doesn’t go to your teammates then you might want to figure out a way to do that.

“But Conash,” you begin, “what does any of this have to do with what you’ve been working on?” Well to get to the point, I have not been happy with how tanks behave in HC for quite awhile now, on either end but for two different problems. Let’s start with the player side since you the player obviously will be playing from that end, in HC NoMoshing did a great job setting up equipment, skills, and classes to take advantage of the innate ‘Threat’ system in RPG Maker VX Ace, if you ever decide to join me and RomeoPapa in our pursuit of more difficult challenges in HC you’ll learn very quickly just how important threat management is to taking on quests above your weight class, I really like the threat system in HC, and have even made use of it for some hidden little details (Try checking out Yamamaya or Bronwyn’s status page during ‘Elf Half Empty’ sometime), but the threat system has a very big flaw in it that’s become more and more of an issue as the game progresses. See, threat impacts who an enemy targets when they choose someone on your team, but when they throw out an AoE attack, one which hits ‘everyone’? Well that ignores threat entirely, leaving characters like Yeon completely at the mercy of how often enemies spam this, as your tanks have no way to keep her safe. This issue has been a growing complaint for quite awhile, so with the help of ShadowCluster, I managed to put together a brand new feature into the game, player blocking! I’m sure that you’re all familiar with times that enemies will block your attacks no matter what (and I’ll get to all the problems there in a second) but never saw it happen on your end (because it was happening a step before where they flat out didn’t target the low threat characters to begin with), well in this upcoming update you’ll finally be able to see that! The game will now include a system where a character with a ‘Taunt’ status (like Martyrdom, Font of Life, Phalanx, Attract, or similar skills) will have a chance to ‘block’ the hit a character would receive from AoE attacks, the formula to determine this is based off of threat chance but the basics are that if the tank has high threat and the targeted character has low threat you’ll have a better chance of blocking the hit. This little effect requires a taunt skill since some characters can get threat ratings so low (Elaiya) that they’d never take an AoE hit otherwise, and while it’s important that a tank can do their job it’s also important that if they’re dieing that you don’t have to worry about them taking all 4 hits from an AoE every round while you try to heal them up. Though if you plan to bring multiple tanks keep in mind that it rolls the ‘block’ chance based for whoever is in the first party slot, followed by the second, third, etc. until someone successfully blocks, so if you plan to use Yamamaya to block the occasional attack and Therese to pick up the rest put Yamamaya in first otherwise she probably won’t even get a chance unless Therese misses (also if a character does have a taunt skill up, no one else can ‘block’ for them, this one’s hard-coded). The formula may need some tweaking if it turns out to be too eager to activate, but I am still very happy with the general outline of the system as it puts a high amount of the control of the mechanic in the player’s hands, allowing you all to adjust it to your liking! Also little pro-tip: If you’re having trouble with say Force Barrage, if you can try to get someone to activate a taunt skill then guard like crazy, since you can’t be knocked down while you’re guarding so this would help let you protect your lower threat party members from the occasional status effect.

Now, this all probably sounds great right? I certainly think so, but some of you might be wondering why I had to create my own formula (or ask ShadowCluster to make one more precisely), rules, and basically create a new mechanic like this when enemies are already able to do this sorta thing, that brings us to my issues with enemy tanks. See, threat doesn’t work on enemies because surprisingly having a 100% invisible parameter on the enemies that has no actual gameplay impact isn’t very effective at convincing players to not kill that very deadly mage instead of going after the tank in front of them who isn’t a big threat on their own, and because of this we have to rely on the substitute mechanic in RPG Maker for enemy tanks. I absolutely loathe the substitute mechanic, and while I’m usually very quick to blame Enterbrain for any and all issues I have with RPG Maker, this mechanic I’ve found as common practice even in Final Fantasy games so it’d be unfair to single out Enterbrain. See, substitute works in that a character who gets marked with the substitute flag will 100% of the time block any hits targeting characters with low enough HP (usually below 25% or 10% max HP), unless the person with the flag has some kind of status effect or something else that stops them. The problem with this is that it’s inherently useless for roughly 75%-90% of the battle, and then after that? Nothing gets through, making it so that players who have no hard-counters can’t do anything except work their way through the tank. On top of that because these flags are rarely, if ever, permanent you need to spend one of your very limited actions hoping that one of your characters will be at a low enough threshold for you to defend them, without dying before you go, and that your defense of them will matter (if they don’t get targeted it was a wasted action). No matter how you run the math, 9 times out of 10 you’re just better off healing the person instead of bothering to deal with this terrible mechanic to keep people from dying. This isn’t even getting into the issues of the 100% chance issue can easily put the tank in a position where they’re taking way too much damage to keep up as more and more characters fall into the threshold or how it offers players no customization of prioritizing certain characters over others… That said, as highly critical as I am of this mechanic (and I hope that you can see why I prefer my innate blocking chance system for players over this) we use it for enemy tanks in HC largely out of necessity, we have no other tools we can use to have enemies influence who you attack. I plan to down the road mess with the formula so that it scales, in a way so that as the enemy loses more HP the chance to substitute grows making substitution an all-present annoyance but never a hard road-block (if you have no counters), while still preserving the general intention behind it. Until then though, I think that I’ll experiment with a few other tank improvisations, for example since one of the two new bosses in this upcoming update fills a tank role, I figured that I’d take a page out of the ‘Warder’ book from Path of War, and give them the ability to give you a rather noticeable miss chance on all your abilities that don’t target them (for a limited time). I’ll probably have to tweak a lot of the numbers here but I think figuring out alternate tanking strategies is going to become integral for supplementing the substitution mechanic in creating tanks as a whole.

I’ve probably rambled on quite a lot about the importance for a tank to be able to control aggro, so instead of going into a big long rant about how to properly control aggro in the Tales of games, I’ll call it here. Please feel free to share any questions, comments, or concerns as you see fit!

Furniture system ramble

Conash here, I thought this week would be a good time to talk about the furniture system I’m working on because oh boy, this is going to be a big one. Originally when I came on staff about…. Roughly this time last year actually, when me and NoMoshing were discussing the various projects that I’d be working on this was the one that I knew was basically going to be the last big scripting thing out of everything he mentioned… Well technically second to last since we’re looking at redoing the affection system for the next update but that requires that we get this furniture system done first but details!

Anyways, the reason this sort of system is going to be a rather big project is that unlike most everything else I have to more or less design the entire process from scratch. See while I can piggy-back off of a lot of the existing code when it comes to say making new windows or changing up how abilities or elements work RPG Maker doesn’t exactly come with a home decoration system, and I didn’t come across any custom scripts for this sort of thing in the time that I went looking, and while I’ve heard there are some out there I’ve already figured out how to get everything working that fits into the game well enough that I’d rather not worry about trying to integrate a different system into the game. Still, there’s a reason several RPG Maker games will go with some kind of linear ‘house upgrade’ system or signs where you can add specific customization, the RPG Maker system lends itself easily to more simple event based changes like that, I however am a bit of a perfectionist and refuse to use something that won’t give you guys a more hands on approach to decorating your houses or would just ugly it up with a bunch of random signs.

My plan, while probably not the most original out there, is to give you guys the ability to essentially choose a room and a piece of furniture (that’s allowed to go there, we might not allow some pieces in certain rooms) and then be able to freely move it about the room with some green/red transparent squares over them during movement so that you can see where you can or can’t place something. Once you’ve placed it wherever every time you visit the map it’ll be there…. Man saying it out, this sounds incredibly basic from a player level but let me tell you, I’ve got a lot of work still in front of me to get this to all work right. So far I haven’t run into any issues but I’m sure I’ll find one or two ways to crash the game before I’m done! Haha…..

Anyways yeah, that’s about it for the furniture system, hope I didn’t bore you all to death with that!

Still lots to do….

I’m still pushing through the various fixes and new content. Lilac and Violet now can receive gifts and chat, though they don’t have much to say at the moment. Also, with Lilac at least, you can choose to have sex with her at any time. There is no benefit for doing so, other than a short scene and a single CG image.

You can no longer swap party characters in and out at will, and the Formation option has been removed from the menu. I needed to do this in order to control the game’s difficulty better. I’ve installed Yanfly’s Party System script, and now whenever you leave your manor the formation menu will open up for you to get the slave girls you think you’ll require.

The party chat feature works… sort of. The entire process is there, I just have to do the writing for it now.

As I said before, the extended opening is done, but I removed the credits from it because it was pretty tedious. For now, the credits monument will remain until I think of something else.

Unfortunately, something I did while applying mods to 3DCG causes it to have a critical failure when I open the program, but the error message is in Japanese and I have no idea what it’s saying. So I must re-install the game and start over, and hopefully not lose any of my already-complete characters.

Other than that, the Lumberhill stuff might not be completed, but I don’t know. There have been a couple setbacks already this week- on top of the 3DCG thing it took me the better part of Monday to figure out a not-retardedly-complex way of doing the party chat feature. I hope to meet all my content goals, but we’ll see.