The NepDoc

Original Author: xorhash

This document aims to describe some of the more intricate mechanics of the NepNepBot on Twitch and the Waifu TCG in general. It takes and enriches the documentation available via !help.

If you are new to the TCG, you may want to first read and work through the Quickstart Guide.

Worry not if you have trouble following everything in this text the first time. There are a number of details that only make sense once you have a general grasp the entire game. However, please do read this document carefully. No sentence is redundant.

The paragraph numbers on the left are clickable and points to a permanent link to the respective paragraph. The link only becomes invalid if the respective paragraph is removed. Because of this, paragraph numbers are not in perfect order.

This document may be out of date by at most two weeks. However, an effort is made to update it in a timely manner.

Sections with a gray background are no longer active, but are kept in place to keep the links intact.

Last update

Introduction

[1] The Waifu TCG is an online trading card game (TCG). The term “waifu” has its roots in Western weeaboo culture. “Waifu” is frequently used to refer to a fictional character that the speaker has romantic feelings for. It is the English word “wife” transcribed to Japanese katakana, then that transcription is transcribed back to the Latin alphabet using the Hepburn romanization. The Waifu TCG itself has its roots in the Hyperdimension Neptunia community on the Twitch livestreaming service (henceforth just “Twitch”).

[2] In the Waifu TCG, players can collect individual cards of predefined characters. Players are given freedom to pursue their own goals. The cards cannot be used for battling as one might otherwise expect from a TCG.

Cards

[3] The Waifu TCG is played by sending commands to an automated program on the Twitch livestreaming service, a bot called NepNepBot.

[4] Players can acquire cards through a variety of means, to be described in the command documentation. Doing so usually requires points. Points are periodically given by the bot or can be acquired through various other means.

[5] Every card has a card ID (short for identifier) that is used to uniquely refer to a card. Every waifu has an ID that is used to refer to a waifu. A card is an individual copy, an instance of a waifu, so to speak. A single character may have more than one card. For example, waifu ID 1687 could refer to this card:

Rem
1687
 
mythical

[6] As can be discerned from the example card, each card contains:

  1. an image of the character,
  2. the character's name (Rem),
  3. the series the character originates from (Re:Zero),
  4. the card's rarity (Mythical),
  5. the card's waifu ID (1687),
  6. the card's promotion level (one star, i.e. one promotion),
  7. the card's ID (1007583),
  8. the card's tradability status (it can be traded),
  9. the card's creation date and time (in local time).

[7] Each card has a rarity. Rarities range from Common through God. Each rarity has an associated value. The value becomes relevant in a number of contexts; see the command documentation for details. There are also two rarities – Special and Promo – that have their own meanings. Special cards are unique in the entire game. They are not normally obtainable, but may be available through raffles and the like. Promos are not normally obtainable, but also not unique; they are usually available through redeem codes during events such as the HDN Marathon or holidays. Neither Special cards nor Promos take up space in your hand.

RarityValueMin. BountyMax. BountyCards to God
Common550100192
Uncommon107525096
Rare5010050048
Super250400100024
Ultra10001250200012
Legendary2500300060006
Mythical60007000200003
God150001600050000N/A
Promo0N/AN/AN/A
Special0N/AN/AN/A

[8] Individual cards may have a higher rarity than their base rarity. This is called promotion: When two cards with the same ID and rarity are in your hand, they will automatically be promoted to the next rarity; Mythical cards require three cards to be promoted to God. Taking a card with a Common base rarity to God rarity will thus require 8 spaces in your hand. Promotion does not affect the bounty value; the bounty value is determined by the card's base rarity. Some cards cannot be promoted: [7609][Mythical] Hatsune Miku Bridal Version from Vocaloid has been confirmed, [7576][Mythical] Gehaburn is very likely not able to be promoted. The reasons for this phenomenon are unknown, but it seems like a deliberate decision.

[9] If a card is promoted to the highest rarity (God), the !godimage command allows changing the image for it in your hand, see ¶¶ 127 et seqq. The earliest promoted God in existence gets a cosmetic benefit: It receives a golden glow and card attributes; its rarity will be shown as α God as well.

[10] Promotion causes a card to be removed and a new one to be generated in the stead of the cards used to promote, i.e. if cards 1000123 and 1001432 promote to a new card, it will get a new card ID and the creation date will be set to the date of the promotion. This only affects card creation date and legacy status, but is otherwise just a technicality.

[10a] Every card has a creation date and time (creation timestamp). The creation timestamp indicates the date and time when a card was created. A card is created either from spawning in a booster pack, from being generated due to a promotion or from a bounty being filled. Since a bounty causes the creation of a new card with a new timestamp, trading is the only way to preserve the “legacy” creation time of existing cards.

[11] Removing a card from play is called disenchanting or de for short. This term is used for cards you have in a booster or in your hand.

The hand

[12] Your hand consists of the cards you are currently holding and your currently active bounties. Players start with 7 hand spaces, but more are acquired by spending money on booster packs.

[13] Hands can be upgraded. Upgrading your hand means adding one space to your hand, allowing you to hold another card or place an additional bounty. Normally, your hand grows with buying booster packs: Every time your total spending on booster packs hits a certain threshold, your hand is automatically upgraded.

[14] The spending required for hand upgrades starts at 2000 points. Starting with space 24, the spending required is exactly 1,000,000 points since the previous upgrade.

Slot NumberSpending
82,000
97,000
1014,500
1124,500
1239,500
1359,500
1484,500
15134,500
16234,500
17434,500
18784,500
191,284,500
201,784,500
212,500,000
223,250,000
234,000,000
245,000,000
256,000,000
etc.etc. (+1,000,000 per space)

Your account

[15] Your account on the Waifu TCG is tied to your Twitch account, but not your Twitch username. It is safe to change your name on Twitch; you will keep your waifus. If you are a streamer, notify the admins of your name change because that requires special handling on their end.

Commands

[17] This section describes the commands available for use with NepNepBot. Commands can be used by either sending them as a whisper to NepNepBot or by sending them to a Twitch channel where NepNepBot resides.

[18] An “argument” or “parameter” is a second word to be sent to the bot. Here is an example command: !search Mythra. !search is the command itself, and Mythra is the first argument to the command.

[19] All commands that take an ID will normally work with waifu IDs. If a waifu ID is ambiguous (because you have more than one of it in your hand), you will have to specify the card ID instead.

Informational commands

[20] Some commands are used to obtain information about about cards. Informational commands are affected by a timeout, limiting how often you can use them. If too many of these commands are invoked within a certain timeframe, further informational commands cannot be used until the timeout reset. The timeout reset is global for all users. It seems that the timeout reset occurs every 30 or 60 minutes. It is unknown how many commands are needed to trigger the timeout.

[21] A much more generous timeout is applied for commands:

  1. in whispers,
  2. in the NepNepBot channel,
  3. if the Twitch streamer uses the commands in his or her own channel.

Finding a card by character (!search)

[22] Synopsis!search character name [from series]

[23] The !search command can be used to find a card for a certain character. Either “!search character name” or “!search character name from series” can be used. Character name and series are searched for partial matches, so that “gahar” will find “Hitagi Senjougahara”. There is no way to force a search for an exact match; add the series name if needed. Character names and series may contain diacritics (e.g. Pokémon). However, searching for “Pokemon” will find Pokémon.

