Quick Adjustable Inserters


Adjust inserter pickup and drop positions in world, without GUI.

Tweaks
29 days ago
1.1 - 2.0
5.88K
Logistics

g General Feedback

8 months ago

I've been using this in a multiplayer game, partially for the purpose of playtesting it and partially because the modpack (5dim's) depends on bob's inserters, and I'm not dealing with that UI.
It has a bit of a delayed response due to mods not having latency state, which is not your fault of course, and that may contribute to some of the mild annoyances I have.
We have it set to mirror mode only, and there's a couple things I want to make note of:

  1. When someone else is adjusting an inserter, the UI for it shows up for everyone, and blocks you from doing anything with unrelated entities underneath the UI, even non-inserters. If this were my mod, I would make it only show the UI to the person adjusting and print some flying text + play the cannot-build sound if someone else tries to adjust the same inserter. I know this is a bit tricky with selection priority since the adjusting entities are selectable for everyone, but I think setting player.selected to whatever is underneath the dummies could work decently well.

  2. The inserter base direction entities are quite large, and quite useless. I have only ever found myself wanting to change the direction of the inserter base after accidentally changing it from what it was originally. Perhaps a mod setting to hide them would work as a quick solution, and a more usable option on top of that would be a separate keybind to configure only base direction.

  3. Speaking of adjusting specific things, I often find myself only needing to adjust either the pickup or the drop position in one gesture, rarely both. This is especially noticeable because of mirror mode, where 99% of the time I only need to adjust the pickup position. I'm not sure what the best solution to this is, but one could be two new keybinds, each for adjusting the pickup and dropoff position, respectively. This eliminates the need for redundant keypresses that build up annoyance over time. There could also be a third keybind specifically to adjust the lane offset, that way setting the drop position doesn't have any redundant keypresses as well. These don't have to be bound by default, but modifier keys would be a great thing to use to differentiate between the different keybinds.

  4. Adjusting lane offsets is completely unnecessary unless the inserter is pointing at a belt, and it's annoying having it pop up every time. Last I checked, the drop target of an inserter is readable through script, so using that to determine when to show the lane offset would greatly improve the usability of the mod. The only time I can think of where this wouldn't be the case is an inserter pointing at the ground, since someone could be trying to adjust an inserter's lane offset before placing the belt going underneath it. Otherwise, there's an extra step to adjusting an inserter every time, which doesn't feel good. The third keybind mentioned in 3. would solve this issue completely, but I think it would be neat to have an option for a "smart" mode on top of that, that way if people are not using the third keybind or it doesn't exist at all, it still feels better to use by default. Even not doing the two keybinds mentioned above and just having the third one would be better, that way there's a separation between pickup/drop and lane offsets, though that's not an ideal solution for me personally.

  5. Mirror mode is easily bypassed by using the bob's interface, and I'm assuming bob's keybinds do it as well. I'm not sure how much you can realistically do about this, but if there's a way to handle it to support mirror mode, or make it so the keybinds get reverted or something, that would be super cool. Not super important all things considered, but I figured I should mention it in case you didn't know. I just turned off the bob's GUI and unbound the keybinds, so it's easily solvable from the user's standpoint. However, in multiplayer there could be someone who doesn't like QAI and still wants to use the bob's UI while the world has mirror mode enabled, so this would actually help in that rare context.

I know you're trying to keep the mod lightweight in terms of keybinds and/or settings, but I do think some of these suggestions would be quite useful. They don't have to be bound by default, but the fact that they would exist at all would be a game changer.

Lastly, I just want to say that even though most of this post is critique, you have done a phenomenal job with this mod. It's very easy to use already, and a much needed upgrade over the bob's UI. The critiques above are minor annoyances at best and the mod is perfectly usable as is, I just wanted to give some food for thought for if/when you decide to work on this mod some more. Thanks!

8 months ago

Very good feedback, thank you!
There's a couple things to note:

  1. Yep other player's UI shows up for everyone (on the same force) because entity visibility can only be set to "per force" (yep that option exists, pretty neat, but it doesn't have a "only this player" option, just the same force as the entity. Which makes sense at the end of the day). So that's why I decided to do it this way. That said, the idea of changing the selection whenever the player selects one of the invisible selectables is an idea worth exploring. I'd have to test how well that would work with latency but it would probably be better than what it is now.
  2. I feared that that would be the case but once I was done with the mod I didn't feel like playing with it much so I couldn't actually figure out how useful they really are. I like the idea of putting them behind a setting as well as an unbound keybind. If I think about it more I might think of something else, but either way good to know.
  3. Just to make sure: You can double click the adjust keybind and it'll skip to selecting drop, just wanted to make sure you were aware of that and if you weren't I'd be curious how that changes your opinion. Usually that doesn't really apply when just wanting to adjust pickup, except with mirrored inserters only you can actually double click the pickup position and it'll "skip" past the drop selection... which is then limited to the default drop offset. More on that later.
  4. Touched on that in 3 a bit, but there's another important note: changing the drop position when the drop target is an inventory does change the speed of the inserter. Some people care about that, some people don't. Again more on that later.
  5. This sounds like a lot of work for little gain. Not saying it isn't an issue, but it certainly isn't a fun one to deal with. I'm thinking just adding like an info label to Bob's GUI to at least inform the user so they can deal with it. The keybinds... eh, might be handle-able, more on that later now.

