All Shop Items In Level Plus
Spawns shop items (weapons, grenades, carts, upgrades, drones...) around the level. Per-category spawn chances, a master switch and per-item toggles for spawning and the map. Extras you bring to extraction become permanent.English (below) | Español
Shop Items In Level +
Enjoying the mod? A like on the mod page helps a lot, and every donation is deeply appreciated. Thank you!
Found a problem? Send a message on Discord to Uristides (please include your
BepInEx/LogOutput.log).
IMPORTANT: the config file does not exist until you start the game
The mod creates its settings only after the game has started and you have entered a lobby (host or create one; you do not need to play a level). Until then, your mod manager will show no category sections (or no config at all on a fresh install). Start the game, enter the lobby, then open the config. If the sections are still missing, start a match once: they are always created when the first level begins.
Shop items — weapons, grenades, mines, carts, upgrades, drones, tools, trackers and more — can now spawn as extras around every level, exactly like valuables. You decide how often each category shows up, which individual items are allowed, and which ones show on your map. Extras you carry into the extraction point become permanent, as if you had bought them.
Everything is generated automatically from the game's own item list, so modded items are picked up too and get their own toggles.
Host controls the spawning. Item spawn settings only matter for the host (or in singleplayer). The map options are client-side, so each player decides what they see on their own map.
Features
- Shop items as level extras. Items are scattered across the free spawn spots of every level, on top of the normal valuables.
- One config section per item category (
carts,drone,grenade,gun,launcher,melee,mine,orb,power_crystal,tool,tracker,vehicle,item_upgrade,healthPack, ...). Categories come straight from the game's item types, so anything new shows up on its own.cartsgroups the C.A.R.T. and the pocket C.A.R.T. - Per-category spawn chance, so you can make grenades common and vehicles rare.
- Two master switches per category.
Category enabledturns off the spawning of a whole category in one click, andCategory show on maphides all of its map icons. Leave them on and pick items one by one if you prefer. - Per-item toggles, listed in alphabetical order with readable names:
Spawn in level | <item>: allow or forbid that item as an extra.Show on map | <item>: show or hide that item's map icon (client-side).
- Extraction saves your extras. Bring an extra into the extraction point when the extraction completes and it is registered as a permanent purchase. It disappears for the rest of that round and comes back in the truck next level. Extras you leave behind are lost.
- Hidden icons reveal themselves. An extra hidden from your map appears on it once you see it nearby or pick it up / equip it (optional, client-side).
- Cheaper items appear more often (optional, per category).
- Level scaling. Spawn chances grow with every floor you complete.
- Min / max item value filters and min / max extras per level.
- Customizable enemy drops. Choose which enemies drop which items, and with what chance, with a simple rules line (
EnemyLootRules). Enemy drops are normal items: they ignore the spawn toggles and always show on the map like a bought item. - Rare spawn announcements in the console for expensive items.
- Detailed debug mode that tells you exactly why an item did or did not spawn.
What the spawn toggles do (and don't do)
The Spawn in level toggles, the Category enabled master switch and SpawnChance only control the extras this mod scatters around the levels. They never touch:
- items you buy in the shop,
- the starting cart or any item the game places by itself,
- items dropped by enemies (they follow
EnemyLootRules), - items already in your inventory or in the truck.
Turning off "Cart" or "Gun" therefore stops extra carts and guns from appearing in levels. It does not remove the cart you start with or the weapon you bought.
The map options only hide the map icon, and only for extras spawned by this mod. The item itself is never disabled or removed, and the starting cart, purchased items and anything else the game places always keep their map icon.
How spawning works
For every free spawn spot the game prepared for valuables:
- Each enabled category that belongs to that kind of spot rolls its own
SpawnChance(in random order). Upgrades and drones use their own spawn-spot types; every other category shares the remaining spots. - The first category that succeeds picks one item from its pool.
- The pool only contains items that pass the value filters and whose
Spawn in leveltoggle is ON. - If
UseShopPriceForItemSelectionis ON for that category, cheaper items are picked more often. - The item is spawned by the host and tracked so it can be saved on extraction.
Default chances (per spawn spot, before level scaling):
| Category | Default SpawnChance |
|---|---|
| Every category | 0.5 % |
With level scaling on, the final chance is chance × (1 + floorsCompleted × multiplier), capped at 100 %.
Every category, healthPack included, has its own SpawnChance. Set it to 0 if you never want that category scattered around the level. carts and vehicle also start with Category enabled = false, so they do not spawn until you turn them on. Enemy drops are configured separately in 4_EnemyLoot.
Map options
Show on map | <item>andCategory show on maphide the map icon of extras spawned by this mod. Nothing else is touched: the item stays in the world, and the starting cart, bought items and items placed by the game always keep their icon.- Every category starts with
Category show on map = false, so extras stay off your map until you find them. Turn it on to see them from the start, or use the individualShow on maptoggles. - With
RevealHiddenOnMap = true(default), a hidden icon comes back as soon as you see the item (withinRevealDistancemeters, in view and with a clear line of sight), pick it up or equip it. After that it stays on your map, even if you put it back in your inventory and drop it again. - The reveal check runs twice a second and only while there are hidden icons, so it costs almost nothing. Set
RevealHiddenOnMap = falseto keep icons hidden for good.
Extraction mechanic
- Pick up an extra (grenade, gun, upgrade...) and carry it to an extraction point.
- Leave it inside the extraction zone and complete the extraction.
- When the extraction finishes, every extra inside that zone is saved as a permanent purchase and removed from the level.
- Next level, it appears in the truck like any item you bought.
Things to know:
- Only extras spawned by this mod are affected. Your purchased items are never consumed.
- Every item counts individually: three grenades in the zone means three grenades saved.
- With several extraction points, only the items near the one that just finished are taken.
- Extras that stay in the level, or that you carry out of the zone, are not saved.
- With
DebugModeon, the log shows what happened to every extra ([EXTRACT]lines). - If an item already reached the game's limit for the truck and
RespectMaxAmountis on, the extra is not consumed: it stays in the zone so you can keep using it this round, and a message appears. - You can turn the whole mechanic off with
ExtractionSavesItems = false.
Inventory and item limits
- With
SaveInventoryItems = true(default), extras you carry in your inventory when a level is completed are registered like extracted ones. They come back in the truck (the game may put them straight back in your inventory). - A small label appears under each inventory slot that holds an extra of this mod: green
REGISTEREDif it will be kept, redCONTRABANDif it will not (becauseSaveInventoryItemsis off, or because the item's limit is reached).InventoryMarkerturns the labels on or off and both texts can be changed. The labels are client-side and use your own settings; only the host knows the exact limits, so other players see a label based onSaveInventoryItemsalone. The items themselves are never modified. - The game only brings back as many copies of an item as its own limit allows and as the truck has free slots for its size. With
RespectMaxAmount = true(default), an extra that would not come back is not consumed by the extraction, so you can keep using it this round, and you get an on-screen message. For example, if you drop 7 identical orbs and only 1 fits, only 1 is taken and the other 6 stay. Withfalse, the item limit is raised so every copy can come back, but the truck slots still apply.
Enemy loot
When an enemy dies and drops valuables, this mod can also make it drop shop items. What drops is controlled by one line, EnemyLootRules in 4_EnemyLoot:
*: @healthPack=30
- Rules are separated by
;. The first rule whose enemy matches is used. - Enemy words (before the
:) are parts of the enemy's name, not case sensitive, separated by|.*matches any enemy. - Items (after the
:) are separated by,. Each one is either an item name exactly as shown in the category sections (for exampleSmall Health Pack (25)), or@categoryto drop one random item of that category (@drone,@healthPack,@item_upgrade,@gun,@carts...). - Chance is written after
=, from 0 to 100, with a dot for decimals (0.5). Every item rolls its own chance, so one enemy can drop several items. Without=chancethe chance is 100. - Maximum per enemy:
MaxDropsPerEnemy(default1) limits how many items one enemy can drop at once. If more rolls succeed, the extra ones are skipped; the ones kept are chosen at random.
The default line above means: every enemy that drops valuables has a 30 % chance to also drop one health pack.
Examples:
gnome: Health Upgrade=25, @healthPack=50; *: Small Health Pack (25)=20
boss|large: @gun=30, @grenade=60, Large Health Pack (100)=100; *: @healthPack=10
Enemy drops are normal items: they ignore Category enabled, Spawn in level and Show on map, so they always appear on the map like an item bought in the shop. If a name or category in the line is wrong, the log shows a warning with what could not be found.
Configuration
The file is BepInEx/config/REPO_All_Shop_Items_in_Level.cfg. You can edit it with a mod manager's config editor (Gale, r2modman) or with any text editor.
You must start the game and enter the lobby once before editing: the config is not created before that. The category sections are created from the game's item list, which only exists once the game reaches the lobby (you do not need to start a match). After that they appear in the file and in your mod manager. Until then the file only holds the general sections, or does not exist yet on a fresh install.
General sections (shown at the top)
| Section | Setting | Default | Description |
|---|---|---|---|
0_General |
ExtractionSavesItems |
true |
Extras brought into the extraction point become permanent. |
0_General |
RevealHiddenOnMap |
true |
(Client) Extras hidden from your map appear on it once you see them, pick them up or equip them. |
0_General |
RevealDistance |
8 |
(Client) How close (meters) and in view a hidden extra must be to be revealed. |
0_General |
SaveInventoryItems |
true |
Extras you carry in your inventory when a level is completed are kept and come back in the truck. |
0_General |
RespectMaxAmount |
true |
Respect how many copies the game can bring back in the truck (item limit and free truck slots). An extra that would not come back is not consumed by the extraction. |
0_General |
InventoryMarker |
true |
(Client) Small label under the inventory slots that hold extras of this mod. |
0_General |
InventoryMarkerKeptText |
REGISTERED |
(Client) Green label for an extra that will be kept. |
0_General |
InventoryMarkerLostText |
CONTRABAND |
(Client) Red label for an extra that will not be kept. |
0_General |
DebugMode |
false |
Verbose logging of every spawn decision, drop, map icon and extraction. |
1_Filters |
MinItemValue |
0 |
Ignore items cheaper than this (0 = off). |
1_Filters |
MaxItemValue |
0 |
Ignore items more expensive than this (0 = off). |
1_Filters |
MaxItemsPerLevel |
0 |
Maximum extras per level (0 = unlimited). |
1_Filters |
MinItemsPerLevel |
0 |
Minimum extras per level. If not reached, free spots are filled (0 = off). |
2_LevelScaling |
EnableLevelScaling |
false |
Spawn chances grow as you clear floors. |
2_LevelScaling |
LevelScalingMultiplier |
0.05 |
Bonus per completed floor (0.05 = +5 % per floor). |
3_Announce |
AnnounceRareItems |
false |
Log a console message when an expensive item spawns. |
3_Announce |
AnnounceValueThreshold |
5000 |
Minimum item value that triggers the announcement. |
4_EnemyLoot |
EnemyLootEnabled |
true |
Enemies that die and drop valuables can also drop shop items. |
4_EnemyLoot |
EnemyLootRules |
*: @healthPack=30 |
Which enemy drops which items, and with what chance. |
4_EnemyLoot |
MaxDropsPerEnemy |
1 |
Maximum number of items one enemy can drop at once. |
Category sections (Category: <type>)
Every category has the same layout:
| Setting | Description |
|---|---|
Category enabled |
Spawn master switch. OFF: nothing from this category spawns as an extra, whatever the individual Spawn in level toggles say. ON: the individual toggles apply. OFF by default in carts and vehicle. |
Category show on map |
Map master switch (client-side). OFF: every item of this category is hidden from your map, whatever the individual Show on map toggles say. ON: the individual toggles apply. Only affects extras spawned by this mod. OFF by default in every category. |
SpawnChance |
% chance per spawn spot for this category (healthPack defaults to 0). |
UseShopPriceForItemSelection |
ON: cheaper items of this category appear more often. |
Spawn in level | <item> |
One toggle per item, all grouped together, in alphabetical order. |
Show on map | <item> |
One toggle per item, all grouped together, in alphabetical order. Client-side. |
Example, simplified:
[Category: grenade]
Category enabled = true
Category show on map = false
SpawnChance = 0.5
UseShopPriceForItemSelection = true
Spawn in level | Duct Taped Grenades = true
Spawn in level | Grenade = true
Spawn in level | Human Grenade = false
Show on map | Duct Taped Grenades = true
Show on map | Grenade = true
Show on map | Human Grenade = true
Common recipes
- No more extra weapons: set
Category enabled = falseinCategory: gun(orSpawnChance = 0). Weapons you buy are not affected. - Hide a whole category from your map: set
Category show on map = false. Only the extras of this mod are hidden; the starting cart and items you bought keep their icons. - Only a few specific grenades: keep
Category enabled = trueand turn off theSpawn in leveltoggles you don't want. - Cleaner map, item by item: set
Category show on map = trueand turn off theShow on maptoggles of the items you don't care about. - Make everything rarer or more common: change each category's
SpawnChance, or lowerLevelScalingMultiplier. - Guarantee some loot: raise
MinItemsPerLevel.
Multiplayer
- The host spawns the items and controls spawn settings and the extraction mechanic.
- Map options are client-side. Each player's own config decides which icons they see. The host marks the extras it spawns so every client knows which items the map options apply to.
- Installing the mod on every player is recommended so everyone can use the map options.
Troubleshooting
The category sections are missing from my config. Start the game and enter the lobby (the config does not exist before that), then reopen the config. If they are still missing, start a match once. They are generated from the game's item list, which exists once the game reaches the lobby.
An item does not appear.
Turn on DebugMode and check BepInEx/LogOutput.log. Every spawn spot logs one of these tags:
| Tag | Meaning |
|---|---|
[SPAWN OK] |
Item spawned (with its name, category and position). |
[SKIP] |
The spot was not used, with the reason: failed chance roll, category off, spot already used, and so on. |
[NO ITEM] |
A category won the roll but its pool was empty (all items disabled, filtered by value, or category off). |
[SPAWN FAIL] |
An item was chosen but could not be created, with the cause. |
[CAP] / [MIN] |
MaxItemsPerLevel reached / MinItemsPerLevel fill started. |
[SUMMARY] |
Totals for the level: spawned, skipped, failed, and which items. |
[VERIFY] |
Check made 3 seconds after spawning: items that disappeared, deactivated or fell out of the map. |
[MAP] |
A map icon was hidden. |
[DROP] / [DROP FAIL] |
Enemy drops: what dropped, where, or why it did not. |
[EXTRACT] |
What happened to each extra when an extraction completed (including the purchased count before and after). |
[SAVE] |
The items the game considers purchased, at level start and after each extraction. |
Spawn chances feel low.
The defaults are intentionally rare, since they are per spawn spot. Raise SpawnChance on the categories you want to see more.
An extra vanished at the end of the level. Extras are only kept if you bring them into the extraction zone when the extraction completes (see Extraction mechanic).
I want a clean config.
Close the game, delete REPO_All_Shop_Items_in_Level.cfg and start the game again.
Compatibility
- Works with modded shop items: they are categorized by the game's own item type and get their own toggles.
- This mod keeps the plugin ID of the original All Shop Items In Level mod, so do not install both at the same time. Remove the original first.
- Updating from 1.0.x: your old settings are moved to the new layout automatically the first time the game reaches the lobby. What you changed is kept; what you never touched takes the new defaults. Settings of the original mod are not carried over.
Credits
Based on the original ALL Shop Items spawn in Level mod by papucsevo. Thanks to the original author for the idea and the foundation.
Support
Found a bug? Send a message on Discord to Uristides and include your BepInEx/LogOutput.log with DebugMode = true, since it usually shows exactly what happened.
Versión en español
Shop Items In Level +
¿Te gusta el mod? Un me gusta en la página del mod ayuda muchísimo, y cada donación se agradece enormemente. ¡Gracias!
¿Encontraste un problema? Escríbeme por Discord a Uristides (incluye tu
BepInEx/LogOutput.log).
IMPORTANTE: el archivo de configuración no existe hasta que inicies el juego
El mod crea su configuración solo después de abrir el juego y entrar a un lobby (créalo o hostéalo; no hace falta jugar un nivel). Hasta entonces, tu gestor de mods no mostrará las secciones de categorías (ni ninguna configuración en una instalación nueva). Abre el juego, entra al lobby y después abre la configuración. Si las secciones siguen sin aparecer, inicia una partida una vez: siempre se crean cuando empieza el primer nivel.
Los items de la tienda (armas, granadas, minas, carros, mejoras, drones, herramientas, rastreadores y más) ahora pueden aparecer como extras en cada nivel, igual que los objetos de valor. Tú decides con qué frecuencia sale cada categoría, qué items concretos están permitidos y cuáles se muestran en tu mapa. Los extras que lleves al punto de extracción se vuelven permanentes, como si los hubieras comprado.
Todo se genera automáticamente a partir de la lista de items del propio juego, así que los items de otros mods también se detectan y reciben sus propias opciones.
El host controla el spawn. Las opciones de aparición de items solo importan para el host (o en solitario). Las opciones del mapa son del cliente, así que cada jugador decide qué ve en su propio mapa.
Características
- Items de tienda como extras del nivel. Se reparten por los puntos libres de cada nivel, además de los objetos de valor normales.
- Una sección de configuración por categoría de item (
carts,drone,grenade,gun,launcher,melee,mine,orb,power_crystal,tool,tracker,vehicle,item_upgrade,healthPack, ...). Las categorías salen directamente de los tipos de item del juego, así que cualquier tipo nuevo aparece solo.cartsagrupa el C.A.R.T. y el C.A.R.T. de bolsillo. - Probabilidad de aparición por categoría, para que puedas hacer las granadas comunes y los vehículos raros.
- Dos interruptores maestros por categoría.
Category enabledapaga la aparición de una categoría completa con un clic, yCategory show on mapoculta todos sus iconos del mapa. Déjalos encendidos si prefieres elegir item por item. - Opciones por item, en orden alfabético y con nombres legibles:
Spawn in level | <item>: permite o prohíbe ese item como extra.Show on map | <item>: muestra u oculta el icono de ese item en el mapa (del cliente).
- La extracción guarda tus extras. Lleva un extra al punto de extracción y, cuando la extracción termina, queda registrado como compra permanente. Desaparece el resto de esa ronda y vuelve en el camión en el siguiente nivel. Los extras que dejes atrás se pierden.
- Los iconos ocultos se revelan solos. Un extra oculto de tu mapa aparece en él cuando lo ves de cerca o lo recoges / equipas (opcional, del cliente).
- Los items baratos aparecen más seguido (opcional, por categoría).
- Escalado por nivel. Las probabilidades suben con cada piso que completas.
- Filtros de valor mínimo y máximo y mínimo y máximo de extras por nivel.
- Drops de enemigos personalizables. Elige qué enemigos sueltan qué items y con qué probabilidad, con una línea de reglas sencilla (
EnemyLootRules). Los drops de enemigos son items normales: ignoran las opciones de aparición y siempre se ven en el mapa, como un item comprado. - Avisos de aparición rara en la consola para items caros.
- Modo debug detallado que te dice exactamente por qué un item apareció o no.
Qué hacen las opciones de spawn (y qué no)
Las opciones Spawn in level, el interruptor maestro Category enabled y SpawnChance solo controlan los extras que reparte este mod por los niveles. Nunca tocan:
- los items que compras en la tienda,
- el carro inicial ni ningún item que el juego coloque por sí mismo,
- los items que sueltan los enemigos (siguen
EnemyLootRules), - los items que ya están en tu inventario o en el camión.
Por eso, apagar "Cart" o "Gun" evita que aparezcan carros y armas extra en los niveles, pero no quita el carro con el que empiezas ni el arma que compraste.
Las opciones del mapa solo ocultan el icono del mapa, y solo de los extras que genera este mod. El item en sí nunca se desactiva ni se elimina, y el carro inicial, los items comprados y cualquier otro item que coloque el juego conservan siempre su icono.
Cómo funciona el spawn
Para cada punto libre que el juego preparó para objetos de valor:
- Cada categoría activa que corresponde a ese tipo de punto tira su propia
SpawnChance(en orden aleatorio). Las mejoras y los drones usan sus propios tipos de punto; todas las demás categorías comparten los puntos restantes. - La primera categoría que acierta elige un item de su grupo.
- El grupo solo contiene items que pasan los filtros de valor y cuya opción
Spawn in levelestá activada. - Si
UseShopPriceForItemSelectionestá activado para esa categoría, los items más baratos se eligen con más frecuencia. - El host genera el item y lo marca para poder guardarlo en la extracción.
Probabilidades por defecto (por punto de aparición, antes del escalado por nivel):
| Categoría | SpawnChance por defecto |
|---|---|
| Todas las categorías | 0.5 % |
Con el escalado por nivel activado, la probabilidad final es probabilidad × (1 + pisosCompletados × multiplicador), con un tope de 100 %.
Todas las categorías, healthPack incluida, tienen su propio SpawnChance. Ponlo en 0 si no quieres nunca esa categoría repartida por el nivel. carts y vehicle además empiezan con Category enabled = false, así que no aparecen hasta que los actives. Los drops de enemigos se configuran aparte, en 4_EnemyLoot.
Opciones del mapa
Show on map | <item>yCategory show on mapocultan el icono del mapa de los extras generados por este mod. No se toca nada más: el item sigue en el mundo, y el carro inicial, los items comprados y los que coloca el juego conservan siempre su icono.- Todas las categorías empiezan con
Category show on map = false, así que los extras no aparecen en tu mapa hasta que los encuentras. Actívalo para verlos desde el inicio, o usa las opciones individualesShow on map. - Con
RevealHiddenOnMap = true(por defecto), un icono oculto vuelve en cuanto ves el item (a menos deRevealDistancemetros, en pantalla y sin nada que lo tape), lo recoges o lo equipas. Después se queda en tu mapa, incluso si lo guardas en el inventario y lo vuelves a soltar. - La comprobación corre dos veces por segundo y solo mientras haya iconos ocultos, así que casi no consume. Pon
RevealHiddenOnMap = falsepara mantener los iconos ocultos para siempre.
Mecánica de extracción
- Recoge un extra (granada, arma, mejora...) y llévalo a un punto de extracción.
- Déjalo dentro de la zona de extracción y completa la extracción.
- Cuando la extracción termina, todos los extras dentro de esa zona se guardan como compra permanente y se quitan del nivel.
- En el siguiente nivel aparecen en el camión como cualquier item que hayas comprado.
Ten en cuenta:
- Solo se ven afectados los extras generados por este mod. Tus items comprados nunca se consumen.
- Cada item cuenta por separado: tres granadas en la zona son tres granadas guardadas.
- Si hay varios puntos de extracción, solo se toman los items cercanos al que acaba de terminar.
- Los extras que se queden en el nivel, o que saques de la zona, no se guardan.
- Con
DebugModeactivado, el log muestra qué pasó con cada extra (líneas[EXTRACT]). - Si un item ya llegó al límite del juego para el camión y
RespectMaxAmountestá activado, el extra no se consume: se queda en la zona para que lo sigas usando esta ronda, y aparece un mensaje. - Puedes apagar toda la mecánica con
ExtractionSavesItems = false.
Inventario y límites de items
- Con
SaveInventoryItems = true(por defecto), los extras que llevas en el inventario al completar un nivel se registran igual que los extraídos. Vuelven en el camión (el juego puede devolverlos directamente a tu inventario). - Aparece una etiqueta pequeña bajo cada casilla del inventario que tiene un extra de este mod:
REGISTEREDen verde si se conservará,CONTRABANDen rojo si no (porqueSaveInventoryItemsestá apagado, o porque se alcanzó el límite del item).InventoryMarkeractiva o apaga las etiquetas y ambos textos se pueden cambiar. Las etiquetas son del cliente y usan tu propia configuración; solo el host conoce los límites exactos, así que los demás jugadores ven una etiqueta basada solo enSaveInventoryItems. Los items en sí nunca se modifican. - El juego solo devuelve tantas copias de un item como permite su propio límite y como espacios libres tiene el camión para su tamaño. Con
RespectMaxAmount = true(por defecto), un extra que no volvería no se consume en la extracción, así que puedes seguir usándolo esta ronda, y aparece un mensaje en pantalla. Por ejemplo, si metes 7 orbes iguales y solo cabe 1, se lleva solo 1 y los otros 6 se quedan. Confalse, el límite del item se sube para que puedan volver todas las copias, pero los espacios del camión siguen aplicando.
Loot de enemigos
Cuando un enemigo muere y suelta objetos de valor, este mod también puede hacerlo soltar items de tienda. Lo que suelta se controla con una sola línea, EnemyLootRules, en 4_EnemyLoot:
*: @healthPack=30
- Las reglas se separan con
;. Se usa la primera regla cuyo enemigo coincida. - Las palabras del enemigo (antes de los
:) son partes del nombre del enemigo, sin distinguir mayúsculas, separadas por|.*coincide con cualquier enemigo. - Los items (después de los
:) se separan con,. Cada uno es el nombre exacto del item como aparece en las secciones de categorías (por ejemploSmall Health Pack (25)), o@categoríapara soltar un item al azar de esa categoría (@drone,@healthPack,@item_upgrade,@gun,@carts...). - La probabilidad va después de
=, de 0 a 100, con punto para los decimales (0.5). Cada item tira su propia probabilidad, así que un enemigo puede soltar varios items. Sin=probabilidadvale 100. - Máximo por enemigo:
MaxDropsPerEnemy(por defecto1) limita cuántos items puede soltar un enemigo a la vez. Si aciertan más tiradas, las sobrantes se descartan; los que se conservan se eligen al azar.
La línea por defecto significa: todo enemigo que suelta objetos de valor tiene un 30 % de probabilidad de soltar además un botiquín.
Ejemplos:
gnome: Health Upgrade=25, @healthPack=50; *: Small Health Pack (25)=20
boss|large: @gun=30, @grenade=60, Large Health Pack (100)=100; *: @healthPack=10
Los drops de enemigos son items normales: ignoran Category enabled, Spawn in level y Show on map, así que siempre aparecen en el mapa como un item comprado en la tienda. Si un nombre o categoría de la línea está mal, el log muestra un aviso con lo que no se encontró.
Configuración
El archivo es BepInEx/config/REPO_All_Shop_Items_in_Level.cfg. Puedes editarlo con el editor de configuración de tu gestor de mods (Gale, r2modman) o con cualquier editor de texto.
Debes abrir el juego y entrar al lobby una vez antes de editar: la configuración no se crea antes. Las secciones de categorías se crean a partir de la lista de items del juego, que solo existe cuando el juego llega al lobby (no hace falta empezar una partida). Después aparecen en el archivo y en tu gestor de mods. Hasta entonces el archivo solo tiene las secciones generales, o no existe todavía en una instalación nueva.
Secciones generales (aparecen arriba)
| Sección | Opción | Por defecto | Descripción |
|---|---|---|---|
0_General |
ExtractionSavesItems |
true |
Los extras llevados al punto de extracción se vuelven permanentes. |
0_General |
RevealHiddenOnMap |
true |
(Cliente) Los extras ocultos de tu mapa aparecen en él cuando los ves, los recoges o los equipas. |
0_General |
RevealDistance |
8 |
(Cliente) A qué distancia (metros) y a la vista debe estar un extra oculto para revelarse. |
0_General |
SaveInventoryItems |
true |
Los extras que llevas en el inventario al completar un nivel se conservan y vuelven en el camión. |
0_General |
RespectMaxAmount |
true |
Respeta cuántas copias puede devolver el juego en el camión (límite del item y espacios libres del camión). Un extra que no volvería no se consume en la extracción. |
0_General |
InventoryMarker |
true |
(Cliente) Etiqueta pequeña bajo las casillas del inventario que tienen extras de este mod. |
0_General |
InventoryMarkerKeptText |
REGISTERED |
(Cliente) Etiqueta verde para un extra que se conservará. |
0_General |
InventoryMarkerLostText |
CONTRABAND |
(Cliente) Etiqueta roja para un extra que no se conservará. |
0_General |
DebugMode |
false |
Registro detallado de cada decisión de spawn, drop, icono del mapa y extracción. |
1_Filters |
MinItemValue |
0 |
Ignora items más baratos que este valor (0 = desactivado). |
1_Filters |
MaxItemValue |
0 |
Ignora items más caros que este valor (0 = desactivado). |
1_Filters |
MaxItemsPerLevel |
0 |
Máximo de extras por nivel (0 = sin límite). |
1_Filters |
MinItemsPerLevel |
0 |
Mínimo de extras por nivel. Si no se alcanza, se rellenan puntos libres (0 = desactivado). |
2_LevelScaling |
EnableLevelScaling |
false |
Las probabilidades suben al completar pisos. |
2_LevelScaling |
LevelScalingMultiplier |
0.05 |
Bonus por piso completado (0.05 = +5 % por piso). |
3_Announce |
AnnounceRareItems |
false |
Muestra un mensaje en la consola cuando aparece un item caro. |
3_Announce |
AnnounceValueThreshold |
5000 |
Valor mínimo del item para que se anuncie. |
4_EnemyLoot |
EnemyLootEnabled |
true |
Los enemigos que mueren y sueltan objetos de valor también pueden soltar items de tienda. |
4_EnemyLoot |
EnemyLootRules |
*: @healthPack=30 |
Qué enemigo suelta qué items, y con qué probabilidad. |
4_EnemyLoot |
MaxDropsPerEnemy |
1 |
Máximo de items que un enemigo puede soltar a la vez. |
Secciones de categoría (Category: <tipo>)
Todas las categorías tienen la misma estructura:
| Opción | Descripción |
|---|---|
Category enabled |
Interruptor maestro de aparición. Apagado: nada de esta categoría aparece como extra, sin importar las opciones individuales Spawn in level. Encendido: se aplican las opciones individuales. Viene apagado en carts y vehicle. |
Category show on map |
Interruptor maestro del mapa (del cliente). Apagado: todos los items de esta categoría se ocultan de tu mapa, sin importar las opciones individuales Show on map. Encendido: se aplican las opciones individuales. Solo afecta a los extras que genera este mod. Viene apagado por defecto en todas las categorías. |
SpawnChance |
% de probabilidad por punto de aparición para esta categoría (en healthPack vale 0 por defecto). |
UseShopPriceForItemSelection |
Encendido: los items más baratos de esta categoría aparecen más seguido. |
Spawn in level | <item> |
Una opción por item, todas agrupadas, en orden alfabético. |
Show on map | <item> |
Una opción por item, todas agrupadas, en orden alfabético. Del cliente. |
Ejemplo simplificado:
[Category: grenade]
Category enabled = true
Category show on map = false
SpawnChance = 0.5
UseShopPriceForItemSelection = true
Spawn in level | Duct Taped Grenades = true
Spawn in level | Grenade = true
Spawn in level | Human Grenade = false
Show on map | Duct Taped Grenades = true
Show on map | Grenade = true
Show on map | Human Grenade = true
Recetas comunes
- Que no salgan más armas extra: pon
Category enabled = falseenCategory: gun(oSpawnChance = 0). Las armas que compres no se ven afectadas. - Ocultar una categoría completa de tu mapa: pon
Category show on map = false. Solo se ocultan los extras de este mod; el carro inicial y los items que compraste conservan sus iconos. - Solo algunas granadas concretas: deja
Category enabled = truey apaga las opcionesSpawn in levelde las que no quieras. - Mapa más limpio, item por item: pon
Category show on map = truey apaga las opcionesShow on mapde los items que no te interesan. - Hacer todo más raro o más común: cambia el
SpawnChancede cada categoría, o bajaLevelScalingMultiplier. - Garantizar algo de botín: sube
MinItemsPerLevel.
Multijugador
- El host genera los items y controla las opciones de aparición y la mecánica de extracción.
- Las opciones del mapa son del cliente. La configuración de cada jugador decide qué iconos ve. El host marca los extras que genera para que cada cliente sepa a qué items se aplican las opciones del mapa.
- Se recomienda que todos los jugadores instalen el mod para poder usar las opciones del mapa.
Solución de problemas
Faltan las secciones de categorías en mi configuración. Abre el juego y entra al lobby (la configuración no existe antes); luego vuelve a abrir la configuración. Si siguen sin aparecer, inicia una partida una vez. Se generan a partir de la lista de items del juego, que existe cuando el juego llega al lobby.
Un item no aparece.
Activa DebugMode y revisa BepInEx/LogOutput.log. Cada punto de aparición registra una de estas etiquetas:
| Etiqueta | Significado |
|---|---|
[SPAWN OK] |
El item apareció (con su nombre, categoría y posición). |
[SKIP] |
No se usó el punto, con el motivo: falló la tirada de probabilidad, categoría apagada, punto ya usado, etc. |
[NO ITEM] |
Una categoría ganó la tirada, pero su grupo estaba vacío (todos los items desactivados, filtrados por valor, o categoría apagada). |
[SPAWN FAIL] |
Se eligió un item pero no se pudo crear, con la causa. |
[CAP] / [MIN] |
Se alcanzó MaxItemsPerLevel / empezó el relleno de MinItemsPerLevel. |
[SUMMARY] |
Totales del nivel: generados, omitidos, fallidos y qué items. |
[VERIFY] |
Comprobación 3 segundos después del spawn: items que desaparecieron, se desactivaron o cayeron fuera del mapa. |
[MAP] |
Se ocultó un icono del mapa. |
[DROP] / [DROP FAIL] |
Drops de enemigos: qué soltaron y dónde, o por qué no lo hicieron. |
[EXTRACT] |
Qué pasó con cada extra cuando terminó una extracción (incluye el contador de comprados antes y después). |
[SAVE] |
Los items que el juego considera comprados, al empezar el nivel y tras cada extracción. |
Las probabilidades se sienten bajas.
Los valores por defecto son raros a propósito, ya que son por punto de aparición. Sube el SpawnChance de las categorías que quieras ver más.
Un extra desapareció al terminar el nivel. Los extras solo se conservan si los llevas a la zona de extracción cuando la extracción termina (ver Mecánica de extracción).
Quiero una configuración limpia.
Cierra el juego, borra REPO_All_Shop_Items_in_Level.cfg y vuelve a abrirlo.
Compatibilidad
- Funciona con items de tienda de otros mods: se clasifican por el tipo de item del juego y reciben sus propias opciones.
- Este mod conserva el ID de plugin del mod original All Shop Items In Level, por lo que no instales ambos a la vez. Quita primero el original.
- Si actualizas desde la 1.0.x: tu configuración anterior se traslada sola al nuevo formato la primera vez que el juego llega al lobby. Lo que cambiaste se conserva; lo que nunca tocaste toma los nuevos valores por defecto. La configuración del mod original no se traslada.
Créditos
Basado en el mod original ALL Shop Items spawn in Level de papucsevo. Gracias al autor original por la idea y la base.
Soporte
¿Encontraste un error? Escríbeme por Discord a Uristides e incluye tu BepInEx/LogOutput.log con DebugMode = true, ya que normalmente muestra exactamente qué pasó.
