$D13x – ISPDS

#===============================================================================
# ☆ 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

Advertisements

73 responses

  1. woooo, it’s here! and it also has skill levels, which i’ve been looking for! thanks dekita! 🙂

    May 31, 2013 at 13:20

    • lol glad your happy with it 🙂

      May 31, 2013 at 15:27

      • it is, and it was worth the wait

        May 31, 2013 at 21:49

  2. Misterdude

    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.

    June 12, 2013 at 18:01

    • Misterdude

      Nevermind, I found it in your demo. Great script!

      June 12, 2013 at 19:01

      • oh yea, i forgot to include that script call in the script call info section of the script.. will have to update that asap 🙂

        June 13, 2013 at 15:29

  3. FenixTargaryen

    it works with N.A.S.T.Y Extra stats or Cristal Engine – Extra Stats (better than the other one)?

    August 10, 2013 at 18:24

    • 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.

      August 11, 2013 at 11:57

  4. 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,

    August 27, 2013 at 18:04

  5. Is there any way,that when i call $game_actors[ACTOR_ID].add_spds_stats(STAT_ID, VALUE) the VALUE to be a variable.

    October 25, 2013 at 07:59

    • 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

      October 27, 2013 at 18:34

  6. 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.

    October 28, 2013 at 10:01

  7. 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 🙂

    actor_id = X
    stat_id = X
    value = $game_variables[X]
    $game_actors[actor_id].add_spds_stats(stat_id, value.to_i)
    

    Obviously change the “X”‘s

    October 28, 2013 at 10:38

  8. Waxee

    How do I make my equipment require the new parent stats?

    October 29, 2013 at 00:43

  9. Waxee

    I figured it out in the end

    October 29, 2013 at 14:54

  10. Billyx

    is there any way to set a formula for parameters growth?
    something like [:add_param , 0, mhp * 1 / 100],

    November 20, 2013 at 05:33

    • Yes, but it involves ALOT of work and modification to the script. I wont add that feature. Sorry :/

      November 20, 2013 at 17:59

  11. Dreamer

    Line 407 error what do i need to do? “uninitialized constant SPDS::Text_Color”

    December 8, 2013 at 06:26

  12. MikeB

    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

    January 1, 2014 at 14:13

    • Actually, I’m having the same issue with removing the “Distribute” bit from the menu. have you found a fix for that?

      Thanks!

      November 2, 2014 at 20:47

  13. Eschaton

    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.

    January 22, 2014 at 03:30

  14. bloodyliao

    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?

    January 25, 2014 at 02:04

  15. cHAOScythe

    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!

    February 13, 2014 at 16:06

  16. 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

    February 16, 2014 at 03:55

  17. @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.

    February 21, 2014 at 02:07

  18. 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

    February 21, 2014 at 08:10

  19. 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

    April 13, 2014 at 02:53

  20. 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

    April 13, 2014 at 09:13

  21. 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.

    June 19, 2014 at 20:02

    • xaigoth

      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

      June 20, 2014 at 02:35

      • 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.

        June 20, 2014 at 12:20

  22. 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.

    June 19, 2014 at 22:00

  23. 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?

    June 20, 2014 at 16:30

    • Now that I can do ^_^

      $game_actors[ACTOR_ID].setup_spds_set_info_overwrite
      

      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 :/

      June 20, 2014 at 19:55

  24. Adrian

    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

    July 2, 2014 at 18:19

    • Adrian

      Edit: Found it out myself. I have to use shift-left and right. Oh…call me stupid 😀

      July 2, 2014 at 19:14

      • 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

        July 3, 2014 at 00:39

  25. Ashyra moonwolf

    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)

    October 15, 2014 at 11:27

    • lol, thats a strange one.. Again, I will look into that issue when i get some free time 🙂

      October 16, 2014 at 20:16

  26. MikeB

    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?

    October 17, 2014 at 00:24

    • 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

      🙂

      October 17, 2014 at 11:56

      • MikeB

        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?

        October 17, 2014 at 12:41

      • Yes you can use either a or b.parent_stat(STAT_ID) 🙂

        October 19, 2014 at 14:14

  27. Matthew

    ok, got a little problem. When I make the ‘Distribute’ command on the Menu to not be visible, it remains visible anyway

    October 25, 2014 at 04:49

    • Strange… how exactly are you stopping it from being shown?

      October 25, 2014 at 16:23

      • Matthew

        Here’s what I put:

        Menu_Info = [false, “Distribute”, 0]

        October 25, 2014 at 18:54

      • 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 🙂

        October 25, 2014 at 19:46

      • Actually, the same issue happens on line 402: Use_Icons = false doesn’t remove the icons.

        November 2, 2014 at 21:00

  28. Carl

    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.

    November 4, 2014 at 07:19

    • 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. :/

      November 5, 2014 at 16:21

  29. xaigoth

    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…….?

    November 21, 2014 at 07:24

    • nah sorry. That would require a lot of changes in the script – for both your questions :p

      November 23, 2014 at 15:16

  30. JayNyne

    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.

    November 23, 2014 at 15:13

    • nah sorry, dont think that would be possible without some sort of script modifications 🙂

      November 23, 2014 at 15:14

  31. JayNyne

    Any idea on how I could start something like that?

    November 23, 2014 at 20:01

    • 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 🙂

      November 23, 2014 at 20:51

  32. JayNyne

    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.

    November 23, 2014 at 21:01

    • 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 🙂

      November 23, 2014 at 21:45

  33. JayNyne

    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.

    December 14, 2014 at 22:32

  34. Emily Frost

    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.

    January 9, 2015 at 15:50

  35. JayNyne

    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.

    March 3, 2015 at 21:08

    • 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. 🙂

      March 4, 2015 at 14:26

  36. Jrr

    Help! I got undefined method `[]’ for nil:nilclass when I try to view DPs on my actor. Is something wrong?

    April 23, 2015 at 06:22

    • 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 🙂

      April 23, 2015 at 14:13

  37. 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!

    April 24, 2015 at 00:41

    • 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

      return unless set && set[:icon]
      

      Let me know how that goes for you 🙂

      April 24, 2015 at 13:31

  38. Jrr

    The code that you provided cause an error on the core script and the error points at core script ” text = data[0]”

    April 24, 2015 at 23:13

    • change it for

      return ['','',0,0] unless set && set[:icon]
      

      That should stop the new error 🙂

      April 25, 2015 at 14:14

  39. Jrr

    I tried again with code you provided. But I got new error instead
    “can’t convert array into integer”

    April 25, 2015 at 22:54

    • 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. 🙂

      April 26, 2015 at 17:37

  40. 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!

    December 4, 2015 at 19:18

  41. 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?

    December 5, 2015 at 04:16

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s