YARM - Resource Monitor

by Narc

This mod helps you to keep track of your mining sites, with useful data such as the percent mined, and estimated time to depletion.

Utilities
2 days ago
0.14 - 2.0
141K
Mining
Owner:
Narc
Source:
https://github.com/narc0tiq/YARM
Homepage:
https://github.com/narc0tiq/YARM
License:
MIT
Created:
8 years ago
Latest Version:
1.0.3 (2 days ago)
Factorio version:
0.14 - 2.0
Downloaded by:
141K users

Alternatives

This mod is very old and not all of it works as it should, at least not all the time. We also do not often have the time to fix issues so they may hang around for... years! Which has happened quite a few times.

Therefore, we would suggest taking a look at Resource Monitor as a mod that so far looks like a nice upgrade on YARM. Its author has discussed some of the differences and pros and cons on its forum.


The README

The information below is copied from the master README; it may go out of date, so it's better to check the latest version from Github if the below doesn't seem to match. And please, raise an issue or ask a question if you notice the documentation isn't helping enough!


How does it work?

Once the mod is installed, using it is relatively simple:

  • Use the shortcut button "Resource monitor" to drag-select at least one
    ore entity in a patch (like using a blueprint).
    • Can't find the shortcut button? You may need to add it to the shortcut
      bar
      .
    • If everything went well, you should now see a blue overlay showing up on
      top of the ore(s) you clicked, and growing as YARM finds their neighbours,
      and their neighbours, etc., until the entire ore patch has been scanned.
    • After the scan, you have 2 seconds to select another ore of the same kind,
      which will be added to the same site.
      • If you tap the ground instead, you will cancel the site creation.
      • If you tap a different kind of ore instead, you will instantly create
        the site and start a new one on the other ore.
    • Upon the expiry of those 2 seconds, the site will be created and a
      message will be shown informing you of its name and the amount of ore found
      in it.
      • Sites can be renamed at any time! The default name is just a
        suggestion.

By default, YARM shows only sites that are about to expire, i.e. less than
X hours runtime remaining. (Estimated through a combination of current speed and
lifetime depletion.) In the mod settings this can be tuned. There are buttons
available to change the filter to either "no sites" (which never shows any sites
at all!) or "all sites" (which never hides them).