[24] To find more information about a particular card, use !lookup with the ID you get from !search.

Finding a card by waifu ID (!lookup)

[25] Synopsis!lookup waifuID

[26] The !lookup command can be used to find a card for a certain waifu ID. If you only know a name, use !search instead. This command shows the following information about the card:

  1. the name of the character,
  2. the series,
  3. a link to the picture, and
  4. who currently owns the card.

Checking your hand (!checkhand)

[27] Synopsis!checkhand [verbose]

[28] !checkhand is used to check your own hand. It takes an optional argument. If no argument is given, NepNepBot will send you a link to a website that displays your hand. If an argument is given and it is the text “verbose”, NepNepBot will instead send the entire hand as a whisper. In order for NepNepBot to be able to whisper to you, you must follow NepNepBot on Twitch. This command is not affected by the timeout on informational commands.

Checking your points (!points)

[29] Synopsis!points

[30] !points is used to check the amount of points and the total amount of pudding you have. Points are given by the bot periodically, through redeem codes, disenchanting cards or through bets. Pudding are given as rewards for bets and set claims; see below. This command is not affected by the timeout on informational commands.

Checking your spendings (!packspending)

[31] Synopsis!packspending

[32] Using !packspending will show how many packs you have opened and how many points you have spent on doing so. It will also include packs that you got for free (redeem tokens or bets). This command is not affected by the timeout on informational commands.

Acquiring cards

[33] Cards can be acquired in various ways. This section describes the commands used to acquire cards.

Daily freebie (!freebie, !freewaifu)

[34] Synopsis!freebie

[35] Every 22 hours, a single free card, a free booster pack or free points can be obtained with !freebie. Cards are directly added to the hand. Boosters are opened immediately. The rewards are fixed over a 30-day period, but their order is randomized during those 30 days. The order is such that a “good” reward – as determined by the TCG administration – cannot be immediately followed by another “good” reward. However, since the rewards are subject to change at any time, a full list of the rewards is not listed here. What is known about the rewards is that:

  1. there will be no guaranteed card of Mythical rarity or above;
  2. points can be combined with any other reward;
  3. the rarity of individual cards is predetermined, meaning that the only randomness is what card of that rarity you get.

[36] If you have no hand space and get a free card, the free card is instead put into a newly created, fake booster pack. This requires no hand space, but you must not currently have a booster pack opened. Due to technical reasons regarding the way !freebie fake booster packs work, they cannot be sent to !freepacks.

[37] If you have no booster space and get a free booster pack, the free booster is instead sent to the !freepacks system.

Listing boosters (!booster list)

[38] Synopsis!booster list

[39] This command shows a list of booster packs that can be bought and the amount of points required to buy them. This list may not accurately reflect the list of boosters that can actually be bought – being listed and being buyable are two separate pieces of information in the database. A more detailed list of booster packs is, however, available in the next section.

Buying a booster (!booster buy)

[40] Synopsis!booster buy kind

[41] The !booster buy command buys a booster pack of the given kind. A booster pack contains a number of random cards. There is a pity system for boosters that ensure that cards of certain rarities are always obtainable eventually; the pity value increases roughly with packspending. A list of known booster packs follows; the ones listed on a gray background are no longer available, but are listed for historical accuracy.

KindPriceBest forMin. RarityCards
scam100(always suboptimal)Common1
standard250Common/​UncommonCommon8
jumbo625Common/​UncommonCommon20
super1000Rare/​SuperCommon (3 Rare)6
premium3000Super/​Ultra/​LegendaryRare (2 Super)5
ultimate5000Legendary/​MythicalSuper4
     
meme(N/A)Common/​UncommonCommon100
supermeme(N/A)Rare/​SuperCommon100
     
anniversary4000Super/​Ultra/​LegendaryRare (3 Super)7
blazeit420(always suboptimal)Common1
jumblazeit4200(always suboptimal)Common11
halfmeme2000Common/​UncommonCommon50
holiday1500(special)Uncommon (4 Rare)6
jumbholiday7500(special)Uncommon30
jumbultimate32000Legendary/​MythicalSuper20

[42] After buying a pack, NepNepBot will give you a link where you can select which cards to keep and which cards to disenchant. If you get a Legendary or higher, it is considered good practice not to disenchant a card you don't want. Instead, check if anybody owns the card already; you may want to give it to them if they wish to promote. You can – in addition or alternatively – give #focused-trading on the Waifu TCG Discord server a heads up that you are planning to disenchant the card and a timeframe when you will disenchant it.

[43] Make sure to mention @TCG Player when giving a heads up. This allows players to set bounties. You should give at least a couple of hours, but around 12–24 hours would be ideal.

[44] Standard and jumbo packs are the same except for the number of cards in each pack. Scam packs are heavily weighed towards cards with Common rarity, with Uncommon rarity happening occasionally; prefer using !buy Common, which costs only 25 points instead of 100 points. The odds on a scam pack are such that if it gives you a Rare card, you would have gotten a Mythical from a standard pack. Certain packs above standard and jumbo may guarantee at least one card of a certain rarity. Packs mainly change the weighing of odds for certain rarity thresholds. They may also guarantee a certain minimum card rarity.

[45] Opened booster packs expire after 28 days. If booster pack expires, the cards will be transferred to your hand automatically; the rest will be disenchanted. If there are more cards in the booster pack than there is space in your hand, only as many as can fit in your hand will be transferred, with cards of higher rarity being prioritized. If multiple cards have the same rarity, the resulting order amongst them is unpredictable.

[46] There are a number of special packs. The meme booster is added automatically into the !freepacks system if you buy a jumbo booster that ends up having a disenchant value of exactly 625 points or (during the anniversary 2019 and 2020 events) an anniversary booster of exactly 4000 points before bounties. The supermeme booster is given if you buy a standard booster and it disenchants for exactly 420 points or if you buy a jumbo booster and it disenchants for exactly 100 points (contains only Common cards); the odds of a supermeme being awarded are 1/30,000. It contains 100 cards at the odds of a super booster. A 420 points jumbo pack does not entitle to any reward; neither does an all-Common or a 625 point standard pack; the odds of a meme being awarded are around 1/1000.

[47] The holiday booster is a variant of the super booster that has slightly better odds and contained one more card. It was available during the holiday weeks of every year since 2017. The Christmas versions had Ultra rarity during the event of 2017; they were changed to what is now called Promo after the event. The holiday booster uses so-called event weightings, which makes it drop the Christmas/Winter versions of some cards more frequently. They guarantee four Rare cards; no card is below Uncommon. The jumbholiday booster is a holiday booster that just costs five times as much and contains five times as many cards as a regular holiday booster.

[48] Similarly, the jumbultimate booster was a variant of the ultimate booster, available during May 2018. It contained 20 cards at ultimate odds. Since it was available only for a limited time, it is slightly more cost-efficient than the equivalent amount of ultimate boosters: Buying a jumbultimate saved 1333 points over buying the equivalent amount in actual ultimate boosters. Megaultimates can be used to a similar effect now, though without cost savings. The halfmeme booster was a variant of the standard booster, available during late June and early-mid July 2018. It contained 50 cards at standard/jumbo booster odds. Since it was available only for a limited time, it was slightly more cost-efficient than the equivalent amount of ultimate boosters: Buying a halfmeme saved 83 points over buying the equivalent amount in actual standard/jumbo boosters.

