Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] New anchor type for officials #7695

Closed
Florexiz opened this issue Mar 23, 2021 · 26 comments
Closed

[RFC] New anchor type for officials #7695

Florexiz opened this issue Mar 23, 2021 · 26 comments

Comments

@Florexiz
Copy link
Contributor

Right now official servers only have 2 working anchors: passive (keep chunks loaded until server restart) and personal (keep chunks loaded until player leaves). Main reason for banning world anchors were lags created by constantly loaded bases whose owners offline for a long time.
This greatly decrease QoL at mid/late game due to need of wasting some time visiting all your base, outposts, mining and pumping rigs. Not an issue for few times, but doing this every restart quickly became an annoyance.
I'm proposing 2 ideas for new type of anchor to solve this:

  1. Similar to world anchor, but keep track of owners last online and disables itself after 24 hours (or any other config time)
  2. Passive or/and personal version, but load itself when owner join the server, thereby removing annoying part of visiting every anchored area

What is your GTNH Discord username?

FalseColor

@CatsLeftEar
Copy link

Good idea, with it there will be no need it chain-activating anchors with another anchors, literally placing them in every single chunk so they update each other.

@boubou19
Copy link
Member

boubou19 commented Mar 23, 2021

Imo we only lack the passive personal anchor: can only be loaded when the owner visit the anchor, and last until the restart.

If you allow anchors to be persistant between reboots (which was the world anchor) it makes laggy bases perma loaded, as we all know. Putting a kind of timer that would disable the base after x hours/days of player inactivity is a false solution: at each relog, the player will reset the timer, so if one laggy base owner decide that his base will be permanently loaded, he'll have to join 1 time before the timer, then quit. So you end up with perma loaded bases. So if a player decides to reset the timer in the evening, then it means that between reboot and the moment he joins, other players suffer from the laggy base loaded for "nothing", because the player did not join the server and yet it is loaded. So even if i can understand why you want the world anchors back, that's not fair for the others if used in endgame bases.

Also, as an operator point of view, it's easier to time particular zones of the server with Opis after a fresh reboot, because you chose what to load, so you can measure the impact of a base more accurately than if all the other bases are loaded.

Also, perma loading a base is forbidden in the rules (rule 7), so there is no real interest in implementing another kind of world anchor. If you want the return of the world anchors, you should better find a big reason to reenable it, or provide a strict ruling on it. And even if it gets accepted, Staff would then reserves the right to redisable them if there are too much issues caused by them: i'm thinking to the case where a server is running at solid 5tps and no staff is availiable to monitor and trackdown the lag source. In such case, even a reboot will do nothing, because bases would be perma loaded. I think we all agree that staff can have a life, and that's not very funny to play on a server with low tps (this is the very specific case that caused the world anchors to be banned).

@Florexiz
Copy link
Contributor Author

Florexiz commented Mar 23, 2021

@boubou19 not sure what you meant by

Imo we only lack the passive personal anchor: can only be loaded when the owner visit the anchor, and last until the restart.

Isnt this just a passive anchor?

About perma loaded bases I think this is just a matter of comfort? You can still just join 2 (without unplanned restarts) times a day to keep your base loaded constantly.

Im fine with any solution that will remove requirement to visit each anchor after restart tho

@Cinobi
Copy link

Cinobi commented Mar 23, 2021

Basically, its all not about anchors. We just need to add a way to load distant area from afar - load moon oil rig without rocket flying for example. Since the last nerf of rocket fuels its very bad to forse players fly to planet each server restart.
Imagine a guy has 2 oil rigs and 3miners at different planets… reloading them all is pita, and this machines do not couse any significant load to server.

@CatsLeftEar
Copy link

CatsLeftEar commented Mar 23, 2021

Why not just give anchors a feature to be active only when player is online?

@combusterf
Copy link
Contributor

I agree with Cinobi here, remotely triggering a chunk to load is a much more appropriate mechanic. You can use that without even needing to have a loaded anchor there if it's for transient things like AE teleportation.

@Prometheus0000
Copy link
Member

literally placing them in every single chunk

Use the anchor sentinel. They can be stretched to 1x25, so just use 25 in a row, then another to load all of those to get 25x25.

We just need to add a way to load distant area from afar - load moon oil rig without rocket flying for example. Since the last nerf of rocket fuels its very bad to forse players fly to planet each server restart.

You can use one of the many TP options, not that it isn't probably annoying if you have to go to a bunch of places.

There isn't something that loads the other side like quantum gates or TC mirrors or something?

Also, Railcraft is ARR, so adding an anchor would be hard/annoying to begin with.

@boubou19
Copy link
Member

@Florexiz this is a very specific usecase: when you don't want your base half loaded because a random player walked near your base, accidentally loading your base, enough to trigger some machine working, but not enough so thermos does its fuckery. Or simply if you don't want others to trigger the loading of your base.

Use the anchor sentinel. They can be stretched to 1x25, so just use 25 in a row, then another to load all of those to get 25x25.

@Prometheus0000 This is just a smarter way of doing it, but it does not change the fact that players have to cascade their chunkloaders so they don't have to walk in all the base.

