设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 106|回复: 0

[转载发布] [MZ] Stat Distribution Panel (SDP) System

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9015

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58751
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68660

    灌水之王

    发表于 2026-7-20 11:55:50 | 显示全部楼层 |阅读模式

    Stat Distribution Panel (SDP) System
    J/JE/Jragyn



    Introduction
    In RPGs, there can be a wide variety of different means to power up your character. Sometimes its via basic level ups, sometimes you consume items, sometimes it is purely from equipment, and the list goes on. This system is the "Stat Distribution" system, where the player gains points from whatever means, and then spends them to power up various parameters. In most the stat distribution systems I've seen, it was always purely points typically gained by leveling up, and then spent on single parameters one at a time, always up. The term "panels" seen in the title comes from the quirk of this system, where the RM dev can group up a collection of parameters that all will be powered up at the same time (or powered down if you want) when leveling up your "panels". This gives the power to the RM dev to allow for some creative spins on how their players level up.

    Features
    - Create "panels" that contain one or more parameters that affect the player on a per-actor basis.
    - Parameters can be any of the 27 parameters, be it the base (MHP/ATK/MAT) or ex (HIT/EVA/CRI) or sp (GRD/REC/EXR).
    - Parameters can increase flat or by percent (use caution with percent, especially when working with ex/sp params!)
    - "Panels" have a basic cost formula that is largely adjustable to be flat or multiplicative based on the rank.
    - "Panels" can be ranked up one or a thousand times if you felt the need to allow the player such versatility.
    - "Panels" have an open space for javascript to execute upon maxing out the rank (such as learning a new skill or unlocking another panel).

    Screenshots
    Spoiler: Screenshots

    How to Use
    Because I built it to work with JABS, it is designed to hook into the JABS quick menu. However, it should work fine without, and live happily in your main menu, or just from plugin command scene call.

    Spoiler: Plugin Commands & Script Calls
    There are also a couple of note tags that come into play with this plugin, let us go over them:
                    JavaScript:       
    1. // The following notes go into an enemy's note box:
    2. <sdpPoints:NUM>
    3. //   Where NUM is the number of points you want this enemy to reward the player with.
    4. // The following enemy note is optional; I built them for my project, but you can use it too:
    5. <sdpPanel:KEY:ITEM_ID:DROP_CHANCE>
    6. //    Where KEY is the unique string identifier for the panel.
    7. //    Where ITEM_ID is the id of the item in the database that maps to an item.
    8. //    Where DROP_CHANCE is the integer percent chance of the item dropping.
    9. /*
    10. The design concept behind having an enemy directly drop the panel was that panels would
    11. uniquely be dropped by enemies, which activated a common event, which had some party
    12. conversation and unlocked the panel. This is not required. You can just as easily use
    13. the plugin command however you wish to unlock a panel at any time.
    14. */
    复制代码


    All configuration for SDPs to be unlocked by the player are found within the plugin settings. See the demo project for samples.

    Plugin Commands / Script Calls / Plugin Settings




    From top to bottom depicted in the screenshot of plugin commands above:
    - Access the SDP Menu:
                            Immediately brings up the SDP menu.               
    Click to expand...

    - Unlock Panel(s):
                            Unlock one or more panels by their key that is configured within the plugin settings.
    Unlocked panels are available in the SDP menu for all actors to rank up with SDP points.
    If the key does not match any in the plugin settings, nothing will happen.
    If the panel is already unlocked, nothing will happen.               
    Click to expand...

    - Lock Panel(s):
                            Lock one or more panels by their key that is configured within the plugin settings.
    Locked panels are absent from the SDP menu for all actors, and any ranks in a locked panel will not affect the actor's parameters.
    If the key does not match any in the plugin settings, nothing will happen.
    If the panel is already unlocked, nothing will happen.               
    Click to expand...

    - Add/Remove SDP points:
                            Modify any one actor's SDP points by a given amount.
    Negative amounts will result in reducing an actor's points instead.               
    Click to expand...

    - Add/Remove party's SDP points:
                            Modify all actors in the current party's SDP points.
    Negative amounts will result in reducing all actor's points instead.               
    Click to expand...



    Spoiler: Plugin Settings



    From top to bottom depicted in the screenshot of plugin settings above:
    - SDP Switch:
                            If this switch is ON/true, then this system will available in the main menu (or JABS quick menu if using JABS).
    Turning this switch to OFF/false does not disable panels that may have been ranked up.               
    Click to expand...

    - SDP Icon:
                            The id/index of the icon that you want to represent SDP points.               
    Click to expand...

    - Stat Distribution Panels:
                            See the next spoiler for details.               
    Click to expand...

    - SDP JABS Menu Icon:
                            The id/index of the icon that you want to represent the command in the JABS quick menu.
    Not applicable if not using JABS.               
    Click to expand...

    - Show In Both:
                            If this is set to true, then the command to access the SDP menu will be present in both the JABS quick menu and also the main menu. If set to false, then this will only show up in the JABS quick menu.
    Not applicable if not using JABS.               
    Click to expand...



    When you enter the "Stat Distribution Panels" setting, it'll bring you to a list view of all panels that you've created (or that were predefined by me). All panels must be defined here that you want to include in your project. Panels can be created/adjusted here, and it'll affect existing save files. Though you can adjust parameters that will allow balance adjustments on existing save files, if the player has maxed a panel, the reward cannot be re-earned or changed.

    Click into the below spoiler to learn more about panel configuration.
    Spoiler: Plugin Settings: Stat Distribution Panels




    Name:
                            The name that represents this panel.
    This is what shows up in the list of SDPs as depicted in the screenshot in the "Screenshots" section of this post.               
    Click to expand...

    Key:
                            This is a unique identifier for this specific stat distribution panel.
    This key MUST be unique, or it will lead to problems with the plugin.
    It can only be letters, numbers, and underscores.               
    Click to expand...

    IconIndex:
                            The id/index of the icon you want to sit to the left of the panel name as seen in the screenshot in the "Screenshots" section of this post.               
    Click to expand...

    Is Unlocked:
                            Whether or not you want the game to begin with this panel unlocked.
    Unlocked panels are available for the player to rank up.               
    Click to expand...

    Description:
                            The text that shows up in the bottom help window.               
    Click to expand...

    MaxRank:
                            The maximum rank that the player can rank up this panel.               
    Click to expand...

    The next three config options are related to cost.
    The formula is:
                    Code:       
    1. baseCost + (multGrowthCost * (flatGrowthCost * rank))
    复制代码


    PanelParameters:
                            See the next spoiler for details.               
    Click to expand...

    MaxReward:
                            This is an open text space where you can write freeform JavaScript/EcmaScript.
    The letter
    1. a
    复制代码
    is a shorthand to the current actor (leader) that is ranking up the panel.
    The default that populates this field is something like
    1. a.learnSkill(123)
    复制代码
    , as an example for teaching the actor who maxed the panel a new skill, but you can put any javascript in here your heart desires.               
    Click to expand...

    MaxDescription: (not pictured in the screenshot above)
                            Some flavor text that shows up in the details window above the parameter details.               
    Click to expand...



    When you enter the "Panel Parameters" setting, it'll bring you to a list view of all parameters that you've created (or that were predefined by me). Here you will define all parameters that this particular panel affects.

    Spoiler: Plugin Settings: Stat Distribution Panels: Panel Parameters



    Parameter Id:
                            Though it appears as a number here, when you open it up it will give you a friendly dropdown to show all available parameters to modify.
    It is important to note that I renamed the following: ATK >> "Power", DEF >> "Endurance", MAT >> "Force", MDF >> "Resist", AGI >> "Speed".               
    Click to expand...

    Growth per Rank:
                            The amount that you want to grow (or reduce) per rank of this panel.
    If this is negative, it will reduce the parameter instead.
    If the Growth Type is "false" (percent), then this number will represent the percent that it affects it's parameter instead of flat affecting it.               
    Click to expand...

    Growth Type:
                            If this is set to "true", then it will be flat growth. If it is set to "false", it will be percent growth.
    Be careful about using percent growth with the sp/ex parameters!
    Click to expand...

    [/quote]


    I also built this to work in tandem with enemies as mentioned before. If you opted to follow the concept I described where enemies can provide SDPs, then the following script call may also be useful to know:
                    JavaScript:       
    1. // where KEY is the key of the panel you want to know if is unlocked:
    2. $gameSystem.getSdp(KEY).isUnlocked();
    复制代码






    Demo
    A demo showcasing the primary functionalities can be found at the download link below.

    Download
    The SDP system lives in my test-bed project, so this should be the same link as the one you find in my JABS thread.

    Final Note
    I deliberately left all code open for the public to view and edit as they see fit (please be kind and give credit where credit is due!).

    Additionally, if you have questions about the code, I'd be happy to explain most anything you'd see in the J-SDP.js file (or any of my plugins).

    Thank you, and happy RM-ing!



    Spoiler: Credits
    - The tilesets and some characters/faces (and the obvious core plugin at the top) are not mine, they were from VisuStella and co., so... thank you for making even other devs lives like my own easier to just pick up and get started doing actual content creation!

    - I believe it was Avy's work that created the icons in the iconset. It is a bit patchworky because I wanted more things, but still, credit is due where credit is due.

    - The characters/faces that are named with the pattern: "chara_*" are just characters I made using the built-in character generator. You are free to use them if you want, but know that with a little bit of time you could probably make your own! (and a bit of paint.net efforts)


    本贴来自国际rpgmaker官方论坛作者:Jragyn处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/mz-stat-distribution-panel-sdp-system.134497/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-4 20:28 , Processed in 0.098294 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表