Mudge

Warper
Member
Joined
Sep 21, 2021
Messages
4
Reaction score
0
First Language
English
Primarily Uses
RMMV
Hey guys, Just picked up this software with the intention of adapting old school 2e D&D modules to a video game. Obviously there is a ton of work to do and a mountain of things to overcome but I intend to stick at it.

That being said I need to change some very base things about the setup to make this work. For now I'm focusing on getting the stats (parameters) right.

In D&D there are 6 base stats that drive everything else in the game: Strength, Dexterity, Constitution, Intelligence, Wisdom and Charisma. The 8 Stats that come in RPG Maker MV are obviously not those things. I'm attempting to find a way to change the names and functions of those 8 Stats to mimic D&D.
There is also the issue of those 6 base stats not increasing every level, which appears to be a base function of RPG Maker. Rather than have a randomized number determine which/how much those stats increase, I would prefer it to be a deliberate choice by the player.

I understand that what I'm asking likely requires some very deep changing of the base code, but I am assuming that this is possible within the software. Can anyone direct me to a good starting point? I can't even seem to find the pre-existing javascript that runs the combat.

I am 100% expecting to do all of this myself, I just need some help finding a place to start.

Not to mention being able to roll dice to assign values to attacks, potions, skill checks, etc. I see that I can change the variance to presumable give an equal chance of everything within a range but there is a difference between rolling 1d12 and 2d6 as the latter has a bell curve and the former does not.
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
2,250
Reaction score
1,209
First Language
English
Primarily Uses
RMMV
So, welcome! I'll address a few of your points, but first I'm going to encourage you to look for things. MV is old enough that pretty much everything has already been talked about or referenced, so the chances are excellent that if you Google "RPG Maker MV this thing" you'll find forum posts on here already answering your question.

Secondly, do some tutorials - there's one built into MV, under Help, then you can watch YouTube videos for more advanced things. Several of your questions will be covered by basic use tutorials.

Also, a good point of reference for you is the RPG Maker MV Library
I'm attempting to find a way to change the names and functions of those 8 Stats to mimic D&D.
There is also the issue of those 6 base stats not increasing every level, which appears to be a base function of RPG Maker. Rather than have a randomized number determine which/how much those stats increase, I would prefer it to be a deliberate choice by the player.
So most of this is basic tutorial area: the parameter names are right in the Terms tab of your database, and to not make them increase on each level, you'd define the curve in the Classes tab to not move.

If you do want them to increase occasionally (I don't remember 2e's attribute progression) you could use a plugin like Yanfly's Stat Allocation. You should also check out Frogboy's plugins, he has a bunch designed to emulate D&D systems.

As far as what they do, yes, you'll need to search the code for the various parameters to figure out what they currently do and change it. When you make these changes, don't do it in the actual engine code files, but in your own plugin. There are tutorials for that on the forums and YouTube.
I can't even seem to find the pre-existing javascript that runs the combat.
The UI and math stuff is spread out through different files, but most of the mechanical stuff is in rpg_objects
I see that I can change the variance to presumable give an equal chance of everything within a range but there is a difference between rolling 1d12 and 2d6
So when you find it using Math.random or Math.randomInt, you'd change it.
Math.randomInt(12)+1
or
Math.randomInt(6)+Math.randomInt(6)+2
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
33,933
Reaction score
8,607
First Language
German
Primarily Uses
RMMV
I understand that what I'm asking likely requires some very deep changing of the base code
no, at least not for this.

First, most of the attributes have absolutely no function in the engine itself. They are only there to be used in the skill damage formulae, and those are under your control.
Only AGI and LUCK have any default effect - AGI being one base for the turn action order and LUCK having a minor effect on state chances.

All the rest are completely independent, can be set to any value (including constant values) in the class definition and renamed in the system/terms tab of the database
 

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
6,114
Reaction score
5,842
First Language
English
Primarily Uses
RMVXA
Most of this stuff is actually doable without too much effort (Increasing the number of stats is the one that may be harder), but first off I just want to warn you about trying to recreate D&D mechanics in a single-player videogame RPG from a game design standpoint.

A lot of creators, both novice and professional, have tried to do so, and as a general rule even among perfect technical implementations 95% of them fail to create an enjoyable game - that's because D&D mechanics are designed to create a lot variability and chaos (leading to unexpected story hooks) and offer each player things they can and cannot do. That works well for a tabletop game with a DM who can change the story and goals up on the fly, and where it's okay to fail horribly because of bad luck because it will still be a fun and memorable time for all involved. It does not work well in a single-player videogame where everything that can be created is already in the game's code, and failing at an objective usually means returning to an old save and doing the same thing over and over again until you succeed. It's a complete mismatch of mechanics with intended game dynamics.

