#"BVP" / Binary's Variety Pack

1 messages · Page 1 of 1 (latest)

oak meadow
#

i have made close to no actual starting progress on this yet, BUT- i can and will outline my initial plans!

this mod is intended to add new jokers to the game, based off of REGRETEVATOR characters & lore (REGRETEVATOR being a Roblox game centric around traveling to unique floors in an elevator with interesting NPCs sometimes stopping by).

#

i am very capable of texturing but i have a long way to go with learning to mod

#

however i do have two initial joker ideas that i hope shouldn’t be too bad to make-

Mach - Legendary - For every Stone card destroyed, add x0.5 Mult. If ”MR” is acquired, destroy it and immediately add x10 Mult.
(Based around her ongoing war with “MR”, a living rock leading a cult.)

”MR” - Legendary - Replace all played face cards with Polychrome Red Seal Stone cards. x1 Mult for every Stone Card actively held when hand played.

Yes, these are unbalanced, these are initial values that get the point across easily of what the Jokers are meant to do.

#

got another joker idea so ill note it here

#

Split - Rare - When a Joker is sold, 1 in 2 chance to replace it with a Polychrome Gros Michel, 1 in 4 chance to replace it with a Holographic Cavendish instead.

#

i have… no idea how to code jokers. so this is certainly gonna be a fun journey with how little free time i have

#

but first things first will come the art

#

REGRETEVATOR Jokers!

#

[Heavy WIP, Help Wanted!] REGRETEVATOR Jokers!

oak meadow
#

[WIP] REGRETEVATOR Jokers!

#

managed to get the first joker with wip/temp art (Mach!) to appear

oak meadow
#

@wind silo WIN

wind silo
#

WIN!!!!

oak meadow
#

now i gotta get some stone cards and test

wind silo
#

Nil value, no comma. Sphagetti Technique: crash.

oak meadow
#

LOL

wind silo
#

btw u can use debugplus for easier testing

#

just press tab 3 in the collection

oak meadow
#

yeah i have debugplus i just didnt know that was the shortcut LOL

#

IT WORKSSS HOLY SHIT

wind silo
#

YESSS

oak meadow
#

WE WIN THESE

#

mach is gonna be a legendary i just had her in common so shed show up in shop LOL

wind silo
#

lol

oak meadow
#

uh oh
the mult isn't working

wind silo
#

guh

oak meadow
#

it's adding to the mult, but the mult isn't triggering

wind silo
#

like its just cips

#

chips

oak meadow
#
    -- Key for code to find it with
    key = "RegretMod",
    -- The name of the file, for the code to pull the atlas from
    path = "Regretevator.png",
    -- Width of each sprite in 1x size
    px = 71,
    -- Height of each sprite in 1x size
    py = 95
}

-- Mach
SMODS.Joker {
    key = 'mach',

    loc_txt = {
        name = 'Mach',
        text = {
            "{C:white,X:mult} X#1# {} Mult"
        }
    },

    config = { extra = { xmult = 1, xmult_gain = 1.5 } },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.xmult_gain, card.ability.extra.xmult } }
    end,

    rarity = 1,
    atlas = 'RegretMod',
    pos = { x = 0, y = 0 },
    soul_pos = { x = 0, y = 1},
    cost = 7,

    unlocked = true,
    discovered = true,
    blueprint_compat = true,

calculate = function(self, card, context)
    if context.remove_playing_cards and not context.blueprint then
        local stone_cards = 0
        for _, removed_card in ipairs(context.removed) do
            if SMODS.has_enhancement(removed_card, "m_stone") then
                stone_cards = stone_cards + 1
            end
        end
        if stone_cards > 0 then
            card.ability.extra.xmult = card.ability.extra.xmult + stone_cards * card.ability.extra.xmult_gain
            return {
                message = localize {
                    type = 'variable',
                    key = 'a_xmult',
                    vars = { card.ability.extra.xmult }
                }
            }
        end
        if context.joker.main then
            return {
                xmult = card.ability.extra.xmult
            }
        end
    end
