#Challenger Deep - Rules for Modded Challenges

1 messages · Page 1 of 1 (latest)

sullen beacon
#

Challenger Deep adds new custom rules to use in modded Challenges. This mod will be updated with more rules depending on requests from the community, to provide a more generalized structure for Challenge rules.

The mod currently only has banning Editions (either all of them or specific Editions.) Currently, all base game Editions and Bunco Editions can be banned individually, but banning all Editions should support any mod.

Banning Editions

To ban all Editions in your Challenge, use:

  • {id = "no_editions"} to remove all editions from all cards
  • {id = "no_edition_jokers"} to remove all editions from Jokers
  • {id = "no_edition_cards"} to remove all editions from Playing Cards

To ban specific Editions, use:

  • {id = "no_(EDITION)s"} to remove the edition from all cards
  • {id = "no_(EDITION)_jokers"} to remove the edition from Jokers
  • {id = "no_(EDITION)_cards"} to remove the edition from Playing Cards

Replace (EDITION) with foil, holo, polychrome, negative (only for Jokers), fluorescent or glitter to remove each corresponding Edition.

You can download the mod at https://github.com/OOkayOak/Challenger-Deep. Please suggest rules to add (or, point out issues) in this Forum.

hybrid wadi
#

this is cool, also bunco based

sullen beacon
#

also please note this doesnt do anything if you don’t have any modded challenges that use these rules

#

(i’m making a mod that uses a couple rules from this though)

sullen beacon
#

say farewell to all your jokers

sullen beacon
#

Challenger Deep v0.2.0

The latest version of Challenger Deep has been released. This includes 4 new rules:

  • {id = "blind_scaling", value = x} - All blind requirements are multiplied by x
  • {id = "minus_jokers_per_dollar", value = x} - -1 joker slot per $x
  • {id = "overflow_perishable"} - When joker count exceeds joker slots, all jokers become perishable
  • {id = "overflow_debuff"} - When joker count exceeds joker slots, all jokers are debuffed

For more information, go to the README on the GitHub page: https://github.com/OOkayOak/Challenger-Deep

GitHub

A Balatro mod. Contribute to OOkayOak/Challenger-Deep development by creating an account on GitHub.

thick birch
#

ooh this is where it came from 🤔

sullen beacon
#

yea

sullen beacon
sullen beacon
#

hide your money. i figured out how to patch

sullen beacon
#

Challenger Deep v0.4.0

Hi all! Challenger Deep's latest update is here. Direct release link: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v0.4.0

New Rules

  • {id = "money_scaling", value = x} - Multiplies all blind rewards by x. At the moment, this is not visual.
  • "all_rental_jokers", "all_perishable_jokers" - All Jokers will have the specified Sticker. (Perishable may not function currently.)
  • {id = "rental_rate", value = x} - Rental Jokers will have their rate set to x dollars. At the end of a round, for each Rental Joker, x dollars will be deducted from the player.
  • {id = "perishable_rounds", value = x} - Perishable Jokers will be debuffed after x rounds.
  • "no_vouchers" - Vouchers do not appear. (NOTE: Voucher Tag crashes the game when this is enabled.)
  • {id = "extra_hand_money_scaling", value = x} - Money from extra Hands at the end of a round will be multiplied by x, rounded down (i.e. $1.9 becomes $1 flat)
  • {id = "money_total_scaling", value = x} - Total money accumulated at the end of a round is multiplied by x, rounded to nearest dollar.

Example Challenges

Example Challenges have been moved to a separate mod file, Challenger Deep Examples. These challenges will not work without Challenger Deep.
So far, there are 5 Challenges:

  • Three-Body Problem
  • The Buyout (I, II, III)
  • Money Talks

For more information, read the release notes or README on the GitHub: https://github.com/OOkayOak/Challenger-Deep

GitHub

7 new rules have been added.

{id = "money_scaling", value = x} - Multiplies all blind rewards by x. At the moment, this is not visual.
"all_rental_jokers", "all_perishable...

GitHub

A Balatro mod. Contribute to OOkayOak/Challenger-Deep development by creating an account on GitHub.

sullen beacon
#

v0.4.1

This is a simple update to stop the subtotal and scaling lines from appearing when G.GAME.modifiers.money_total_scaling == 1.

(This is because your total is tallied by the Cash Out button anyway.)

Release link:
https://github.com/OOkayOak/Challenger-Deep/releases/tag/v0.4.1

GitHub

Challenger Deep Patch
This is a very simple patch version to edit an issue with the evaluate_round.toml file.
If you've noticed the subtotal (total dollars accumulated) or scaling (1x total val...

sullen beacon
#

v0.4.2

Another update! This builds on the previous fix:
"all_rental_jokers" no longer confirms the buy price is unaffected, but this is now separated to "rentals_keep_price".

Thanks! Release link here: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v0.4.2

GitHub

Hello! Only a 0.0.X update version, as I felt this did not constitute enough for a 0.X.0 update.
Rules

"all_rental_jokers" no longer retains Joker price

Instead, "rentals_keep_pr...

sullen beacon
#

Challenger Deep - Rules for Modded Challenges

hybrid wadi
#

i'm gonna make a challenge called "Poor Quality Products"
you'll start with a negative credit card and all jokers will have rental and perishable, in my mod "rebaloed" credit card has been changed to remove all debt when the boss is cleared so i think this will make for a goofy challenge.

hybrid wadi
#

how do i make it so apart of my code is turned on when your mod is enabled.

if {your mod} then
code stuffs
end

sullen beacon
#

i'm working on another mod and it does this

hybrid wadi
sullen beacon
#

np :3

hybrid wadi
#

i noticed that all_perishable went unused so i just made it myself :)

i want this to be updated but it's okay if you don't want to. i implemented it the same way rental was.

hybrid wadi
#

so i just had this interaction with the death card 😂

#

doesn't do anything

#

that's good

sullen beacon
sullen beacon
hybrid wadi
sullen beacon
#

got scared it wasnt working because i got a normal Ride the Bus, but ride the bus is non-compatible with Perishable