Each site has some buttons associated with it:

  • The 'ab|' button allows you to add a name tag for the site. The name tag will
    replace the index in the display.
    • Note: Names may not be longer than 64 characters!
    • However, [rich-text=tags] count as only 3 characters
  • The 'eye' button opens the map to the center of the ore site.
  • The 'X' button allows you to delete the site. When first clicked, it turns
    red; click it again within 2 seconds to confirm deletion, or leave it alone to
    cancel it.
  • The '+' button allows you to expand an existing site. Click the '+' for the
    site you want to expand, then use the marker tool to select the new ore site
    you want to add to the existing monitor. Sites are not renamed by this process.
    • NB: For ease of use, the '+' button also activates the resource
      monitoring marker shortcut.
    • Pressing the '+' while it's red (which indicates addition in progress)
      will finish the adding process (and update the site, if it's changed).
    • While expanding a site, a blue overlay (identical to the one used when
      creating the site in the first place) will highlight the ores that comprise
      the site currently. For performance reasons, the overlay appears gradually
      rather than all at once.

Sites are bound to forces (i.e., teams), so any sites you add will be visible
to your teammates.

Endless resources (by default, oil, but mods exist for others) are supported;
they are displayed as "entities x yield percentage" where the yield is an
average of all the entities on the site. The depletion indicates how much this
average yield goes down per minute. The estimated time indicates when the
average yield is expected to hit its minimum value.

Translation notes

If you want to contribute to localizing (translating) YARM, we are now part of
the Factorio mods localization project on Crowdin.

Instructions can be found here in their README.

Many thanks for

  • The major effort by drs9999 to create
    the original Resource Monitor.
  • The similarly-major efforts of jorgenRe and @L0771 to create
    the 0.12 unofficial update.
  • Excellent suggestions for new behaviour from @cpw, @KaneHart, and several
    members of the #factorio IRC on espernet.
  • Continuous Integration by CircleCI:
  • Graphics by Meppi on the Factorio forums: https://forums.factorio.com/viewtopic.php?p=146209#p146209
  • Major performance enhancements by @Afforess
  • Updating assistance by @Bisa
  • External interface additions by @Choumiko and @afex
  • The Russian translation by RikkiLook
  • The Hebrew translation by JoCKeR-IL
  • German translation by luma88
  • Configuration assistance by @Martok88
  • Italian translation by futuroattore86
  • Chinese translation by @71e6fd52 and @muink
  • Japanese translation by @shelaf
  • Ukrainian translation by @MetenBouldry
  • More updating assistance by @kylewill0725
  • Other-mod-friendly patches by @JonasJurczok
  • Resource monitor shortcut graphics by @npc-strider (aka morley376)
  • Sorting implementation by @okradonkey
  • The Factorio Discord, especially Factorio devs helping in #mod-making (especially @Bilka, @Klonan, @Rseding91)
  • Smoothed ore-per-minute calculation by @wchristian
    • With prettification from @AndrewSav
  • Alphabetical site sorting by @mgkr
  • Multiple changes and fixes by @perobertson
  • GVV compatibility by @JasonLandbridge
  • SpaceEx compatibility patch by @ExterminatorX99
  • Estimate calculations by @Kingdud (with apologies for taking over a year to test)
    • But it will need a bit more fixing to prevent corrupting saves. If you have v0.8.206, please read this comment
  • SpaceEx explorer viewer patch by @oof2win2
  • Ore counts adjusted by mining productivity by @georgehank
    • With fixes by @EvilPLa
  • The aforementioned Factorio mod localization project
    for making my life incredibly easy! Thank you @dima74! Thank you all contributors!

Remote interface

YARM's remote interface is grown as needed; there are only a few functions currently:

  • remote.call("YARM", "reset_ui", player_name_or_index): destroys the target player's YARM UI, forcing it to be recreated (hopefully correctly) at the next UI update cycle (configurable, default 5 seconds).
  • remote.call("YARM", "set_filter", player_name_or_index, new_filter): provides programmatic hooks to change the active filter. The filter value may be 'none', 'warnings', or 'all' -- other values are unsupported. The previously active filter is returned.
  • remote.call("YARM", "get_filter", player_name_or_index): returns the given player's current filter (as above) without changing it.
  • remote.call("YARM", "get_on_site_updated_event_id"): returns the identifier for the on_site_updated event, detailed below. You should probably call this every time mods are initialized, as it is set in the main control.lua runtime.

Additionally, there is one event:

  • on_site_updated is periodically raised whenever a site's ore count and stats are brought up to date. The event contains:
    • force_name, the name of the force owning this site
    • site_name, the index of the site that just finished updating; site indexes are unique within a force
      • NB: before YARM 1.0, this was the unique name, which no longer exists
    • name_tag, the player-assigned name tag of the site (empty by default)
    • ore_type, the entity.name of the resource entities tracked in this site (e.g., crude-oil or iron-ore)
    • amount, the number of ore units remaining in the site
    • ore_per_minute, the number of ore units mined in a minute on this site, based on the number mined since the last update
    • remaining_permille, the ratio of ore remaining versus the initial amount from when the site was created
      • NB: permille is analogous to percent, but multiplied by 1000 instead of 100; its symbol is ‰
    • ore_type, the prototype name of the site's ore entity
    • etd_minutes, the number of minutes until the site is believed to be depleted

Visit the Github releases page for manual downloads, if you prefer them. I also would greatly appreciate that bug reports be filed as a new issue for greater visibility (promise you'll get quicker response, too).