Adambean

Members
  • Content Count

    287
  • Joined

  • Last visited

Community Reputation

43 Decent

About Adambean

  • Rank
    Villager

Accounts

  • Chaos
    Adambean
  • Independence
    Adambean
  • Deliverance
    Adambean
  • Exodus
    Adambean
  • Celebration
    Adambean
  • Xanadu
    Adambean
  • Release
    Adambean
  • Pristine
    Adambean
  • Epic
    Adambean
  • Acc1
    Adambean
  • Acc2
    Adambean
  • Acc3
    Adambean

Recent Profile Visitors

2,032 profile views
  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.