Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BazaarIsMyHaven
Adds lots of configurable features to the Bazaar: Printers, Scrappers, Cauldrons, Equipment Terminals and more. Fork of BazaarIsMyHome.
| Date uploaded | 2 weeks ago |
| Version | 5.0.0 |
| Download link | Def-BazaarIsMyHaven-5.0.0.zip |
| Downloads | 1480 |
| Dependency string | Def-BazaarIsMyHaven-5.0.0 |
This mod requires the following mods to function
RiskofThunder-R2API_Language
API for modifying the language localisation of the game
Preferred version: 1.1.0Def-ItemStringParser
A library for parsing Item Strings. Does nothing on its own.
Preferred version: 2.1.0README
BazaarIsMyHaven
server-side mod - only the host needs it installed.
This is a fork of Lunzir's excellent BazaarIsMyHome mod.
Features
-
Extra Interactables in the Bazaar (configurable):
- 3D Printers
- Additional Cauldrons, also Transcendent Cauldrons (with Hallowed Concepts)
- Scrappers
- Equipment Terminals
- Lunar Shop (customizable)
- Cleansing Pool
- Shrine of Order
- Donation Altar
- Wandering Chef (with the Alloyed Collective)
- Drone stations from the Alloyed Collective
- Command Pedestal
-
Newt Behavior Options:
- Stop him from throwing you out.
- Change what happens after you kill him.
- Let him greet you and comment on your purchases, in each player's language.
-
Portal Options:
- Spawn a Bazaar portal after every teleporter event.
-
Other Tweaks:
- A director that decides which interactables appear, with more credits the further you are into the run.
- Drifter can't bag the Bazaar's interactables, the Newt or other players.
- Drifter gains no Junk in the Bazaar, so Salvage can't farm temporary items there.
- Drifter's Tinker doesn't reroll or transmute anything in the Bazaar.
- Captain's hacking beacon only pays for one purchase of a Bazaar shop with a money price; afterwards it costs the usual price again.
- Config changes apply from the next run, without restarting the game.
-
Compatiblity with other Mods
Credits
Thanks to Lunzir for BazaarIsMyHome, the mod this one is a fork of.
Thanks to WeeabooGod for a large contribution to this mod:
- Making unmodded clients see the Lunar Buds at the right size, making the shop terminal workaround obsolete.
- The price signs above Equipment Terminals.
- Compatibility with QoLChests
- Reloading the config at the start of each run.
- Various small fixes for the Donation Altar, Lunar Buds, cauldrons, printers, the Wandering Chef and ShareSuite.
Key Settings
In-detail descriptions for some of the settings:
General - Director
Like the game's own scene director, a director decides which interactables appear in the Bazaar. On every visit it gets credits:
Formula: Credits = DirectorExtraCredits + DirectorCreditsPerStage x Number of Stages Completed, at most DirectorCreditsCap (200 by default, -1 for no cap)
It spends them at random on the interactables of the enabled sections, until it can't afford anything more. Each interactable has a DirectorCost and a DirectorWeight. The weight sets how likely the director picks it compared to the others, and MaxAmount limits how many of a kind can spawn. By default, a printer costs 5 to 15 credits depending on its tier, and Lunar Buds cost nothing, so they always spawn up to their MaxAmount.
Two interactables work differently:
- Scrappers: the director picks them only once, and then all
MaxAmountScrappers spawn. - Wandering Chef: with
CraftableRecipesOnly, he only offers a recipe that a player can cook from their inventory and what the Bazaar offers. If there is none, he leaves again and the director spends his credits on something else.
Newt - Dialogue
Controls what Newt says in chat:
Off-> Newt says nothing.Default-> Newt uses the game's own lines, which the game itself never shows. He comments when you donate at the Donation Altar, buy from a Lunar Bud or hit him, and every player sees these lines in their own language. He also greets you when you arrive, in English. The rewards of the Donation Altar are shown as the game's usual pickup messages.BazaarIsMyHome-> The greetings and remarks of the original BazaarIsMyHome mod, in the host's language.
Newt - KarmaTrigger
In runs with karma enabled, angering Newt raises the run's karma, which makes the final fight harder:
OnDamage-> Vanilla. Karma rises when he would kick you out after being hit, also ifNoKickFromShopkeeps you in the Bazaar.OnKill-> Karma only rises when Newt is killed.
Newt can revive and be angered again. With KarmaTriggerOncePerVisit (on by default), karma rises at most once per visit to the Bazaar.
Newt - DeathBehavior
Controls how Newt acts after being killed:
Default-> Normal behavior.Tank-> Newt Health is significantly reduced. Revives with double HP.Ghost-> Newt Health is significantly reduced. Revives as a ghost.Hostile-> Newt Health is significantly reduced. Revives and starts defending himself.
Equipment
With a Cost above 0, each Equipment Terminal shows its price above it. Clients without the mod see it too. CostType sets what the price is paid in, such as money (the default), Lunar Coins or items of a tier. With ScaleMoneyCosts, money prices scale with difficulty like the game's own shops.
With BuyToInventory, bought equipment goes straight into your inventory, so it can only be bought with an empty equipment slot. The same goes for the Command Pedestal and the Wandering Chef's recipes.
LunarShop
The Lunar Shop swaps the Bazaar's Lunar Buds for up to MaxAmount Lunar Buds (at most 20), each with its price. CostType sets what the price is paid in, such as Lunar Coins (the default), money or items of a tier. Clients without the mod also see them at the right size. The Lunar Recycler rerolls them, except buds a player already bought from. If the director spawns no buds, the Lunar Recycler is removed too.
You can freely configure which items can be bought at the LunarShop. There are two settings to configure this:
-
SequentialItems:- True -> Items are drawn in order from the list. So if the number of Lunar Buds matches the number of items in the list, you always find the same items in the Bazaar.
- False -> Items are picked at random from the list.
-
ItemList:- Follows the ItemStringPaser format.
- A list of items to appear. Must be internal items names. Can use tier or droptables as well, see Item Keywords below.
- Examples:
Tier1 | Tier2 | Tier3 | Lunar | Boss: IfSequentialItemsis set toTrueandMaxAmountto 5, then you will find exactly 1 white item, 1 green item, 1 red item, 1 lunar item and 1 boss item in the shop.dtLunarChest: This is the vanilla behavior of the game.FreeChest | VoidTier1 | dtChest2: 1 Shipping Request Form, one random item of Void Tier 1 and one random item of the droptable of a large chest.
- The Repeat and Multiplier operators do not play a role here.
Donation Altar
The Donate section lets the director spawn a Donation Altar near the Newt. Donating gives you a reward. A donation costs Lunar Coins by default; CostType can change that, e.g. to money or items of a tier, and the price tag shows it.
Every 2 seconds, each player sees a reward they could get on up to five Lunar Buds above the altar, one bud per item. Buds the reward doesn't need stay open but empty, and all of them close once a player can't get a reward anymore. These are only examples: the reward for a donation is rolled when you donate. Clients need no mod for this.
There are 3 item lists which are selected at random:
RewardList1: By default contains either 5 small chest items or 2 large chest items.RewardList2: By default contains either 1 legendary item or 1 boss item.RewardList3: Disabled by default. By default contains some unreleased or unfinished items.
These reward lists can be fully customized. They follow the ItemStringPaser format. See the below section Item Keyword List on what are valid values. With the donate reward lists, it is possible to reward multiple items at the same time.
Examples:
RewardList1 = 5xdtITDefaultWave: The reward will be 5 random items of the droptable of void potentials from the Simulacrum mode.
RewardList1 = 5xdtChest1 | 2xdtChest2: The reward will be either 5 random items of the small chest droptable or 2 random items of the large chest droptable.
Drones
If the Alloyed Collective is enabled for the run, the Drones section lets the director spawn a Drone Combiner Station, a Drone Upgrade Station, a Drone Scrapper and a Triple Drone Shop. Each one has its own settings.
Drones normally stay behind when you enter the Bazaar, but the Drone Combiner Station, the Drone Upgrade Station and the Drone Scrapper only work with drones that are there. So with the Drones section enabled, the players' drones come along like on any other stage and behave as usual. Other allies still stay behind.
Command Pedestal
The CommandPedestal section lets the director spawn a Command Pedestal. Buying from it drops a Command Essence, from which you choose any item of the pedestal's tier. The tiers are white, green, red, boss and lunar items, equipment, and the four void tiers. Each has its own DirectorCost, DirectorWeight and Cost, e.g. Tier2DirectorCost: the director picks a tier it can afford by the tiers' weights, once per visit, and the essence it gives is shown above the pedestal. The price is paid in CostType and shown on a price sign above the pedestal. By default the tiers follow the game's own Command Chest mix, without lunar items.
Unmodded clients can't spawn the game's own Command Chest, so it is an Ocular Vault from the Alloyed Collective. Its hover text still says "Place Ocular Battery", since only the host has the mod. Buying opens the pedestal; if a player can't afford it, the pedestal plays the pedestal's refusal.
With InstancedPurchases, each player can buy from it once: the pedestal stays ready for the others, and each buyer gets their own essence. With BuyToInventory, using the pedestal shows the item picker right away, without an essence appearing. The price is only charged once you pick an item, which goes straight into your inventory. Equipment needs an empty equipment slot; closing the picker costs nothing, and using the pedestal again reopens it. Without InstancedPurchases, the first player to pick an item buys the pedestal. Without BuyToInventory, buying drops a Command Essence that anyone can use.
RewardListAvailableCharacters - Valid Keywords
Survivors
Bandit2 Captain Commando Croco Engi Heretic Huntress Loader Mage Merc Toolbot Treebot Railgunner VoidSurvivor Chef FalseSon Seeker Drifter DroneTech Acolyte Enforcer2
Other Bodies
AcidLarvaBody AffixEarthHealerBody AltarSkeletonBody AncientWispBody ArchWispBody ArtifactShellBody Assassin2Body AssassinBody BackupDroneBody BackupDroneBodyRemoteOp BackupDroneOldBody Bandit2Body BanditBody BasePodBody BasePodBody_NoRevive BeadProjectileTrackingBomb BeetleBody BeetleCrystalBody BeetleGuardAllyBody BeetleGuardBody BeetleGuardCrystalBody BeetleQueen2Body BeetleWard BellBody BirdsharkBody BisonBody BombardmentDroneBody BombardmentDroneBodyRemoteOp BomberBody BrotherBody BrotherGlassBody BrotherHauntBody BrotherHurtBody CaptainBody ChefBody ChildBody ClayBody ClayBossBody ClayBruiserBody ClayGrenadierBody CleanupDroneBody CleanupDroneBodyRemoteOp CommandoBody CommandoPerformanceTestBody CopycatDroneBody CopycatDroneBodyRemoteOp CorruptionSpike CrocoBody DTGunnerDroneBody DTGunnerDroneBrokenBody DTHaulerDroneBody DTHaulerDroneBrokenBody DTHealingDroneBody DTHealingDroneBrokenBody DeathProjectile DefectiveUnitBody DestructibleSpawnerObjectBody DevotedLemurianBody DevotedLemurianBruiserBody DrifterBody DrifterShieldTank DrifterThqwib Drone1Body Drone1BodyRemoteOp Drone2Body Drone2BodyRemoteOp DroneBallDotZone DroneBomberBody DroneCommanderBody DroneTechBody DroneTechShield ElectricWormBody EmergencyDroneBody EmergencyDroneBodyRemoteOp EnforcerBody EngiBeamTurretBody EngiBody EngiTurretBody EngiWalkerTurretBody EquipmentDroneBody EquipmentDroneBodyRemoteOp ExhaustPortWeakpointBody ExplosiveJunkBombDestructibleBody ExplosivePotDestructibleBody ExtractorUnitBody FalseSonBody FalseSonBossBody FalseSonBossBodyBrokenLunarShard FalseSonBossBodyLunarShard FireExtinguisherPodBody FlameDroneBody FlameDroneBodyRemoteOp FlyingVerminBody FriendUnitBody FusionCellDestructibleBody GeepBody GipBody GolemBody GolemBodyInvincible GrandParentBody GravekeeperBody GravekeeperTrackingFireball GreaterWispBody GupBody HANDBody HalcyoniteBody HaulerBody HaulerDroneBody HeatSinkPodBody HeaterPodBody HeaterPodBodyNoRespawn HeaterPodBodyNoRespawn_Large HereticBody HermitCrabBody HuntressBody ITBrotherBody ImpBody ImpBossBody IronHaulerBody JailerDroneBody JailerDroneBodyRemoteOp JellyfishBody JunkCubeConsoleOptPrefabVariant JunkCubePrefab JunkDroneBody JunkDroneBodyRemoteOp LemurianBody LemurianBruiserBody LoaderBody LunarExploderBody LunarGolemBody LunarRain LunarRain_DistanceTest LunarWispBody LunarWispTrackingBomb MageBody MagmaWormBody MajorConstructBody MegaConstructBody MegaDroneBody MegaDroneBodyRemoteOp MercBody MinePodBody MiniGeodeBody MiniMushroomBody MiniVoidRaidCrabBodyBase MiniVoidRaidCrabBodyPhase1 MiniVoidRaidCrabBodyPhase2 MiniVoidRaidCrabBodyPhase3 MinorConstructAttachableBody MinorConstructBody MinorConstructOnKillBody MissileDroneBody MissileDroneBodyRemoteOp NullifierAllyBody NullifierBody PaladinBody ParentBody ParentPodBody Pot2Body PotMobile2Body PotMobileBody PowerOrbShieldTank RailgunnerBody RechargeDroneBody RechargeDroneBodyRemoteOp RoboBallBossBody RoboBallGreenBuddyBody RoboBallMiniBody RoboBallRedBuddyBody SMInfiniteTowerMaulingRockLarge SMInfiniteTowerMaulingRockMedium SMInfiniteTowerMaulingRockSmall SMMaulingRockLarge SMMaulingRockMedium SMMaulingRockSmall ScavBody ScavLunar1Body ScavLunar2Body ScavLunar3Body ScavLunar4Body ScavSackProjectile ScorchlingBody ScorchlingBombProjectile SeekerBody ShopkeeperBody SniperBody SolusAmalgamatorBody SolusAmalgamatorFlamethrowerCannonBody SolusAmalgamatorMissilePodBody SolusAmalgamatorThrusterBody SolusAmalgamatorTrackingBomb SolusHeartBody SolusHeartBody_Logbook SolusHeartBody_Offering SolusHeart_DDOSProjectile SolusMineBody SolusVendorBody SolusWingBody SolusWingLogbookBody SolusWing_LaserBurstBlastProjectile SpectatorBody SpectatorSlowBody SquidTurretBody SulfurPodBody SuperRoboBallBossBody TankerAccelerantPuddleBodyProjectile TankerBody TankerLogbookBody TeleportComboLaserProjectile TimeCrystalBody TitanBody TitanGoldBody ToolbotBody TreebotBody Turret1Body UnderclockSpawnerProjectile UrchinTurretBody VagrantBody VagrantTrackingBomb VerminBody VoidBarnacleBody VoidBarnacleNoCastBody VoidInfestorBody VoidJailerAllyBody VoidJailerBody VoidMegaCrabAllyBody VoidMegaCrabBody VoidRaidCrabBody VoidRaidCrabJointBody VoidSurvivorBody VultureBody VultureEggBody VultureHunterBody WispBody WispSoulBody WorkerUnitBody
CHANGELOG
5.1.0
- Triple Drone Shop: new
CostType, plus a cost and a weight for common and uncommon drones. - Drone Combiner Station: moved to make room for the Void Suppressor of the SuppressorInBazaar mod.
- Command Pedestal: one
DirectorWeightand a<Tier>Weightper tier, like printers, with defaults based on how rare each tier is. The old<Tier>DirectorWeightsettings are no longer read, so check your config. - Cleansing Pool:
DirectorCostnow defaults to 0, so it always spawns. Only the pool this mod spawns gives Lunar Coins, not ones other mods add. - Equipment swaps with
BuyToInventory:- Lunar Buds and Equipment Terminals: swapping back at a slot you bought is free. Fixes swapping at Equipment Terminals.
- Command Pedestal: no longer needs a free equipment slot. Your old equipment goes into the vault; use the vault again to swap back.
- Wandering CHEF: no longer needs a free equipment slot. Your old equipment is discarded.
- Donation Altar: reward equipment replaces yours, and the old one is discarded. The altar shows as used once you reach your donation limit.
- Price signs disappear for players who bought from the Command Pedestal or can't donate anymore.
- Newt no longer comments on equipment swaps.
5.0.0
Updated for the latest Risk of Rain 2 patch. Requires ItemStringParser 2.1.0. Many settings were renamed or removed, so check your config after updating.
Thanks to WeeabooGod for the Lunar Shop rework and many of the fixes in this version.
Director
- Add a director that decides which interactables appear in the Bazaar, like the game's own scene director. It gets
DirectorExtraCredits, plusDirectorCreditsPerStagefor every stage cleared, at mostDirectorCreditsCap, and spends them by each interactable'sDirectorCostandDirectorWeight. It replacesSpawnCountByStageandSpawnCountOffset. - Rename the
Amountsettings toMaxAmount. Old values are not carried over.
New sections
- Add a Drones section for the Alloyed Collective: the director can spawn a Drone Combiner Station, a Drone Upgrade Station, a Drone Scrapper and a Triple Drone Shop, and the players' drones come along into the Bazaar. Unlike in the base game, the Drone Upgrade Station refuses players without drones instead of taking their item for nothing.
- Add a Command Pedestal section: buying from it gives a Command Essence that lets you choose any item of its tier. The director picks the tier, and each tier has its own price, director cost and weight. Unmodded clients can't spawn the game's own Command Chest, so it is the Alloyed Collective's Ocular Vault, with the essence it gives shown above it. With
InstancedPurchases, each player can buy once. WithBuyToInventory, the item picker opens right away, and the price is only charged once an item is picked.
Lunar Shop
- Use real Lunar Buds for any
MaxAmount(up to 20) instead of shop terminals.ReplaceLunarBudsWithTerminalsis removed. - Instanced purchases now sync to each player, also for unmodded clients, who now also see the buds at the right size and opening.
- The Lunar Recycler rerolls the Lunar Buds, and is removed when no buds spawn.
- Newt comments on Lunar Bud purchases.
- Lunar Buds now cost 2 Lunar Coins by default, like in the base game.
Prices
- Add a
CostTypesetting to Equipment Terminals, Lunar Buds and the Donation Altar, e.g. Lunar Coins, money or items of a tier. The price tag shows it too. - Add
ScaleMoneyCosts: money prices grow with difficulty, like the game's own shops. - Equipment Terminals now cost $50 by default instead of nothing, and show their price above them.
- The Shrine of Order keeps its price instead of doubling it after every use. Its
CostMultipliersetting never had an effect and is removed.
Donation Altar
- Unmodded clients can now see and use the Donation Altar. It is now the Deep Void Signal, without its beam, with its price shown in front of it.
- Each player sees rewards they could get on Lunar Buds on top of the altar, arranged by how many items the reward has.
- Characters whose own reward list gives nothing now get
RewardListCharacterDefault. - Add default reward lists for Acolyte and Enforcer.
Newt
- Replace
GreetingandTrashTalkwithDialogue:Off,Default(the game's own unused Newt lines, in each player's language) orBazaarIsMyHome. - Add
KarmaTrigger(OnDamageorOnKill) andKarmaTriggerOncePerVisit, for when angering Newt raises the run's karma. - In
Tankmode, Newt starts with a third less health.
Drifter
- Add
PreventDrifterBagging,PreventDrifterJunkandPreventDrifterTinker, so Drifter can't bag things, farm temporary items or tinker in the Bazaar.
Other changes
- Config changes now apply from the next run, without restarting the game.
- The Wandering CHEF only appears with the Alloyed Collective. With
CraftableRecipesOnly, he only offers a recipe that someone can cook from their inventory and what the Bazaar offers, including one item from the Command Pedestal, and otherwise doesn't appear. - At most 2 Scrappers spawn, instead of 4.
- Add Transcendent Cauldrons from Hallowed Concepts as a cauldron type, with weight 0 by default.
- With
BuyToInventory, Equipment Terminals, the Command Pedestal and the Wandering CHEF only sell equipment into an empty equipment slot. - Captain's hacking beacon only pays for one purchase of a Bazaar shop; afterwards it costs the usual price again.
- Remove the Bazaar decoration (
DecorateBazaar) and the unused Green to Purple and Green to Yellow cauldron weights. - The settings in each config section are now in a sensible order.
Fixes
- Purchases and donations are only counted and charged after a successful payment, and donations only for a valid reward.
- Fix equipment rewards: they fill the free slots from Functional Couplers, and equipment that doesn't fit drops instead of disappearing.
- Fix the item selection of Void printers, and skip printer tiers without available items.
- Fix cauldrons without choices, and pay ShareSuite's cauldron refund only after a successful trade.
- With
BuyToInventory, the Wandering CHEF checks that you have the ingredients before cooking. - Newt settings no longer affect other characters, such as SPEX in the Computational Exchange.
- Stop QoLChests from hiding Lunar Buds, and keep the Lunar Recycler's cooldown.
- The hovering Lunar Coin no longer appears without the Cleansing Pool.
- Clear leftover state between runs and visits, and keep setting up the Bazaar if one section fails.
4.2.0
- Add LunarShop AmountDependingOnCharacter
- Add the two new surivors to the default DonateRewardListCharacters
4.1.1
- Fix various issues with the Wandering Chef
- Fix equipments not working when buy to inventory is set
4.1.0
- Add Wandering Chef to the bazaar
- Fix Cleansing Pool not giving Lunar Coins as intended
- Fix equipment duplication when having Functional Coupler
4.0.0
- Update for Alloyed Collective
- Add proper R2API dependencies
- Use ItemStringParser for all item lists
- Fix donation of unused items
- Limit amount of donations per visit to the Bazaar and per run
- Fix equipments in bazaar not getting replaced with the elite list
3.0.0
- Donation Shrine no longer requires to donate 10 times to get reward
2.1.2
- Add item colors in donate chat message
- Better placement of lunar shop terminals
2.1.1
- Fix sequential items in lunar shop starting with wrong index
2.1.0
- Add feature for custom donation reward lists depending on the character
- Add feature for sequential rewards at donation altar
2.0.1
- Fix readme
2.0.0
- Rename RewardNormalList->RewardList1
- Rename RewardEliteList->RewardList2
- Rename RewardPeculiarList->RewardList3
- Add feature to replace equipment with elite aspects
- Fix link in readme to the original mod for real
1.0.1
- Fix link in readme to the original mod
- Fix language file
1.0.0
- Initial Release