I've pretty much decided that the next time I continue to work on the mod I'd be adding lots of keybinds and even more settings. You are correct that I didn't want that initially, however I've recognized that there are a lot of different totally valid play styles out there and the only way to support all of them is more settings and especially keybinds. I've achieved the one important thing (to me) which was to have a single keybind with which you can do everything. This is amazing for new users, as well as users who have tons of mods installed and are hard pressed for keybinds. However for those who extensively use this mod, that single keybind can only get you so far and I like all the suggestions you've made for them. I've already had notes for keybinds to adjust the drop offset as well as "rotating" pickup and drop and changing distance. Basically lots of "power user" keybinds, all unbound by default.

And just a fun fact: Yep you can read the drop_target of an inserter... except that this drop_target gets set and updated in the inserter update. Not on build, not upon other changes in the world. In other words it's basically behind by a tick which is especially noticable if the game is tick paused. (The inserter stack size is the same.) I've already handled this decently well, so I could have that smart mode for drop target selection (if you're curious all that logic is in the inserter throughput library).

This got longer than I thought, but again thank you for all that feedback, it is really useful. I'm also glad that you like the mod! I hope that you'll continue to like it even without any updates because as of right now I'm not working on the mod outside of bug fixes. I'll write notes though so if/when I do return to it I won't forget.

8 months ago

Sure thing! I wouldn't critique something this passionately if I didn't enjoy using it.
Couple responses:

  1. I forgot about force specific visibility on entities, that's cool. I was talking specifically about LuaRendering though, which has the players field on all types. Even if the entities are selectable by everyone, at least the UI could be more hidden (I assume you're using LuaRendering for this, unless you've found some other magic for it).

  2. I will say I have actually used it a few times, but never in the same gesture as an actual adjustment, so I think the separate keybind would probably be the best solution here (at least for me).

  3. I knew about double pressing, however it feels a little slow to do in latency state since I find myself waiting for the animation to play before pressing anything a second time. That's what I've been using, but that one extra thing would make it a little more smooth.

  4. I do see how some would want access to the drop offset for minmaxing the throughput, which is why "smart mode" would probably be best if it were toggleable with a setting. I would think that minmaxers are the minority, so I'd make it default to smart mode being on, but can be turned off with the setting.

  5. No worries, I figured it was kind of a long shot. I'd imagine it's probably the lowest priority thing on the list, especially because it's so easy to ignore from the user's perspective.

One final thing I forgot to mention in the first post: Shift + Right/Left click copy/paste seems to only work on real entities, not ghosts. I don't know off the top of my head if anything can be done about that in the entity pasted event, or if it even fires at all, but that would be something quick and nice. It's workaround-able by just Ctrl + C copying the ghost and pasting it on top of the one I'm trying to paste to, so it's not a big issue.

I didn't know that about drop_target, but now I do. I guess I haven't really needed to do anything with inserters that deeply before, good to know.

Again, none of these things break the experience or anything, as you said the single keybind can do everything, especially with a couple of the neat tricks like double pressing. I'm glad you find the feedback useful, even if working on this mod isn't a priority currently.

8 months ago
  1. Yea it's neat. And yes I am using LuaRendering. I decided to give the LuaRendering objects the same visibility as the entities as to not confuse people why they suddenly have invisible entities blocking their interaction with the world. I think that's good, but let me know if it isn't. (of course that would change if I can get something to work nicely by "passing" selection through those entities. Really worried about latecy there though)
  2. Makes sense, I'll add it to the list of things to consider for settings and keybinds
  3. Ohhh, right latency. That explains the inconvenience
  4. I think we call this selection bias because I was (maybe still am, not sure) the kind of player wanting max speed inserters. And I didn't actually ask anybody else. Overall I would agree that having smart mode enabled by default would be good, because realistically those 0.x items per second don't matter the majority of the time. So thanks for pointing that out :D
  5. nods

Copy pasting is definitely something that needs to be looked at. I'll note down copy pasting in regards to ghosts, and outside of that there's also the issue that you can copy paste between inserters with differing ranges allowing you to go out of range of what a given inserter is actually allowed to do. All current copy paste behavior is just me letting the engine deal with it, but that'd have to change.

Oh yea definitely. And I keep mentioning notes, not that it's important or related right now but in this project I've taken extensive notes about all the things that came to mind at any point and it's been a huge help keeping my mind clear and actually remembering everything. And there's the satisfaction of crossing things off of a list too. I guess what I'm saying is that I can recommend it if you ever feel like a project is getting bigger than anticipated ;)

New response