Jump to content

UdderlyEvelyn

Member
  • Posts

    21
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

UdderlyEvelyn's Achievements

  1. It would seem that map_sand.bin, which stores the sandbox settings, is used if present on a save, yet not necessarily updated in MP when the user joins the server. This means old settings can be retained, and it likely means that you could hex edit the file to change settings and cheat. It seems that the client won't get new settings unless they delete map_sand.bin from their save folder when this happens, whatever conditions it happens under. When this is the case, there are the following implications which I have personally experienced: Old settings are persistently used on a client even when the server's sandbox options have changed from these settings. Turned a feature on? Too bad, it's off on this client. Changed a value? Too bad, it's the old value still for this client. If this happens to an admin account and that user goes to edit the sandbox options, it will overwrite existing options with those from map_sand.bin upon saving. It will show these in the sandbox options screen as if those settings were never changed, though if you go to look at the file on the server the values are in fact the newer values (unless that admin hits save). I first posted this on Discord in late January here: https://discord.com/channels/136501320340209664/1067210244159193108 Was told it wouldn't necessarily get attention there on 3/8 but between being sick and being busy I have not had a chance to post it here until now. The Discord thread has links to places where others encountered this issue and/or resolved it by deleting the map_sand.bin file as I describe being the issue above. It also has other prominent modders sharing concerns having also seen the issue.
  2. Very much agree, and if it is a security feature why does it not have a toggle like other anti-cheat options? I have zero interest in this feature and now my 100+ players are suffering with a broken map mod, a broken vehicle claim player list, broken walkie talkie communication without visiting a player in person (I know Spiffo insists that you made no changes to this, but without any changes on my end it broke with 41.78.12 and remains broken, reproduced with no mods and a fresh save), and more all since 41.78.12. All sorts of things broken because of it, making me run around troubleshooting instead of playing the game or making new mods and content for the community. I really don't mean to be rude, but it seems like a really bad idea to silently roll out changes like this, particularly at the end of a patch cycle. If it had been clearly noted in the changelog I would have tested that unstable version and I'm sure others would have, but we have to prioritize and nothing in that changelog made me think breaking changes were included. I also really don't understand how this suddenly became a critical issue in need of fixing at the end of a patch cycle when it's been this way for the entire time and I've only seen someone hack the game two times in my year or more of serious online play. Frankly there are much larger security holes like being able to decompile, modify the java, recompile, and join a server with any code you like. This includes enabling debug mode on someone's server without admin privileges and running whatever code you like. I'm not sure why the ability to quickly go between players to do something like kill them is somehow a big threat. I'm not personally even worried about that, though, because that's what backups are for and if it happens it happens. In fact I have a repository with added security features via modifying the java on the server end and I haven't bothered rolling them out because it isn't worth the hassle of having to recompile when the game is updated to me at this time. I think I speak for a large portion of the community when I say we're far more concerned about being able to enjoy a stable experience without wrenches being thrown into things like this, and to be able to modify the game without the carpet being pulled out from under us with little-to-no warning. I realize there is also a portion of the community that is very concerned about hackers and cheating because it's more PVP focused and largely vanilla, but I would ask that you consider that this is not everyone who plays your game. We really appreciate what you do - we love the game. I've spent about 2400 hours in it so far. That said, it is very frustrating when our experiences with the game are marred by things like this. I hope you don't take my bluntness here as being overly entitled or rude, I really don't mean it that way, but I feel I'd do you a disservice by not speaking up at this point as dozens of users are frustrated in my community alone, and I know mine can't be the only one.
  3. UdderlyEvelyn

    Farm of Fear

    That mean zombie animals are on the table? I've planned to do zombie cows if you don't, but if you do that'll save me some work. xD Farm stuff looks great!
  4. Still occurs in 41.77.9, I and others have had it 4-5 times tonight, I suspect it is something that is sync'd rather than just a clientside issue.
  5. First noticed this on 41.71 (when I started running a server) and still seeing it on 41.77.9. Would be great if something could be done.
  6. Lua checksum system is not case sensitive with filenames, but OS can be and it causes a mis-targeted "File doesn't exist on the client" for a file that does exist from an unrelated mod. In this case my mod UdderlyRP had a file called BetterFlashlights_Distributions.lua in media/lua/server/items and had other files in media/lua/server/Items (note the capital 'I'), and it reported media/lua/server/Items/CBX_MedBagLootDistributions.lua from ClothesBox Redux (2847911733).. This happens with a Linux server and Windows OR Linux clients. I tried moving the file from items to Items and it still overrides the lua file it was intended to in another mod (UdderlyRP is my server mod that tweaks things), so due to this I was able to surmise the lua system doesn't care about capitalization. I'm not sure of the precise nature of the problem as I did not dig into the Java end, I leave that to you. This is at least one cause of the issue I reported here: Even if you don't fix the lua system's response to this sort of situation, it would be greatly appreciated if you could at least fix the way it reports the error to avoid misleading server operators, players, and modders. Thanks.
  7. This still occurs as of 41.77.4, and yes mods are enabled. The error occurs in vanilla code on the java side, though, so I'm not sure how it could be mod-related - what kind of mod could make the square a zombie is at null? There's reports of this error online as far back as December 2021.. In order to avoid clients being booted to the menu it would be helpful if a check for whether a square is null were in place. Edit: Is this item in the changelog referencing this bug? - Fixed NullPointerException in bThump animation variable when the object isn't loaded.
  8. This does not happen every single time I try this but when it does, it is reproducible back to back without any failure. Nothing changes to make it happen, and nothing changes to make it stop. If I close the client it will work and if I then leave it on and restart the server it will fail. It gives this error message (some previous lines included for context): LOG : General , 1665368097678> 5,344,655,451> <End of map-folders list> LOG : General , 1665368097711> 5,344,655,484> IsoMetaGrid.Create: finished scanning directories in 0.044 seconds LOG : General , 1665368097711> 5,344,655,484> IsoMetaGrid.Create: begin loading LOG : General , 1665368097712> 5,344,655,485> LuaEventManager: adding unknown event "OnPreDistributionMerge" ERROR: General , 1665368097713> 5,344,655,485> GameServer.main> Exception thrown java.lang.NullPointerException: Cannot invoke "se.krka.kahlua.vm.KahluaTable.rawget(Object)" because "zombie.Lua.LuaManager.env" is null at LuaEventManager.AddEvent line:417. Message: Exception Thrown ERROR: General , 1665368097713> 5,344,655,486> DebugLogStream.printException> Stack trace: java.lang.NullPointerException: Cannot invoke "se.krka.kahlua.vm.KahluaTable.rawget(Object)" because "zombie.Lua.LuaManager.env" is null at zombie.Lua.LuaEventManager.AddEvent(LuaEventManager.java:417) at zombie.Lua.LuaEventManager.checkEvent(LuaEventManager.java:47) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:60) at zombie.iso.IsoWorld.init(IsoWorld.java:2289) at zombie.network.GameServer.main(GameServer.java:703) LOG : General , 1665368097713> 5,344,655,486> Server Terminated. src/tier1/fileio.cpp (5164) : m_vecRegisteredWriters.Count() == 0 src/tier1/fileio.cpp (5164) : m_vecRegisteredWriters.Count() == 0 I am running many mods, but these mods work fine together and do not stop the server from starting.. unless the client is open on the same machine. It's very odd! I do this because I am a modder and server operator and this is how I test both my mods and other mods in concert with one another before pushing them to live. The mod that is triggering OnPreDistirbutionMerge content I believe is More Loot Settings, but it doesn't really matter because it will do it with whatever event code calls first, probably even unmodded. After not being able to start the server with the client open for an hour or so now I suddenly can - the problem is intermittent and seemingly arbitrary but probably has to do with the state of the client since the server is being freshly started whenever the issue comes up. I think what ends up changing it is at some point I restart the client and then it works fine even if I start the client back up *first*.
  9. Actually doesn't seem to matter about the save at all - I have begun to suspect it is trying to override itself in some weird way?
  10. Found a way to trigger a world dictionary error, this should be the reproduction steps: - Install a mod that adds an item. - Override that item in another mod that changes a few stats on it. - Copy that mod to a new mod ID, and try to load the world with the new mod ID instead of the old one (or I suppose just change the mod ID of the original copy). This was in testing for me on a local dedicated server, so not a huge issue, but this could ruin someone's day/save sometime. For me, today, I'll just make a new world on the test server, though. LOG : General , 1665190404351> 0> WorldDictionary: Checking dictionary... LOG : General , 1665190404370> 0> === Dictionary Item Debug Print === registryID = 5482, fulltype = "Dislaik.UpperLegs_LegBag", modID = "UdderlyRPTesting", existsAsVanilla = false, isModded = true, obsolete = false, removed = false, isModdedOverride = 0, =================================== ERROR: General , 1665190404370> 0> java.lang.RuntimeException: Cannot override modID. ModID=UdderlyRPTesting ERROR: General , 1665190404371> 0> at zombie.scripting.objects.Item.setModID(Item.java:3357) ERROR: General , 1665190404371> 0> at zombie.world.DictionaryDataClient.parseCurrentItemSet(DictionaryDataClient.java:37) ERROR: General , 1665190404371> 0> at zombie.world.WorldDictionary.init(WorldDictionary.java:213) ERROR: General , 1665190404371> 0> at zombie.iso.IsoWorld.init(IsoWorld.java:2430) ERROR: General , 1665190404371> 0> at zombie.gameStates.GameLoadingState$1.runInner(GameLoadingState.java:268) ERROR: General , 1665190404371> 0> at zombie.gameStates.GameLoadingState$1.run(GameLoadingState.java:225) ERROR: General , 1665190404371> 0> at java.base/java.lang.Thread.run(Unknown Source) LOG : General , 1665190404371> 0> WorldDictionary: Warning: error occurred loading dictionary! ERROR: General , 1665190404372> 0> ExceptionLogger.logException> Exception thrown zombie.world.WorldDictionaryException: WorldDictionary: Cannot load world due to WorldDictionary error. at WorldDictionary.init line:255. ERROR: General , 1665190404372> 0> DebugLogStream.printException> Stack trace: zombie.world.WorldDictionaryException: WorldDictionary: Cannot load world due to WorldDictionary error. at zombie.world.WorldDictionary.init(WorldDictionary.java:255) at zombie.iso.IsoWorld.init(IsoWorld.java:2430) at zombie.gameStates.GameLoadingState$1.runInner(GameLoadingState.java:268) at zombie.gameStates.GameLoadingState$1.run(GameLoadingState.java:225) at java.base/java.lang.Thread.run(Unknown Source)
  11. ERROR: General , 1663945464480> 6,878,750,020> ExceptionLogger.logException> Exception thrown java.lang.NullPointerException: Cannot invoke "zombie.iso.IsoGridSquare.getX()" because "this.square" is null at IsoObject.getX line:3023. ERROR: General , 1663945464480> 6,878,750,020> DebugLogStream.printException> Stack trace: java.lang.NullPointerException: Cannot invoke "zombie.iso.IsoGridSquare.getX()" because "this.square" is null at zombie.iso.IsoObject.getX(IsoObject.java:3023) at zombie.characters.IsoZombie.lambda$registerVariableCallbacks$12(IsoZombie.java:565) at zombie.core.skinnedmodel.advancedanimation.AnimationVariableSlotCallback.getValue(AnimationVariableSlotCallback.java:34) at zombie.core.skinnedmodel.advancedanimation.AnimationVariableSlotCallbackBool.getValueString(AnimationVariableSlotCallbackBool.java:49) at zombie.core.skinnedmodel.advancedanimation.AnimationVariableSource.getVariableString(AnimationVariableSource.java:292) at zombie.characters.IsoGameCharacter.getVariableString(IsoGameCharacter.java:13614) at zombie.characters.action.conditions.CharacterVariableCondition.resolveValue(CharacterVariableCondition.java:247) at zombie.characters.action.conditions.CharacterVariableCondition.passes(CharacterVariableCondition.java:279) at zombie.characters.action.ActionTransition.passes(ActionTransition.java:138) at zombie.characters.action.ActionContext.evaluateCurrentStateTransitions(ActionContext.java:157) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.action.ActionContext.updateInternal(ActionContext.java:78) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.action.ActionContext.update(ActionContext.java:66) at zombie.characters.IsoGameCharacter.postUpdateInternal(IsoGameCharacter.java:12046) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.IsoGameCharacter.postupdate(IsoGameCharacter.java:12025) at zombie.characters.IsoZombie.postUpdateInternal(IsoZombie.java:2103) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.characters.IsoZombie.postupdate(IsoZombie.java:2095) at zombie.MovingObjectUpdateSchedulerUpdateBucket.postupdate(MovingObjectUpdateSchedulerUpdateBucket.java:97) at zombie.MovingObjectUpdateScheduler.postupdate(MovingObjectUpdateScheduler.java:185) at zombie.CollisionManager.resolveContactsInternal(CollisionManager.java:411) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.CollisionManager.ResolveContacts(CollisionManager.java:236) at zombie.iso.IsoWorld.updateInternal(IsoWorld.java:3482) at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83) at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230) at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26) at zombie.util.Lambda.capture(Lambda.java:130) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81) at zombie.iso.IsoWorld.update(IsoWorld.java:3407) at zombie.gameStates.IngameState.updateInternal(IngameState.java:1657) at zombie.gameStates.IngameState.update(IngameState.java:1373) at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101) at zombie.GameWindow.logic(GameWindow.java:297) at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71) at zombie.GameWindow.frameStep(GameWindow.java:764) at zombie.GameWindow.run_ez(GameWindow.java:680) at zombie.GameWindow.mainThread(GameWindow.java:494) at java.base/java.lang.Thread.run(Unknown Source) This doesn't happen with any consistency, only at random, but it seems once in a while there's somehow no square for the IsoZombie. I've experienced this on all versions from 41.71 and up - not sure if it ever happened prior but I don't recall it.
  12. This has now occurred to another user who has no such known connectivity issue. They logged out and when they went to log back in it prompted them to make a new character. Another user who was able to get in just fine reported that the first was in their car and that the car would not move. This user's report was a bit inaccurate. They apparently were not seen by the other player to be in a vehicle it just said the seat was occupied, and they apparently logged in with the wrong username. Users, eh? lol.. Can't seem to delete posts so I've striked it through.. The original post is still relevant, that situation was bad and should not occur.
  13. My internet is out right now, and we are using a phone hotspot, so our connection is abnormally unstable and ping spikes to 500ms or 2000ms at random once in a while. One day when I finished playing on my server, I logged out as normal, PZ no longer running. The next day I logged in and was prompted to create a new character. Sometimes losing connection while joining can do this, so I hit back, repeated the attempt, it kept doing this. I looked in players.db and I was dead somehow. I edited players.db and set myself to not be dead, and when I joined I had almost every negative moodle maxed out and low health, and instantly died. At first I was confused, I thought this had something to do with laggy disconnection but thought it was more of a corruption or glitch issue. However, tonight when I quit out I then had a server restart, and I saw the server log reported me disconnecting even though I'd been gone for some half an hour. I looked further up in the log and it never showed me disconnect when I actually did. Not much to show you due to the nature of the problem.
  14. On my server (UdderlyRP) I have an incredibly small test group whom I do not have much control over, so forgive me that I cannot be 100% certain, but I think that the spontaneous reboots on 41.76 servers are caused by players who are still on 41.73 attempting to join. For them it gets stuck "Connecting" or "Contacting" instead of a P2P error sometimes, and then the server restarts after choking on the connection attempt. Attached is a tarball of two SIGSEGVs which I think are from this phenomena. I am in contact with the Valhalla Community staff and they were able to confirm this on their server. I will hand them the URL to this thread so they can add any evidence they have of the phenomena. server-files.tar.gz
  15. Could you expose the Vehicles.DB to Lua in some way, at least to get a list? It is useful to get a list of what vehicles are in a cell beyond what is currently loaded in. It would also be useful to have the accompanying functionality to check if it's loaded in, and force a vehicle to then load in if it is not. I would primarily be using this to get a count of vehicles in a cell and removing vehicles if they have not been interacted with in too long, but this would enable a lot of car-related dynamic features to run faster and be more reliable. I would hope this would be a relatively simple thing to implement that you wouldn't mind adding? I posted this as a separate thread without noticing this thread, so I'll reiterate this one: scripts need a syntax checking pass. I've lost dozens of hours to equals-instead-of-semicolon, missing bracket, and "Item" instead of "item" being overlooked. I'm sure this happens to many others too. When you override a recipe, it only applies to the first recipe with that name. That makes sense.. but how do you affect any further recipes with that name? Perhaps a syntax that lets you affect all recipes with a given name, or filter down by some other property such as ingredient or result would help. At present the only way to do this is to loop through every recipe and check for the name, and if it's the one you want, then do what you want to do to it in a lua script at load-time. If multiple mods do this, imagine how many times all the recipes are being looped through! Another way to fix this would be to give us a lua-exposed function capable of doing what ScriptManager:getRecipe(name) does, but capable of returning a table/array of recipes instead of just one - that way we can act on all of them without looping through everything at all. Further, it would be nice if there were a method to remove a recipe outright after it has been loaded in so that I don't have to set IsHidden to true and NeedToBeLearn to true to effectively remove them (thus at runtime less of code having to run through recipes that are not relevant).
×
×
  • Create New...