Squeak Through


Allows you to walk between what used to be obstacles such as directly adjacent solar panels, pipes, steam engines, mining drills, and chests. No more frustration when walking about your base!

3 years ago
0.13 - 1.1
473K

b Changing other mod's entities without being asked to

5 years ago
(updated 5 years ago)

Hi,

I just had to add a check to one of my small mods because it turns out that Squeak Through is blatantly messing with entities from other mods that it has no business with, even ones that are perfectly possible to walk between already, and in my case, it messed up the collision boxes good and proper so that you could place things in a way that wasn't intended or welcome.

Please could you, like, not do this?

I see people have asked for an opt-out parameter. I'd go a step further and request that you have an opt in, confining your changes to vanilla entities and entities from mods that explicitly permit it. Seems polite.

Thanks.

5 years ago

Yeah, it's not ideal.

I did do some code back in 2016 to allow for other mods to add to the things that are excluded from being modified but it never got included and I stopped modding then. https://forums.factorio.com/viewtopic.php?f=190&t=16476&start=20#p151236
I'm not sure if that's a good way of doing it.

Do you have any suggestions?

Or do you know of any other mods that modify data dynamically in a similar way which have the functionality you'd like to see?

Perhaps some public interface like in the beltboxes mods would be better.

The git repo is here: https://github.com/Suprcheese/Squeak-Through

I've not used github much but it might be better to create an issue there and perhaps code a pull request for what you'd like to see. Honestly, I'm not likely to, sorry.

AFAIK there used to be no way to tell which mod (vanilla or otherwise) was responsible for creating an entity in data at run time so adding any mod level opt-in or opt-out options would require explicitly stating what to modify and therefore break the 'works on all mods' functionality.

Do you know if there's any way now to determine dynamically which mod created or modified an entity now?
(I'm just looking into that briefly now - I've not touched the game in years.)

Ironically, I'm far more interested in fiddling around with your beltboxes mod, seeing if I can make it work dynamically so everything can be stacked 10x and to allow stacking the stacks 10x then again 10x so you have 3 levels of compression up to 1k/stack. Not sure how it will work, perhaps too slow with all the recipes, but it's more interesting than Squeak Though at the moment I'm afraid :D

5 years ago
(updated 5 years ago)

shanemadden is looking after my beltboxes mod now and doing a good job of it. It's on Github. He added an option in mod settings to change the stacking, I believe 10x is an option, not sure.

Regarding unwanted collision box changes, you can put any property into any prototype during the data stage, even ones which the base game doesn't recognise. They don't do any harm and are discarded at the end of the data stage. I use this for recipe processing in a WIP mod, adding a property /ignore_this_recipe = true/, so I don't have to keep a separate table. You could look for a field /squeak_through = true/ in any non-vanilla entity and only mess with its collision box if it's present. Although to be honest, I don't understand why any modder would want to opt in to this - if they wanted/needed an entity to have a smaller collision box, they can do it themselves. There is no way I know of to detect which mod added an entity - but the list of vanilla entities is well known and not all that long, so it wouldn't be difficult to derive it.

Another (more difficult) way would be for ST to add a remote interface so that other mods can signal to ST that they permit their entities to be modified.

But to be honest all of this is moot - it is up to other modders how they define their collision boxes, if they want/need things to be walked past, that's up to them. My view is that ST shouldn't be messing with other people's stuff uninvited and it should confine itself to tweaking vanilla entities only.

I've created an issue on the Github.

5 years ago
(updated 5 years ago)

Thanks, I replied to the github issue (As Danny-Alexander) here: https://github.com/Suprcheese/Squeak-Through/issues/6#issuecomment-497554217

In short, I think the way to go is to check an entity property:
{
collision_box_modifiable = false -- or true
}
and have some mod options in the menu to select if it modifies stuff without this flag.

Also, I think you're kinda missing the point of Squeak Through -in my opinion and as I understand it, it's not to force a purist experience on players, it's to allow them greater diversity of game play where it's possible to step over waist high pipes etc. ALL of them, not just vanilla ones and those from mods who's creators knew of ST and went to the trouble of adding a flag to say it's ok to step over their pipes.

There's ways to solve compatibility problems which don't reduce functionality or game play diversity options for players, so how about focusing more on those? There's a repo which you're free to submit code to. If you don't want to be able to walk between things that's fine, but please remember that others do.

