R.E.P.O.
Install with App

Details

Latest version
1.1.0
Last Updated
First Uploaded
Downloads
15.4K
Likes
1
Size
126KB
Dependants

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. carts groups 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 enabled turns off the spawning of a whole category in one click, and Category show on map hides 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:

  1. 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.
  2. The first category that succeeds picks one item from its pool.
  3. The pool only contains items that pass the value filters and whose Spawn in level toggle is ON.
  4. If UseShopPriceForItemSelection is ON for that category, cheaper items are picked more often.
  5. 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> and Category show on map hide 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 individual Show on map toggles.
  • With RevealHiddenOnMap = true (default), a hidden icon comes back as soon as you see the item (within RevealDistance meters, 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 = false to keep icons hidden for good.

Extraction mechanic

  1. Pick up an extra (grenade, gun, upgrade...) and carry it to an extraction point.
  2. Leave it inside the extraction zone and complete the extraction.
  3. When the extraction finishes, every extra inside that zone is saved as a permanent purchase and removed from the level.
  4. 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 DebugMode on, the log shows what happened to every extra ([EXTRACT] lines).
  • If an item already reached the game's limit for the truck and RespectMaxAmount is 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 REGISTERED if it will be kept, red CONTRABAND if it will not (because SaveInventoryItems is off, or because the item's limit is reached). InventoryMarker turns 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 on SaveInventoryItems alone. 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. With false, 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 example Small Health Pack (25)), or @category to 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 =chance the chance is 100.
  • Maximum per enemy: MaxDropsPerEnemy (default 1) 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 = false in Category: gun (or SpawnChance = 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 = true and turn off the Spawn in level toggles you don't want.
  • Cleaner map, item by item: set Category show on map = true and turn off the Show on map toggles of the items you don't care about.
  • Make everything rarer or more common: change each category's SpawnChance, or lower LevelScalingMultiplier.
  • 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. carts agrupa 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 enabled apaga la aparición de una categoría completa con un clic, y Category show on map oculta 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:

  1. 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.
  2. La primera categoría que acierta elige un item de su grupo.
  3. El grupo solo contiene items que pasan los filtros de valor y cuya opción Spawn in level está activada.
  4. Si UseShopPriceForItemSelection está activado para esa categoría, los items más baratos se eligen con más frecuencia.
  5. 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> y Category show on map ocultan 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 individuales Show on map.
  • Con RevealHiddenOnMap = true (por defecto), un icono oculto vuelve en cuanto ves el item (a menos de RevealDistance metros, 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 = false para mantener los iconos ocultos para siempre.

Mecánica de extracción

  1. Recoge un extra (granada, arma, mejora...) y llévalo a un punto de extracción.
  2. Déjalo dentro de la zona de extracción y completa la extracción.
  3. Cuando la extracción termina, todos los extras dentro de esa zona se guardan como compra permanente y se quitan del nivel.
  4. 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 DebugMode activado, 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 RespectMaxAmount está 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: REGISTERED en verde si se conservará, CONTRABAND en rojo si no (porque SaveInventoryItems está apagado, o porque se alcanzó el límite del item). InventoryMarker activa 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 en SaveInventoryItems. 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. Con false, 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 ejemplo Small Health Pack (25)), o @categoría para 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 =probabilidad vale 100.
  • Máximo por enemigo: MaxDropsPerEnemy (por defecto 1) 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 = false en Category: gun (o SpawnChance = 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 = true y apaga las opciones Spawn in level de las que no quieras.
  • Mapa más limpio, item por item: pon Category show on map = true y apaga las opciones Show on map de los items que no te interesan.
  • Hacer todo más raro o más común: cambia el SpawnChance de cada categoría, o baja LevelScalingMultiplier.
  • 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ó.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.