hybrid wadi
#

Oh I forgot about compatibility

sullen beacon
#

the update drops this evening

sullen beacon
#

@umbral compass putting this in here so i don't clog modding-chat up

the rule to create a tag is called Anaglyph, and looks like this:
{id = 'anaglyph', value = localize{type = 'name_text', set = 'Tag', key = 'tag_negative', nodes = {}}, tag = 'negative'}

to create a specific tag, replace the word 'negative' with the name of the tag you want to use

this update isnt out yet

#

actually, might as well push it now

umbral compass
#

ok

#

yoooooooooo

sullen beacon
#

oh, you downloaded it from the github directly lol

#

im writing release notes

sullen beacon
#

Challenger Deep v1.0.0

(yay we dids it!!!)

Rules

  • {id = "mts_scaling", value = x}
  • {id = "rental_rate_increase", value = x}
  • {id = "rental_rate_increase_all", value = x}
  • all_perishable_jokers
  • {id = "reroll_cost_increase", value = x}
  • {id = "all_shop_scaling", value = x}
  • {id = "shop_scaling_round_increase", value = x}
  • {id = "shop_scaling_ante_increase", value = x} - all_shop_scaling
  • chaos_engine
  • {id = 'anaglyph', value = localize{type = 'name_text', set = 'Tag', key = 'tag_x', nodes = {}}, tag = 'x'}

User Interface

While inside any Challenge run, Challenge Rules can be seen in the Run Info button.

Also, at the end of a round, the Cash Out menu will display:

  • money_total_scaling
  • mts_scaling
  • rental_rate_increase_all (+ rental_rate_increase if on a Boss Blind)
  • shop_scaling_round_increase (+ shop_scaling_ante_increase if on a Boss Blind)
  • The new rule set by chaos_engine (CURRENTLY BUGGED - A patch will be out later to address this.)

Example Challenges

There are now restrictions in the example challenges. These are base game, but should provide a good example on how to apply restrictions on your Challenge.

For descriptions on Challenge Rules and to download, go to the Github release page here: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.0.0

GitHub

Hello! This version of Challenger Deep will be labelled as v1.0.0, as I feel the mod has "enough" content to constitute that.
Rules

{id = "mts_scaling", value = x} - The money ...

#

A patch will be released later today to address chaos_engine functionality

thick birch
#

damn my guy ur doing magic

sullen beacon
#

heavily assisted magic

thick birch
#

still magic

sullen beacon
sullen beacon
#

Release Notes for v1.1.0:

Hi! Thanks for being patient. The README has been updated, and release notes have been written:

Rules

  • no_(edition)_card and no_(edition)_joker now support every Edition from Cryptid (mosaic, glitched, oversat, gold, glass, blur, astral, m)
  • chaos_engine now supports a lot of rules, including Bunco and Cryptid rules (when either mod is found). For more information, read the README.
  • chaos_engine_all is chaos_engine but every round instead of ante.
  • world_machine - Chaos_engine_all.
  • anaglyph is now repeatable, meaning you can have more Tag created at the end of the Boss Blind. (To do this, put more than one of the rule in your Challenge.)

Challenge Examples

  • Chaos - chaos_engine is enabled.
  • Chaos Incarnate - chaos_engine_all is enabled.

For more information, read the README on GitHub: https://github.com/OOkayOak/Challenger-Deep/tree/v1.1.0?tab=readme-ov-file#challenger-deep

GitHub

A Balatro mod. Contribute to OOkayOak/Challenger-Deep development by creating an account on GitHub.

hybrid wadi
#

i've finally published the challenges i made using your mod!

sullen beacon
hybrid wadi
#

❤️

#

Alliance, corporative modding

sullen beacon
sullen beacon
#

v1.2.0

Sticker

Singular - Jokers with this sticker cannot be copied by Ankh or Invisible Joker.
(If you have copying Jokers in your mod, check out singular.toml to see near enough how to prevent Singular cards being copied.)

Rules

More enable_(STICKER)_jokers and all_(STICKER)_jokers stickers:
singular (from Challenger Deep)
scattering, reactive, hindered (from Bunco)

Chaos Rules

All new enable_(STICKER)_jokers rules are in the pool (Bunco stickers only when Bunco is loaded.)

Github: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.2.0

GitHub

Hello all! Slightly larger update today.
Sticker
Singular - Jokers with this sticker cannot be copied by Ankh or Invisible Joker.

