Time Nick Message 08:47 TenPlus1 Hi folks o/ 08:48 TenPlus1 Is there any way to tell when a player's game is paused via mods ?? 09:04 TenPlus1 hi calcul0n 09:18 TenPlus1 o/ Fixer 09:29 calcul0n_ hello 09:29 TenPlus1 :P 09:30 TenPlus1 android version of mt seems to have a bug where you pause game in mid-air and you remain there instead of falling 09:47 Fixer \o 09:47 TenPlus1 what's new : 10:06 TenPlus1 hi entu 10:46 TenPlus1 hi CWz 10:47 CWz hey 10:47 TenPlus1 hows the day :) 10:56 CWz the day is okay, hows your day? 10:57 TenPlus1 good but confusing :) 10:57 TenPlus1 trying to figure a way to tell when players are paused in-game via mod :D 11:00 CWz Is it possible? 11:00 TenPlus1 that's what I'm trying to figure out :) if there's a way to know when a player opens a formspec 11:01 TenPlus1 I've got an anti-cheat mod that can tell when players are flying around without privs, for those hacked clients :P but the android pause bug sets it off cause players float in mid air 11:17 CWz does the anti-fly cheat count for set_physics_override? 11:18 TenPlus1 yep, takes a lot into account 11:18 TenPlus1 including sneak glitch, riding mobs etc 11:23 CWz cool 11:23 CWz is it available to us less fortunate? 11:24 TenPlus1 once it's finished and working I'll give to server owners :D but wont post code just incase 11:24 TenPlus1 it detects flight without priv and warns players and/or can kick 11:25 TenPlus1 it's just weird that android or singleplayer pc has you floating in mid-air when you open chest or pause game 11:25 TenPlus1 that's throwing things off 11:28 CWz is it the official android client 11:28 TenPlus1 yep, you can jump in the air and pause (hit esc) and you stay there 11:31 CWz i wonder if it's phone type specific. probably to save memory while paused 11:32 TenPlus1 dunno, but it stops things running in background for that client 11:32 TenPlus1 and breaks some things 11:32 TenPlus1 globalstep stops 11:33 TenPlus1 o.O I think I've just found a solution 11:40 TenPlus1 nup, globalstep stops working singleplayer only and player stays in air, on server globalstep continues but player is still stuck in air 12:08 MTDiscord Hello 12:09 TenPlus1 hi wwar 12:10 MTDiscord People in server got the cheating msg 12:10 TenPlus1 lol, the android pause bug ? 12:10 TenPlus1 or doing something specific ? 12:10 MTDiscord Well one of them uses PC 12:11 TenPlus1 they on just now ? 12:11 MTDiscord No sadly 12:14 TenPlus1 hi olliy 12:15 MTDiscord Mobile players not only stop falling when they minimize the app it also affects knockback and other things...basically the client still accepts packets from the server but doesn't do what the packets tell it to do until the app is in the foreground again 12:15 MTDiscord Yeah its paused 12:15 MTDiscord And that will happen also when the player is falling and opens chat 12:16 TenPlus1 crap, that changes a lot of things 12:16 TenPlus1 I wonder why it does that 12:16 MTDiscord People dont usually minimize the app while falling.. 12:17 MTDiscord You could call it client side pausing since everything that happens purely server side still works 12:17 MTDiscord Like damage 12:18 MTDiscord Maybe not while falling but players often switch to another app which triggers the same thing 12:18 TenPlus1 hi fussel 12:18 TenPlus1 it kinda breaks the game and mods it's running if it stops/pauses everything 12:19 MTDiscord But that was already the case in 0.4.X IIRC 12:20 MTDiscord https://github.com/minetest/minetest/issues/10842 12:20 MTDiscord The chat didnt used to pause the game before 5.0 if i recall correctly 12:23 TenPlus1 I wouldnt mind the bug so much so long as there was a way mods could KNOW a player was paused, but as it is, it interferes with a few things 12:24 MTDiscord Not sure, but back when I managed my server via mobile only for some time and typed a longer message the actions that I missed during typing played back to me in a sort of time lapse...I think that is linked to this issue 12:25 MTDiscord Well iirc it didnt used to stop falling (maybe im mistaken) 12:26 MTDiscord Well making the chat a window.. like inventory will fix it since inventory does not pause the game 12:27 MTDiscord The chat on mobile is a formspec already 12:27 MTDiscord The problem seems to be that MT somehow thinks the game needs to 'pause' when the OS displays the fullscreen keyboard 12:27 MTDiscord By the way, you know what exactly causes that 12:27 MTDiscord Its the small feed above keyboard that what you type appears in 12:29 MTDiscord There was a bug (kinda feature) in minetest 5.3.. when you open chat and tap in a place other than keyboard that small feed will dissapear which makes you have advantage like.. by pressing p you can enable/disable pitch move 12:29 MTDiscord Which android does not have a button for 12:29 TenPlus1 android version needs some love 12:29 MTDiscord In that times i made 2 buttons for myself to change view range 12:30 MTDiscord That is still present in 5.4 ... several players complained about weird fly movement recently 12:30 MTDiscord Sadly they didnt fix the not falling part but they fixed that.. i did accept it as a feature 12:30 MTDiscord mobile players* 12:30 MTDiscord no? 12:30 MTDiscord Maybe their version is 5.3? 12:31 MTDiscord Because that got fixed in 5.4 12:31 MTDiscord Also i didnt play the game in 5.2 age so maybe it existed that time too 12:31 MTDiscord Or maybe MT cannot possibly account for every type of device and it still happens on some 12:32 MTDiscord I believe anything like that happens in an android version happens in all others because android didnt have as much work ad pc 12:32 MTDiscord Maybe that tho 12:32 MTDiscord The only way to stop MT from updating on Android (when installed via Play Store) is to disable all updates 12:33 MTDiscord There is no other way 12:33 MTDiscord As i have heared, they will make some improvement in 5.5 for android 12:34 MTDiscord I did suggest adding more options ingame like view range changer.. full chat.. pitch move buttons 12:34 MTDiscord No, there were others bugs that only happened on high DPI mobile screens and things like that...regular screens were fine but those super high res ones suddenly didn't have the settings icon..it was offscreen 12:34 TenPlus1 and hopefully sneak glitch fix to stop players going through blocks 12:36 MTDiscord Lol that one is funny 12:38 MTDiscord MT got much worse problems than that...for example placing nodes in protected areas while disabling your internet connection for just a few secs 12:39 MTDiscord That one is unfixable 12:39 MTDiscord And wont affect protections 12:39 TenPlus1 hopefully no-one does that, but wont the server catch up afterr reconnect ? 12:39 MTDiscord Ten teh point is that people who pass in others house etc 12:39 MTDiscord Server side nothing happens but the user can reach any secret place that way 12:40 MTDiscord Fixing that will need to kick those who disconnect faster than now and that will result in kicking people with bad wifi 12:40 TenPlus1 ohh right, disconnect, break all blocks in their way and get inside before reconnect (before timout90 12:41 MTDiscord Yeah...the only 'solution' is to set the placement prediction to 'air' and the dig prediction to the same node you dig 12:41 TenPlus1 maybe having server-side loaded mods sent to client, so client can check for protection even when disconnceted 12:41 MTDiscord Time out takes too long, making it slower will result in ruining the game for people with bad wifi 12:41 MTDiscord But that will look bad 12:41 MTDiscord Or maybe making the protected blocks undiggable 12:42 MTDiscord So you can never dig them, only people who are added in protection 12:42 TenPlus1 if disconnected then player can dig any block without it checking for protection 12:42 MTDiscord That will need a check for every protected block tho 12:42 MTDiscord MT got a node_dig_prediction = "air" which is applied to every node...you can modify it and it should also apply with no connection...but then digging will look super laggy 12:43 MTDiscord Yeah.. every possible fix will make it worse so every possible fix isnt a fix 12:44 MTDiscord For placing it is node_placement_prediction = nil and nil means just predict the node you place...you could set that to air and then placed nodes would always appear a moment later only 12:44 TenPlus1 you'd have to set that for every single node though 12:45 MTDiscord Correct...you would also have to hope that you don't break any other prediction needs 12:46 celeron55 there is a possible solution to the dig while disconnected glitch 12:46 MTDiscord You know how nodes on a somewhat laggy server disappear for a split second at times when building a lot? I imagine it will lookj like that permanently 12:46 celeron55 the anticheat has to do a node-by-node pathfind 12:46 TenPlus1 hi celeron 12:46 celeron55 to see if it was possible to move where the player moved or not 12:47 MTDiscord Wont that be.. laggy? 12:47 TenPlus1 it can be :) disabled anticheat in-game which is why I use mod 12:47 MTDiscord I mean.. adding a check after every block that gets dug will be way worse than players who get in secret places 12:48 TenPlus1 so long as those secret places have protected/locked chests etc. nothing can be stolen 12:48 celeron55 it could allow digging a lot of blocks before enforcing anything, but it could immediately disallow interacting with chests for example 12:48 celeron55 and then if the player did impossible things it could rollback the few blocks it found illegal 12:50 MTDiscord Not sure if its me or all of these sound laggy 12:50 TenPlus1 ehe 12:50 TenPlus1 the nocheat mod I'm working on only checks for flying without privs, the only bug left to sort is the android pause one that has players floating for no reason 12:51 celeron55 you can do all that without making anything laggy 12:51 MTDiscord People can really keep their secret places deep enough so people will get suffocated ubtil reaching it with that bug 12:51 MTDiscord Until* 12:51 MTDiscord Well the good news is that the distance check works well it seems...I just disabled connection for 20 secs, ran as far as I could (loaded mapblocks) and reconnected...and I was reset immediately 12:51 MTDiscord Or they can make them unsafe and not complain 12:52 TenPlus1 hi toothless 12:52 MTDiscord IhrFussel, that will affect people with bad wifi and ruin the game for them 12:52 Toothless Hello 12:52 MTDiscord And in my opinion that is way worse than the bug itself 12:52 MTDiscord o/ 12:53 TenPlus1 celeron55: do you know of a way to detect paused games ? or when players viewing formspec ? 12:54 celeron55 i don't think the server knows about pausing the game, the client shouldn't be able to pause a multiplayer game anyway 12:55 MTDiscord thats what i thought 12:55 MTDiscord Was wondering why even pausing is needed in multiplayer 12:55 MTDiscord Mobile players do though when typing into a formspec or switching to another app 12:56 MTDiscord yep, already made issue 12:57 MTDiscord Maybe it was a choice back then to not overload the slow CPU of mobile devices while the app is 'idling' 12:57 celeron55 not sure if all formspecs will send something when closed, if they don't then the server can't know if they're still open or not 12:58 TenPlus1 does the same thing in singleplayer celeron55, jump in air and hit ESC to pause, you float 12:58 TenPlus1 globalstep stops running 12:58 MTDiscord > Maybe it was a choice back then to not overload the slow CPU of mobile devices while the app is 'idling' Well i dont think so, i always keep discord and IRC minimized while playing mt and they dont affect 12:58 celeron55 singleplayer can have and has pause obviously 12:58 celeron55 the server pauses along with the client 12:58 TenPlus1 but on server it's fine with pc's, only does the pause in android clients tho 13:00 celeron55 anyway, definitely the best anticheat is something you write yourself for your own server. then nobody has time to learn how to cheat it or customize their hacked client to it because nobody else has the same anticheat 13:00 celeron55 once everyone has the same anticheat then it becomes worth the effort to figure it out 13:00 TenPlus1 true 13:01 celeron55 well, of course until a foolproof one is made, but that might be never 13:01 MTDiscord Also its not wise to share the anticheat mode in cdb :þ 13:02 MTDiscord By the way, pressing the back button in android will pause the game but it will keep falling.. getting knkcked etc 13:02 MTDiscord Knocked* 13:04 MTDiscord I set my "paused menu" fps to 1 and it gets dropped when pressing back button, opening chat or minizing the app 13:05 MTDiscord Last I checked only the keyboard screen causes this or minimizing the app causes this, so something somehow detects when the app is not in focus 13:06 MTDiscord https://cdn.discordapp.com/attachments/747163533212516474/853983848056094730/Screenshot_2021-06-14-16-10-16.png 13:07 MTDiscord It could also be a builtin Android feature that was just not disabled for MT 13:07 MTDiscord Opning this window (in multiplayer too) will pause the game but players will keep falling and stuff 13:08 celeron55 seems likely it's something adroid does by default 13:08 celeron55 +n 13:08 MTDiscord Cause pausing only happens in SP or if the client is also the server...the mobile issue is not about actual pausing...pausing was added recently 13:09 MTDiscord 'Pausing' was added recently.. i guess that means android menus already have a pause by default before adding pausing to minetest 13:10 MTDiscord So its probably the same thing 13:10 MTDiscord I think we got our answer 'Developers can make their Android app run in background but they have add extra code for that. If not they will be paused. So it depends on the app/game maker.' https://www.reddit.com/r/chromeos/comments/8ipkiv/any_way_to_get_android_apps_to_stop_pausing_in/ 13:11 MTDiscord The question is: will they do? :thinkeyes: 13:11 rubenwardy pausing is a specific term in Android, part of the process lifecycle 13:12 rubenwardy it means the UI has entered a suspended state and will no longer be updated, it's desirable 13:12 TenPlus1 hrm, isn there a way to get information from local client, something that changes that can be stored, and if the same or not able to get then game is paused ? 13:12 rubenwardy ? 13:13 TenPlus1 I know we can get_gametime() 13:13 TenPlus1 that's read from server tho 13:13 rubenwardy that sentence doesn't parse, but I guess you're talking about on pause callbacks: the Java has `on_pause` and `on_resume`, this can be used to pause the game 13:13 rubenwardy even if the server doesn't pause, you probably still want to open the pause menu and reduce resource usage 13:15 TenPlus1 having a way to detect if local client is paused would be handy 13:15 TenPlus1 some value or function a mod can read to be sure 13:17 TenPlus1 I'm searching for a way to do that 13:22 TenPlus1 wwar, you on android just now ? 13:23 MTDiscord yes 13:24 TenPlus1 might need your help shortly, testing something :PP 13:24 MTDiscord I guess the only way would be to start a background service on Android which continues to let the player fall/execute packets it receives from the server? But that needs to be exited the moment MT got its focus again so that the code doesn't run twice 13:24 MTDiscord Sounds complicated to implement 13:24 MTDiscord Sure but @ me so i respond fast :þ 13:25 TenPlus1 celeron55: does get_player_information() get it's data from server or client ? 13:25 MTDiscord What I learned so far is that Android background services cannot display any graphics so it would be a separate code block that runs just during the 'pause state' 13:26 MTDiscord That and we dont have anything to check paused menus 13:34 celeron55 TenPlus1: what do you mean 13:35 celeron55 it's ran on the server and gives information the server has about the client, obviously 13:35 TenPlus1 was hoping that player:get_player_information() would come from client, it doesnt 13:38 TenPlus1 I need something that a mod can read from the client 13:39 TenPlus1 hi Lone_Wolf 13:40 celeron55 well if something was directly read from the client, you'd see an asynchronous interface 13:40 celeron55 i don't think the lua api has any 13:40 TenPlus1 bummer 13:42 TenPlus1 there's an idea for a new function in that case :) something to check a client is still active 13:42 TenPlus1 and not timed out or paused 13:44 MTDiscord TenPlus1: i think i found a new way to trick the anticheat 13:44 TenPlus1 hehe, you on server ? 13:44 MTDiscord You place a protector and hide it and jump+snkea 13:44 MTDiscord Yes 13:44 MTDiscord Sneak* 13:45 TenPlus1 checking 13:46 MTDiscord Also forgot to mention, you can do sneak glitch and stuff with hidden protectors 13:46 TenPlus1 hidden protector blocks arent walkable, sneak shouldnt work on them 13:46 TenPlus1 cant reproduce that bug singleplayer 13:47 MTDiscord I did sneak glitch with them heh 13:47 Lone_Wolf Late hai 13:47 TenPlus1 nope, I dont get error 13:47 TenPlus1 o/ 13:48 MTDiscord Hello there 13:48 MTDiscord https://cdn.discordapp.com/attachments/747163533212516474/853994216405467196/Screenshot_2021-06-14-16-51-20.png 13:48 MTDiscord There im just sneaking 13:48 celeron55 TenPlus1: there could be a "time since last received packet" in minetest.get_player_information()'s result which would already be enough i think 13:48 * TenPlus1 notices 30 bags of chips :P 13:49 TenPlus1 it doesnt contain that line celeron55 13:49 celeron55 well that's why i said "could" 13:50 TenPlus1 :P 13:50 celeron55 you need to file an issue on github 13:52 TenPlus1 yeah, will figure how to word it :) 13:52 celeron55 the server already maintains the value in Peer::m_timeout_counter, it just needs some logistics to end up in the API result 13:53 TenPlus1 storing it in player_information() would be very handy 13:54 MTDiscord Ten, i left the game, @me if you need me 13:57 celeron55 the client will send the player position packet every 100ms so with a perfect connection the counter will count from 0 to 100ms and with anything worse it'll climb higher 13:57 celeron55 ...i can only imagine how horrible it generally looks 13:57 celeron55 actually, it usually won't count to 100ms because there are other packets also 13:58 celeron55 but anyway 13:59 TenPlus1 it's like jumping down a rabbit hole just to check if a player's client is paused :) lol 14:02 TenPlus1 o/ 14:07 TenPlus1 celeron55: would this suffice: https://github.com/minetest/minetest/issues/11346 14:45 TenPlus1 wb 14:58 TenPlus1 laters folks o/ 15:00 MTDiscord o/