With that said! Here is where to look first for each of the things you wanted to do:
  • 8 stats Instead of 6: This is the one that may be challenging to implement.
    • If you don't need to automatically increase certain stats as characters level up, you could create those stats as Variables (simply reserve a variable for each character and set those variables using Control Variables in an event when the characters' starting stats are rolled). You can use those variables to, for example, help determine the success of a Difficulty Check (add or subtract from your roll in an event) or determine damage of an attack (use \V[x] in a battle formula where x is the variable ID). You can change the value of that variable whenever you want. The one tricky part would be showing the value of those variables on the Status screen but I believe there are plugins for that - ask on the Plugin Request board.
    • If you do need to automatically increase all 8 stats as characters level up, you would need a much more full-functioned plugin to basically create entire new 'blank slate' stats. I'm not sure whether these exist; I think they do but again you'd need to ask on the Plugin Request board. To use the stats in battle formulas/DC's, you'd need to read the plugin's documentation as each might handle it a different way.
  • Do Not Increase Stats by Level: Go to the classes tab, go to each stat, and enter the same values at Level 1 and Level 99.
  • Allow the Player to Choose Stats: A basic form can be done entirely with eventing, using Show Choices options and cleverly using variables and conditional branches. For example, set a Variable "Points Remaining" to 10 and create a Loop, where right before the end of the loop a condition checks whether Points Remaining is <= 0 and if so Break Loop. Above that check, also inside the loop, have a Choice: Increase STR, Increase ARM, Increase WIS, Increase INT, Increase CHA, Increase DEX; whichever one the player chooses, give the character 1 additional point in that stat (Change Parameters) then subtract 1 from the Points Remaining variable. Do it for each character and you're good! Now, if you want a smoother interface for it rather than a bunch of choice boxes, you'll want a Point-Spending Plugin; I believe these do exist in a form similar to what you're looking for in MV and you could ask on the Plugin Request board.
  • Rolling Dice: The best way to simulate this from a mechanics viewpoint would not be with Variance, but rather with clever battle formulas. For example, for a straight 2d6, your formula would be ceil(Math.random(6) + ceil(Math.random(6)) which would give you the exact same results as rolling dice twice if you set Variance to 0. If you wanted to triple the damage from that roll and add 5, it would be 3 * (ceil(Math.random(6) + ceil(Math.random(6))) + 5 The only thing you're missing is a way to show the dice roll to the player - that would be a bit more complex; you'd have to set the rolls to Variables (e.g. $gameVariables.setValue(26, ceil(Math.random(6))); would set Var #26 to a random value 1-6, and then you could reference this value later in the formula with \V[26] to get its value), and then at the end of each action have a Common Event that uses Conditional Branches with a Show Picture for each possible roll of each die. But maybe you're fine just not showing the player the roll and letting them just see the result of it through the battle damage.
EDIT: Reading the posts made concurrent with mine, I see I left out how to rename the tabs (super easy and explained in the posts above) and how to remove the base hard-coded functionality of AGI and LUK. AGI is something you probably want to leave in in some form; otherwise there will be no way to let a stat affect turn order (but if you really want to, it's not TOO hard; ask on the Learning JavaScript board). LUK's effect can be removed by finding the luk_effect_rate method in rpg_objects.js in your project files, and changing the entire formula there to a simple: 1.0
 

DavePerry

Villager
Member
Joined
Jul 18, 2019
Messages
29
Reaction score
5
First Language
english
Primarily Uses
RMMV
I’m going to recommend Frogboys plugins.. He has some great ones for this type of direction. Takes a little time to learn them but so worth it. I love his talents plug-in. : )
 

Mudge

Warper
Member
Joined
Sep 21, 2021
Messages
4
Reaction score
0
First Language
English
Primarily Uses
RMMV
Thanks for all the detailed replies guys, glad to hear that all of this seems very doable. And thanks for the warning Wavelength, I appreciate it. Been a long time DM and I recognize that instituting a computer is going to heavily limit the capabilities of D&D. Hopefully I'll find a way to work around it? And if not then I'll have increased my ability to apply and read logic and code. I'm not expecting to make a smash hit or anything haha.
 

Latest Threads

Latest Profile Posts

thought I'd upgrade to mz from mv cause of the nice quality of life features but ****ing hell why couldn't they allow old plugins to work in it and secondly how come in over a year since it's release has there been no mz version of something so crucial as a non grid based movement plugin. I guess I'll stick with mv. (why wasnt mz just an update to mv anyway literally nothing substantial changed..)
Something might be coming...
Hallo.png
A new day for creating :)
2021 has been the runner-up for the worst year of my life. 2015 may take that title, but '21 is pushing it. Excuses really don't justify how much of a jerk I've been this year to a lot of people.

I'm sorry. I don't intend to be a jerk forever, but I'd rather back up my intent with actions, not words.
"Another hundred habaneros... a teaspoon of tumeric... and a heaping helping of nitroglycerin!" The kitten in a chef's hat laughed maniacally as the pot he was stirring promptly exploded.

Forum statistics

Threads
116,020
Messages
1,094,962
Members
151,334
Latest member
seanhickey00
Top