(If you have copying Jokers in your mod, check out singular.toml t...

pseudo loom
#

Is this still active? I may have a few ideas...

sullen beacon
#

hello!!!!

pseudo loom
#

Hi. So I recently started making a challenge mod and came across this thread.
If you’re still interested in adding stuff to this mod, I would be happy to share my ideas.

sullen beacon
#

feel free to suggest ideas :D

pseudo loom
#

Alright. So, here are the 3 rules I had in mind:

  • Automatically skip blinds under a certain condition (the condition could be no condition, if you own a specific card, if you used a certain number of consumables, if a poker hand is above a certain level, etc.)
  • Disable one or multiple poker hands for the run (it would work like bosses like The Eye or The Mouth prevent you from scoring any points if you play an unauthorized hand)
  • Lose the run if you don’t have a certain number of cards of a specific rank when you reach the final ante
sullen beacon
#

ooh i was actually working on that second one already lol

#

i'll see what i can do about the others :D

pseudo loom
#

I’ll be looking forward to it.

pseudo loom
#

Here are a few more:

  • First shop will have a random Joker from a specific list
  • Ban rerolls in shop
sullen beacon
#

ooh banning rerolls is a good one

sullen beacon
# sullen beacon # v1.2.0 ## Sticker Singular - Jokers with this sticker cannot be copied by An...

v1.2.1

its 3am i dont want to type patch notes out again go read them on github
(tl;dr: hand banning, shop reroll disabling and forcing jokers in shop)

Github: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.2.1

GitHub

I return from the depths!
Forced Jokers

{id = "forced_joker", value = (display), card = x} - The first Joker in the Shop is the Joker with the key x. (i.e. for the default Joker card, x ...

pseudo loom
#

🥳

sullen beacon
pseudo loom
#

A fun one that could combo well with forced_joker_pool would be:

  • Lose the run if you don't have a specified Joker when you reach the final ante
pseudo loom
#

I noticed a small bug with the hand ban. It tells you the hand won't score even if the cards are flipped. I don't know if you can fix it.

sullen beacon
#

i mean i assume that would happen if you had a banned hand and flipped cards otherwise, but you cant play it anyway lol

#

ill have a look

pseudo loom
#

It's not a big problem. But it allows you to guess what the flipped cards are.

sullen beacon
#

v1.2.21

#

oopsies

jovial cloud
#

Hello, got this crash when using Challenger Deep alongside Bunco + Talisman upon entering the first shop.

Not a biggie for me, just wanted to notify. I noticed Bunco was patched to be compatible with Talisman recently and they are working fine for me by themselves, so I'm guessing it's definitely coming from here.

sullen beacon
#

yeah, i've had that issue with talisman and challenger deep

#

i'll take a look

#

i think it has to do with Talisman patching over the same area

sullen beacon
#

ok yeah they patch the exact same line i was trying to patch

sullen beacon
#

there is another (disabling shop vouchers just doesnt work for some reason)

sullen beacon
#

v1.2.3

Hello! More fixes and a new rule.

chaos_engine_skip

A new version of chaos engine that uses the same rules as chaos_engine and chaos_engine_all, but only adds a chaos rule when a blind is skipped.

Bug fix - Talisman Compatibility

  • Previous iterations of Challenger Deep have had issues with no_vouchers and disable_rerolls causing incompatibility with Talisman. This has been fixed in v1.2.3.

If you find a bug or would like to suggest a rule, please raise an issue on the GitHub page or send a message here.

GitHub: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.2.3

GitHub

Hello! More fixes and a new rule.
chaos_engine_skip
A new version of chaos engine that uses the same rules as chaos_engine and chaos_engine_all, but only adds a chaos rule when a blind is skipped.
...

pseudo loom
#

So, I'm testing the minus_jokers_per_dollar rule. While the idea is fun, I find it annoying that I can't buy Jokers (because I don't have space) even if the price of the Joker would bring me down enough to get a joker slot to place that Joker in.

sullen beacon
#

v1.2.4

More bugfixes, and a new rule! Same as last time.

color

Makes your challenge a different colour in the list!
This is an {id, value} rule where value is the name of a colour in the game. For example, 'RED' for G.C.RED.

Talisman Fixes

minus_jokers_per_dollar and jokers_per_dollar were causing crashes with Talisman, and money_total_scaling (but only sometimes.) This should be fixed!

Once again, if you find any issues please contact me either through an Issue on Github or a Discord message!

GitHub: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.2.4

GitHub

More bugfixes, and a new rule! Same as last time.
color
Makes your challenge a different colour in the list!
This is an {id, value} rule where value is the name of a colour in the game. For example...

sullen beacon
#

-# PLEASE FOR THE LOVE OF JIMBO USE SECOND_BOSS IT TOOK SO LONG TO MAKE

pseudo loom
#

I'll see what I can come up with.

glossy shard
#

I have most of an idea, but if we're facing two boss blinds per ante, how do we check which one is currently active? i have a thing i only want to trigger against the second boss

sullen beacon
#

blind:get_type() shouldn’t return as “boss” for the first blind, i plan on getting something more solid implemented though

#

i dont remember exactly what i did but i use something in end_round.toml

#

G.GAME.blind:get_type() == 'Boss' and G.GAME.round_resets.blind ~= G.P_BLINDS[G.GAME.last_chdp_blind]

ok tomorrow im gonna change this

glossy shard
#

... and there's a bug in the two-boss rule (the first boss of ante 8 counts as a win)

#
            if G.GAME.round_resets.ante == G.GAME.win_ante and G.GAME.blind:get_type() == 'Boss' then
                game_won = true
                G.GAME.won = true
            end

this is the offending vanilla code
i guess you could just patch in the same G.GAME.round_resets.blind ~= G.P_BLINDS[G.GAME.last_chdp_blind] as i'm using for my echo joker

sullen beacon
#

nice catch, i’ll fix this as soon as i can

jaunty moss
#

this is huge
although I can't seem to set the mod as a dependency?

#

there's a chance it's because the mod name has a space in it

sullen beacon
#

i wouldn't use it as a dependency, if your mod has other content you can check for challenger deep's presence before defining any challenges

jaunty moss
#

true

#

that didn't work either 😭

sullen beacon
#

try using the id (ChDp)?

jaunty moss
#

I tried that with the dependencies, but I'll give it a go

#

that worked 👍🏿

#

besides from all that, I have a feature request: can there be a whitelist for hands, as an alternative of a blacklist? (disable_hand)
if you only allow one or two hands, the challenge rules get a little cluttered

sullen beacon
#

i'll take a look

glossy shard
#

see i just did the dependency thing like this

if (SMODS.Mods["ChDp"] or {}).can_load then
    SMODS.load_file('challenge/challenges.lua')()
    SMODS.load_file('jokers/theecho.lua')()
end
#

but my mod has more things other than just challenges so i wouldn't want the whole thing to be dependent on it

jaunty moss
#

yeah the mod I'm making is just challenges

sullen beacon
sullen beacon
#

update i fixeded it

sullen beacon
#

v1.3.1

Hello! An update to fix a couple of bugs regarding second_boss.

  • The button to enter the Blind created by the Rule should now change accordingly.
  • G.GAME.last_blind.boss should return false after the extra Boss Blind.
  • G.GAME.blind:get_type() should return 'ChDp_Boss' during the extra Boss Blind.
    • This fixes the issue of the game finishing on the extra Boss Blind rather than on the FINAL Boss Blind.

If you find any issues, please post them here or push them as Issues on the Github.

GitHub: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.3.1

GitHub

Hello! An update to fix a couple of bugs regarding second_boss.

The button to enter the Blind created by the Rule should now change accordingly.
G.GAME.last_blind.boss should return false after th...

#

where's my embed github

#

anyway time to work on the hand whitelist!!

glossy shard
#

The button to enter the Blind created by the Rule should now change accordingly.

Yeah I don't think that part worked, trying to start my challenge now instacrashes:

Oops! The game crashed:
functions/misc_functions.lua:1831: attempt to index local 'args' (a nil value)

Additional Context:
Balatro Version: 1.0.1o-FULL
Modded Version: 1.0.0~BETA-0401a-STEAMODDED
LÖVE Version: 11.5.0
Lovely Version: 0.7.1
Platform: Windows
Steamodded Mods:
    1: Challenger Deep by Opal [ID: ChDp, Priority: 10, Version: 1.3.1, Uses Lovely]
    2: Minty's Silly Little Mod by wingedcatgirl [ID: MintysSillyMod, Priority: 35, Version: 0.5.1, Uses Lovely]
    3: DebugPlus by WilsontheWolf [ID: DebugPlus, Version: 1.3.0, Uses Lovely]
Lovely Mods:

Stack Traceback
===============
(3) LÖVE metamethod at file 'boot.lua:352'
Local variables:
 errhand = Lua function '(LÖVE Function)' (defined at line 550 of chunk [lovely debugplus.console "console.lua"])
 handler = Lua function '(LÖVE Function)' (defined at line 550 of chunk [lovely debugplus.console "console.lua"])
(4) Lua global 'localize' at file 'functions/misc_functions.lua:1831'
Local variables:
 args = nil
 misc_cat = string: "blind_states"
 loc_target = nil
 ret_string = nil
 (*temporary) = string: "Hover"
 (*temporary) = table: 0x04a7d238  {y:9.3333333333333, x:11.457222222222}
 (*temporary) = table: 0x05f1bc88  {y:5.05, x:8.5333333333333}
 (*temporary) = table: 0x11969b20  {y:8.6333333333333, x:9.9905555555556}
 (*temporary) = number: 8.63333
 (*temporary) = number: 0.7
 (*temporary) = number: 1
 (*temporary) = number: 1
 (*temporary) = nil
 (*temporary) = table: 0x04d5d038  {x:10, w:0, y:5.75, h:0, scale:1, r:0}
 (*temporary) = table: 0x05e1b700  {y:9.3337003110317, x:11.456849295175}
 (*temporary) = table: 0x05e1d3f0  {y:5.0502557859864, x:8.5331233025637}
 (*temporary) = table: 0x05e1d418  {}
 (*temporary) = number: 0
 (*temporary) = number: 11.4568
 (*temporary) = number: 10
 (*temporary) = number: 0
 (*temporary) = nil
 (*temporary) = number: 1
 (*temporary) = number: 4.85
 (*temporary) = number: 2.74
 (*temporary) = table: 0x05e70ad8  {click_offset:table: 0x05e70ba0, children:table: 0x05e70b00, parent:table: 0x05e70748, T:table: 0x05e85280, offset:table: 0x05e85f08, role:table: 0x05f1b378 (more...)}
 (*temporary) = number: 2.24294e-288
 (*temporary) = table: 0x05e70ad8  {click_offset:table: 0x05e70ba0, children:table: 0x05e70b00, parent:table: 0x05e70748, T:table: 0x05e85280, offset:table: 0x05e85f08, role:table: 0x05f1b378 (more...)}
 (*temporary) = nil
 (*temporary) = number: 1
 (*temporary) = number: 4.85
 (*temporary) = string: "attempt to index local 'args' (a nil value)"
(5) Lua upvalue 'gameUpdateRef' at file 'game.lua:2701'
Local variables:
 self = table: 0x0432bf08  {F_GUIDE:false, F_CRASH_REPORTS:false, F_QUIT_BUTTON:true, HUD_tags:table: 0x05e6e328, F_ENGLISH_ONLY:false, viewed_stake:1, HUD:table: 0x04d0a038 (more...)}
 dt = number: 0
 (*temporary) = table: 0x04da7008  {Small:Select, Boss:, Big:Upcoming}
(6) Lua method 'update' at Steamodded file 'src/ui.lua:84' 
Local variables:
 self = table: 0x0432bf08  {F_GUIDE:false, F_CRASH_REPORTS:false, F_QUIT_BUTTON:true, HUD_tags:table: 0x05e6e328, F_ENGLISH_ONLY:false, viewed_stake:1, HUD:table: 0x04d0a038 (more...)}
 dt = number: 0.0166821
(7) Lua field 'update' at file 'main.lua:999'
Local variables:
 dt = number: 0.0166821
(8) Lua function '?' at file 'main.lua:938' (best guess)
(9) global C function 'xpcall'
(10) LÖVE function at file 'boot.lua:377' (best guess)
Local variables:
 func = Lua function '?' (defined at line 909 of chunk main.lua)
 inerror = boolean: true
 deferErrhand = Lua function '(LÖVE Function)' (defined at line 348 of chunk [love "boot.lua"])
 earlyinit = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
sullen beacon
#

really hoping i didnt accidentally fiddle with normal runs

glossy shard
#

it doesn't seem to be happening on any other challenge, just the one i made with two bosses
(i haven't seen if anyone else has made a two-boss challenge so i can't check if it's broken for them to)

sullen beacon
#

i have a feeling i broke second_boss by implementing something and i havent noticed because ive been using second_boss_ante

#

yep

glossy shard
#

skimming new_round() it kinda looks like G.GAME.round_resets.blind_states.ChDp_Boss never gets set initially? unless that's elsewhere and/or i'm missing something about game flow

sullen beacon
#

yep found it

#

G.GAME.round_resets.blind_states.ChDp_Boss just isn't set at the start of the game when the 'second_boss' modifier is implemented

#

v1.3.2

SURPRISE!!! I'm not done for tonight! Another second_boss fix that slipped through, and a new rule.

second_boss fix

second_boss was not being applied correctly in Game:start_run(args). This has been fixed!

{id = 'whitelist_hand', value = (display), hand = x}

This rule allows you to ban every hand BUT those listed as whitelisted.

(display) is the display name you would like to show players, x is the name of the hand you would like to not ban.

As an example, to ban flushes you would put {id = 'whitelist_hand', value = 'Flush', hand = 'Flush'} as your rule.
Also, {id = 'whitelist_info'} tells users that hands that are not whitelisted are disallowed.

Any issues? Please report them here or on the GitHub repository.

GitHub: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.3.2

GitHub

SURPRISE!!! I'm not done for tonight! Another second_boss fix that slipped through, and a new rule.
second_boss fix
second_boss was not being applied correctly in Game:start_run(args). This has...

#

There's your second_boss fix, and whitelist_hands

glossy shard
#

i think you accidentally blacklisted every hand ever

#

it's even leaking outside of challenge mode

sullen beacon
#

WHOOPSIES

glossy shard
#
No Balatro Allowed
sullen beacon
#

i'm very accustomed to challenges from developing this mod

#

which means i get very silly mistakes like this

#

if ive managed to push 3 broken updates within 24 hours i will break something

#

GUESS WHO'S DONE IT AGAIN

#

i would like to apologise

#

ok THIS is the final one

sullen beacon
#

-# please tell me this one works

glossy shard
#

seems to be functioning correctly now

sullen beacon
#

the whitelist thing was ironically what broke stuff (three times)

#

it works now though!!

jaunty moss
#

massive

#

thanks for the addition

sullen beacon
#

np! :D

jaunty moss
#

very nice looking as well

pseudo loom
#

Uhm... This challenge was working fine before but now, when I click Cash Out, the game crashes. 🤔

glossy shard
#

looks like they forgot to account for talisman not being active
paste this into your challengerdeep.lua

to_big = to_big or function(x)
    return x
end

to_number = to_number or function(x)
    return x
end
glossy shard
#

something connects incorrectly with Cryptid also active
beating the first boss on a two-boss challenge resets the blinds without upping the ante

sullen beacon
#

i’ve been out all day, i’ll fix stuff in a bit

sullen beacon
glossy shard
#

trying to play a disallowed hand against a boss returns the boss text
fixing this involves Blind:get_loc_debuff_text()

sullen beacon
#

its like 3am here so im gonna sleep but ill get on this tomorrow, i was semi-aware already though

glossy shard
#

have a good sleep

#

for reference this is how i did it for my cube joker

local forbidden = false
local debuff_hand_ref = Blind.debuff_hand

function Blind:debuff_hand(cards, hand, handname, check)
    if next(SMODS.find_card('j_minty_cube')) then
        if #cards ~= 4 then
            forbidden = true
            return true
        end
        forbidden = false
    end
    return debuff_hand_ref(self, cards, hand, handname, check)
end

local get_loc_debuff_textref = Blind.get_loc_debuff_text
function Blind:get_loc_debuff_text()
    if forbidden then
        return localize("k_cube")
    end
    return get_loc_debuff_textref(self)
end
opaque stump
glossy shard
#

currently it doesn't
i don't really have an interaction between the two, though i've been meaning to at least make it so the psychic can't appear if you have cube joker

opaque stump
#

make sure to handle getting cube joker if The Psychic has already been chosen for this ante

glossy shard
#

i feel like if you pick up a "must play exactly 4 cards" joker with a "must play exactly 5 cards" boss blind upcoming, that's perhaps not my fault :v
though i can at least make the message accurate

glossy shard
#

{id = 'whitelist_info'} seems to have stopped existing at some point
also i'm not sure if whitelisting modded hands works?

opaque stump
sullen beacon
#

modded hands should work if you use their key for hand

sullen beacon
glossy shard
opaque stump
#

may make a pr to improve this (i do know how to patch them)

sullen beacon
#

i could literally list off every line i changed if youd like

#

you could do it in 2 patches

opaque stump
#

predict_next_ante could be done in a hook

sullen beacon
#

that is true

opaque stump
#

an issue i see with the current implementation is that there's a padding element missing between boss 1 and boss 2

sullen beacon
sullen beacon
#
GitHub

Hello! Compat with Next Ante Preview and other fixes!
Next Ante Preview compat
Currently, Challenger Deep rewrites predict_next_ante() and create_ante_preview() to accommodate for second_boss rules...

glossy shard
#

okay, whitelisting straight spectra properly just isn't working because the challenge definition loads before the hands do so when it tries to compare their order they don't exist yet
it is not obvious to me how to solve this

sullen beacon
#

are you using the bunco straight spectrum or a different mod’s?

glossy shard
#

i'm using a function that finds all of them and returns the one with lowest order

#

which if bunco is active is bunco's

sullen beacon
#

im wondering if its a priority issue or something

glossy shard
#

not a mod priority issue
the function works as intended if evaluated during the game, but it's returning nil during challenge definition

#
INFO - [G] > eval G.GAME.challenge_index.rules 
INFO - [G] < Table:
custom: Table:
  1: Table:
    id: whitelist_hand
    hand: Straight Flush
    value: Straight Flush

  2: Table:
    id: whitelist_hand
    value: Straight Spectrum

  3: Table:
    id: whitelist_info
sullen beacon
#

appears to work for me?

#

i used

    loc_txt = 'Prism',
    key = 'prism_1',
    rules = {
        custom = {
            {id = 'whitelist_hand', value = 'Straight Spectrum', hand = 'bunc_Straight Spectrum'}
    },
        modifiers = {
            {id = 'hands', value = 70000},
            {id = 'discards', value = 70000}
        },
    },
    jokers = {
    },
    restrictions = {
        banned_cards = {},
        banned_tags = {},
        banned_other = {}
    },
}```
glossy shard
#

i mean
you're defining the key directly, which is not the issue i have

#
SMODS.Challenge({
    key = "backalley",
    rules = {
        custom = {
            { id = "whitelist_hand", value = "Straight Flush", hand = "Straight Flush"},
            { id = "whitelist_hand", value = "Straight Spectrum", hand = MINTY.getSpecKey("Straight Spectrum")}, --The problem lives here
            { id = "whitelist_info" },
        },
    },
    jokers = {
        { id = "j_four_fingers", eternal = true, edition = "negative" },
        { id = "j_shortcut", eternal = true, edition = "negative" },
        { id = "j_smeared", eternal = true, edition = "negative" },
    }
})
#

and checking with debugplus,

INFO - [G] > eval MINTY.getSpecKey("Straight Spectrum") 
INFO - [G] < bunc_Straight Spectrum 
sullen beacon
#

i may have found a convoluted workaround

glossy shard
#

hooray, convoluted workarounds

sullen beacon
#

working on it, it might work

opaque stump
#

for next ante preview, did you make sure that the preview only appears after the second boss?

sullen beacon
#

i'm fairly sure

opaque stump
#

also remember to hide tags for the no skipping rule

sullen beacon
opaque stump
#

btw to patch other mods specify the file as =[SMODS ModId "file_name.lua"]

sullen beacon
# glossy shard hooray, convoluted workarounds

SMODS.Challenge{
    loc_txt = 'Prism',
    key = 'prism_1',
    rules = {
        custom = {
            a,
            {id = 'whitelist_info'}
    },
        modifiers = {
            {id = 'hands', value = 70000},
            {id = 'discards', value = 70000}
        },
    },
    jokers = {
    },
    restrictions = {
        banned_cards = {},
        banned_tags = {},
        banned_other = {}
    },
}```

this seems to work, you could check for each mod and then define a rule for that mod
glossy shard
#
local wlbuncspec = next(SMODS.find_mod('Bunco')) and {id = 'whitelist_hand', value = 'Straight Spectrum', hand = 'bunc_Straight Spectrum'} or nil
local wlpapspec = next(SMODS.find_mod('paperback')) and {id = 'whitelist_hand', value = 'Straight Spectrum', hand = 'paperback_Straight Spectrum'} or nil
local wlspecspec = next(SMODS.find_mod('SpectrumFramework')) and {id = 'whitelist_hand', value = 'Straight Spectrum', hand = 'spectrum_Straight Spectrum'} or nil
local wlsixspec = next(SMODS.find_mod('SixSuits')) and {id = 'whitelist_hand', value = 'Straight Spectrum', hand = 'six_Straight Spectrum'} or nil
local wlspec = wlbuncspec or wlpapspec or wlspecspec or wlsixspec or nil

SMODS.Challenge({
    key = "backalley",
    rules = {
        custom = {
            { id = "whitelist_hand", value = "Straight Flush", hand = "Straight Flush"},
            wlspec,
            { id = "whitelist_info" },
        },
    },
    jokers = {
        { id = "j_four_fingers", eternal = true, edition = "negative" },
        { id = "j_shortcut", eternal = true, edition = "negative" },
        { id = "j_smeared", eternal = true, edition = "negative" },
    }
})

This does seem to work as intended toot
a shame that we have to hard code which mods use spectra but i'm sure we'll think of a solution eventually

sullen beacon
#

🥳

sullen beacon
opaque stump
#

where is ChallengerDeepExamples?

opaque stump
#

also i found rules for disabling small and big blinds entirely

#

gotta throw that into my pr too

#

second boss rule should explicitly state that second bosses have higher than normal scoring requirements

glossy shard
#

uh oh, something broke again

opaque stump
#

needs testing

sullen beacon
opaque stump
#

is that supposed to be in the challenger deep repo or a separate repo?

sullen beacon
#

it's supposed to be packaged in the same repo as a different .zip file

#

i've been kinda remaking it as a new one though

opaque stump
sullen beacon
#

i dont think challenger deep's examples would qualify for it, as it would require challenger deep

#

also i merged your pr

opaque stump
#

i mean that as an example of another mod-thing having a separate example repo

opaque stump
sullen beacon
#

-# oops

#

i'll test it now

opaque stump
#

rules that should be tested:
double bosses
no skipping
small blind/big blind disabled

sullen beacon
#
[[patches]]
[patches.pattern]
target = '=[SMODS AntePreview "main.lua]'
pattern = 'for _, choice in ipairs({ "Small", "Big", "Boss" }) do'
position = "at"
match_indent = true
payload = 'for _, choice in ipairs({ "Small", "Big", "ChDp_Boss", "Boss" }) do'

won't this show chdp_boss every time?

opaque stump
#

the rest of the function filters nonexistent entries

sullen beacon
#

ohhh

opaque stump
#

the next line is

if prediction[choice] then
#

if you check the docs, nulling these keys is explicitly supported

sullen beacon
#

checking out second_boss right now

opaque stump
#

hm?

sullen beacon
#

the first boss blind does not appear to exist

#

i had a version i was working on earlier that had all patches for NAP compat, but im still gonna use stuff from your PR

opaque stump
#

on this one if you go to the next ante what do you see?

sullen beacon
#

(ignore the jokerdisplay)

opaque stump
#

thats really weird

sullen beacon
#

ok so i found the issue in your patches

opaque stump
#

well that'll do it

sullen beacon
#

(i couldnt get it working for a while dont take this negatively)

opaque stump
#

we all make silly mistakes sometimes

#

its part of the modding experience

sullen beacon
#

indeed!!

opaque stump
#

anyway im heading out to dinner, might be a little bit before i get there and can respond to messages

#

👋

sullen beacon
#

have a nice time! :]

opaque stump
#

im at dinner now

#

did you get the thing to work?

sullen beacon
#

got completely distracted lmao, ill keep working on it

#

ok, im keeping the code for removing small and big blinds from the ante preview

sullen beacon
#
GitHub

Hello! Compatibility is fun. Here's some compatibility!
Aikoyori's Shenanigans Compatibility
Previously, Aikoyori's Shenanigans was not compatible with Challenger Deep - due to Hardcore...

sullen beacon
glossy shard
#

has anyone else noticed that you can't select the boss blind after the big blind in normal three-round antes anymore or just me

#

oh, you can do it if you skip the big blind

#

but if you beat the big blind the game softlocks

#

hm, and only on ante 1? very odd

#

idk what's going on but it thinks i should be facing the extra boss

sullen beacon
#

i’ll take a look today, i have no idea why it’s doing this

pseudo loom
#

I've got two new rule ideas if you're interested:

  • Every round (or ante), shuffles and pins all Jokers
  • Debuff all cards of a certain suit/rank
sullen beacon
#

was a biiit busy over the past day or so but i'll get to stuff here soon

glossy shard
#
  • blackjack rule: played cards must add up to 21 (face cards are 10, aces can be 11 or 1)
sullen beacon
#

i should probably do some balatro modding

sullen beacon
sullen beacon
sullen beacon
#

what a mysterious set of inexplicably debuffed cards

sullen beacon
#

v1.3.5

Hello! Suggested Rules today.

blackjack

{id = 'blackjack', value = X} where X is a number only allows hands with scores that add to X. Face cards count as 10s, and Aces count as either 11 or 1.

all_pinned_jokers

{id = 'all_pinned_jokers'} makes every joker Pinned. When a Joker is added to the player's Jokers, it is pushed to the leftmost Joker slot.

disable_suit and disable_rank

{id = 'disable_suit', value = (suit)} where suit is exactly as it appears in the code, e.g. 'Hearts' for Hearts, will debuff every card of that Suit.
{id = 'disable_rank', value = (rank)} does the same but for every card of a Rank - input the word for Aces to Jacks, and the number (i.e. '3') for 10s to 2s.

GitHub: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.3.5

GitHub

Hello! Suggested Rules today.
blackjack
{id = 'blackjack', value = X} where X is a number only allows hands with scores that add to X. Face cards count as 10s, and Aces count as either 11 o...

pseudo loom
#

Are you still considering the ideas I gave about a month ago? As a reminder, they were:

  • Automatically skip blinds under a certain condition (the condition could be no condition, if you own a specific card, if you used a certain number of consumables, if a poker hand is above a certain level, etc.)
  • Lose the run if you don’t have a certain number of cards of a specific rank when you reach the final ante
  • Lose the run if you don't have a specified Joker when you reach the final ante
sullen beacon
#

i should really make a list lol

pseudo loom
#

No worries. I was just wondering.

sullen beacon
#

Cryptid second_boss fix!

This will be included in tonight's update, but it has been uploaded on GitHub. If you want to fix it yourself, set priority = 0 on line 4 of blind_fun.toml to priority = -10.

pseudo loom
#

So, the disable_suit rule disables stone cards of the suit too, which I personally don't think makes sense.

glossy shard
#

yeah anything suitless should be immune

sullen beacon
#

fixed (checks if the card is a stone card now)

glossy shard
#

is it checking specifically for stone cards, or is it doing a more general check for (lack of) suit?

sullen beacon
#

currently stone cards

opaque stump
#

so wait, is there a reason to not just use is_suit?

#

if it's just checking the base suit then smeared and wilds would also be wrong

#

i assume disable_suit is mean to mimic The Goad/The Head/The Club/The Window

sullen beacon
#

the reason is i forgot about is_suit

#

update will be tomorrow!

glossy shard
#

see also is_rank

opaque stump
glossy shard
#

that's a good question, i might be confusing it with something else

pseudo loom
#

I finally released my Challenges Pack, that features challenges using some of the rules of Challenger Deep.
If you're interested, it is in the thread #1349384120756600914 .

pseudo loom
#

New rule idea:

  • Seals no longer appear
pseudo loom
#

Also, could we have an update to "forced_joker" so we can give the selected Joker a sticker, please?

#

Just had a bug with "forced_joker". Apparently, if the game decides to spawn a Joker with an edition, the rule doesn't work.

#

Also doesn't work when the game gives a modded Joker? 🤔
That's weird.

#

Oh no. I think it's because the first joker is on the second slot.

#

Okay. So I think that's what's happening. When the games decides that the first slot is not a Joker, the "forced_joker" rule doesn't work.

sullen beacon
#

i’ll take a look today (for REAL this time ive been busy all week)

sullen beacon
#

using is_suit for disable_suit also disables every joker??

trim fossil
#

fire

sullen beacon
#

im alive!!!! 🎉

sullen beacon
#

i promise you all the update exists

pseudo loom
#

One day, someday.

glossy shard
#

something here, probably related to two-boss challenges, is interfering with the superboss path in #1214097296317227028; defeating the boss-as-big blind increases ante when it shouldn't

sullen beacon
#

it's probably related to the cryptid bug

#

the same thing sorta happened there

glossy shard
#

thinking about it, chdp should probably have its own set of basic challenges showing off every rule

#

i could probably make this in like 20 minutes, copy paste time wooo

glossy shard
#

one thing i discovered while making the demo challenges is that creating an orbital tag crashes because it doesn't pick a hand to level

#

i've seen that exact problem in enough mods that it should probably be documented somewhere how to deal with it. but i don't know how myself

#

so the anaglyph rule demo doesn't use that tag for now

sullen beacon
#

HELLO IM ALIVE

#

i've been away and also ill

#

and i have exams and stuff soon but ITS COMING

sullen beacon
#

ok, disable_suit/disable_rank update:
disable_suit now checks using card:is_suit, disable_rank checks using card:get_id
this should be fine with modded suits, not sure about ranks

sullen beacon
#

development on thursday ‼️

sullen beacon
sullen beacon
#

Challenger Deep v1.3.6

Peekaboo! Development jumpscare!

Challenger Deep now has Partner cross-mod content (which is just a rule to remove Partners) and the Cryptid second_boss bug is fixed. Also, the aforementioned Challenger Examples update is mentioned yet again :3

https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.3.6

GitHub

Development
Cryptid fix
Cryptid caused the game to reset back to the Small Blind after the Boss Blind added by second_boss. This has now been fixed!
Partner Compat
This update adds compatibility fo...

#

ok time to work on the morefluff fix

sullen beacon
# glossy shard *something* here, probably related to two-boss challenges, is interfering with t...

v1.3.61

This specific version directly addresses this issue. Superboss should work as intended, as should second_boss. (Tested with both MoreFluff and Cryptid!)

https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.3.61

GitHub

Hello! Just a small patch to fix an issue with MoreFluff.
MoreFluff's SuperBoss was unintentionally increasing Ante after beating the Boss Blind found on the Big Blind with Challenger Deep inst...

heady canyon
#

If you remove partners from Partner, there will be nothing left lol

sullen beacon
#

i mean it doesnt explicitly remove them from the mod, just from being used in that challenge

heady canyon
#

But I think it’s more fun to create some of your own partners, I wish you have fun!

sullen beacon
#

-# honestly didn't realise you were THE partners person

glossy shard
#

ThinkRingo making a detrimental partner and forcing their use would be a challenge

sullen beacon
#

now that’s something

#

i could write a force_partner rule

sullen beacon
#

ok challenger deep development may actually be on hold until thursday now, so here’s a to-do list

#
  • rules to hide skill trees from grim and yggdrasil, and ban yggdrasil abilities
  • rule to ban reverie cines
  • rule to ban seals
  • force_partner
#

anyone have any suggestions?

glossy shard
#

i forget, do we have rules to ban particular suits or ranks so they can't appear at all?

sullen beacon
#

not so they can’t appear, although i’ll probably do that sometime

#

i should also do card enhancements probably

sullen beacon
#

ooh i can also add unblind compat too

sullen beacon
#

got hungry

#

started eating yggdrasil loot

sullen beacon
#

v1.4.0

Development! (I have a Computer Science exam tomorrow)

Yggdrasil has new compat, including like 5 rules to control Skills, Loot and XP gained in your challenge. Bakery, Grim and Partner all get compatibility too, plus a healthy serving of bug fixes.

Read the full release notes here: https://github.com/OOkayOak/Challenger-Deep/releases/tag/v1.4.0

GitHub

Development??
Yggdrasil compatibility
Some of the newer rules have pretty long-winded names, as you're about to see. But, Yggdrasil has compat!!

{id = 'chdp_xp_mult_yggdrasil', value =...

sullen beacon
#

Grim stuff coming soon

elfin lintel
#

do you have a no fun challenge

sullen beacon
#

not yet

sullen beacon
#

development today i promise

lofty sonnet
#

this mods pretty cool im excited to see where it goes

sullen beacon
#

the spectacular nostalgia

glossy shard
#

five of them

sullen beacon
#

nefarious activities ongoing

sullen beacon
#

super duper nefarious poll

#

should the new mod for actual content stuff be called opaline or shiny rock?

#

actually Opalstuff

sullen beacon
#

guess what

sullen beacon
#

also content mod out NOW

sullen beacon
#

hi content mod had update

#

also challenger deep update tomorrow

sullen beacon
#

it is tomorrow

#

watch this space....

#

500 jokers

#

cryptid said no 😢

sullen beacon
#

the license is reeeeeeal

olive pelican
# sullen beacon 500 jokers

Is this is in the mod?
If not, I can ask another mod creator to do it and he definitely will (I can say it's because of 500 Cigarettes and he will be very much down to do it)

sullen beacon
#

i think it is

#

i forgor

olive pelican
#

Ah, okay.
Lemme check rq

#

(I use this mod lol)

sullen beacon
#

yes

#

{id = 'random_jokers', value = X} will give you X random jokers

olive pelican
#

No I meant is the 500 Jokers challenge in this mod/Challenger Examples?

sullen beacon
#

oh, nope :P

#

it could crash though, be careful lol

olive pelican
#

Okay time to get it added

olive pelican
sullen beacon
#

no, like

#

i tried it and it just closed on me lmao

olive pelican
#

Sounds about right

#

500 is a lot

sullen beacon
#

50 seems to be fine though

olive pelican
#

Ooh nice

olive pelican
#

@sullen beacon I really like this mod and I like to make Challenges with it. I was wondering if you could also add the challenge stuff that is there by default, because I don't understand how that stuff works, and I find that this mod makes stuff really easy to do.

sullen beacon
#

you mean like a template or something?

olive pelican
#

Is there a way to set specific Challenges to require certain mods?

sullen beacon
#

i'll probably have to look for them but i assume there are more

sullen beacon
#

challenger deep...

glossy shard
#

deeper challenge

sullen beacon
#

i should make more challenger deep rules

lofty sonnet
#

cant wait for the challenger deep mod called Too Many Challenges

sullen beacon
#

ok challenger deep "update"

#
  • mod priority is now -10,000 (this shouldn't affect anything but it might)
  • chaos engine setup is now in a function (CHDP.setup_chaos_run())
  • chaos engine stuff can now happen outside of challenges (i think)
#

this is on the main branch but i can put up a release if people want

sullen beacon
#

challenges get an apply function soon... challenger deep might be killed

glossy shard
#

i don't think i could use apply to add extra bosses
so you've got that going for you

sullen beacon
#

NEW SMODS IS NOW

#

ish

sullen beacon
#

maybe challenger deep deserves a rewrite one day

grave vector
#

May I ask something else? How do I ban certain boss blinds from showing up in a round?

#

Or more actually, ban them from showing up at all?

#

Nevermind, figured it out

glossy shard
#

noticed a bug with unlock conditions, put in a pr about it
completely overriding G.UIDEF.challenge_list_page feels less than ideal, since it will always stomp anything that gets patched into there
but i don't see an elegant way to patch it. tbh

#

not without using at patches, anyway

sullen beacon
#

i know what i want to do today, ferb

sullen beacon
#

ok so

#

challenger deep rewrite thing

dull birch
#

I really like evil library

sullen beacon
# sullen beacon
poll_question_text

what do i call the rewrite

victor_answer_votes

2

total_votes

4

victor_answer_id

2

victor_answer_text

Evil Library

hybrid wadi
#

how do i ban standard packs?

#

nevermind figured it out :)

sullen beacon
#

the challenger deep rewrite is happening and it's probably going to be called challenger deep again

#

so far, the rewrite has 10 rules written (condensed from 14 rules from the original challenger deep)