You can use one of the many TP options, not that it isn't probably annoying if you have to go to a bunch of places.

Let me introduce you in the marvelous world of thermos, where you can't TP near the oil rig/ ore drill because thermos breaks stuff if it detects the fake player when you use a command, so you need to go a couple of chunks far, then tp. + given the cooldown, you have to wait between the TP, so yeah, even with cheaty MP teleporting commands, that is still tedious, so i guess something like a remote control/chunkloading cover you would apply on a GT machine could do the trick and make everyone happy.

There isn't something that loads the other side like quantum gates or TC mirrors or something?

To use such a thing, you must have a specific knowledge, but a duct tape can be applied like changing the tooltip via minetweaker or make a quest/completing one. I'm not a fan of the quest option tho, because players tend to read quests only if they don't know how to use the stuff the quest is about (and it's a fair assumption), so players will miss the info about this hidden "feature".

@repo-alt
Copy link
Contributor

Multiblock miners can already load themselves, it just have to be enabled in config. I don't remember if the code is also in the drilling rig, but if it's not it's pretty trivial to move it in the common base. As for the quantum rings, it is also not hard to try to load the other side (I think).

@Prometheus0000
Copy link
Member

so i guess something like a remote control/chunkloading cover you would apply on a GT machine could do the trick and make everyone happy.

I'm not a fan of the quest option tho, because players tend to read quests only if they don't know how to use the stuff the quest is about (and it's a fair assumption), so players will miss the info about this hidden "feature".

How would they learn about any method of doing this?

Though a block that specifically CLs a specific chunk isn't a terrible idea if it only pulses once or something if someone wants to add it. I'm pretty sure it can't be in the target chunk, or else there's nothing to load it, so a cover doesn't sound like it'd work.

@boubou19
Copy link
Member

How would they learn about any method of doing this?

On a multiplayer server, tricks that solve painful issues are spreading very fast. And a lot of players just ask in the chat for things that are already in the questbook.

@Prometheus0000
Copy link
Member

Multiblock miners can already load themselves, it just have to be enabled in config.

I don't think it'd be a big deal to enable this so long as they turn themselves (and the chunkloading) off if there's no work for them to do. It's less expense on the player, but I don't know if it's really something people care about at the stage they can get them, especially since you only pay for CLing on servers.

@KiloJoel
Copy link
Contributor

Do the miners actively load themselves? Or just prevent unloading?

Either way, personally I think maybe the best/most intuitive solution would be to add the new type of chunkloader as suggested by florexiz. Seems to me like leaving chunkloading functionality to chunkloaders rather than workarounds/obscure mechanics makes the most sense.

@GTNH-Colen
Copy link
Contributor

Multiblock miners can already load themselves, it just have to be enabled in config. I don't remember if the code is also in the drilling rig, but if it's not it's pretty trivial to move it in the common base. As for the quantum rings, it is also not hard to try to load the other side (I think).

This is non-ideal as I'd imagine this would cause them to always be loaded rather than just restarting once a user logs in after a restart. Including abandoned miners left by players who have long since stopped playing.

I really agree this would be a nice QoL feature for the servers though, I wanted a similar thing before. Not sure how hard such a device would be to program though, one thing that does concern me however is fake players placing anchors. Since they're always 'online' what would that cause? Just a thought.

@repo-alt
Copy link
Contributor

well, to prevent abandoned miner to self load forever, I think it is possible to remember "owner last seen" time in the miner, and stop loading if the owner is not seen for a couple of days

@leagris
Copy link
Contributor

leagris commented Mar 24, 2021

🤔 Machines that naturally decay overtime if owner not connected since too long.

@repo-alt
Copy link
Contributor

"rusty machine hull", that is what actually should spawn on Ross

@Prometheus0000
Copy link
Member

Or, like I said, turn themselves (and the chunkloading) off if there's no work for them to do.

@repo-alt
Copy link
Contributor

if "no work" means no more oil/other fluid to drill, then e.g. my drill would never unload (if I'll abandon it), because it stops when output hatch is full

@Prometheus0000
Copy link
Member

When it can't use EU to do something and turns itself off anyway. Though if it then unloads and you need more it can't exactly turn itself back on. For ore drills at least, you just run until they finish mining all the ore though.

@repo-alt
Copy link
Contributor

Well, actually drilling plant stops loading itself when it is not working

@Florexiz
Copy link
Contributor Author

Imo we need something that isn't bounded solely to GT rigs

@repo-alt
Copy link
Contributor

I agree, I just do what is already discussed and accepted

@repo-alt
Copy link
Contributor

Ok, what about a block that doesn't work as an anchor at all, but remembers who placed it, and when that player logs in, it briefly loads, waking a chunkloader in this chunk. So it is kinda distributed anchor alarm clock, requires actual anchors to be useful.

@repo-alt repo-alt self-assigned this Mar 27, 2021
@repo-alt
Copy link
Contributor

@repo-alt
Copy link
Contributor

(Hacked the anchors themselves to avoid new block)

@boubou19 boubou19 added this to the 2.1.1.0 milestone May 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests