#===============================================================================
# ☆ Introduction
#——————————————————————————-
# I have a dream…
# I dream of a game where my characters growth is in my control…
# A game where my choices mean everything…
# Where a slight mistake can mean the end of all life…
# I dream of a game that i can design my own character, while playing…
# A game that i can customize my character to suit my playing style…
# That not only allows creativity, but rewards it…
# I dream…
# Of a game…
# Made by this script…
#
# This script allows the creation of MULTIPLE HIGHLY UNIQUE && DYNAMIC
# Stat Distribution Systems…
# It not only provides you with new “parent” stats, that control ANY other
# statistics, it acctually allows you to then distribute them !!
#
# EASILY set up a basic distribution system.
# ELEMENT DISTRIBUTION SYSTEM ? Look No Further !!
# Distribute Maximum TP with ease..
# Set up your very own unique distribution system with no scripting knowledge !!
# ( Requires ability to read instructions )
#
#===============================================================================
# ☆ Features
#——————————————————————————-
# – UNLIMITED New Parent Stats that give you control over ALL other stats.
# – Multiple ways to modify ALL of your newly created stats.
# – Use your new stats in SKILL FORMULA’s and CONDITIONAL BRANCHES.
# – HIGHLY Informative Distribution Screen (Fully Customisable).
# – Multiple Growth Set-ups (each actor can grow differently).
# ^- Each Growth Set-up can have a completetly unique setup
# Than an other, things like name, cost, stat changes…
# – Highly Complex && Unique Stat Handling System (FULLY LAG FREE)
# – Easily Distribute All Statistics (listed below)
# ^- Params << Requires $D13x Statistic Control.
# ^- x-Params << Requires $D13x Statistic Control.
# ^- s-Params << Requires $D13x Statistic Control.
# ^- Attack Elements << Requires $D13x Elements Control.
# ^- Defence Elements << Requires $D13x Elements Control.
# ^- Atk | Def Levels << Requires $D13x Atk | Def Level.
# ^- Max TP Limit << Requires $D13x Max TP Control.
# – Spend DP (distribution points), Gold and even Exp to gain stats.
# – A Smile On Your Face ( Money Back Guarantee !! )
#
# And If That Was’nt Enough…
# you can pair this script with multiple scripts from the $D13x Engine…
#
# – Skill Levels
# ^- Give a parent stat to a skill and the value will increase
# using the skill levels DMG Multi.
#
# – Dev Stat Lv Up Distribution
# ^- ability to distribute your new parent stats via level up
# (could be used for actors who cannot access distribution screen)
#
# – Equipment Sets
# ^- Control new parent stats as a set bonus for an equipment set.
#
# – Learn Skill Requirements
# ^- Use new parent stats as skill learning requirements.
#
# – Equipment Requirements
# ^- Use new parent stats as requirements for equipping equipment.
#
# NOTE:
# If using Exp to increase statistics, you are only able to use the actors
# “spare exp”, spare exp is the exp you have gained above the required
# exp for your current level, but is still below the required exp for next level.
# This means that your actor cannot decrease their level distributing stats.
#
SCRIPT LINK