end
}```
oak meadow
#

the XMult adds on just fine when i destroy the stone cards, but that mult doesn't actually trigger

#

like i had X4 Mult on it, but that X4 didn't happen when scoring happened

#

unsure what i'm missing

wind silo
#
    -- When cards are removed (e.g., stone is destroyed)
    if context.remove_playing_cards and not context.blueprint then
        local stone_cards = 0
        for _, removed_card in ipairs(context.removed) do
            if SMODS.has_enhancement(removed_card, "m_stone") then
                stone_cards = stone_cards + 1
            end
        end
        if stone_cards > 0 then
            card.ability.extra.xmult = card.ability.extra.xmult + stone_cards * card.ability.extra.xmult_gain
            return {
                message = localize {
                    type = 'variable',
                    key = 'a_xmult',
                    vars = { card.ability.extra.xmult }
                }
            }
        end
    end

    -- Apply xmult during scoring
    if context.joker.main then
        return {
            xmult = card.ability.extra.xmult
        }
    end
end
#

replace the calc function with this

#

the if.context.joker.main was in the wrong spot

oak meadow
#

OHHH

#

ill give it a trry

#

okay now im getting "Oops! The game crashed:
[SMODS RegretMod "src/jokers.lua"]:60: attempt to index field 'joker' (a nil value)"

#

line 60 being the if context.joker.main

#

trying to figure out if i made a mistake with pasting it in

wind silo
#

try uh

#
    -- When cards are removed (e.g., stone is destroyed)
    if context.remove_playing_cards and not context.blueprint then
        local stone_cards = 0
        for _, removed_card in ipairs(context.removed) do
            if SMODS.has_enhancement(removed_card, "m_stone") then
                stone_cards = stone_cards + 1
            end
        end
        if stone_cards > 0 then
            card.ability.extra.xmult = card.ability.extra.xmult + stone_cards * card.ability.extra.xmult_gain
            return {
                message = localize {
                    type = 'variable',
                    key = 'a_xmult',
                    vars = { card.ability.extra.xmult }
                }
            }
        end
    end

    -- Apply xmult during scoring (only if context.joker exists)
    if context.joker and context.joker.main then
        return {
            xmult = card.ability.extra.xmult
        }
    end
end```
oak meadow
#

will do

wind silo
#

Wrapped the context.joker.main check with if context.joker and context.joker.main to prevent the nil error

oak meadow
#

okay well it aint crashing anymore but the mult still isnt working

wind silo
#

oh boy

oak meadow
#

this mod is just LOVING causing issues

#

cannot for the life of me figure out what could be wrong with it rn

wind silo
#

uhhhh

#

try this??

    -- Step 1: Increase multiplier if stone cards were destroyed
    if context.remove_playing_cards and not context.blueprint then
        local stone_cards = 0
        for _, removed_card in ipairs(context.removed or {}) do
            if SMODS.has_enhancement(removed_card, "m_stone") then
                stone_cards = stone_cards + 1
            end
        end
        if stone_cards > 0 then
            card.ability.extra.xmult = card.ability.extra.xmult + (stone_cards * card.ability.extra.xmult_gain)
            return {
                message = localize {
                    type = 'variable',
                    key = 'a_xmult',
                    vars = { card.ability.extra.xmult }
                }
            }
        end
    end

    -- Step 2: Always apply xmult during scoring if Joker is active
    if context.scoring_hand and context.joker == card then
        return {
            xmult = card.ability.extra.xmult
        }
    end
end```
oak meadow
#

you are being immensely helpful, thank you again
i will try this out

wind silo
#

no problamo man

oak meadow
#

still does nothing 😔 i tried a new save n everything- and i made sure i saved the lua

wind silo
#

damn..

#

hold up

#

just straight up send me the mod

#

if u can

oak meadow
#

i only have four files in it, i can... just paste them all in your dms if that works

wind silo
#

that works

#

but i'll prob work on it tomorrow

oak meadow
#

mach works now!!!

#

that's the first joker functional :3

oak meadow
#

might remove the glow outline but i redid the art

oak meadow
#

gonna space out MR's description better, but here they are and their (CURRENT) functionalities

#

theyre almost 100% certainly subject to change, especially MR's

oak meadow
#

"BVP" / Binary's Variety Pack

oak meadow
#

gonna start coming up with other joker ideas for this pack

#

✅ will indicate that the feature is implemented and working with at least their current function
🔵 will indicate that the feature is WIP
❌ will indicate that the feature has not yet been started

#

REGRETEVATOR
Mach - Legendary Joker - Destroys stone cards, gains XMult. ✅
MR - Legendary Joker - Converts all played cards into polychrome red seal stone cards. ✅
Split - Rare(?) Joker - When a Joker is sold, replace it with a Holographic Gros Michel. 1/4 chance to replace with a Polychrome Cavendish instead. 🔵
Gnarpy - ??? Joker - Something to do with Planet Cards. Not sure yet. ❌
Spud - ??? Joker - Something that’s an anti-synergy to Gnarpy. ❌
(…)

#

OCs & Worldbuilding
Binary - ??? (Probably Legendary?) Joker - Honestly no idea right now. ❌
Protoverse Planet Cards - Planet Cards - Rework/balancing to planet cards, with new art and names. ❌
Protoverse Megafactory Cards - Planet Card Upgrades - When a “megafactory” card is taken, it upgrades all future planet cards of that type. (Ex. “Venus Megafactory” would improve all future “Venus” planet cards.) ❌
(…)