Turan's Terrific Tweaks
With the closure of the forums imminent, I've created a repository of all my plugins. It includes a document with all the tweaks below:Download link
This thread is a compilation of tweaks and snippets I've written as I work through my game or respond to requests on
these forums.
A couple of small things are by me to fulfill requests, but most of this is for the Yanfly Engine Plugins, both fixes and modifications.
Due to Yanfly's terms of use, I can't post the full fixes in plugin format, so they will require some user installation. You'll want a text editor, such as Notepad++, that will show you line numbers (the common shortcut to go to a specific line is Ctrl+G).
I use three common instructions here:
[*]Save a plugin indicates the following code can be copied into an empty text file, saved as a .js file in your plugins folder, and then added in your plugin manager.
[*]Add a line means you go to the specified line number, place your cursor at the end of that line, then press Enter and paste the code as a new line.
[*]Change a line to read means you go to the specified line number, highlight it, and replace the entirety of that line with the code I provided.
Please let me know if you find any bugs while using these snippets, and if you have any reproducible bugs you'd like addressed, or ideas for features to add.
Spoiler: MV Change Class Skill LearningThere's an oversight in the default Change Class event command which prevents an actor from learning the skills of the new class unless Save Level is checked and the classes have different experience curves. The plugin is attached at the bottom of the post - have it above any other class-related plugins.
Spoiler: Passable EventsThis small plugin was written by request - it will allow two events to move through each other if they both have the <passable> notetag. They will still interact normally with players, impassable tiles and other events, unless you turn Through ON as normal. Save a plugin with the following code:
Code:
// Allow two events to move through each other if they both have the <passable> notetag
Game_Event.prototype.isCollidedWithEvents = function(x, y) {
var events = $gameMap.eventsXyNt(x, y);
return $dataMap.events.meta["passable"] && events.length>0 ?!events.some(event => $dataMap.events.meta["passable"]) : events.length>0;
};
Spoiler: Phantasy Star Wall SlideThis is legitimately a little plugin I wrote, attached at the bottom of this post. This will emulate the Phantasy Star movement system - if you press against a wall, and there's a valid space "stepping" around it, you'll automatically move that way.
https://forums.rpgmakerweb.com/attachments/animation-gif.215697/
It's compatible with both MV and MZ.
Spoiler: DreamX_ShowParam with Quasi Param PlusThis plugin has an error with displaying custom parameters defined in Quasi's Param Plus. Delete lines 631-636 and replace them with:
Code:
for (qParamIndex = 0; qParamIndex < QuasiParams._custom.length; qParamIndex++)
{
if (QuasiParams._custom.abr == param)
break;
}
if (qParamIndex < QuasiParams._custom.length)
paramValue = parseInt(QuasiParams.equipParamsPlus(item));
Spoiler: Frogboy MagicThe way this plugin handles the various forms of payment for skills is what I consider a bug: it ignores dual MP/TP costs, it subtracts costs (e.g. spell slots) once for every target hit by a skill, and it appears to double-charge MP on top of that per-target payment.
This modification corrects all of those behaviors to pay the cost once when the skill is performed and to treat TP costs as expected.
Go to line 1980. Select from 1980 through 1988 and delete it.
Then go up to line 1883. Replace that whole function from 1883 through 1891 with:
Code:
Game_Actor.prototype.paySkillCost = function(skill) {
var classMagic = FROG.Magic.getClassMagic(this, skill.stypeId);
if (classMagic)
{
switch (classMagic.resource) {
case "Spell Slots":
FROG.Magic.gainSlotUsed(this, skill, 1);
// Only remove the spell for Prepared casters, not Hybrid ones
if (classMagic.casterType == "Prepared") {
FROG.Magic.gainSpellPrepared(this, skill, -1);
}
break;
case "Magic Points":
this._mp -= this.skillMpCost(skill);
break;
case "Powers":
FROG.Magic.gainPowerUsed(this, skill, 1);
break;
}
FROG.Magic.useSpellComponents(this, skill);
FROG.Magic.gainSpellXp(this, skill);
}
this._tp -= this.skillTpCost(skill);
}
Spoiler: SRD Picture ChoicesThere's what I consider an oversight in this plugin - if the user has set their Window Color to be anything other than the default transparent, that color will bleed over the entire screen when using a picture choice. To correct, save a plugin with the following code:
Code:
Window_PictureChoiceList.prototype.updateTone = function()
{
this.setTone(0, 0, 0);
};
Spoiler: Victor Engine Action DodgeThis plugin appears to be broken out of the box. To make it work correctly, change line 439 to read:
Code:
var elmtnValue = item.damage.elementId<0 ? subject.attackElements() : ;
elmtnValue = elmtnValue.reduce(function(r, elementId) {
Spoiler: Victor Engine Battle Status WindowThis plugin has a game-breaking bug out of the box. It will cause the game to crash whenever a skill is selected that does not require target selection. To correct it, swap lines 1376 and 1377. They should read:
Code:
this.setActionIcon();
VictorEngine.BattleStatusWindow.onSelectAction.call(this);
Spoiler: Victor Engine Action Resistance, StrengthenThese plugins (and possibly others) appear to be broken out of the box. To make it work correctly, save the following as a plugin beneath the Basic Module.
Code:
VictorEngine.getAllElements = function(subject, action)
{
let item = (action instanceof Game_Action) ? action.item() : action;
if (item.damage.elementId < 0)
return subject.attackElements();
else
return ;
};
Spoiler: Victor Engine Event ConditionsThis plugin appears to be broken out of the box. To make it work correctly, save the following as a plugin beneath the Event Conditions in your plugin manager.
Code:
Game_Event.prototype.meetsConditions = function(page) {
var c = page.conditions;
if (c.switch1Valid) {
if (!$gameSwitches.value(c.switch1Id)) {
return false;
}
}
if (c.switch2Valid) {
if (!$gameSwitches.value(c.switch2Id)) {
return false;
}
}
if (c.variableValid) {
if ($gameVariables.value(c.variableId) < c.variableValue) {
return false;
}
}
if (c.selfSwitchValid) {
var key = ;
if ($gameSelfSwitches.value(key) !== true) {
return false;
}
}
if (c.itemValid) {
var item = $dataItems;
if (!$gameParty.hasItem(item)) {
return false;
}
}
if (c.actorValid) {
var actor = $gameActors.actor(c.actorId);
if (!$gameParty.members().contains(actor)) {
return false;
}
}
var condition = VictorEngine.EventConditions.getCustomCondition(page);
if (condition)
return eval(condition);
return true;
};
Spoiler: Yanfly Absorption BarrierThe default behavior of the barrier is to only absorb damage inflicted by a skill. This plugin will make it absorb all damage, such as negative regeneration (poison) effects.
Code:
// Make Yanfly barrier block indirect damage
Game_Battler.prototype.gainHp = function(value) {
var blocked=false;
if (value<0 && !BattleManager._subject && this.barrierPoints()>0)
{
var damage=-value;
damage = this.loseBarrier(damage, 1, 0);
if (!damage)
blocked=true;
else
value=-damage;
}
if (!blocked)
{
this._result.hpDamage = -value;
this._result.hpAffected = true;
this.setHp(this.hp + value);
}
};
Spoiler: Yanfly Action Sequence Pack 3Action Sequence Pack 3 adds commands for camera control, but has a bug that causes screen shake commands to not work. To fix this, go to line 830 and add the line:
Code:
this.x += Math.round($gameScreen.shake());
Spoiler: Yanfly Animated Sideview Enemies - Death GlowThere's a fairly niche bug in the Animated Sideview Enemies plugin. If you have an enemy with the Sideview Collapse notetag who dies and later gets revived, they retain the glow effect from the collapse animation.
To fix this, save a plugin with the following code beneath the Sideview Enemies:
Code:
Sprite_Enemy.prototype.revertToNormal = function() {
this._shake = 0;
this.blendMode = 0;
this.opacity = 255;
this.setBlendColor();
if (this._svBattlerEnabled)
{
this._mainSprite.setBlendColor();
this._mainSprite.blendMode=0;
}
};
Spoiler: Yanfly Animated Sideview Enemies - FacingWhen this plugin is enabled, static enemy sprites do not correctly work with facing commands from Action Sequences.
Save a plugin with the following code and place beneath Animated Enemies in your plugin manager:
Code:
Sprite_Enemy.prototype.updateScale = function()
{
if (!this._svBattlerEnabled)
{
var mirror = this.scale.x > 0 ? 1 : -1;
this.scale.x = this._enemy.spriteScaleX();
this.scale.x = Math.abs(this.scale.x) * mirror;
}
else
this.scale.x = this._enemy.spriteScaleX();
this.scale.y = this._enemy.spriteScaleY();
if (this._stateIconSprite)
{
var safe = 1 / 100000;
var sprite = this._stateIconSprite;
sprite.scale.x = 1 / Math.max(safe, Math.abs(this.scale.x));
sprite.scale.y = 1 / Math.max(safe, Math.abs(this.scale.y));
}
};
Spoiler: Yanfly Auto Passive States - Apply and RemoveSomething that comes up pretty frequently is the interaction between some of the commands in Yanfly's Buffs & States and Auto Passive States - specifically, that (as unintuitive as it seems) passive states do not execute Custom Apply or Custom Remove Effects. Adding this functionality requires a few steps. First, save the following as a plugin:
Code:
Game_BattlerBase.prototype.setCopy = function(value) {
this.isCopy=value;
};
Window_EquipItem.prototype.updateHelp = function() {
Window_ItemList.prototype.updateHelp.call(this);
if (this._actor && this._statusWindow) {
var actor = JsonEx.makeDeepCopy(this._actor);
actor.setCopy(true);
actor.forceChangeEquip(this._slotId, this.item());
this._statusWindow.setTempActor(actor);
}
};
Then, in the Yanfly plugin, go to line 419 and add the line:
Code:
this._oldPassives=this._passiveStatesRaw;
Go to line 444 and add the lines:
Code:
if (!this.isCopy && this._oldPassives && !this._oldPassives.contains(raw))
this.addStateEffects(raw);
Go to line 449 and add the lines:
Code:
if (!this.isCopy && this._oldPassives)
{
for (i=0; i<this._oldPassives.length; i++)
{
if (!raw.contains(this._oldPassives) && !this._checkPassiveStateCondition.contains(this._oldPassives))
this.removeStateEffects(this._oldPassives);
}
}
this._oldPassives=undefined;
Go to line 605 and add the line:
Code:
this._oldPassives=this._passiveStatesRaw;
Finally, go to line 611 and add the line:
Code:
this._oldPassives=this._passiveStatesRaw;
Spoiler: Yanfly Auto Passive States - Switch FixIn the latest version of Auto Passive States, the included switch conditions (and any custom conditions that reference switches) do not function correctly. To fix this, add this plugin:
Code:
// Fix for switch conditions
Game_Map.prototype.refresh = function() {
this.events().forEach(function(event) {
event.refresh();
});
this._commonEvents.forEach(function(event) {
event.refresh();
});
this.refreshTileEvents();
$gamePlayer.refresh();
this._needsRefresh = false;
};
Spoiler: Yanfly Battle AI Core - Eval ConditionsOddly, even though other default conditions can check attributes of the target, the eval condition does not provide a target variable. To add this functionality, select lines 1347 - 1353 and delete them. Replace them with:
Code:
var group = this.getActionGroup();
if (condition.includes("target"))
{
let target;
for (let i = 0; i < group.length; i++)
{
if (!group)
continue;
target = group;
try
{
if (!eval(condition))
{
group.splice(i, 1);
i--;
}
}
catch (e)
{
Yanfly.Util.displayError(e, condition, 'A.I. EVAL ERROR');
return false;
}
}
if (group.length > 1)
{
this.setProperTarget(group);
return true;
}
else
return false;
}
try
{
if (!eval(condition))
return false;
}
catch (e)
{
Yanfly.Util.displayError(e, condition, 'A.I. EVAL ERROR');
return false;
}
Spoiler: Yanfly Battle Engine Core Duplicate DamageWhen the Show HP Text plugin parameter is on, attacks will cause a duplicate hit reaction to be displayed. Save a plugin with the following code, placed above the Battle Engine Core.
Code:
Window_BattleLog.prototype.displayHpDamage = function(target) {
if (target.result().hpAffected) {
this.push('addText', this.makeHpDamageText(target));
}
};
Spoiler: Yanfly Buffs and States Core Death Remove EffectsBy default, Custom Remove Effects do not trigger when the states are removed by death. If you would like them to, save a plugin with the following code and put it above all Yanfly plugins in your plugin manager.
Code:
Game_BattlerBase.prototype.clearStates = function()
{
if (this._states)
{
for (let i=0; i<this._states.length; i++)
{
if (Imported.YEP_X_StateCategories && this.isCustomClearStates() && (($gameTemp._deathStateClear && $dataStates].category.contains('BYPASS DEATH REMOVAL')) || ($gameTemp._recoverAllClear && $dataStates].category.contains('BYPASS RECOVER ALL REMOVAL'))))
continue;
this.removeStateEffects(this._states);
}
}
this._states = [];
this._stateTurns = {};
};
Spoiler: Yanfly Class Change Core Level CalculationThere's a bug in the Class Change Core wherein your level in any class is calculated according to the exp chart of your current class. Save a plugin with the following code and place it immediately above the Class Change Core.
Code:
Game_Actor.prototype.expForLevel = function(level, classId) {
var c = classId ? $dataClasses : this.currentClass();
var basis = c.expParams;
var extra = c.expParams;
var acc_a = c.expParams;
var acc_b = c.expParams;
return Math.round(basis*(Math.pow(level-1, 0.9+acc_a/250))*level*
(level+1)/(6+Math.pow(level,2)/50/acc_b)+(level-1)*extra);
};
Then, in Class Change Core, go to line 676 and change it to read:
Code:
if (this.expForLevel(level + 1, classId) > this._exp) break;
Spoiler: Yanfly Counter Control Attacker and Defender ConditionsThere's a bug in Yanfly's Counter Control that causes Attacker and Defender conditions to not be evaluated. To fix this, replace the following lines.
Line 1227:
} else if (line.match(/ATTACKER[ ]([^\s]*)[ ](.*)/i)) {
Line 1229
var value2 = String(RegExp.$2);
Line 1232
} else if (line.match(/DEFENDER[ ]([^\s]*)[ ](.*)/i)) {
Line 1234
var value2 = String(RegExp.$2);
Thanks to @caethyril for this fix.
Spoiler: Yanfly Counter Control Custom ConditionsThere's a bug in Yanfly's Counter Control that causes Custom Counter Condition tags to not be evaluated. There are several edits necessary to fix this: go to line 1105 and change it to read:
Code:
if (!this.meetCounterConditionsEval(skill, subject, target)) return false;
Then go to line 1112 and change it to read:
Code:
if (skill.counterConditionEval=='') return true;
Lastly, go to line 1122 and change it to read:
Code:
var code = skill.counterConditionEval;
Spoiler: Yanfly Counter Control and Element CoreThe Counter Control as written does not support multi-element attacks created by the Element Core. Making this change will cause the Element: x counter condition to trigger if that element is included in a multiple element hit. Change line 1286 to read:
Code:
return this._subject.attackElements().contains(elementId) || this._action.getItemElements().contains(elementId);
Spoiler: Yanfly Element Core Multi-Element MultiplicationThe multiplication multi-element rule does not work correctly if the target has a rate of 0% for one of the elements. Add a line after 740:
Code:
elements.sort(function(a, b) {return target.elementRate(b)-target.elementRate(a)});
Spoiler: Yanfly Enhanced TP Modes - Fix Learn UnlockThere's a bug in Enhanced TP Modes that prevents the Learn Unlock notetag from working. Change line 3723 to read:
Code:
var tpMode = skill.learnUnlockedTpModes;
Spoiler: Yanfly Gab Window - Fix Anti-RepeatThere's a bug in Gab Window that makes all gab windows work as if the anti-repeat plugin parameter were on. Credit to @Robro33 for finding the issue: change line 226 to read:
Code:
Yanfly.Param.GabAntiRepeat = Yanfly.Parameters['Anti-Repeat'] == "true";
Spoiler: Yanfly Hide/Show Shop Items - Fix Showing ItemsThere's a bug in Hide/Show Shop Items that causes items to be hidden by default, not evaluated by the plugin parameter. Change line 130 to read:
Code:
//if (!item.note) return false;
Spoiler: Yanfly Instant Cast - Fix Battle Start FreezeThere's a weirdly blatant bug in Instant Cast wherein winning a battle using an instant cast skill results in the next battle starting with no party/actor command window to continue playing with. Save a plugin with the following code:
Code:
var TUR_endBattle = BattleManager.endBattle;
BattleManager.endBattle = function(result)
{
this._instantCasting=false;
TUR_endBattle.call(this, result);
};
Spoiler: Yanfly Item Requirements - Eval RequirementThere's a bug in this plugin which causes the Eval: requirement to always fail. To correct, go to line 528 and change it to read:
Code:
value = eval(code);
Spoiler: Yanfly Life Steal - OverhealThere's a pair of typos in this plugin that cause the HP and MP overheal parameters to function backwards (i.e. you can overheal when the settings are false). To correct, go to lines 477 and 493 and put an exclamation mark - ! - before the word Yanfly.
Spoiler: Yanfly Message Backlog - Selecting No ItemAn edge scenario in this plugin causes a crash if the player is given a Select Item screen and has no items to choose. Save the following plugin from @caethyril:
Code:
/*:
* @target MV
* @plugindesc Patches YEP Message Backlog - prevent error on selecting null item.
* @author Caethyril
* @url https://forums.rpgmakerweb.com/threads/159752/
* @help Load this plugin after YEP_X_MessageBacklog.
*
* Free to use and/or modify for any project, no credit required.
*/
;void (function(alias) {
Window_EventItem.prototype.backlogAddSelectedChoice = function() {
if (this.item())// only if item is truthy
alias.apply(this, arguments);
};
})(Window_EventItem.prototype.backlogAddSelectedChoice);
Spoiler: Yanfly Passive AurasThe Alive Aura notetags aren't actually included in the plugin. To make this type of aura function, change line 377 to read
Code:
case 'ALIVE': return 'aliveAll';
Spoiler: Yanfly Quest Journal - Fix Show TypesThere's a bug in Yanfly's Quest Journal wherein you select the Quest List Window setting "Show Types" to be false, and no quests are listed. This will cause all quests to list correctly under that setting. Change line 2910 to read:
Code:
if (type=='' || questData.type === type) result.push(questId);
Spoiler: Yanfly Selection Control - Fix Param ConditionsThere's a bug in Yanfly's Selection Control that makes Param Conditions not function. To fix this, go to line 1464. Add a line that says:
Code:
var evalResult;
Then, go to the new line 1467 and change it to read:
Code:
evalResult = eval(code);
Then go to line 1471 and add the line
Code:
return evalResult;
Spoiler: Yanfly Selection Control - Fix Row ConditionsFor some reason, Yanfly's Selection Control intentionally ignores row-based selection restrictions on skills with a scope of allies. To make these function correctly, delete (in order) lines 1406, 1411 and 1416 (before deleting anything, that's lines 1406, 1412 and 1418).
Spoiler: Yanfly Selection Control - Fix Custom User ReferencesYanfly's Selection Control has a bug where references to user in a Custom Select Condition always refer to the first actor to choose their action that turn. To make these notetags function correctly, save a plugin with the following code:
Code:
var origSetActionState = Game_Battler.prototype.setActionState;
Game_Battler.prototype.setActionState = function(actionState) {
origSetActionState.call(this, actionState);
if (actionState == "inputting")
$gameTemp.clearSelectionControlCache();
};
Spoiler: Yanfly Selection Control - Fix Actor OrderThis plugin modifies the order that battlers are cycled through to be by screen position - so no matter what order you added the enemies to the troop, left/right will move left and right across the screen. That works perfectly for enemies, but can be screwy with actors depending on your formation of them and whether that order changes when an actor steps forward to take their turn.
It will be more intuitive to make sure the actors are always scrolled through in party order (and this works particularly well with "Use Up/Down," below).
Place your cursor at the beginning of line 1555 and type /* to begin a comment. Place your cursor at the end of line 1560 and type */ to end the comment. This makes the code non-functional without deleting it.
Then add a new line and paste in:
Code:
this._enemies.sort(function(a, b) {
if (a.isActor() && b.isActor())
return a.index() - b.index();
else if (a.isActor() != b.isActor())
return a.isActor() ? 1 : -1;
else if (a.spritePosX() === b.spritePosX()) {
return a.spritePosY() - b.spritePosY();
}
else
return a.spritePosX() - b.spritePosX();
});
Spoiler: Yanfly Selection Control - Fix Item and Skill SeparationCourtesy of @Robro33 - there's a bug in the plugin where any skills and items that have the same ID will use the selection control notetags from the item.
Change lines 766, 777, and 787 to read:
Code:
if (DataManager.isItem(item)) {
Spoiler: Yanfly Selection Control - Use Up/DownIn the default battle engine, when you're using an effect that targets party members, you use up/down to select the target. This makes sense both because your party members are arranged vertically, and because you can see their names listed vertically on the bottom.
However, when using a skill that has been modified with selection control (you can only target party members afflicted with blind for your cure-blind spell), up and down no longer work, and you're forced to use left and right. The below plugin will restore the ability to use up and down again.
Code:
// Make up and down work with Yanfly Selection Control
Window_Selectable.prototype.processCursorMove = function() {
if (this.isCursorMovable()) {
var lastIndex = this.index();
if (Input.isRepeated('down')) {
if (SceneManager._scene._enemyWindow && SceneManager._scene._enemyWindow.active)
this.cursorRight(Input.isTriggered('right'));
else
this.cursorDown(Input.isTriggered('down'));
}
if (Input.isRepeated('up')) {
if (SceneManager._scene._enemyWindow && SceneManager._scene._enemyWindow.active)
this.cursorLeft(Input.isTriggered('left'));
else
this.cursorUp(Input.isTriggered('up'));
}
if (Input.isRepeated('right')) {
this.cursorRight(Input.isTriggered('right'));
}
if (Input.isRepeated('left')) {
this.cursorLeft(Input.isTriggered('left'));
}
if (!this.isHandled('pagedown') && Input.isTriggered('pagedown')) {
this.cursorPagedown();
}
if (!this.isHandled('pageup') && Input.isTriggered('pageup')) {
this.cursorPageup();
}
if (this.index() !== lastIndex) {
SoundManager.playCursor();
}
}
};
Spoiler: Yanfly Skill Core - Fix Custom Show EvalThere's a bug in Yanfly's Skill Core that makes Custom Show conditions not function. To fix this, go to line 765 and change it to read:
Code:
visible=eval(code);
Spoiler: Yanfly Skill Learn System - Fix Actor ChangeThere's a very niche bug when using the Skill Learn System with the Class Change System. If you're looking at the available skills for an actor to learn and you use page up/down to change to an actor who doesn't know as many classes, the game will crash.
To fix this, go to line 1703, add a line, and paste in:
Code:
if (Imported.YEP_ClassChangeCore)
this._commandWindow._index=0;
Spoiler: Yanfly Skill Learn System - Fix Learn Show EvalThere's a bug in Yanfly's Skill Learn System where using a Learn Show Eval to show a skill in an actor's list of learnable skills also makes it automatically learnable (thus defeating the purpose of requirements and the Learn Require Eval). To fix this, select lines 933 and 934 and cut them. Go to line 927, add a line, and paste those two lines in.
Now, using a Learn Show Eval will make a skill show up in the actor's list, but it will be greyed out and disabled until they actually meet the requirements.
Spoiler: Yanfly Stat Allocation - Fix Gain Bonus APBy default, there is a bug in the gainBonusAp() method where it sets the actor's AP to the passed value, rather than adds to it. To correct, change line 1160 to read
Code:
value += ap;
Spoiler: Yanfly STB - Fix Cannot MoveBy default, the STB does not check for an actor to have the Cannot Move restriction from a state before starting their turn. This causes the battle log to not display the state persists message, as well as other small glitches. To correct, change line 322 to read:
Code:
if (this.isSTB() && subject.isActor() && subject.canInput()) {
Spoiler: Yanfly Target Core - Fix Target: EverybodyUsing the <Target: Everybody> notetag causes the effect to only target one party member when used from the menu. The below plugin will make it correctly target all party members.
Code:
Game_Action.prototype.isForAll = function() {
return this.checkItemScope();
};
Spoiler: Yanfly Utility Common EventsThere is a bug in this plugin that prevents the Escape event from ever being called. On line 36 of the plugin, change the words "Escape Battle Event" to read "Battle Escape Event"
Spoiler: Yanfly Weapon AnimationThere are bugs in this plugin that don't correctly read the Weapon Animation notetag and incorrectly displays it as a dual wielding attack when using only one weapon.
On lines 421, 426, and 430, change it to read: return this._cacheWeaponAni;
Then, on line 446, change it to read
Code:
if (this.weapons().length>1 && this.getUniqueWeaponAni()) return this.getUniqueWeaponAni();
Standalone plugins:
Custom Hit Formula for MZ
Chanting Animations for MZ/MV
Activate Equipment
Release Enemies
Action Sequence Rotation Extension
Action Sequence Targets Extension
Subclass Mods Extension
Party Approval
Profanity Filter for MZ/MV
Eval Tags MZ
Christmas Calendar Plugins
Dynamic Battlebacks for MV/MZ
Attack Sounds for MV/MZ
Loading Map for MV/MZ
Equipment Levels
Encounter Control for MV/MZ
Step Variance for MV/MZ
Battle Macros for MV/MZ
Combo Actions for MV/MZ
Level Cap for MV/MZ
Press Turn Battle
Rotate Move (MV/MZ)
Item Suite MZ
本贴来自国际rpgmaker官方论坛作者:ATT_Turan处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/turans-terrific-tweaks.141865/
页:
[1]