[48a] During the anniversary event, the anniversary booster is a booster pack with 7 cards with odds that are comparable to those of a premium booster but with bias towards Legendaries in particular, costing 4000 points. The Legendary bias increases its chances to drop Promos before promotion, as normally there are Promos launched alongside the anniversary event. They have a highly boosted chance for event tokens.

[49] Furthermore, there is the freeultra booster that contains exactly 1 Ultra card. Similar packs exist for other high rarities. Those are used only internally, for example for raffles and such.

[50] The blazeit and jumblazeit boosters have the same odds as the scam pack. These boosters were removed shortly after its introduction.

[51] All packs except jumbo can be prefixed with “mega”, e.g. “megaultimate”. This buys five of the same pack and puts them in one large booster at five times the cost. For a megaultimate, that would make 20 cards for 25,000 points in one booster. Because this is implemented as opening five of the same pack, your chances of getting a free meme or supermeme pack are the same as if you were buying five jumbos/standards separately.

Free booster packs

[52] A system for free booster packs exists. Free packs do not expire. Even though they are free, they behave like normal packs of their kind. In particular, a free pack contributes to pity like a bought pack. Free packs can be obtained from:

  1. winning one of the big prizes in a bet;
  2. opening a pack with a special disenchant value as noted above;
  3. through a bot administrator, usually by winning some sort of contest ran on the Waifu TCG Discord server.

Showing free packs (!freepacks)

[53] Synopsis!freepacks

[54] The !freepacks command shows the free packs you currently have. Even though this is an informational command, it is not affected by the timeout on informational commands.

Opening a free pack (!freepacks open)

[55] Synopsis!freepacks open booster

[56] This command opens the given booster. This ends up working effectively like !booster buy booster but no points are subtracted from your account.

Bounties

[57] Bounties allow you to acquire cards you want. If the card with the given waifu ID is disenchanted, it will instead be given to the highest bounty bidder. Placing a bounty takes up a space in your hand until it is filled or cancelled. If your bounty is outbid, a whisper will be sent. Because the whisper system is notoriously unreliable, you should not rely on the whisper notification. For the purpose of bounties, promoted cards are reverted to their base rarity; use the !trade command to move a promoted card to another player instead. Automating bounties, be it through bots or any other means, is prohibited.

[58] The maximum value (“rarity cap”) is an arbitrary, usually relatively large multiple of the rarity value of the card; see the rarity table above. It is possible to push the bounty past the rarity cap in order to outbid someone else already bidding the rarity cap.

[59] Bounties cause new cards to be created; they do not preserve any attributes of the card other than the “original owner” attribute. In particular, this means that using bounties can cause cards to lose their legacy and first-god statuses.

[60] When a bounty is filled, the player disenchanting the card gets a bonus in points for filling the bounty. For the purpose of calculating that bonus, the minimum bounty value of the card is taken at its base rarity, ignoring its promotions. If the bounty exceeds the rarity cap, the bonus is a quarter of the difference between the bounty and rarity cap, plus half of the difference between the rarity cap and the minimum bounty value. If the bounts is below or matches exactly the rarity cap, the bonus is either 2 points or half of the difference between the bounty and the base value, whichever value is larger. All divisions are rounded down to the nearest integer if needed.

Setting a bounty (!bounty)

[63] Synopsis!bounty waifuID amount

[64] The amount argument specifies how many points you are willing to spend on the bounty for the card with the given waifu ID.

Cancelling a bounty (!bounty cancel)

[65] Synopsis!bounty cancel waifuID

[66] !bounty cancel is used to cancel a currently active bounty bid. If the bounty is above the maximum value, 50% of the points above the maximum value are forfeit when cancelling; everything up to and including the maximum value will be refunded.

Listing your bounties (!bounty list)

[67] Synopsis!bounty list

[68] !bounty list is used to list your currently active bounties and the associated points. No warning is shown if cancelling will lead to losing points.

Checking the bounties on a card (!bounty check)

[69] Synopsis!bounty check waifuID

[70] !bounty check is used to check the bounties and their value for the given card. It will also show how high the highest bid is so that you can adjust your own bounty if necessary. This is an informational command that is subject to the global timeout.

Buying cards (!buy)

[71] Synopsis!buy rarity

[72] !buy is used to buy a random card of the given rarity. The price is always five times the value of the rarity. Booster packs provide better value in every case unless you are looking either at a very small pool (e.g. Mythicals) or you are looking for cards with Common rarity explicitly.

Trading

Initiating a trade (!trade)

[73] Synopsis!trade player yourCardID theirCardID

[74] !trade is used to facilitate trading of cards between players, optionally including a points transfer. Trade offers are valid for 24 hours. A Promo card can only be traded for another Promo card. If trading cards of differing rarities, the owner of the card of lower rarity has to cover the price difference of the cards' rarities; the points go to the owner of the card with the higher rarity. The minimum price to pay is 50% of the difference of the values between the cards. The maximum price that can be paid is 100% of the difference of the values between the cards. No points can be attached to a trade of cards with the same rarity.

Accepting or declining a trade (!trade accept or decline)

[75] Synopsis!trade accept/decline player

[76] The other player can either use !trade accept yourname to accept the trade or !trade decline yourname to decline it.

Checking a trade (!trade check)

[77] Synopsis!trade check player

[78] !trade check is used to check whether there is a pending offer from the given player. Even though this is an informational command, it is not affected by the timeout on informational commands.

Cancelling a trade (!trade cancel)

[79] Synopsis!trade cancel player

[80] This command cancels your pending trade with the given player. Cancelling a trade that has already been accepted or declined is meaningless and does nothing.

Listing pending trades (!trade list)

[81] Synopsis!trade list

[82] This command shows your pending trades. The list includes both trades that have been requested from you as well as trades that you've requested from others.

Pudding, the secondary currency

[83] Other than points, there is a secondary currency called “pudding”. Pudding can be used to buy booster packs; 1 pudding has the purchase power of 25 points. However, pudding cannot be used for bountying cards. Unlike points, pudding expire after two months. Expiry happens on the eighth day of every month. Users with expiring pudding will be notified via whispers. This secondary currency is used as a reward for bets and set claims, both described further below.

Checking your pudding balance (!pudding)

[84] Synopsis!pudding

[85] The !pudding command shows the amount of pudding you have, namely the amount earned this month, the amount last month and the amount due for expiry. Even though this is an informational command, it is not affected by the timeout on informational commands.

Listing boosters buyable with pudding (!pudding list)

[86] Synopsis!pudding list

[87] This command shows a list of booster packs that can be bought with pudding and the amount of pudding required to buy them. Even though this is an informational command, it is not affected by the timeout on informational commands.

Buying a booster with pudding (!pudding booster / !pudding buy)

[88] Synopsis!pudding booster booster
or
!pudding buy booster