5 years ago

I will be marking Squeak Through as incompatible in any future mods I publish, until this is sorted out. I do not have the time or energy to deal with complaints from users of my mods because your mod has the nerve to mess my prototypes up.

5 years ago
(updated 5 years ago)

I think that's an appropriate way to handle incompatibilities who's consequences are considered unacceptable until they are remedied.

Deadlock989, I'm not happy about how we've handled this. I think there's some misunderstandings occurring which I'd like to clear up and much room for improvement.

Are you ok with privately talking about that further if I PM you on the forum?

5 years ago

I'd prefer not to if at all possible, it's all just an extra unwanted drain on my time that takes me away from things I'd rather be doing.

I didn't want to seem harsh, but your mod is breaking other people's mods, plural. I'm glad you want to put it right - I'll watch the forum thread and if you come up with an opt-in solution then I'll remove the incompatibility flag.

5 years ago
(updated 5 years ago)

If it was just an drain on your time I wouldn't insist, but the issues I wish to discuss are negatively impacting many people, directly and indirectly, so I think a discussion which may result in you seeing that too is a very good use of our time.

I have no problem with harsh, my personal preference is for direct honesty in all things, something that makes me quite unique and which people generally find very difficult to believe. So please, never worry about being brutally honest with me.

I'm not going to argue over opinions and semantics, it's an inefficient and probably wasteful use of our time, patience and energy.

You're mistaken if you think this is my mod. I was not sure exactly who you were speaking to when you kept saying that.

If I was to call it anything I'd call it a collaborative project. Here's the history as I recall it:
- Pre-2016 Supercheese wrote the original code, hard-coding hitbox alterations IIRC.
- 2016 I wrote some code to do the same dynamically using an algorithm to alter hitboxes based on type and existing size. A beneficial side effect was it worked ALL entities - those from mods also. Superchese updated it to use that code. I went out of contact right after, stopping anything to do with Factorio.
- 2016-now Various people have submitted updates to the mod for new versions of Factorio as they came out which IFAIK Supercheese has released and it's been 3+ years since I've had anything to do with it. I just happened to be re-visiting Factorio, took a look, saw your complaint and thought I might try and give you a hand with sorting it out.

I'm not sure how you missed this TBH. I've no contributions or access on github. I know my name is about the place but never alone. I've never laid any claim of ownership and don't want it as I don't and never have intended or wished to maintain it.

Can you see now how it's more of a group project who's evolution and present state has resulted from people submitting the changes the wanted to see? If you have any doubts just read the forum thread.
[Edit] Just to be clear, Supercheese is the original creator and owner and AFAIK in charge of how it works, if proposed changes get included etc. Assuming things have not changed in the last 3 years I've been not paying attention.

I've been ill the last couple of weeks but when I'm more clear-headed I'll PM you about the other issues. It's not directly mod related - some are more personal which is why I expect it would be more productive discuss in private.

Be well.

5 years ago
(updated 5 years ago)

Please don't PM me about anything to do with this mod. I don't have time for it. Maybe put some of this essay-writing energy into fixing the mod.

5 years ago

The average English speaking person could read and take that in effortlessly in about 2 minutes and it's not an essay, it's mostly responding to things you've said. There's no reason to be rude about it. I've been nothing but respectful towards you and don't deserve that attitude. Can you try and be a little more mature and respectful please?

5 years ago
(updated 5 years ago)

You said you wanted direct honesty. You got it. Make your mind up.

Fix your mod, or not. I've got no interest in discussing your "personal issues". I've unsubscribed from this thread.

4 years ago

Nommy, I just read through all this, and have been using this mod for years on HEAVILY modded playthroughs. This guy is a jerk.

Thank you for your contribution that makes it work with all mods. A huge part of the appeal is how universal it is. So at least for my part, good job.

4 years ago

For real. Need to stacking beltbox that toxicity out of here lol

4 years ago

Wow. First I'm seeing this. Deadlock is a real anus opening! Nommy, thanks for attempting to help. You were, by far, the better person here.

4 years ago

Wow!!! just stumbled across this looking to better understand why Squeak Through seems to have stopped working, and ended up reading through this whole back/forth. Deadlock was being a jerk and completely ignorant of the difference between being direct/honest/respectful and understanding that those things are not mutually exclusive. Unfortunate that people feel they need to be that way.

New response