$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

75 thoughts on “$D13x – ISPDS

  1. Misterdude says:

    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.

    1. Dekita-RPG says:

      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.

  2. Master Daisy says:

    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,

  3. Dekita-RPG says:

    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

  4. MikeB says:

    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

  5. Eschaton says:

    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.

  6. bloodyliao says:

    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?

  7. cHAOScythe says:

    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!

  8. simplestchaos says:

    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

  9. Dekita-RPG says:

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

  10. simplestchaos says:

    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

  11. xaigoth says:

    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

  12. Dekita-RPG says:

    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

  13. TheRPGLPer says:

    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.

    1. xaigoth says:

      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

      1. Dekita-RPG says:

        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.

  14. Dekita-RPG says:

    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.

  15. TheRPGLPer says:

    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?

    1. Dekita-RPG says:

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

  16. Adrian says:

    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

      1. Dekita-RPG says:

        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

  17. Ashyra moonwolf says:

    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)

  18. MikeB says:

    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?

    1. Dekita-RPG says:

      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

      🙂

      1. MikeB says:

        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?

  19. Matthew says:

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

      1. Dekita-RPG says:

        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 🙂

  20. Carl says:

    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.

    1. Dekita-RPG says:

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

  21. xaigoth says:

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

  22. JayNyne says:

    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.

    1. Dekita-RPG says:

      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 🙂

  23. JayNyne says:

    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.

    1. Dekita-RPG says:

      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 🙂

  24. JayNyne says:

    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.

  25. Emily Frost says:

    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.

  26. JayNyne says:

    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.

    1. Dekita-RPG says:

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

    1. Dekita-RPG says:

      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 🙂

  27. Jrr Kein says:

    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!

    1. Dekita-RPG says:

      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 🙂

    1. Dekita-RPG says:

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

  28. c0rp53 says:

    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!

  29. c0rp53 says:

    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?

  30. Yuyami says:

    Wow! Thank you for this! 😀 I’ve always wanted to create a raising sim game like Princess Maker. 😀 Thank you so much!

  31. Yuyami says:

    Out of curiosity, what are your terms? 🙂 Can I use this for a free but pay what you want game? 🙂 Thank you. 😀

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s