[89] This command is used to buy the given type of booster with pudding. Expiring pudding are spent first.

Buying pudding with points (!pudding topup)

[90] Synopsis!pudding topup amount

[91] This command is used to buy the given amount of pudding using points, at a rate of 25 points for 1 pudding. Pudding bought this way will expire like any other kind of pudding. This command is meant to be used to buy a small amount of pudding if you are close to a new pack. It is not possible to convert pudding back to points.

Points transfers (!sendpoints)

[92] Synopsis!sendpoints user amount reason
then
!sendpoints confirm code

[93] Points transfers are available to move points between users. A points transfer consists of two stages: setup and confirmation. To set up a trade, use the !sendpoints command followed by the user to transfer to, the amount of points and the reason. In a second step, you will be prompted by the bot to use !sendpoints confirm with a confirmation code to ensure that you really wish to transfer the points.

[94] Every transfer requires a reason; the reason can and should consist of more than one word. This restriction is there to prevent abuse of this feature. You will be charged the full amount of points as “tax” in addition to the actual amount transferred: So if you want to transfer 50,000 points, you must enter 50000 as the amount, but pay 100,000 points: 50,000 go to the recipient, 50,000 are kept as tax. Points transfers that have not been confirmed will expire after an unknown amount of time, measured internally in minutes. If 1000 points or more are successfully transferred, the recipient receives a whisper about the transaction.

[95] Please make sure you are actively aware of the rules around points transfers before trying to use them.

Event token commands

[95a] During the 2019 and 2020 anniversary events, event tokens can be obtained. This section describes the commands available to make use of them (the “token shop”).

Showing rewards (!tokenshop)

[95b] Synopsis!tokenshop

[95c] Using !tokenshop with no arguments outputs a list of all rewards available to you and their cost as well as how many tokens you have.

Showing the list of available Promos (!tokenshop listpromos)

[95d] Synopsis!tokenshop listpromos

