Adambean

Members
  • Content Count

    287
  • Joined

  • Last visited

Everything posted by Adambean

  1. I didn't sorry. Due to the neglected state of this game I've not played it at all since August last year, so I doubt I'll be looking into it again any time soon.
  2. It's not looking good side by side. 🙂 That 58% positive reviews giving a "mixed" rating can't be helping either.
  3. Thanks for your response Ricowan. Nope wasn't that. Turns out WU server decided to completely corrupt its items database. I restored a good one from a previous backup and all was well, apart from the fact WU server also decided it wasn't really going to write changes to disk for about a week. So yeah, that's grand. Great software this.
  4. Suddenly anyone connecting gets thrown out with this error... With all the random issues going on only recently it's like WU Server is deliberately doing destructive things as an end of life built in obselesence. Here it is without Sortmod:
  5. Thanks for your response. 🙂 Interesting, those 3 settings seem to mean nothing to my server. Did you have to do anything else to a map that already existed? Not sure which of the following mods may interfere with trading, but mods currently loaded are: announcer Armoury betterdig betterfarm bindmod chestclaim creatureagemod cropmod customRMImod deedmod DiscordRelay DUSKombat Dyemaker FireBurnTime fixguards gmcommands harvesthelper httpserver hwportals inbreedwarning increasemerchantitems LocationCommand meditatemod moonmetalminingmod movetocenter onetilemining planters sacrificemod scriptrunner serverdebug serverfixes servermap serverpacks serverplayercounter ServerTimeCommand ServerTweaks setheight SinduskLibrary spellmod tentsleep timerfix TreasureHunting VoteReward waxed WyvernMods Obviously "increasemerchantitems" would sound alarms, but this apparently only applies to personal merchants. I'll turn this off though for science.
  6. Further analysis and feedback: Items self created almost never disappear. Items purchased from a salesman are more likely to be reported as disappearing, or being auto-dropped to floor. It has also been said that moving the items to a container then back to self can avoid this problem. Horse saddles and shoes are disappearing frequently. To test the salesman issue last night I purchased a two handed sword for 2 iron coins, left it in my inventory, then logged out. When I came back on 7 hours later I still had the two handed sword, but also had the 2 iron coins I had used to purchase it..! I'm not convinced these INI settings do anything: USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_DAMAGE_IN_DATABASE=false USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_LASTOWNER_IN_DATABASE=false USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_OWNER_IN_DATABASE=false USE_SCHEDULED_EXECUTOR_TO_UPDATE_ITEM_PARENT_IN_DATABASE=false Possibly related:
  7. What events could I add to "nitor.com.wurmonline.server.Server.run" to find out why player items disappear for no reason?
  8. Hello, I've been getting complaints about items disappearing for no reason. There are no traces of the described items in the WURMITEMS database, and no trace of them disappearing (or any error at all) at the approximate date/time in the main server log. It's not happening to all players, some are experiencing it all the time, but others haven't lost anything at all. I did recently acquire Friya's Server Debugging mod to see if this can log extra information to determine what is causing items to vanish, but it looks like I'd need to listen for specific events under the "monitor.com.wurmonline.server.Server.run" setting. What would I need to add to this list? Obviously this is currently impossible to support. What can I do about this?
  9. Just curious, since updating to the ServerMap mod (ditching manual JAR creation), did the 920x620 PNG image requirements change? My standalone PNG is delivered but now gets cropped to square: Config is: addServerMapPack=true renderServerMap=false
  10. Update: This is somewhat workaround-able with an external script to periodically run an SQL query using the included SQLite binaries. On the plus side you won't need to shut down your server, however effected players will need to reconnect to refresh their item ownerships. (I don't see why teleporting in game would do the trick. A reconnect will be necessary.) You could also schedule this script to run periodically thoughout the day (4-6 times a day should be enough) so that impacted players get fixed automatically "soon enough". First you need to gather a list of salesman Open a command prompt or terminal to your WU server world's SQLite directory. Windows e.g.: "C:\Games\Wurm Unlimited\Creative\sqlite" Linux e.g.: "~/wu/Creative/sqlite" Execute the following command to gather a list of salesman in this world: Windows: sqlite3 wurmcreatures.db "SELECT NAME, WURMID, INVENTORYID, KINGDOM FROM CREATURES WHERE NAME = 'Salesman' ORDER BY WURMID ASC;" Linux: ./sqlite3 wurmcreatures.db "SELECT NAME, WURMID, INVENTORYID, KINGDOM FROM CREATURES WHERE NAME = 'Salesman' ORDER BY WURMID ASC;" You should see a tabular response such as this: Salesman|1651941031169|845793807970323|3 Salesman|1652209466625|845931246923795|1 Salesman|1653216099585|846446642999315|2 Salesman|6875661450497|3520338662666259|4 The columns will respectively be the NPC name (obviously), its wurm ID, its inventory ID, and its kingdom. (0 = none, 1 = MR, 2 = JK, 3 = HOTS, 4 = FI) The kingdom may not be necessary, this may just help you identify which salesman is which. At this stage you could identify if any of your salesman have been sold an item but haven't fully received ownership of it with this command: Windows: sqlite3 wurmitems.db "SELECT WURMID, NAME FROM ITEMS WHERE PARENTID = 845931246923795 AND OWNERID != 1652209466625 ORDER BY NAME ASC;" Linux: ./sqlite3 wurmitems.db "SELECT WURMID, NAME FROM ITEMS WHERE PARENTID = 845931246923795 AND OWNERID != 1652209466625 ORDER BY NAME ASC;" Now we can create a command file to correct such items in bulk. For Windows servers In your WU server world's SQLite directory create a plain text file called "maintenance.cmd", and open it in your favourite plain text editor (such as Notepad or Sublime Text). Paste in the following content: @ECHO OFF ECHO Fixing salesman item ownership... For each of your salesman you'll need to add the following line, though replace "<INVENTORY_ID>" and "<WURM_ID>" for the salesman's inventory ID (column 3) and Wurm ID (column 2) from the table you obtained previously: sqlite3 wurmitems.db "UPDATE ITEMS SET OWNERID = <WURM_ID> WHERE PARENTID = <INVENTORY_ID> AND OWNERID != <WURM_ID>;" So for my four salesman I've got: sqlite3 wurmitems.db "UPDATE ITEMS SET OWNERID = 1651941031169 WHERE PARENTID = 845793807970323 AND OWNERID != 1651941031169;" sqlite3 wurmitems.db "UPDATE ITEMS SET OWNERID = 1652209466625 WHERE PARENTID = 845931246923795 AND OWNERID != 1652209466625;" sqlite3 wurmitems.db "UPDATE ITEMS SET OWNERID = 1653216099585 WHERE PARENTID = 846446642999315 AND OWNERID != 1653216099585;" sqlite3 wurmitems.db "UPDATE ITEMS SET OWNERID = 6875661450497 WHERE PARENTID = 3520338662666259 AND OWNERID != 6875661450497" Save this file. If you have a backup roster be sure to include this file. You can run it in a command prompt to check it works, and verify it by either (re)connecting to the server if it were you impacted, or use the previous "SELECT WURMID, NAME FROM ITEMS WHERE PARENTID..." query. To schedule this with Windows Task Scheduler: Open the Task Scheduler. (Easily found by typing this in the Start menu search, or go to Control Panel then Administrative Tools.) Select Task Scheduler Library in the tree to the left. Right click the white background and choose Create New Task. Give your task a sensible name, e.g. "Wurm Unlimited: Creative world maintenance" Set the user in the security options to the same user that runs your Wurm Unlimited game, and opt Run whether user is logged in or not, and tick Do not store password. Create a Trigger to your preference, but perhaps it'd be sensible to choose Daily then repeat task every 3 hours or 4 hours. (Type in the interval.) Create an Action: Program script needs to point to the "maintenance.cmd" file, e.g. "C:\Games\Wurm Unlimited\Creative\sqlite\maintenance.cmd". (Be sure to "quote it" if your directory path contains spaces.) Leave the arguments empty. Start in needs to be the directory path where "maintenance.cmd" is located, e.g. "C:\Games\Wurm Unlimited\Creative\sqlite". (DO NOT "quote it" even if it has spaces.) All other settings can likely be left as default unless you've got some preference. Save this task. You may wish to export this task for backup as an XML file by right clicking it and choosing that. A sensible location would be alongside "maintenance.cmd" then include it in your backup roster. For Linux servers In your WU server world's SQLite directory create a plain text file called "maintenance.sh", and open it in your favourite plain text editor (such as Kate or Sublime Text). Paste in the following content: #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" printf "Fixing salesman item ownership...\n" For each of your salesman you'll need to add the following line, though replace "<INVENTORY_ID>" and "<WURM_ID>" for the salesman's inventory ID (column 3) and Wurm ID (column 2) from the table you obtained previously: "${DIR}/sqlite" "${DIR}/wurmitems.db" "UPDATE ITEMS SET OWNERID = <WURM_ID> WHERE PARENTID = <INVENTORY_ID> AND OWNERID != <WURM_ID>;" So for my four salesman I've got: "${DIR}/sqlite" "${DIR}/wurmitems.db" "UPDATE ITEMS SET OWNERID = 1651941031169 WHERE PARENTID = 845793807970323 AND OWNERID != 1651941031169;" "${DIR}/sqlite" "${DIR}/wurmitems.db" "UPDATE ITEMS SET OWNERID = 1652209466625 WHERE PARENTID = 845931246923795 AND OWNERID != 1652209466625;" "${DIR}/sqlite" "${DIR}/wurmitems.db" "UPDATE ITEMS SET OWNERID = 1653216099585 WHERE PARENTID = 846446642999315 AND OWNERID != 1653216099585;" "${DIR}/sqlite" "${DIR}/wurmitems.db" "UPDATE ITEMS SET OWNERID = 6875661450497 WHERE PARENTID = 3520338662666259 AND OWNERID != 6875661450497" Add a blank line after this, then end the file with: exit 0 Save this file. If you have a backup roster be sure to include this file. To schedule this with Crontab: Open the Crontab with command: crontab -e Add a line with the schedule of your choice, for example to either run this every 3 or 4 hours (pick one), and replace "<user>" for the username running this script, and the path, obviously: 0 */3 * * * /bin/bash /home/<user>/wu/Creative/sqlite/maintenance.sh 0 */4 * * * /bin/bash /home/<user>/wu/Creative/sqlite/maintenance.sh Save your crontab. If you'd like to backup your crontab it'd be sensible to do this with command: crontab -l > ~/.cron
  11. Speaking of spell mod, would it be possible to override a quirk with the erupt spell? If you are a GM and happen to be high enough on the path of power to have earned the erupt spell that GM can no longer use a wand to erupt due to spell restrictions taking place. This means only Magranon followers can use it whilst close enough to their domain. As a Libila follower it means its no longer possible to use erupt at all, both via a statuette or wand.
  12. Heh just found this thread of interest: I was not aware that this mod exists to help find the problem. I'll give it a go:
  13. I've noticed that as of the past couple of days my WU server process regularly (every 5-10 minutes) seems to be stuck in a blocking loop lasting about 30-60 seconds. During this period the game is largely unresponsive to players. (Menus not usable, can't move properly, etc.) Usually at the end of it if you've moved your game client isn't in sync with your position on the server. This definitely looks to be CPU related, not memory or disk I/O: The only change I had made was increasing the tree spread odds variable from 500 to 1000. I thought perhaps there was some limit or bug causing a loop every time tree spreading was being "gambled", though since putting that back to 500 the problem still persists.
  14. No, it won't. Some confirmed bugs from multiple years ago have been unaddressed, or fixed only internally.
  15. Be aware that the above INI settings will not fully resolve trading issues. Eventually your weight will silently become overloaded, and you won't be able to pick anything up. (Unless you play as GM level 5.) To counter that you must occasionally shut your server down and run an SQL query to complete transactions, though this is highly impractical if you have a busy server or multiple players trading.
  16. I trust then this is another bug for the list that is never going to be looked at.
  17. Just coming back on an issue I had with epic missions appearing as "enemy" even for my own kingdom, looks like this setting in the arena module was causing it: #makeFreedomFavoredKingdom: Makes Freedom always the favoured kingdom on the server. Affects both PvE and PvP servers. # This option is specifically meant to prevent PvP servers from creating epic missions which favour inactive kingdoms. # In that way, it is sort of meant to enable same-kingdom PvP environments, but can be useful in other senses as well. makeFreedomFavoredKingdom=true Flipping that to `false` made the Libila mission accessible to me as a member of HOTS.
  18. Bdew shed some light into the crash issues with the client-side SortMod. In summary the mod isn't the direct cause of the crash, but the way its written causes another part of the Wurm client to crash. Essentially whenever your connection to the server gets a short disconnect for any reason (which can just be down to overloaded storage IO) and needs to go through the reconnect process the SortMod causes a crash because of the "java.io.IOException: Disconnected" exception thrown by the vanilla client isn't gracefully handled in the hook used by the mod loader. (In this case that would be the "serverUpdate" hook.) Without the SortMod the intended reconnect process happens (with the WU splash screen). It makes sense that the "serverUpdate" hook is used by this mod because it needs to refresh all inventory containing UI widgets any time the server sends an update about them, for example if you sort by damage (highest first) then start repairing the mod will re-sort by damage after each item is repaired. (A splendid convenience feature.) Discord transcript:
  19. To my knowledge with bdew's fix the only thing not showing at all is the directional arrows when you "View Links" on a highway eye/waystone. Not speaking for everyone, though to me that's super low priority. I only use this function if I somehow mess up placement of eyes/waystones and cause a conflicting/unintended path, typically at a junction. The 3 more important aspects: shafts, spirits, and highway tile protection; are in a very acceptable state. Thank you again bdew, you're undoubtedly a top character in WU's QOL.
  20. As you mentioned some of the colours are off, but it's still totally recognisable what is happening. this is a very acceptable fix. What a star! Definitely worth using your fix to get the frame rate benefit of VBO.
  21. We were told that it already would be in the next update, which says to me that it had already been actioned internally. It would however appear that this isn't going to be delivered.
  22. Can confirm this is NOT fixed in the much awaited update (1.9.2.7). White and black shafts still don't appear, and eagle+drake spirits are invisible. The red rift shaft does work though.
  23. Hello Governor, Thank you for the Copy/Paste Mod. Would it be within scope for an extra feature whereby only certain aspects of an item are copied? It would be particularly useful if say the flags within Manage Restrictions could be copied/pasted. This would speed up a GM setting flags for walls/fences/etc in neutral/spawn zones.
  24. Did you do that manually? The slider in mine maxes at 120.
  25. It has been 9 months already since 1.9.1.6 came out. As "soonish" doesn't really mean anything at all, and the only updates that will come are unspecified bug fixes (a list would be nice) and built-in Modloader, it's safe to assume that what we have now will literally be it from an official point of view.