Adjust inserter pickup and drop positions in world, without GUI.
Small changes concerning balance, gameplay, or graphics.
Augmented or new ways of transporting materials - belts, inserters, pipes!
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:
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.
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.
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.
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.
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!
Very good feedback, thank you!
There's a couple things to note:
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.
Sure thing! I wouldn't critique something this passionately if I didn't enjoy using it.
Couple responses:
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).
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).
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.
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.
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.
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 ;)