MV SDJB_ConditionalBranch
BMM_Archive · July 15, 2026
Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.
Original Source
- Original title: MV SDJB_ConditionalBranch
- Original author: ShadowDragon
- Original date: October 29, 2025
- Source thread: https://forums.rpgmakerweb.com/threads/sdjb_conditionalbranch.180767/
- Source forum path: Game Development Engines > RPG Maker Javascript Plugins > JS Plugins In Development
Summary
PluginName: SDJB_ConditionalBranch Author: ShadowDragon Spoiler: How it works Code:
Archived First Post
PluginName: SDJB_ConditionalBranch
Author: ShadowDragon
=== TERMS OF USE ===
Free for Non-Commercial and Commercial use when credit is given.
credit one of the following:
ShadowDragon
ShadowDragonJB
=== WARNING ===
YOU ARE NOT ALLOWED TO:
* MODIFY without permission
* EXTEND without permission
* TAKE CODE without permission
* CLAIM AS YOU MADE IT
* REDISTRIBUTE but link back to the forum or itch.io
* SELL this product as standalone.
* DO NOT REMOVE THE HEADER.
Download on itch.io (as it require my SDJB_Base (main or mini))
Author: ShadowDragon
Code:
Introduction
͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞
ConditionalBranch+ by mjshi is completely rewritten from scratch.
and make conditional checks easier to use, and far easier to extend.
The parameter "Name Check" defaults to "GameCheck", used as GameCheck.has(...).
If it conflicts with another global name, rename it for safety.
The usages is to use "1" type of check as follows:
GameCheck.has(type, ids, options = {})
→ type: "item" | "weapon" | "armor" | "var" | "variable" | "sw" | "switch" | "gold".
→ ids: single ID or array of IDs (for switches, items, variables).
→ options: object with type-specific checks.
Examples:
GameCheck.has("item", [1, 2, 3]); => has all items 1,2,3
GameCheck.has("item", [1, 2, 3], {any: true}); => has any of 1,2,3
GameCheck.has("var", [5], {equal: 10}); => variable 5 == 10
GameCheck.has("var", [5, 6], {greater: 50}); => vars ≥ 50
GameCheck.has("switch", [7], {state: true}); => switch 7 is ON
GameCheck.has("gold", 0, {min: 1000}); => ≥ 1000 gold
Item, Weapon, Armor
͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞
Items has 3 kind of types, "item", "weapon" and "armor".
default for boolean "any" is true, equipped is false.
any: boolean => true = passes if any item matches, false = all must match
more: number => must have ≥ this many of each item
less: number => must have ≤ this many of each item
between: [min,max] => must have between min and max of each item
equipped: boolean => true = must be equipped, false = must NOT be equipped
Examples:
GameCheck.has("item", [1,2,3]); => has all items 1,2,3
GameCheck.has("weapon", [5], {equipped: true}); => weapon 5 equipped
GameCheck.has("armor", [2,3], {more: 2}); => at least 2 of armor 2 & 3
GameCheck.has("item", [1,2], {between: [1,3]}); => between 1 and 3 of items 1 & 2
Variables
͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞
To check variables, you can use "var" or "variable", default booleans are true.
The following objects are available:
equal: number|string|array => variable must equal this (or any in array)
not: number|string|array => variable must NOT equal this (or any in array)
greater: number => variable ≥ this
less: number => variable ≤ this
between: [min, max] => variable between min and max inclusive
range: [startId, endId] => dynamically check variables from startId ~ endId inclusive
any: boolean => true = passes if any variable matches, false = all must match
Examples:
GameCheck.has("var", [5,6], {equal: [10,12]}); => variable 5 or 6 = 10 or 12
GameCheck.has("var", [6], {equal: ["opt","dir"]}); => variable 6 = "opt" or "dir"
GameCheck.has("var", [5,6], {greater: 50, any: false}); => both variables ≥ 50
GameCheck.has("var", [], {range: [3,6], equal: 5}); => variables 3,4,5,6 equal 5
GameCheck.has("var", [5], {between: [4,10]}); => variable 5 between 4 and 10
Switches
͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞
Switch checks are used by "sw" or "switch".
Default booleans are true.
state: boolean => true = ON, false = OFF
any: boolean => true = passes if any switch matches, false = all must match
range: [startId,endId] => check range of switches from startId ~ endId inclusive
Examples:
GameCheck.has("switch", [4,5], {state: true}); => switches 4 & 5 ON
GameCheck.has("switch", [], {range: [3,6], state: false, any: true}); => any of switches 3~6 OFF
Gold
͞ ͞ ͞ ͞
min: number => must have ≥ this amount
max: number => must have ≤ this amount
between: [min,max] => must have gold ≥ min AND ≤ max
Examples:
GameCheck.has("gold", 500); => ≥ 500 gold
GameCheck.has("gold", 0, {min: 100}); => ≥ 100 gold
GameCheck.has("gold", 0, {max: 100}); => ≤ 100 gold
GameCheck.has("gold", 0, {between: [300,600]}); => gold between 300 & 600
=== TERMS OF USE ===
Free for Non-Commercial and Commercial use when credit is given.
credit one of the following:
ShadowDragon
ShadowDragonJB
=== WARNING ===
YOU ARE NOT ALLOWED TO:
* MODIFY without permission
* EXTEND without permission
* TAKE CODE without permission
* CLAIM AS YOU MADE IT
* REDISTRIBUTE but link back to the forum or itch.io
* SELL this product as standalone.
* DO NOT REMOVE THE HEADER.
Download on itch.io (as it require my SDJB_Base (main or mini))
Downloads / Referenced Files
Log in to download
Log in, then follow the RPG Maker Developers Group to see these download links.
Log in to downloadLicense / Terms Note
=== TERMS OF USE === Free for Non-Commercial and Commercial use when credit is given. credit one of the following: ShadowDragon
Creator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
0
replies
1
view
Topic Summary
Loading summary...