This is the current QualityPrototype: https://lua-api.factorio.com/latest/pro ... otype.html
This is my "work in progress" state of QualityPrototype (not yet scheduled for release, may be missing proper description):
Added QualityPrototype::crafting_machine_energy_usage_multiplier (defaults to "1" because that feels like a negative effect and quality usually is supposed to make stuff better).StephenB wrote: Wed Jun 18, 2025 8:08 am * `QualityPrototype.crafting_machine_power_usage_multiplier`
* `CraftingMachinePrototype.scale_energy_usage_with_quality` (boolean that makes crafting machine's power consumption scale in the same way as `QualityPrototype.crafting_machine_speed_multiplier`)
I do not want to be doing this because there exists ItemPrototype::fuel_acceleration_multiplier_quality_bonus and fuel_top_speed_multiplier_quality_bonus, so that would be a values conflict.MrSmoothieHuman wrote: Wed Jun 18, 2025 8:09 am reading over this i cant think of any values that I’d be dying to have, i think its been covered pretty well tbh - some values i know i’d like to have specifically are fuel_acceleration/fuel_top_speed multipliers?
A decision was that we do not want this level of precision in specifying quality effects. Reason is that this would make mod compatibility a lot more annoying (if one mod creates an entity and other creates a quality, who would be responsible of adding misssing values to the entity prototype?). This would also make defining every single entity more annoying. Quality was supposed to be a generic system where you do not need to go into each and every value to be specified. That was decided to be too much complexity.MrSmoothieHuman wrote: Wed Jun 18, 2025 8:09 am i would like to make the case to have these be prototype-specific, and not ‘generalised’ to the quality prototype if that’d be possible?
I am afraid i do not want to be doing that. Imagine having an ammo turret and a magazine. Would you expect the ammo to get quality buff to be disabled because of ammo opting out of quality, or because of turret opting out of quality? If a turret opts out of quality but ammo does not, why would turret deal extra damage based on quality of the ammo? This request is not well defined.MrSmoothieHuman wrote: Wed Jun 18, 2025 8:13 am i know this isnt a bonus or multiplier, but being able to turn off quality on a prototype completely would be a massive help - as due to some runtime scripting stuff, getting quality on some of my mods buildings actually makes them worse![]()
For now i have to reject this because vehicle is quite generic base type, there are locomotives, there are cars and there is spider vehicle, each one of them works differently and i cannot provide a value that works for some but not all of them.cackling.fiend wrote: Wed Jun 18, 2025 8:27 am [*]Vehicle accelleration (one could argue that fuel bonus should be enough)
For now i also have to reject this, thats is hard to explain without going into implementation details. Basically right now an agricultural tower prototype holds some precomputed values based on the tower radius: a vector of grow spot offsets. For radius to be affected by quality, the prototype would need to store multiple vectors of spot offsets, one for each quality. It is doable but it is a little bit more complex. First i want to focus on exposing values that are already affected by quality but are missing an entry point to adjust the modifier.cackling.fiend wrote: Wed Jun 18, 2025 8:27 am [*]Agricultural tower radius bonus (with a flag on the AgriculturalTowerPrototype)
Range of what? Artillery turret? Regular turret? Radar? Rail support? Agricultural tower? Lightning attractor? Capsule? Ammo? Attack?
So, what you are saying is that a turret can't use ammo of quality different from its own? Because otherwise it seems clear to me that it would work likewise.boskid wrote: Wed Jun 18, 2025 9:53 am I am afraid i do not want to be doing that. Imagine having an ammo turret and a magazine. Would you expect the ammo to get quality buff to be disabled because of ammo opting out of quality, or because of turret opting out of quality? If a turret opts out of quality but ammo does not, why would turret deal extra damage based on quality of the ammo? This request is not well defined.
that seems to be already what i want, so no worries then - i must have just missed it :]I do not want to be doing this because there exists ItemPrototype::fuel_acceleration_multiplier_quality_bonus and fuel_top_speed_multiplier_quality_bonus, so that would be a values conflict.
Added QualityPrototype::asteroid_collector_collection_radius_bonus.Bilka wrote: Wed Jun 18, 2025 9:38 am I request a property on qualityprototype for AsteroidCollectorPrototype::getCollectionRadius. Extra content for description: Performance warning: the navigation has to pre-calculate ranges for the highest tier collector possible, so you should keep this collection radius within reasonable values.
This looks like an interesting use case, i will take a look at this. So far i see some risks related to upgrade planner having certain amount of slots based on the configured target entity so it may involve code cleanup to make it possible.TsumikiMiniwa wrote: Wed Jun 18, 2025 10:18 am Also possibly CraftingMachinePrototype.quality_affects_module_slots (this has some precedent; see CargoWagonPrototype.quality_affects_inventory_size and LabPrototype.uses_quality_drain_modifier)
Hm... this shares some limitation similar to agricultural tower, will have to take a look at radius visualization to render range larger than prototype.Galdoc wrote: Wed Jun 18, 2025 10:44 am For Mining Drills (in particular, thematically non "mining" collectors, like the flower harvesting drone things from pY), a multiplier for mining_search_radius.![]()
How is that? So far a QualityPrototype::level is uint32, which means a default_multiplier = `1 + 0.3 * level` was never able to go below value of 1: even if i would keep the limits for multipliers to be >= 1, it would still not be able to break anything because all the values are carefully set to keep backward compatibility. By allowing values to go down to 0.01 i am effectiely extending what is possible.thesixthroc wrote: Wed Jun 18, 2025 11:28 am I appreciate that most of these entries are not capped at 1, because that would break the already working property for the Inverted Quality mod.