Contains functions, icons, and sprites required by all Artisanal Reskins mods. Part of the Artisanal Reskins series.
Small changes concerning balance, gameplay, or graphics.
Version: 2.5.0
Date: 2026-11-09
Deprecated:
- This mod will be marked deprecated and will only receive bug fixes while Artisanal Reskins: Bob's Mods, Artisanal Reskins: Angel's Mods, and Artisanal Reskins: Compatibility are within the 2.5 minor version.
- It is retained for backwards compatibility with existing mods, providing the settings, triggers, and reskins global with all fields and methods.
- Any mods that rely on this mod must migrate to Artisanal Reskins: Sprite Utils, Artisanal Reskins: Assets API, or Artisanal Reskins: Framework, as appropriate.
Changes:
- Removed all reskinning operations performed by this mod; those steps have been migrated to the appropriate Artisanal Reskins mod.
- Removed mod support notifications for Angel's Industries, Angel's Exploration, Angel's Extended Smelting and Compression, Circuit Processing, Deadlock's Crating Machine, Intermodal Containers, Loader Redux, Miniloader, and Offshore P.U.M.P.S., which are not available for Factorio 2.1
- Added support notifications for Black Rubber Belts - Remastered, Deadlock's Stacking Beltboxes & Compact Loaders Continued, and Loaders Modernized: Integrations, in place of Deadlock's Stacking Beltboxes & Compact Loaders
Bugfixes:
- Fixed that the support notifications for Loaders Modernized and Miniloader (Redux) showed a missing locale key
- Fixed that `tiers.remove_tier_labels_from_icons` returned an empty array of removed tier labels instead of `nil` when no tier labels were present
Locale:
- Added localization for Swedish
Version: 2.4.2
Date: 2026-11-01
Changes:
- Revisions to support latest versions of the Asset mods, Sprite Utils
Version: 2.4.1
Date: 2026-07-20
Bugfixes:
- Fixed that the `api.version` functions did not correctly handle nil inputs
Version: 2.4.0
Date: 2026-07-19
Features:
- Updated for Factorio 2.1
Deprecated:
- Methods moved to Artisanal Reskins: Sprite Utils have been deprecated:
- `icons.empty_icon` -> `reskins-sprite-utils.icon.empty_icon`
- `icons.empty_technology_icon` -> `reskins-sprite-utils.icon.empty_icon`
- `icons.scale_icon` -> `reskins-sprite-utils.icon.scale_icon`
- `icons.clear_icon_from_prototype_by_reference` -> `reskins-sprite-utils.icon.prototype`
- `icons.clear_icon_from_prototype_by_name` -> `reskins-sprite-utils.icon.name`
- `icons.add_missing_icon_defaults` -> `reskins-sprite-utils.icon.add_missing_icon_defaults`
- `icons.add_missing_icons_defaults` -> `reskins-sprite-utils.icon.add_missing_icons_defaults`
- `icons.create_icon` -> `reskins-sprite-utils.icon.create_icon`
- `icons.create_technology_icon` -> `reskins-sprite-utils.icon.create_technology_icon`
- `icons.get_icon_from_prototype_by_reference` -> `reskins-sprite-utils.icon.get_icon_from_prototype`
- `icons.get_icon_from_prototype_by_name` -> `reskins-sprite-utils.icon.get_icon_from_named_prototype`
- `icons.assign_icons_to_prototype_and_related_prototypes` -> `reskins-sprite-utils.icon.assign_icons_to_prototype_and_related_prototypes`
- `icons.store_icon_for_deferred_assigment_in_stage` -> `reskins-sprite-utils.icon.store_icon_for_deferred_assignment_in_stage`
- `icons.assign_deferrable_icon` -> `reskins-sprite-utils.icon.assign_deferrable_icon`
- `icons.assign_icons_deferred_to_stage` -> `reskins-sprite-utils.icon.assign_icons_deferred_to_stage`
- `icons.combine_icons` -> `reskins-sprite-utils.icon.compose_icons`
- `icons.transform_icon` -> `reskins-sprite-utils.icon.transform_icon`
- `icons.add_icons_from_prototype_to_icons_by_reference` -> `reskins-sprite-utils.icon.add_icons_from_prototype_to_icons`
- `icons.add_icons_from_prototype_to_icon_by_reference` -> `reskins-sprite-utils.icon.add_icons_from_prototype_to_icon`
- `icons.add_icons_from_prototype_to_icons_by_name` -> `reskins-sprite-utils.icon.add_icons_from_prototype_to_icons_by_name`
- `icons.add_icons_from_prototype_to_icon_by_name` -> `reskins-sprite-utils.icon.add_icons_from_prototype_to_icon_by_name`
- `icons.add_icons_from_sources_to_icons` -> `reskins-sprite-utils.icon.add_icons_from_sources_to_icons`
- `icons.create_icons_from_sources` -> `reskins-sprite-utils.icon.create_icons_from_sources`
- `icons.create_and_assign_combined_icons_from_sources_to_recipe` -> `reskins-sprite-utils.icon.create_and_assign_combined_icons_from_sources_to_recipe`
- `prototypes.rescale_prototype` -> `reskins-sprite-utils.sprites.rescale_prototype`
- `prototypes.rescale_remnants_of_prototype` -> `reskins-sprite-utils.sprites.rescale_remnants_of_prototype`
- `sprites.create_sprite_from_icons` -> `reskins-sprite-utils.sprites.create_sprite_from_icons`
- `sprites.create_sprite_from_icon` -> `reskins-sprite-utils.sprites.create_sprite_from_icon`
- `sprites.make_4way_animation_from_spritesheet` -> `reskins-sprite-utils.sprites.make_4way_animation_from_spritesheet`
- `lib.RGBtoHSV` -> `reskins-sprite-utils.colors.rgba_to_hsva`
- `lib.RGBtoHSL` -> `reskins-sprite-utils.colors.rgba_to_hsla`
- `lib.HSVtoRGB` -> `reskins-sprite-utils.colors.hsva_to_rgba`
- `lib.HSLtoRGB` -> `reskins-sprite-utils.colors.hsla_to_rgba`
Version: 2.3.3
Date: 2026-01-03
Bugfixes:
- Fixed edge case where a startup error could occur when trying to defer setting an icon
- Fixed that the missing mod notification was not correctly resolving the pluralization locale string
Version: 2.3.2
Date: 2025-07-03
Features:
- Added Artisanal Reskins: Compatibility support notifications for Loaders Modernized and Miniloader (Redux).
Version: 2.3.1
Date: 2025-05-10
Locale:
- Removed outdated translations for changed locale strings.
Version: 2.3.0
Date: 2025-03-30
Features:
- Migration to Factorio 2.0!
- Added new `reskins.lib.tiers.get_tier(tier, prog_tier)` or `get_tier(tier)` function to get the tier number from a PrototypeTierValue or number, and optionally the progression tier number, based on the current setting.
Breaking Changes:
- Removed `icon_mipmaps` parameter from `api.icons.create_icon` method
- Removed `icon_mipmaps` parameter from `api.icons.create_technology_icon` method
- Removed `icon_mipmaps` parameter from `api.tiers.create_icon_with_tier_labels` method
- Removed all deprecated API functions
Version: 2.2.3
Date: 2024-08-03
Changes:
- Modified the handling of icon defaults: icon_size will now attempt to be coerced to a number, instead of throwing an exception.
- Starting in Factorio 2.0, icon_size can only be a number and will throw exceptions otherwise.
Version: 2.2.2
Date: 2024-05-04
Bugfixes:
- Fix that underscores were not considered valid characters in mod names when performing icon filename validation.
Version: 2.2.1
Date: 2024-05-04
Bugfixes:
- Fix that the table check in reskins.lib.append_tier_labels was lost in the deprecation.
- This restores the historical behavior, but mods should now use one of:
- reskins.lib.tiers.add_tier_labels_to_icon, taking an IconData object
- reskins.lib.tiers_add_tier_labels_to_icons, taking an array of IconData objects
- reskins.lib.create_icon_with_tier_labels, taking an icon filename and icon size and optional mipmaps, scale, shift and tint.
Version: 2.2.0
Date: 2024-05-04
Changes:
- Migrated custom color settings to `color-setting`, allowing for the use of a color picker in-game
- Significant rework of internals (ongoing), and the API is being reworked.
- Some old API functions have been marked deprecated, and will be removed in a future version.
- The entire old API surface will be deprecated (eventually), and removed in a later version.
Version: 2.1.7
Date: 2023-12-24
Bugfixes:
- Fixed that parsing of Angels pipe materials was not returning the expected file paths
Version: 2.1.6
Date: 2023-12-23
Features:
- Added `reskins.lib.add_tier_labels_to_entity`
- Added `reskins.lib.add_tier_labels_to_icons`
- Added `reskins.lib.get_icons_from_entity`
- Use to get a table of IconData from an entity, regardless of how an icon is formatted
- Added `reskins.lib.convert_icons_to_sprite`
- Added `reskins.lib.convert_icon_to_sprite`
- Added `reskins.lib.sprites.pipes.get_pipe_pictures`,
- Added `reskins.lib.sprites.pipes.get_pipe_to_ground_pictures`
- Added `reskins.lib.sprites.pipes.get_pipe_covers`
Changes:
- Added AAI Loaders to the list of supported mods
Deprecated:
- Deprecated `reskins.lib.append_tier_labels_to_vanilla_icon`, use `reskins.lib.add_tier_labels_to_entity`
- Deprecated `reskins.lib.append_tier_labels`, use `reskins.lib.add_tier_labels_to_icons`
- Note that the new function returns a modified icons table, it does not modify the table in place
- Deprecated `reskins.lib.pipe_pictures`, `reskins.lib.underground_pipe_pictures` and `reskins.lib.pipe_covers`
- New methods take only the material value as an input, the internal bits have been removed as parameters
Version: 2.1.5
Date: 2023-04-13
Changes:
- Added Intermodal Containers to the list of supported mods
Version: 2.1.4
Date: 2022-10-06
Changes:
- Updated transport belt icons to the latest version from Factorio
Version: 2.1.3
Date: 2022-04-03
Locale:
- Added partial localization for Italian
Version: 2.1.2
Date: 2022-03-19
Locale:
- Added localization for Ukrainian
Version: 2.1.1
Date: 2022-01-03
Changes:
- Marked incompatible with Bob's Mods: Alternate Textures
- Adjusted entity functions `chemical_plant` and `oil_refinery` to support custom tints and tier label behaviors
Version: 2.1.0
Date: 2022-01-03
Features:
- Added setting "Reskin interface" which supports visual changes and updates to the crafting tabs
- Pipes have been adjusted to have separate shadow layers, eliminating the shadow overlay with other entities when placing pipes
- Additions of EmmyLua-style documentation is ongoing
Changes:
- Moved reskinning of the standard Factorio pipe into this mod from Artisanal Reskins: Angel's mods
- Internal restructuring to make entity reskinning through functions globally available under `reskins.lib.apply_skin` is ongoing
Bugfixes:
- Fixed that `rescale_entity` was ignoring Types/Animation defined with stripes or filenames instead of filename
- Fixed that highlights were not being applied to transport belt remnants
Locale:
- Updated Russian localization
Version: 2.0.4
Date: 2021-12-12
Changes:
- Moved code within `composite_existing_icons` into separate function `composite_existing_icons_onto_icons_definition`
Version: 2.0.3
Date: 2021-09-29
Changes:
- Entity rescaling function now processes values attached to a `position` field
Version: 2.0.2
Date: 2021-09-14
Features:
- Added Nauvius Day to compatibility whitelist
Version: 2.0.1
Date: 2021-09-12
Changes:
- Revised handling for entities using `belt_animation_set`
Version: 2.0.0
Date: 2021-08-14
Features:
- Revisions to all color masks for all entities, items, and icons are ongoing
- Perceived brightness and contrast have been improved and oversaturation and color blowouts have been reduced for revised entities
- Added "Realistic Reactor Glow", "Extended Angels", and "Offshore P.U.M.P.S. and ground water" to the whitelist for compatibility notifications
- Added "Chevrons" as an additional option for tier labels
Changes:
- Revised tints to support new mask and highlights process; purple is now less pink
- Setting "Color intensity" with options "Vibrant" and "Soft", which controlled the blending mode for the highlights layer, has been disabled; the current blending mode is equivalent to "Vibrant". The setting may be enabled, see `settings-updates.lua` for details
- Removed function `reskins.lib.belt_mask_tint`
- Revised function `reskins.lib.rescale_minimachine` to support table-formatted parameters
- Revised flib migration module importing, additional functions `is_version_or_older`, `is_version`, and `is_version_or_newer` added at `reskins.lib.migration`
- Revised 16x16 pixel tier label mipmaps to improve clarity for distinguishing tiers
- Moved oil refinery icon updates to data-updates from data-final-fixes when using Angel's Petrochem Processing higher than version 0.9.19
Bugfixes:
- Fixed that attempting to play the train tutorial was blocked by a migration calling an undefined function
Locale:
- Removed default text from string mod setting descriptions for ease of translation and reduction of reduplication of translation effort; defaults are now appended automatically
Version: 1.1.7
Date: 2021-07-01
Features:
- Added function `return_technology_effect_icon`, which returns an IconData layer containing technology constant icons of the specified type at the specified scale and default positioning
Changes:
- Updated logistics technologies to latest sprites from base Factorio
- Revised tier 5 default color, reducing the brightness and saturation slightly to improve color mask results across a variety of entities
- Dropped support for ShinyBobGFX, ShinyAngelGFX
Version: 1.1.6
Date: 2021-05-02
Features:
- Added function `create_icon_variations`
Changes:
- Removed function `ore_icon_variations`
- Adjusted function `construct_icon` and `construct_technology_icon` to allow direct specification of base layer for multi-layer icons
Version: 1.1.5
Date: 2021-03-22
Bugfixes:
- Fixed that nuclear reactor working lights were not properly overridden
Version: 1.1.4
Date: 2021-03-13
Locale:
- Fixed an inconsistency with colons and Default coloring
- Added Chinese Traditional and Korean localizations, updated German localization
Version: 1.1.3
Date: 2021-03-04
Features:
- Moved handling for transport belts, splitters, and underground belts into this mod
- Added startup settings "Reskin entities", "Reskin equipment", "Reskin items and fluids" and "Reskin technologies" to control the scope of the various mod reskin toggles; by default the complete scope is enabled
- Added function `check_scope` to check the enabled scope and the given toggle setting and return the appropriate boolean or nil
- Added control logic to check for missing Artisanal Reskins mods and notify players once per save
- Added a setting "Display notifications" under Player settings to control whether update notifications display
Changes:
- Revised tint handling, separated transport belt tints into their own table, `reskins.lib.belt_tint_index`
- Revised how tints are indexed, allowing for direct reference by tier-number instead of a string
- Revised transport belt mask sprites to improve mask precision and color
- Consolidated settings-stage functions into `reskins.lib` global function host
- Internal code revisions such that reskinning is trigger-based
- Revised update notification handling; messages sent by this mod will be sent to admins only (since only they can make mod changes)
- Images are now losslessly compressed, instead of lossy; there is a modest increase in filesize
Bugfixes:
- Fixed that the concatenation routine to append the defaults for boolean settings did not handle LocalisedStrings properly
Locale:
- Added partial localization for Polish
Version: 1.1.2
Date: 2021-01-31
Locale:
- Added Russian localization
Version: 1.1.1
Date: 2020-12-25
Features:
- Added function `vertical_pipe_shadow` to place shadows at appropriate tile locations for pipes
- Added item icon for solder and silicon wafer, credit to Vigil for the sprites
- Added function `technology_equipment_overlay` for technology icons
- Now requires Factorio Library as a dependency
Changes:
- Adjusted the default color blue for tier 3 to better match the vanilla fast inserter
- Revised function `create_explosions_and_particles' such that `inputs.particles` is optional
- Equipment technology icons now align with Bob's mods and vanilla Factorio's overlay
Bugfixes:
- Fixed that inserting an equipment background into a single-layer icon did not properly transcribe the single-layer icon to an icons definition
Version: 1.1.0
Date: 2020-11-26
Features:
- Moved to Factorio 1.1
- Added a catch-all to ensure nuclear reactors working light is properly defined for Angels or Bobs
Changes:
- Added transcription of `draw_as_light` and `draw_as_glow` fields to `make_4way_animation_from_spritesheet`
- Added support for progression-based tier coloring for the oil refinery when playing with pure Angel's mods
- Added `make_glow` boolean to function `ore_icon_pictures` to generate lit ores
Bugfixes:
- Fixed that `icon_picture_extras` for icons with single layers was not properly handled by `construct_icon`
Version: 1.0.9
Date: 2020-11-20
Bugfixes:
- Fixed that `append_tier_labels_to_vanilla_items` did not allow for non-vanilla icon definitions
Locale:
- Updated Brazilian Portuguese, Czech and German localizations
Version: 1.0.8
Date: 2020-11-09
Bugfixes:
- Fixed that functions `append_tier_labels` and `append_tier_labels_to_vanilla_items` did not specify `icon_size` and `icon_mipmaps`
Version: 1.0.7
Date: 2020-11-08
Changes:
- Changed how default indicators for true/false setting descriptions are handled internally
- Added handling of custom Types/Animation parameter `vertically_oriented` to `make_4way_animation_from_spritesheet`
- Restored 6th tier labels in a temporary state, pending finalization on how pseudo-6th tier entities will be handled
- Changed 6th tier color from a pale violet to orange
- Moved item icons for lead and tin ores into this mod from Artisanal Reskins: Bob's Mods
Locale:
- Modified setting names and descriptions for consistency
- Updated Czech and German localizations, added Brazilian Portuguese localization
- Preliminary localizations for French (5% complete) and Polish (5% complete)
Version: 1.0.6
Date: 2020-10-04
Features:
- Added function `ore_icon_pictures`
Changes:
- Improved robustness of `composite_existing_icons` function
- Added ability to direct-insert `icon`/`icons` specifications using `composite_existing_icons`
Bugfixes:
- Fixed that the function `composite_existing_icons` produced icons in alt-view that were twice as large as intended
Version: 1.0.5
Date: 2020-09-21
Features:
- Added function `composite_existing_icons`
- Added functions `pipe_pictures`, `underground_pipe_pictures` and `pipe_covers`
Changes:
- Directories are now handled via the `mod` field of the `inputs` table, instead of the `directory` field
- Function `create_icons_from_list` can now handle the `mod` field of the `inputs` table
- Modified `create_icons_from_list` to allow specification of `icon_filename` directly
- Renamed tier-mapping style "Name" to "Traditional", updated description of the setting "Tier mapping" for clarity
- Moved several item icons from Artisanal Reskins: Bob's Mods to this mod
Bugfixes:
- Fixed that assigning an icon to a recipe that shared a name with an item would overwrite the item icon
- Fixed that `construct_icon` and `construct_technology_icon` were not properly porting an icon into an icons definition
Locale:
- Updated Czech and German localizations
Version: 1.0.4
Date: 2020-09-06
Features:
- Added setting `Color intensity`, affecting how bright structures, vehicles and robots appear in-world
Changes:
- Improved clarity of tier labels at 16px; removed tier labels for 6th tier
- Added support for `icon_picture_extras` in function `create_icons_from_list`
Locale:
- Added localization support for Czech
- Updated German localization
Version: 1.0.3
Date: 2020-08-24
Changes:
- Reverted `icon_size` and `icon_mipmaps` are now set to `nil` when `icons` is defined
Version: 1.0.2
Date: 2020-08-24
Changes:
- Added functionality to `create_icons_from_list` to be able to specify belt-type masks
- Adjusted bright spot in oil refinery highlight
- Added Bob's Assembling Machines and Angel's Petrochem as hidden dependencies to fix Oil Refinery reskinning issues
Locale:
- Added localization support for German
Version: 1.0.1
Date: 2020-08-15
Features:
- Added function `rescale_minimachine_technology`
Changes:
- `icon_size` and `icon_mipmaps` are now set to `nil` when `icons` is defined, and they are defined per-entry within `icons`
Bugfixes:
- Fixed that `tint_index` could not be defined under some edge cases
Version: 0.0.15
Date: 2020-08-11
Changes:
- Updated thumbnail
Bugfixes:
- Fixed startup error when starting without any of Bob's mods; calling a function that hadn't been defined yet
Version: 0.0.14
Date: 2020-08-07
Features:
- Added functions `assign_deferred_icons`, `rescale_minimachine`
Changes:
- Moved sprites, icons and code for oil refineries into this mod
- Revised icon assignment to optionally define `pictures`
- Increased scope of `create_icons_from_list` to handle all item/technology icon setups
- Changed how tier label setting icons were created and referenced; now uses sprite prototype
Version: 0.0.13
Date: 2020-08-03
Changes:
- Modified function `create_icons_from_list` to support inputs-defined icon deferral
Version: 0.0.12
Date: 2020-08-03
Features:
- Added function `clear_icon_specification`
- Added function `create_icons_from_list`
Changes:
- Modified function `store_icon` to handle data-updates as well
Version: 0.0.11
Date: 2020-07-15
Changes:
- Revised tier label icons, 32px is now more clear
- Revised how equipment icon backgrounds are handled
- Added support for a 6th tier, currently disabled
- Enhanced mod setting names and descriptions with rich text; tier labels are now displayed next to their respective option
- Renamed `ingredients`-based tier mapping to `progression`-based tier mapping, and improved the clarity of the setting description
- Removed files and code relating to target drone utility
Version: 0.0.10
Date: 2020-07-13
Features:
- Added customized version of `make_4way_animation_from_spritesheet`
Version: 0.0.9
Date: 2020-07-11
Changes:
- Code improvements; ensured variables are locally defined
- Tier labels now have borders on the left
- Tier labels have been improved at 16x and 8x pixel sizes for clarity
Version: 0.0.8
Date: 2020-07-06
Features:
- Added function `rescale_remnant`
Version: 0.0.7
Date: 2020-06-24
Changes:
- Reverted previous change in 0.0.6
- Sets icon_size and icon_mipmaps at every entry within an icons table when icons are assigned
Version: 0.0.6
Date: 2020-06-23
Changes:
- Unbrick mods that depend on icon field being present when icons was set by this mod
Version: 0.0.5
Date: 2020-06-22
Features:
- Added function `startup_setting` to handle validation of startup settings
Changes:
- Moved icon assignments to occur immediately, with method to re-apply if necessary
Version: 0.0.4
Date: 2020-06-18
Features:
- Added functions `construct_technology_icon` and `assign_technology_icon`
Changes:
- Set minimum version for Base to 0.18.32
- Consolidated `setup_masked_icon`, `setup_flat_icon`, `setup_standard_icon` into `construct_icon`
- Added support for `inputs.icon_background` in `construct_icon`
- Added support for `item-with-entity-data` to `assign_icons`
- Added `storage` parameter to function `store_icons` to allow for more control over where icons are stored
Version: 0.0.3
Date: 2020-06-11
Features:
- Added function `store_icons` to collate icon setup parameters for later assignment in data-final-fixes by originating mod
Changes:
- Added `homepage` property to info.json
Version: 0.0.2
Date: 2020-06-08
Changes:
- Renamed from `Function Library` to `Function Library`
- Added means to disable icon mask tinting in setup_masked_icon
Version: 0.0.1
Date: 2020-06-06
Features:
- Initial Beta Release