-
Notifications
You must be signed in to change notification settings - Fork 146
SMODS.Booster
Stephen Owen edited this page Jun 20, 2025
·
6 revisions
Class prefix: p
-
Required parameters:
-
key
, -
loc_txt
or localization entry (reference)-
loc_txt
can contain an additionalgroup_name
string. This is the bottom text while on the pack opening screen. - With localization files, this text should be stored in
misc.dictionary[group_key or 'k_booster_group_'..key]
-
-
-
Optional parameters (defaults):
-
atlas = 'Booster', pos = { x = 0, y = 0 }
(reference) -
config, discovered = false, no_collection, prefix_config, dependencies, display_size, pixel_size
(reference)- The default
config
table is{ extra = 3, choose = 1 }
;extra
is the amount of cards in the pack,choose
is the amount of choices. - Note:
unlocked
on boosters is currently unsupported.
- The default
-
pools
: List of keys to ObjectTypes this center should be injected into- Expects a list of keys like this:
{ ["Foo"] = true, ["Bar"] = true, }
-
group_key
: Key to the group name (see above) of this booster. Useful when multiple booster packs share the same group name. -
cost = 4
, -
weight = 1
: Determines how freqently the pack appears in the shop. -
draw_hand = false
: If this istrue
, draw playing cards to hand when this pack is opened. -
kind
: Used for grouping packs together. For example, this can be used inget_pack()
to generate a booster pack of a given type. -
select_card
: Set to string of card area,consumeables
, to save cards from the pack instead of using them.
-
-
loc_vars, generate_ui
(reference) -
create_card(self, card, i) -> table|Card
- Creates the cards inside of the booster pack.
card
is the booster pack card,i
is the position of the card to be generated. If the returned table is not aCard
, it is passed intoSMODS.create_card
. - Example 1, manual card creation:
-- to create a booster pack of standard cards create_card = function(self, card) --function create_playing_card(card_init, area, skip_materialize, silent, colours) local newCard = create_playing_card(nil, G.pack_cards, true, true, nil) return getCard end,
- Example 2, return passed into
SMODS.create_card
:
-- to create a booster pack of foil jokers create_card = function(self, card) return {set = "Joker", area = G.pack_cards, skip_materialize = true, soulable = true, key_append = "yourModPrefix", edition = "e_foil"} end,
- Creates the cards inside of the booster pack.
-
update_pack(self, dt)
- Handles booster pack UI when opened.
-
ease_background_colour(self)
- Changes background colour.
-
particles(self)
- Handles particle effects.
-
create_UIBox(self) -> table
- Returns the booster's UIBox.
-
set_ability(self, card, initial, delay_sprites)
- Set up initial ability values or manipulate sprites in an advanced way.
-
in_pool(self, args) -> bool, { allow_duplicates = bool }
- Define custom logic for when a card is allowed to spawn. A card can spawn if
in_pool
returns true and all other checks are met. -
allow_duplicates
allows this card to spawn when one already exists, even without Showman. - When called from
generate_card_ui
, the_append
key is passed asargs.source
.
- Define custom logic for when a card is allowed to spawn. A card can spawn if
-
update(self, card, dt)
- For actions that happen every frame.
-
set_sprites(self, card, front)
- For advanced sprite manipulation that happens when a card is created or loaded.
-
load(self, card, card_table, other_card)
- For modifications to sprites or the card itself when a run is reloaded.
-
set_badges(self, card, badges)
- Add additional badges, leaving existing badges intact. This function doesn't return; add badges by appending to
badges
. - Avoid overwriting existing elements. It will cause text to appear on the top left corner of your screen instead.
- Function for creating badges:
create_badge(_string, _badge_col, _text_col, scaling)
-
_string
: Text displayed on the badge. -
_badge_col = G.C.GREEN
: Background colour. -
_text_col = G.C.WHITE
: Text colour. -
_scaling = 1
: Relative size of the badge.
-
- Example:
{ set_badges = function(self, card, badges) badges[#badges+1] = create_badge(localize('k_your_string'), G.C.RED, G.C.BLACK, 1.2 ) end, }
- Add additional badges, leaving existing badges intact. This function doesn't return; add badges by appending to
-
set_card_type_badge(self, card, badges)
- Same as
set_badges
, but bypasses creation of the card type / rarity badge, allowing you to replace it with a custom one.
- Same as
-
draw(self, card, layer)
- Draws the sprite and shader of the card.
-
SMODS.Booster:take_ownership_by_kind(kind, obj, silent)
- Finds all booster packs with matching
kind
and callsSMODS.Booster:take_ownership()
for each one with argumentsobj, silent
passed through.
- Finds all booster packs with matching
Game Objects
- API Documentation
- SMODS.Achievement
- SMODS.Atlas
- SMODS.Blind
- SMODS.Center
- SMODS.Challenge
- SMODS.DeckSkin
- SMODS.DrawStep
- SMODS.Gradient
- SMODS.https
- SMODS.Keybind
- SMODS.Language
- SMODS.ObjectType
- SMODS.PokerHand
- SMODS.Rank and SMODS.Suit
- SMODS.Rarity
- SMODS.Seal
- SMODS.Sound
- SMODS.Stake
- SMODS.Sticker
- SMODS.Tag
Guides
- Your First Mod
- Mod Metadata
- Calculate Functions
- Perma-bonuses
- Logging
- Event Manager
- Localization
- Text Styling
- Mod functions
- UI Structure
- Utility Functions
Found an issue, or want to add something? Submit a PR to the Wiki repo.