woooo, it’s here! and it also has skill levels, which i’ve been looking for! thanks dekita! 🙂
lol glad your happy with it 🙂
it is, and it was worth the wait
Is there a script call to open up this system? I couldn’t find one and it’s pretty important
for me since I’m not using the default menu so the setting in the script doesn’t work for me.
Nevermind, I found it in your demo. Great script!
oh yea, i forgot to include that script call in the script call info section of the script.. will have to update that asap 🙂
it works with N.A.S.T.Y Extra stats or Cristal Engine – Extra Stats (better than the other one)?
nope, but this script allows you to create and distribute an unlimited amount of stats called whatever you want, so there is no need for any of those scripts, as with this you can design all the stats you could with those scripts, and you can distribute then using things like weapon notetags, script calls and of course in the distribution screen.
how i can call this using event? not from menu ..!?
i tried
start_SPDS
Scene_SPDS
call_distriute
non of them work …..
also when i level up, and the distribute show up …. it take few second…. to open …
^ i mean player freeze for around 5 second then the window show up …
Thanks,
Is there any way,that when i call $game_actors[ACTOR_ID].add_spds_stats(STAT_ID, VALUE) the VALUE to be a variable.
you should be able to. as long as the variable is at least 1 and an integer value, like 1, 2, 3, 4, and not 1.1, 2.2 , 3.3, 4.4 etc
I was talking about using this $game_variables[x] as a value,i didn’t know the code for a variable in game,but i found it.
well yes, you can. personally i would make the script call look like this…
that was it will all fit into the little shitty box 🙂
Obviously change the “X”‘s
How do I make my equipment require the new parent stats?
I figured it out in the end
is there any way to set a formula for parameters growth?
something like [:add_param , 0, mhp * 1 / 100],
Yes, but it involves ALOT of work and modification to the script. I wont add that feature. Sorry
Line 407 error what do i need to do? “uninitialized constant SPDS::Text_Color”
use the $D13x Core script.
OK, so this script looks exactly like something I was looking for for my ideas. 🙂
But two questions here…
1st, I’m not going to use a point distribution system for it, so I’m trying to get the “Distribute” command off the main menu, but nothing seems to be working. I can only find that line for using [true, “Distribute”, 0]. Setting it to false doesn’t take off the menu though. Am I missing something somewhere else?
2nd, since I’m not using the distribute scene, is it possible to add another page in your status scene script to display these new parent stats?
Thanks
Actually, I’m having the same issue with removing the “Distribute” bit from the menu. have you found a fix for that?
Thanks!
I’m offering a suggestion for future versions:
In addition to having universal Pages that apply to all parents stats, maybe there could be individual pages tailored to each parent stat.
Hi! Dektia!
I have a problem when calling the SPDS scene, using the script ‘SceneManager.call(Scene_SPDS)’ the game crashes, showing that “undefined method ‘param’ for nil:nilCalss”…What should I do with it?
How do I change the location of the Menu Tab in the main menu? It currently appears below Formation, I would like it to appear below Status. Thanks!
Hey Dekita, long time no see. You probably don’t remember me, but that doesn’t mean I don’t get to say long time no see. 😛
Anywayyy, I see in the description of this script that there’s a way to use the old a.str – b.str formulas in damage formula boxes, but I can’t seem to find the way to do it? Since all the parent stats are completely customizable I would understand if it isn’t an option, but since the description SAYS it’s there, I feel like I’m just missing something. I’ve thoroughly triple checked the directions, twice-triple checked even, and used ctrl + f to search the script for keywords like “damage” and “formula” but nothing turns up. So, what would the way to use parent stats as a modification for skill damage formulas be exactly?
I only ask because of this line in your description of the script: “- Use your new stats in SKILL FORMULA’s and CONDITIONAL BRANCHES.” right in the features section. :v I see options for conditional branches but not skill formulas.
Hopefully there’s a way to do this since I would find great use for it, but if not I wouldn’t mind you just saying so. I could swear I’m just missing something though. Thanks for any response. :3
@bloodyliao, you have to prepare the scene with SceneManager.scene.prepare, like this…
SceneManager.call(Scene_SPDS) SceneManager.scene.prepare($game_actors[1])@cHAOSythe, you will have to modify the Scene_Menu class within both my script and ant ther menu script you have / the default menu script and change the order that the commands are shown.
@simplestchaos, yes I do remember you 🙂 Yes, you can use the parent stats within damage formulas. If your game uses lots of various ISPDS setups I would recommend only using the parent stats in actor / enemy specific skills, but thats up to you.
Anyway, rather than using a.str or b.str, you would use a..parent_stat(STAT_ID) or b.parent_stats(1) or whatever 🙂
Hope this helps.
Yay you do remember me! XD
Excellent! Having ways to do that really amplifies the importance of choice for the player~ thanks. Went ahead and tested the method and it works like a charm.
Incidentally, I already give actors and enemies entirely different skills, so… :v Just a side note lol. Thanks again. :3
hey detika you know me from the RPG Maker site….. i think i should of responded to your emails sooner but was on a major hyatus…. anyways i noticed that you haven’t added a way for parent stats to be added at a later point in the game…..like say you start with strength, vitality, intellegence, and agility….. then at a later chapter you gain great sword, katana, spear, axe, bow, staff, magic…. all becuase your character suddenly gained a gift or learned that training to improve one’s skill with weapons is importent or something like that…..i know i could probaly just create the ISPDS multible times and just change it through eventing but couldnt you add an option where when certain switched are turned on the stat appears in the distribute screen?and you can adjust it through the script what switch unlocks what stat? just a thought
So a way for the player to have some sort of ‘hidden’ parent stat, that becomes unlockable at [x] point in the game… That sounds like it could be useful :p
Any chance you can add compatibility with Yanfly Class system? It seems if I change my class (all my classes have a different Stat Distribution set), it’s not changing the actual stat set used. It’s keeping the one it started with.
just quick question regarding……do you have each charater set with a distribute system?if so that will overwrite the class……..found that out the hard way
Great point you have there. If you actor has a notetag it will override any class notetags for distribution. I do it that way on purpose so you can have certain actors with more powerful stats – for whatever reason. 🙂
If yanflys class system uses the default change class method, there shouldn’t be any issues.
compatibility is something i dont do I am afraid. There are just too many scripts to take into account, and i dont want to waste my time reading them when i will never use them. Sorry.
Well, I don’t know scripting at all with RGSS3, but is there a script call that could update your script when it detects a class change? Or at least force an update so it will recalculate the Stat distribution set when the class is detected changing?
Now that I can do ^_^
I am assuming that yanfly will have a method in the script thats called something along the lines of ‘change_class’ Once you find this method, post it here for me(please dont post a full script – i wont read it 🙂 ). I can’t access yanfly scripts because they are too popular. (dropbox drawback :/)
I will be able to tell you the correct syntax to make it autochange the class.
Also, if it uses the default change_class method, just make sure my script is below his – his will probably overwrite it if its a class changing script
Hey Dekita!
Very nice Scripts you made there! This Script was exactly what i was looking for.
So far i was able to customize this Script how i wanted to….
However what i cant reproduce is this from line 396
# Use Left + Right to switch pages
I can’t switch the pages no matter what i do. do i overlook something? Is there something in the script i have to turn on?
I am using your core script and the statistics+Elemental
Edit: Found it out myself. I have to use shift-left and right. Oh…call me stupid 😀
Stupid!!
lol, only joking ^_^
Happy to hear you found it with little hassle 😀
If you have any other queries dont be afraid to ask 🙂
I will get around to answering the at some point lol
HEy yeah i know, jus me^^ Just wan to say, when we reset stat, the point we get back are equal o number of parent stat, not the spend point! I got stat who cost 300 point but with reset all, i just got 1 point back)
lol, thats a strange one.. Again, I will look into that issue when i get some free time 🙂
OK, one thing I’m having trouble with is the format to use the new stats in a damage formula
Let’s say, instead of the default a.atk * 4 – b.def * 2, I want it to be a.(strength stat) * 4 – b.def…
How would I type that out?
a.parent_stat(STR_STAT_ID) * 4 – b.def
STR_STAT_ID should be the id of the parent stat value to use, so the default for STR is 1, so it would be..
a.parent_stat(1) * 4 – b.def
🙂
Oh… nice thanks!
So it’s always a.parent.stat(-whatever the ID # is-) for formulas?
And I assume I can use b.parent.stat(ID) for targets/enemies too?
Yes you can use either a or b.parent_stat(STAT_ID) 🙂
ok, got a little problem. When I make the ‘Distribute’ command on the Menu to not be visible, it remains visible anyway
Strange… how exactly are you stopping it from being shown?
Here’s what I put:
Menu_Info = [false, “Distribute”, 0]
Hmm.. I will look into that… for now… do this…
Line 1499 of the script, looks like this -> add_command(SPDS::Menu_Info[1], :distribute, can_distribute)
Delete that line or hashtag it out or something. That will remove the command fro your menu 🙂
Actually, the same issue happens on line 402: Use_Icons = false doesn’t remove the icons.
This looks very promising.
However, I’m wondering if it would be possible to implement more than one type of point for the player to spend on attributes. For example, one kind of point could only be spent to improve parent skills (Vitality, Strength, etc.), and another type of point to spend only on child skills (Elemental Attack/Defense, etc.). Ideally, I’m thinking the player would receive a small amount of parent skill points at the start of the game to customize their character, and all normal level up points would be for child skills, with parent skill points being gained much more infrequently. Hopefully that makes sense.
Please let me know if there’s a way to implement this, and thanks again for such a great script.
Yes its possible, it essentially requires a lot of the script to be changed to allow infinite stat setups for all actors, so you can have more than 1.
Not really something I was planning to implement I am afraid.
is there a way to make it were certain parts of a parent stat only take effect if you have certain gear equiped (for classes like adventurer and lord and such with multible type of equipment), for instance….i have a character who uses both great swords and battle axes as chosen weapon types…..and parent stats of great sword and battle ax skills…..both increase hp, atk and def, but i was hoping to add something like increase hit rate and crit rate with this perticular weapon only……would be nice………..dont know if i should put this here or on the other script this next part is based on or not but here goes…..in your passive skills script is it possible to make their stats and effects only work with say one weapon type is equiped…….?
nah sorry. That would require a lot of changes in the script – for both your questions :p
Hey Dekita, I was just wondering if it’s possible to increase the param bonus that an actor gets for each stat point at specified intervals. For example, 1-10 points into strength will give 20 atk per point but 11-20 will give 40 atk 21-30 60 atk and so on.
nah sorry, dont think that would be possible without some sort of script modifications 🙂
Any idea on how I could start something like that?
Yes, but unfortunately. If you where able to implement it yourself you wouldn’t have asked if it was possible. (not trying to sound rue or anything btw)
Its just the amount of modification that would be required would require a fair amount of code writing know-how 🙂
If you do have some code writing abilities, i would be happy to walk you through the process 🙂
My knowledge is quite limited so I didn’t want to try and change something and possibly break something. If you’d walk me through me through it I’d at least try with what I know on a blank project.
wel, the easiest way would probably be to apply some calculation onto the actual stat gain that incorporated the level.
The first step would be to find that calculation. Likely to be caled during the level up process.
Then you would need to make a method that returned a multipication value (ie – 2.0- based on the current level.
You then add your method into the calculation so that it includes your multiplication value. 🙂
Actually, thinking about it, its probably not that hard…
If your still having problems, let me know 🙂
Thanks, I tried it out but decided that I’ve decided to re-balance the game so for now it isn’t needed though I may try something like this for future projects after I get better at scripting.
The script only explains how to make spds_stats which show up as parents.
Is there a way to make a child stat?
Or, if not… How would I set a parent param to appear in the distributee list on the right while NOT appearing in the distributor list on the left?
If this is not posssible either, is it possible to disable the list on the left from scrolling? Because then I could hide the parents I don’t want to be visable offscreen perhaps. ??
Thank You for your time.
Can I make each point in one of the parent stats, multiple my stats by an amount. For example can 1 point in strength give me 1% or 0.5% ATK? I noticed that mul_param only multiplies add_param.
yes, it only multiplies what has already been added; however, you SHOULD NEVER use ANY default stat gainng methods when using this system ~ I rewrote them all for a reason, they dont work. 🙂
so yea, when you dont use any default param gaiing methods, it does accurately multiply the stats you have. 🙂
Help! I got undefined method `[]’ for nil:nilclass when I try to view DPs on my actor. Is something wrong?
Have you tried to load a saved game, do you have all the other required scripts, and what line is the error on – a screenshot of the error would be most helpful 🙂
1) I try a new game instead

2) I do have all required script (Core, Static, MAX DP)
All i got his error
and the error pointing at “[set[:name],set[:text],set[:icon][0],set[:icon][1]]”
NOT A DUP COMMENT!
All I can think of is adding another line of code just above the line thats throwing the error. Make the new line as shown below
Let me know how that goes for you 🙂
The code that you provided cause an error on the core script and the error points at core script ” text = data[0]”
change it for
That should stop the new error 🙂
I tried again with code you provided. But I got new error instead
“can’t convert array into integer”
confused
Would you be able to upload a project that highlights these errors? I’m not able to replicate them on my end. If you can do that, I will be happy to look over it and fix any issues within my scripts that I encounter. 🙂
may I be able to do the parameters to affect other user created variables, for example, the STR param to affect the max weight the player can carry?
Can I make events with condition of certain level in a parameter? For example, you need INT 10 to trigger a special dialogue from a npc.
I’m starting to learn Ruby, sorry if you already stated solutions to these question in the script instruction, thank you in advance!
alright, forget that, already found out myself BUT It seems like Dekita core is making my game to have a weird behaviour, here let me show you:
what could be causing this?
Wow! Thank you for this! 😀 I’ve always wanted to create a raising sim game like Princess Maker. 😀 Thank you so much!
Out of curiosity, what are your terms? 🙂 Can I use this for a free but pay what you want game? 🙂 Thank you. 😀