[95e] This command gives you a link to the Promos available from the token shop. Note that not all Promos may be available. Some are excluded because their event is currently ongoing, others are excluded because they are arbitrarily available only to administrators (such as Marenthyu's [6535]).

Buying an item from the token shop (!tokenshop buy)

[95f] Synopsis!tokenshop buy ID
or
!tokenshop buy special
or
!tokenshop buy handupgrade

[95g] This command buys a certain reward. If special is specified, you buy a Special card; the details are to be filled in with the !tokenshop special commands. If handupgrade is specified, you buy a hand space upgrade, increasing your total hand spaces by 1; this upgrade does not reset your progress towards your next regular hand space or its cost, but instead is a bonus outside the regular hand space system. Each of these can only be bought once.

[95h] Otherwise, a waifu ID of a Promo must be specified that is on the list of available Promos. The cost for a Promo starts at 10 tokens and increases by another 10. Up to five Promos may be bought, capping at 50 tokens for the final Promo.

Configuring your Special card (!tokenshop special)

[95i] Synopsis!tokenshop special name name, then
!tokenshop special series series, then
!tokenshop special image URL, then
!tokenshop special confirm
These are four separate commands.

[95j] Once you have bought your Special with !tokenshop buy special, you can use these commands to configure the Special card you want. The commands can be issued in any order, but the confirm subcommand must be used last.

[95k] The “usual rules” for character selection and image choice apply. In particular, this means that you may not have an excessively lewd image, an excessively low-quality image, original characters/fursonas, male characters or novelty cards that do not depict a character at all. You may have two characters on the card. See mutatis mutandis ¶ 153 for details and technical requirements.

Tokenshop gacha (!tokenshop gacha roll)

[95l] Synopsis!tokenshop gacha roll

[95m] Any leftover tokens that you cannot or do not want to turn into the prizes mentioned above can be rolled on the tokenshop gacha. Failure to do so manually will cause the tokens to be forcibly fed into the gacha on 2020-09-17 at 00:00 (for 2019: 2019-09-17 at 00:00).

[95n] The gacha rewards are divided into five tiers. First, the tier is picked. After that, a reward is picked from the tier. When rolling the gacha with !tokengacha, you could thus get:

TierPossible Rewards
12× standard booster pack, 20 pudding, 400 points
2super booster pack, 40 pudding, 800 points
3halfmeme booster pack, 80 pudding, 1600 points, freeultra
4premium booster pack, 120 pudding, 2400 points
5ultimate booster pack, 200 pudding, 4000 points, freelegendary
6jumbultimate booster pack, 20,000 points, freemythical + 5000 points

Betting

[96] The bet system allows streamers to host betting contests for their speedruns. Betting yields a reward in pudding. Entering does not require any kind of entry fee; there is no drawback to placing a bet. The time used to check bets against is the time between !bet start and !bet end, not what the timer on the screen says. This means that an actually accurate guess may be wrong by up to several seconds. Bets with less than five participants will not be paid out; streamers will be warned about this, but may override it. The betting system is highly regulated. The full rules can be found on the Nepcord in the #rules channel. They may change without announcement; check them frequently.

[97] The final bet result may be changed by the bot administrators if it is off by more than 4 seconds from the time shown on the stream.

[98] There are two kinds of big prizes: Being accurate to 10 ms guarantees a special kind of booster pack; being accurate to 1 s guarantees a free Mythical card, not counting towards pity. The 10 ms and 1 s prizes can only be obtained if the final bet time is at least 30 minutes. Calculating payout in pudding is relatively complex; the summarized version is that relatively accurate guesses are generally rewarded, but being off by more than double the run time of the bet is punished with halving the payout.

[99] You can skip the rest of this section unless you really need to calculate bet results yourself. The calculation works as follows: First, the minimum and maximum prizes are determined. Two values are first taken from the database, betMinPrize and betMaxPrize. The values are misnomers as they do not actually reflect the true minimum and maximum prizes. betMinPrize is 10. betMaxPrize is 20. betMaxPrize is then multiplied by the number of betting players (the entries) divided by 10, plus one; if this multiplier is more than 2 (i.e. if more than ten players entered the bet), it is set to 2 instead. Then the amount of pudding is the sum of the minimum prize plus the difference between the maximum and the minimum prize multiplied by the the inverse place (entries - placement); this is then divided by the number of entries minus one; an additional division by 1.4 occurs for everybody in the “losing” half of the bet. The puding for the first place are multiplied by 1.3. Everybody's results are then multiplied by 1.5 if the bet takes place in the HDNMarathon channel and the marathon boost is applied. An additional multiplier of 1.5 is applied if the bet has run at least 30 minutes and the bet is accurate to the run time of the bet in milliseconds divided by 120; this is roughly equivalent to being accurate to 15 seconds per hour. After these modifiers, the payout is halved for guesses that are off by more than double the run time of the bet.

[100] The broadcaster is paid in pudding: The points awarded is scaled to the run length. For every hour of the run, the broadcaster is awarded 30 pudding. This is mathematically rounded to the next pudding. The payout is capped twofold:

  1. A broadcaster cannot get more than 3000 pudding per channel per calendar month, the equivalent of 100 paid-out hours.
  2. A broadcaster cannot get more than 720 pudding per bet, the equivalent of a run spanning 24 hours. If a run goes on for more than 24 hours, only the 720 pudding paid out count towards the monthly pudding cap.

Placing a bet (!bet)

[101] Synopsis!bet h:mm:ss[.ms]

[102] The time to bet on is given in hours, minutes and seconds. Milliseconds are optional. Specifying the hour field is required, even if you guess a time with 0 hours; in this case, you would have to use e.g. 0:42:09.69. Often, streamers will give a time estimate. They are not required to. If no estimate is given, try going through their old videos for some previous times. It is possible to overflow the minute and second fields, so that 0:00:69 would actually count as a bet for 0:01:09.

Hosting a bet as a streamer (!bet open/start/end)

[103] Synopsis!bet open
(wait for bets, at least 5 minutes)
!bet start
(start the run)
(finish the run)
!bet end

[104] As a streamer with NepNepBot in your channel, you can host bets. You must give people at least five minutes to enter their bets. Please refer to the betting rules on #rules in the Nepcord. The admins are informed automatically when your bet finished; they will verify and pay it out as soon as possible. Your viewers may have to wait up to 24 hours for their bet payout. It may be helpful to point that out up-front.

Cancelling a bet (!bet cancel)

[105] Synopsis!bet cancel

[106] Cancelling a bet causes the bet to be forcibly closed. It cannot be paid out. The bets will be cleared, so you cannot !bet start immediately afterwards. Use this if you want to abort a run (and possibly start a run of a different category). Please use this command with some degree of caution; cancelling bets too often may be punishable.

Resetting a bet (!bet forcereset)

[107] Synopsis!bet forcereset

[108] A forcereset resets the bet to “open” status, without clearing the bets. That way, you can re-attempt a run that started badly without everyone having to re-enter their bets. You can use forcereset three times per seven days. The seven days begin when you issue the first forcereset.

[109] To re-attempt the run, you still must use !bet start again.

Sets

[110] Sets are a mechanic that reward collecting certain sets of cards. The full list can be found at https://waifus.de/sets.

Viewing the list of sets (!sets)

[111] Synopsis!sets

[112] This command sends you the link to the full list of sets. Even though this is an informational command, it is not affected by the timeout on informational commands.

Claiming sets (!sets claim)

[113] Synopsis!sets claim

[114] This command goes through the list of sets and checks if you meet the criteria to claim any of them. A set can only be claimed by one person. Like bets, set rewards are paid in the secondary currency – pudding. Claiming a set will yield the associated pudding reward. The pudding reward will regularly be much less than the combined values of the cards; it is thus generally only worth going after a set if you find yourself pursuing many of the cards for yourself or if you happen to get a lucky booster getting you close to one. There is a cooldown of one week between claims for the same set.

[115] The first claimer gets double the normal award and is able to change the badge image with !setbadge.

Getting the set badge ID (!set checkid)

[116] Synopsis!set checkid name

[117] This command gets the ID of the set for the given name. The set ID is used for the !setbadge command (and can also be seen on your profile).

Setting the badge image (!setbadge)

[118] The !setbadge command works the same as !godimage; see ¶¶ 127 et seqq. for details, just use the !setbadge command instead.

[119] The following differences apply:

Miscellaneous commands

Tokens (!redeem)

[120] Synopsis!redeem token

[121] With !redeem, tokens (commonly called “codes”) can be used to obtain various benefits. Tokens are frequently given out on events. Redeeming a token can yield pudding, badges, booster packs and/or individual cards. In almost all cases, tokens expire. After expiration, the token can no longer be redeemed. Tokens can only be used once. Known public redeem codes are:

CodeReward
1-800-tcg-waifu1000 points
50kusers1000 points
blazinghardthe Blazed Hard badge
chopchopchopthe TIMBER badge
freescama scam booster pack
memes10 points
newcomerpack250 points and a standard booster
thesafeisleakinga jumbo booster pack
xorhashisanadminokay1337 points
yourwaifucard [1][common] Trash

Testing whispers (!whisper)

[122] Synopsis!whisper

[123] In order for whispering to work, you must follow NepNepBot on Twitch. This command sends a test whisper to ensure that whispers can, in fact, be sent.

Hand upgrade (!upgrade)

[124] Synopsis!upgrade [buy]

[125] !upgrade has two functions. If used with no arguments, it will show you how much a forced hand upgrade costs; even though this is an informational command, it is not subject to the timeout on informational commands. Additionally, if there has been any mistake calculating your hand spaces, any invocation of !upgrade will fix it.

[126] If used with the argument “buy”, it will upgrade your hand in exchange for 50% of the spending required to normally reach the next hand space threshold. Buying a hand upgrade increases your spending as if you had actually bought the equivalent value of boosters.

Disenchanting a card (!disenchant)

[127] Synopsis!disenchant ID [ID ...]
or
!de ID [ID ...]

[128] !disenchant disenchants cards. If you have multiple of the same card, this command will disenchant only as many cards as specified; that is, !de 1984 disenchants one of 1984, even if there are multiple in your hand. When disenchanting a card of Mythical rarity or above, or a promoted card, a confirmation prompt will be shown. The same applies to Promo and Special cards. There is normally no reason to disenchante a Promo or Special card; no points will be awarded and no hand space is gained. The community will likely loathe you for disenchanting a Special card.

[129] Multiple cards can be disenchanted in one go by adding each of their card IDs or waifu IDs as a separate argument. If a confirmation is required for one card, it must be added to the very end of the list.

[130] For example, if you have only one card for a given waifu (e.g. waifu ID 1984), !de 1984 will disenchant that. If you instead have 2 cards of the same ID, you will have to specify the card ID (e.g. card ID 1012123) like so: !de 1012123.

Making the bot leave your channel (!nepleave)

[131] Synopsis!nepleave

[132] The !nepleave command makes Nepnepbot leave your channel. You must have the bot in your channel to use this command. You will need the help of an admin to get the bot back. Do not use this command unless you really want to leave the community.

Waifu TCG Discord server link (!nepcord)

[133] Synopsis!nepcord

[134] !nepcord makes NepNepBot reply with a link to the Waifu TCG Discord server. If you are interested in at least semi-seriously following the game, joining and lurking there is highly recommended. Changes to the game and ongoing events are also exclusively announced through that Discord server.

Link to fix suggestion form (!fixwaifu)

[135] Synopsis!fixwaifu

[136] !fixwaifu makes NepNepBot reply with a link to a form that can be used to suggest fixes to a card. Please study the rules on the form before suggesting a fix.

[137] Issues that warrant a fix include:

Give me (!giveme)

[138] Synopsis!giveme

[139] This command just gets the reply “No.” from the bot. !giveme used to instead yield “Sorry, you are not an admin.” Originally, the command dropped a card of the requested rarity. It was used to test the drop/rarity algorithm.

Sorting your hand (!sorthand)

[140] Synopsis!sorthand ID sortnum

[141] This command allows reordering cards in your hand. Cards are normally sorted first by waifu ID, then by rarity, then by card ID, each in ascending order. The !sorthand command allows adding a factor that is considered before the IDs, the sort number. Cards are sorted in ascending order according to the sort number first, i.e. lowest is listed first. Sort numbers can be in the range of -32768 to 32767. Cards that have no sort number explicitly set will have a sort number of 32000, and the waifu IDs and rarity card IDs act as tie breakers in that case. (It's probably easier to actually fiddle around with it to understand how it works.)

[141a] You can use the “Sorthand command generator” linked on the hand page to generate the command for you using simple sequential ordering.

Resetting your hand sorting (!sorthand reset)

[142] Synopsis!sorthand reset

[143] This command undoes any changes to your hand sorting made with !sorthand. The order will go back to the regular order as if you had never used !sorthand in the first place.

Profiles

[144] Every user can have a profile. The profile is visible on the web. It contains the list of badges, a description and a favorite card.

[145] Badges can be obtained either through redeem codes or through special events. Because badges are not part of your hand, they take no hand space. The alternate reality game (ARG) is one of the major sources of badges. The following badges are known; the set badges are not listed for reasons of readability:

BadgeAwarded forUnique
2nd Year Nepiversaryredeem code (during the anniversary event of 2019)no
3rd Anniversaryredeem code (during the anniversary event of 2020)no
2018redeem code (valid for 20 min. on 2018-01-01)no
2019redeem code (“OnwardsTo2019”) (valid for one hour on 2019-01-01)no
2020redeem code (“HeyAll2020Here”) (valid for one hour on 2020-01-01)no
Beta Participantactive in the earliest days of the botno
Blazed Hardredeem code (“BlazingHard”)no
Brave New Worldautomatically awarded to players active before the July 2019 updateno
Early Supporterredeem code (valid around 2018-03-31)no
EMERGENCY REQUESTredeem code (ARG)no
Eryn's Most Wantedawarded for unknown reasonsyes (Pikadude9001)
Fixersubmitting an accepted fix for a waifu via https://waifus.de/fixesno
Glimmer of HopeBeing down in the dumpsyes (MattyPlaysSRL)
HASHIRE SORI YO KAZE NO YOU NI TSUKIMIHARA WO PADORU PADORUredeem code (“XMAS-TCG-2018”) (2018-12-24 through 2018-12-26)no
Padoru 2019-1redeem code (holiday season of 2019)no
Miku's Mercymeeting an administrator in real lifeno
NOT a Bot adminclarifying that user is not an administratoryes (xorhash)
OUR Communitymeeting any TCG player in real lifeno
Security Breachbreaking the ARG or TCG securityno
The Beeping Noiseredeem code (ARG)no
The Beginningredeem code (ARG)no
The First Goddrawing the first base God cardyes (angelic2142)
The Listenerredeem code (ARG)no
The Midway Pointredeem code (ARG)no
The second oneredeem code (ARG)no
TIMBERredeem codeno

Setting a profile description (!profile description)

[146] Synopsis!profile description new description

[147] This command sets a new description. The Twitch maximum message length sets limits to this. No form of markup (HTML, Markdown, etc.) can be used. Emoji work.

Picking a favorite card (!profile favorite)

[148] Synopsis!profile favorite ID

[149] This command sets a card as your favorite card. If you own one or more copies of the card, it will show at the highest rarity that you have. You can generally choose any card; however, you can only set a Promo or Special card as your favorite card if you actually own the card.

Images for promoted god cards

[150] As noted previously, cards can be promoted. If a card is promoted to God rarity, it is possible to request an image change. The request is cancelled if the card is disenchanted or traded while the request is still pending. Image requests are not possible for cards whose base rarity is God as well as for Promos and Specials – even if you are the sole holder of a Promo card.

Requesting a change (!godimage request)

[151] Synopsis!godimage request ID link

[152] These commands requests an image change for the card identified by the given ID.

[153] The following base requirements must be followed when issuing a request:

  1. The card must be eligible for an image change. This excludes base God cards and the Saimoe cards (waifu IDs 2008–2018).
  2. The image depicts the correct character. Alternate forms of a character are okay if no card for it currently exists. For example, that means Black Sister is not allowed as a godimage for Uni because she exists as card [76]; however, as a counterexample, illayaya was granted Arfoire's DOS form as a godimage on [100].
  3. The image may not contain two or more characters.
  4. The image must have at least reasonable quality.
  5. The image may not be too much of a meme. It is unknown what the limits of that are.
  6. Regarding how explicit a card may be, mild nudity appears to be okay.
  7. Animated gifs are okay as long as they follow the rules outlined above.
  8. The request must be in line with the Twitch content policy. In particular, this means that porn or overly sexually suggestive images, gore and illegal content are not permitted. Requesting a card that violates these guidelines will likely get you banned. The bot tells admins: “If it is porn/illegal/etc, just ban the user.” It is thus strongly recommended you manually talk to an admin before you put in the request if you are even just the slightest bit unsure if it is acceptable. Do not believe that the administrators will assume your request is in good faith.
  9. The aspect ratio of the image may not exceed 16:9 in either direction, i.e. 9 over 16 <= width over height <= 16/9.
  10. The image's file size must not exceed 2 MiB (2,097,152 bytes).
  11. The image must be hosted on imgur. Other image hosts will not work.
  12. If you have changed the godimage before, your last (accepted) change request for the same card was more than 30 days ago. This is counted starting from the time of request, not the time the request was accepted.
  13. [154] Individual image changes affect only that particular card. Trading the card with a changed image will retain the changed image. An individual image change is requested with !godimage request.

    [155] Global image changes affect all copies of that card. The change affects the waifu herself, rather than the card.

    [156] (obsoleted)

    [157] You will be notified via whisper about whether your accept was accepted or denied. Denials always have an explicit reasoning attached.

    Listing requested changes (!godimage list)

    [158] Synopsis!godimage list

    [159] You can list your pending image change requests with this command. Even though this is an informational command, it is not subject to the timeout on informational commands.

    Cancelling a request (!godimage cancel)

    [160] Synopsis!godimage cancel ID

    [161] This command cancels a pending request for the given waifu or card identified by the given ID. Because the admins receive a notification about every request and cancellation, it is recommended that you think about your request before you make it.

    Streamlabs alerts

    [162] Streamlabs alerts allow streamers to show on-stream notifications about cards being drawn. No alerts will be sent when Super cards and below are drawn. Only streamers who have the bot in their channel can use these alerts for their streams. Most mainstream streaming software, such as the Open Broadcaster Software (OBS), can make use of the alerts.

    [163] If you have never set up alerts with Streamlabs, look into the “Alert Box” settings in the Streamlabs dashboard. The widget URL can be browser sourced in OBS, xsplit etc.

    Setting up streamlabs alerts (!alerts setup)

    [164] Synopsis!alerts setup

    [165] To start setting up the alerts, use the !alerts setup command anywhere. You will then receive a whisper on Twitch with a link. Click the link, then authorize the app. The app will only request the permission to send alerts to your stream. If you deauthorize the app with Streamlabs, but later decide that you want the alerts again, you must contact a bot administrator so that !alerts setup works again.

    Testing streamlabs alerts (!alerts test)

    [166] Synopsis!alerts test [rarity]
    !alerts test set

    [167] Once you have authorized the app through Streamlabs, you can test the alerts at any time with “!alerts test”. The alert will have the name “Test Alert, please ignore”. If rarity is given, a test alert for the given rarity is sent. Otherwise, a test alert at God rarity is shown. For example, to test alerts for Mythical cards, use “!alerts test mythical”.

    Configuring streamlabs alerts (!alerts config)

    [168] Synopsis!alerts config name value

    [169] This command can be used to customize some aspects of the alerts. After making changes, you can test them immediately with !alerts test.

    Streamlabs alert channel (!alerts config alertChannel)

    [170] Synopsis!alerts config alertChannel {donation | host | subscription | follow}

    [171] This command sets the “channel” through which alerts will be sent. The alerts will not be shown unless you also enable the corresponding alert channel in Streamlabs. If you have never changed this, the default is “donation”. If testing alerts sent from Streamlabs work, but not testing alerts sent from the bot, try changing this setting to “follow”. For example, to change to the “subscription” channel: !alerts config alertChannel subscription

    Streamlabs sound options

    [172] Synopsis!alerts config defaultSound URL
    !alerts config rarityNumSound URL

    [173] When an alert is shown, a sound effect will also be played. For alerts when cards are drawn, the sound effect will be the one configured as rarityNumSound; if rarityNumSound has never been changed, then the defaultSound plays instead. If the defaultSound has never been changed, the infamous Noire scream plays.

    [174] The default sound must be a direct link to a music file. The music file must be in the OGG format. YouTube links and other kinds of music files will not work.

    [175] You can upload OGG files directly in Streamlabs' Media Gallery for the Alert Box widget. The Media Gallery is on the page for the Alert Box widget; you may need to scroll down and search for it. After uploading, hover over the filename in the Media Gallery and click “Copy URL”.

    [176] The following values of Num can be used:

    NumRarity Name
    4Ultra
    5Legendary
    6Mythical
    7God

    [177] For example, to change the sound effect for God cards being drawn:
    !alerts config rarity7Sound https://marenthyu.de/nepdoc/godsound.ogg

    [178] The volume of the sounds can be adjusted in two ways. Either you change the sound file itself to be less loud and follow the steps above; or you can change the volume of the alert channel. If you want to just use the default Noire scream, your only option is to change the volume. In order to do so:

    1. navigate to the Streamlabs dashboard;
    2. open the “Widgets” menu on the left;
    3. click the “Alert Box” option;
    4. scroll down on that page and select the applicable alert channel,
    5. as a reminder, by default, the alert channel is “Donations”;
    6. adjust the volume on the “Sound Volume” slider;
    7. click “Save Settings”.

    Streamlabs alert duration options

    [179] Synopsis!alerts config defaultLength length
    !alerts config rarityNumLength length

    [180] This setting specifies the time in milliseconds for which the alert will be visible. It is recommended that this is set to the length of the sound effect plus 1500 to 3000 milliseconds. If rarityNumLength has never been changed, then the defaultLength is used instead. If the defaultLength has never been changed, the alert is shown for 14000 milliseconds. The same values for Num as with the sound options can be used.

    Streamlabs alert text color (!alerts config color)

    [181] Synopsis!alerts config color {default | rarity}

    [182] This setting changes the text color for alerts. If set to “default”, the rarity and name of the player who pulled the card in the alerts will be shown in the color configured for alerts in the Streamlabs dashboard. If set to “rarity”, the rarity and name of the player who pulled the card in the alert to be the rarity's representative color instead. If you have never changed this setting, it is set to “default”.

    The 2019 and 2020 anniversary events

    [182a] During August 12, 2020 through September 17, 2020 (UTC), the yearly anniversary event takes place, effectively a carbon copy of last year's during August 1, 2019 and August 31, 2019 (UTC). During the event, so-called event tokens can be acquired. Event tokens can be exchanged for various special rewards.

    [182b] Event tokens are acquired by opening packs. Every pack has a chance to contain anniversary tokens. The chance is approximately 20% of a token per pack. However, anniversary packs have a vastly higher chance to contain tokens than regular packs. If a pack contains a token, it is shown in the booster, but immediately transferred to your account; there is thus no danger of accidentally getting rid of an event token. Packs may be trashed normally to no adverse effect with regards to event tokens.

    [182c] Opening anniversary packs contributes to a pack tracker. As certain amounts of anniversary packs are opened by the community, certain rewards are given to the community as a whole. It is unknown what those rewards are unless the conditions are met.

    [182d] Event tokens show up in your hand, but take no hand space. They cannot be disenchanted. Similarly, they are not transferable or tradeable.

    [182e] The following rewards in exchange for tokens are available:

    ItemToken CostNotes
    Previous Promo10+Cost starts at 10 tokens and then doubles for every Promo bought; maximum five Promos per person
    Custom Special25Maximum one Special per person
    Hand space upgrade40Maximum one hand space upgrade per person
    Token gacha1 per rollOnly available after the event has ended (Sep 1 through Sep 7)

    [182f] For how to exchange your tokens for prizes, see ¶¶ 95a et seqq.

    Points distribution

    [183] NepNepBot regularly distributes some amount of points to people who are in a channel with it. No chatting is actually required to get passive points. The points gain seems to be 10 points every 5 minutes. If sitting in a channel that is currently streaming on Twitch and having sent at least one line in chat, the points gain may increase up to 20 points per 5 minutes plus the multiplier on that value. The multiplier value appears to be 1.0. The 20 points decrease by 1 until the base 10 points for every 5 minutes of inactivity. NepNepBot commands count as activity. Users whose names contains “bot” anywhere cannot get an activity bonus.

    [184] Using bots to profit from this mechanic automatically is not permitted. However, it is possible to permanently idle in a channel and gain the regular amount of points. This amounts to 1440 points per day or 43,200 points per 30 days.

    Cards of irregular rarity

    [185] There are two kinds of cards of “irregular” rarity: Promo and Special. Of those, Promo cards are most commonly released to the entire playerbase, whereas Special cards are generally reserved for individual players or very small groups. Neither of them take up any space in your hand.

    Promo cards

    [186] Promo cards are usually obtainable under various special conditions. It is only possible to trade a Promo card for another Promo card. The first type are event Promos: They are available for the duration of a specific event through redeem codes. This happened during the second HDNMarathon, for example.

    [187] Then there are time-limited Promos: These are cards that enter the game as regular cards and can be pulled normally. Time-limited Promos normally have a rarity of Legendary. Currently, the “Summer Edition” cards are one such case; they will leave after August 31. A special case of these are the so-called “chans”. They're cards that are personifications of things, such as [6496] Earth-Chan or [7585] Discord. A chan turns Promo two weeks after its introduction.

    [188] Finally, there are weighted time-limited Promos: These are cards that enter the game as regular cards and can be pulled normally, but they also have increased weighting, i.e. are more likely to be pulled. This happened for the Valentine's Day event.

    Special cards

    [189] A few players have cards of Special rarity. These cards are unique.

    [190] They used to be given out to cornerstones of the community. However, such “special thanks” Special cards no longer occur. Similarly, high amounts of dedication to a franchise used to sometimes yield a Special card. However, requirements have spiked lately: Only truly extraordinary achievements – such as amassing one million points – still award a Special card these days.

    [190a] The most common source of Special cards are the anniversary events of 2019 and 2020, where a Special of one's choosing could be obtained in exchange for 25 anniversary tokens.

    [191] Anyone can get a Special card by sending a postcard to Marenthyu or meeting up with him. Sending a postcard allows the sender to pick a custom name and image, but the series will be locked to “Postcard Collector”. Meeting up with Marenthyu will yield a “The Truth” card.

    Pulling algorithm

    [192] This section outlines the algorithm that guards what cards are pulled from the deck when opening a booster pack.

    Core concepts

    [193] There are two random number generators (RNGs) involved. One is the “Python” random number generator (Python RNG); I call it that because it's the random number generator that is used in the Python programming language, which the bot is written in. The Python RNG is a Mersenne Twister. The other is the “MySQL” random number generator (MySQL RNG) or just “RAND()”; I call it that because it's the random number generator that is used in the MySQL database, which is the software used for the database where the bot stores its data. Both will be used in different ways.

    [194] Every pack has a list of “upgrade chances”. These are the literal odds that a rarity is upgraded to the next one. These chances differ for every pack. The upgrade chances are normally increased by the pity system. However, packs that are neither listed in !booster list nor able to be bought do not contribute to pity and do not use pity-boosted odds; one such booster pack type would be the meme pack. For example, an imaginary test booster pack may have the following odds: 1, 1, 0.5, 0.5, 0.25, 0.1, 0.01. This means a Common is guaranteed to be upgraded to an Uncommon (1), an Uncommon is guaranteed to be upgraded to a Rare (1), a Rare has a 50% chance of being upgraded to a Super (0.5), a Super has a 50% chance of being upgraded to an Ultra (0.5), an Ultra has a 25% chance of being upgraded to a Legendary (0.25), a Legendary has a 10% chance of being upgraded to a Mythical (0.1), a Mythical has a 1% chance of being upgraded to a Mythical (0.01). The likelihood to reach an Ultra exactly is thus 0.1875.

    Pulling the cards

    [195] Before anything else, the maximum number of event tokens (like anniversary tokens) in a pack is taken. For each possible event token, the Python RNG is rolled for the chance of a token. Every token obtained reduces the number of actual cards in the pack.

    [196] After this, the actual cards are pulled. The first step is always to perturb the state of the Python RNG (it is “reseeded”) using data from the underlying operating system on the server it runs on; this makes it infeasible to manipulate the Python RNG effectively. In a second step, the rarity is determined: For every rarity until God, a number is rolled; if the number is less than the upgrade chance, the rarity is upgraded. However, if the rarity determined contains no droppable waifus – as occasionally happens with cards of God rarity –, the rarity is silently downgraded by one. After this, the Python RNG is reseeded again. The card that is pulled within the rarity is determined by the MySQL RNG, which also uses the card weighting. The list of cards that the MySQL RNG can pulled is limited in three ways:

    1. players cannot pull cards that they themselves own at God rarity, and
    2. a card that has already been pulled in the current pack cannot be pulled again.

    [197] Finally, the pity data is updated for all rarities that are above the card's rarity. Note how pity is updated after every card, which means that it is possible to cross the pity threshold in the middle of a pack. Because the packs are not pulled in waifu ID order, it is impossible to tell how many cards were pulled before a pity pull.

    Pity

    [198] Pity values increase the odds of a certain rarity dropping. After crossing a certain amount of pity value, pulling a card of the respective rarity is guaranteed. Each pity value is increased by the number of cost per card. This means that in a pack that costs 5000 points and contains 3 cards, the affected pity values would be updated with 5000/3 = 1666.666… The number of cards is the effective number of cards; meaning that the number of cards for the purpose of calculating the cost per card is reduced by the number of tokens: Had the example pack with 3 cards contained an event token, it would instead be updated with (per card) 5000/2 = 2500.

    [199] The pity thresholds are as follows:

    RarityThreshold
    Super2000 points
    Ultra10,000 points
    Legendary25,000 points
    Mythical100,000 points
    God(does not exist)

    Weighting

    [200] In addition to pity aiding individual players reach each rarity, there's a weighting system that is meant to ensure that every card is pulled eventually. Every 24 hours, the weighting of a card goes up slightly, making it more likely to be pulled. When a card is pulled, the weighting is reset. Weighting for cards of Super rarity and above is boosted. If a card of Super rarity and above drops twice in one day, it gets an additional penalty to prevent it from dropping again for two days.

    Meta

    [201] This section contains details about how the bot itself is managed and details about how the community is organized.

    Alternate reality game (ARG)

    [202] Marenthyu operates an alternate reality game (ARG) in tandem with the Waifu TCG. Participation will yield Special cards and badges. Further details about joining and the current state of the ARG can be found at xorhash's page about the ARG.

    [203] The ARG is an optional part of the Waifu TCG experience.

    Community promise

    [204] No form of microtransactions will ever be introduced into the game. This includes bits, subscribing to certain channels, donations or any other forms of real life funds transfers. The game will be free to play as long as it exists.

    Postcards

    [205] Sending a postcard to Marenthyu grants you the ability to create a Special card of your choice. Marenthyu may void this at his discretion. Meeting with any TCG administrator in person will yield a badge called Miku's Mercy. In order to obtain Marenthyu's address and details on how to proceed, see the pinned messages in #rules in the Waifu TCG Discord server.

    [206] Miku's Mercy allows the holder to undo any disenchant performed by the holder. “Conditions apply”, but it is unknown what those conditions are, exactly.

    Historical sections

    [207]

    These sections are now irrelevant because they concerned time-limited events. However, for the sake of accuracy and historical preservation, these sections got moved here.

    The 2018 anniversary event

    [208] During all of August 2018, there was an anniversary event. While the event lasts, periodic point gain was increased by a factor of 1.2 and any pack can contain so-called event tokens. Event tokens were non-transferrable and have no points value. One event token would take the place of one card in a booster pack; the token was added to your account immediately after opening the pack and cannot be trashed. There was no guarantee that any booster pack would actually contain an event token. Event tokens could be exchanged during 48 hours after the anniversary event ends; rewards were:

    1. one gacha roll for one token;
    2. one copy of a single, pre-existing Promo card at the cost of
    3. three tokens (full list available at: https://pastebin.com/ciz3BxVx);
    4. one custom Special card at the cost of six tokens; only one Special card per player;
    5. one additional hand space at the cost of ten tokens; only one additional hand space per player.

    [209] The gacha rewards were divided into five tiers. First, the tier is picked. After that, a reward is picked from the tier. When rolling the gacha with !tokengacha, you could thus get:

    TierPossible Rewards
    1super booster pack, 40 pudding, 800 points
    2halfmeme booster pack, 80 pudding, 1600 points, freeultra
    3premium booster pack, 120 pudding, 2400 points
    4ultimate booster pack, 200 pudding, 4000 points, freelegendary
    5(unknown)

    [210] Moreover, there were anniversary booster packs. They cost 4000 points, contain seven cards and only contained cards of Rare rarity or above. They have a higher chance of containing event tokens as well as HDN Marathon Victory cards. A “zfresh” card was obtainable only from anniversary packs. The “zfresh” card must not be traded or otherwise transferred – even just temporarily. If it is transferred, the card will be taken away.