Awakening Server Mod

From Wurm Unlimited
Jump to navigation Jump to search

Release of the public Awakening Server mod, which is an extract of the original mod on the Awakening server. Selected parts have been compiled into this package, while code bound to server specific lore and standards has been left out. The main functionality in this mod consists of:

  1. A number of custom GM/CM commands as well as player commands.
  2. Leaderboards for skills and overall top player based on top 10 skills.
  3. Custom trait functionality.
  4. Offspring names.
  5. Block dropping dirt on enemy deeds (PvP).
  6. Block oak and willows from spreading.
  7. Custom pet handling, pets normally don't attack hostile creatures, unless given attack command.
  8. Use old (WO) skill gains for meditation skill.
  9. Block farm tiles on deed from growing unless tended.
  10. Custom player settings.
  11. Use old style meditation skill gains. Fix to make meditation work like on Wurm Online.
  12. Block alts; only one alt can login at the same time, or alternatively - block cross-kingdom alts.
  13. Send server lag reports.
  14. Kingdoms may become allies (PvP).
  15. Anti macro handling.
  16. Decay on locks, when owner has abandoned server for a long time. Locks rust and fall off and unplant.
  17. Unlocked vehicles can be claimed by embarking as driver, changes owner.
  18. Plagues, it will lower creature population over time if max number of creatures have been lowered.
  19. Kingdom inventory supplier, adds trader items to listed merchants.

All features can be switched on/off in the awakening.properties file.

Forum thread: https://forum.wurm-unlimited.net/viewtopic.php?f=12&t=10

Download here: https://github.com/awakening-wurm/AwakeningServerMod/releases

Disclaimer

Please note that this mod wasn't developed for public release, it was developed for the Awakening server, and parts of that code has been packaged into this mod. Therefore some features may seem strange or out of place because there are originally made for certain lore and ideals, so please keep that in mind. Also, all possible combinations of properties have not been tested, some combinations may not work properly. If you notice any bugs, please report them by PM to Kenabil either on discord or the forum.

Awakening Properties

The following properties are available for the properties file, values can be either hard or soft; hard means changes requires a server restart, soft means properties can be reloaded without requiring a server restart. All boolean properties, i.e. those with true/false values, always default to false, so you can safely remove all properties and only turn those features on that you want.

Please note that there are a lot of properties, and it takes quite a lot of time to write documentation, so there will come explanations for all properties, just be patient. Most property-names are hopefully self-explanatory to some degree.

useCommandHandler (true|false, soft)
Whether to use custom commands. Most custom commands will write usage instructions when entering the command without arguments. Some commands doesn't have any arguments, if so the description will say so.
handleCommandConfig (true|false, soft)
Adds the GM-command: #config
Reloads the Awakening properties file. Note, no other properties file is reloaded.
handleCommandRestore (true|false, soft)
Adds the GM-command: #restore
This command makes it possible to restore parts of the map to the shape of another map. You need to upload the other map, which for example could be the original version of the map at server start. Then load the other map into memory with the restore-command, and then use the restore-command to restore the map to the other version. Make sure to backup the map in case something would go wrong.
handleCommandAlts (true|false, soft)
Adds the GM/CM-command: #alts <player>
List all characters sharing the same steam ID or IP address, which may or may not be alts.
handleCommandMonitor (true|false, soft)
Adds the GM/CM-command: #monitor <player> <time>
This command will monitor actions of a player for time in minutes, which is written to a log file on the server. This is a tool for detecting macro cheating without having to login with a GM. The log file contains detailed information of actions and timers.
handleCommandPvP (true|false, soft)
Adds the GM/CM-command: #pvp <player> remove
On PvP-servers, makes it possible for staff to remove the custom player PvP setting.
handleCommandKarma (true|false, soft)
Adds the GM-command: #karma <player> <amount>
Give a player the amount of karma.
handleCommandRotate (true|false, soft)
Adds the GM-command: #rotate <wurmId> <degrees>
Rotates a creature with wurmId to the angle degrees. This helps GMs when setting up static creatures that doesn't move, but somehow is summoned in the wrong direction.
handleCommandInventory (true|false, soft)
Adds the GM-command: #inventory <wurmId> clear
Destroy all items in the creature's inventory.
handleCommandTransfer (true|false, soft)
Adds the GM-command: #transfer <player> <dbFile> <dbPlayer>
Transfer a player's money, karma and skills from an external db.
handleCommandSQL (true|false, soft)
Adds the GM-command: #sql [or #sql-<dbFile>] <sqlite3-query>
Executes a SQL-query, default dbFile is modsupport. For example, to edit the players db run #sql-wurmplayers UPDATE PLAYERS SET MONEY=1000000 WHERE WURMID=12345.
Warning! Only use this command if you know what you're doing.
handleCommandSchedule (true|false, soft)
Adds the GM/CM-command: #schedule
Enter #schedule for instructions how to use this command. Currently, the only scheduled action is broadcasting a message on a timer.
handleCommandSetResource (true|false, soft)
Adds the GM-command: #resource
handleCommandFlowersFix (true|false, soft)
Adds the GM-command: #flowersfix -- Used to fix bugged flowers on the map, i.e. flowers that doesn't exist.
handleCommandLag (true|false, soft)
Adds the command: #lag -- Show the amount of server lag in seconds since server start.
handleCommandBank (true|false, soft)
Adds the command: #bank -- Show money in the bank.
handleCommandPvPList (true|false, soft)
Adds the command: #pvp -- List all players with the PvP setting.
useLeaderBoard (true|false, hard)
Use the Awakening leaderboard. It adds a "Leaderboard" option when right clicking a skill in the skill-window, or in the Body-menu. By selecting it, a popup is opened with a top-ten list of the players with the highest skill-levels; or from the Body-meny, the top-ten players with the highest score of the average of their individual top-ten skills.
useLowerCaveCeiling (true|false, hard)
Feature to lower the ceiling in caves using concrete, works the same as raising floor.
useScheduler (true|false, hard)
Using the scheduler is required to use all scheduled features. This also includes saving player settings.
useItemCreationEntries (true|false, hard)
Adds a number of custom items and creation entries for many items that can't be created in vanilla Wurm.
usePlayerSettings (true|false, hard)
Adds an option in the Body-menu "Settings", with settings for opting to use PvP. What settings are available depends on what other features are turned on: On PvP servers, players can opt in for full PvP or limited PvP (this adds no special PvP game mechanics, only to show who are into PvP, on Awakening this is coordinated with special PvP rules and other servers may create other rules regarding this); opt in/out from all leaderboards (if leaderboards are turned on); For mayors theres a setting to disable custom deed farm growth (should be turned on to show); mayors can also select deed visibility on the map viewer.
useAcceptLoginDifferentIPs (true|false, hard)
Allows players to loging from diffeent IPs.
useMayorsCanTurnUnlawful (true|false, hard)
Allows mayors to turn unlawful.
useOffspringNames (true|false, hard)
When turned on, makes all offspring of all creatures get individual names, just like horses.
useCustomPetHandling (true|false, hard)
Improved handling of pets. By default pets are passive, and won't attack aggro creatures, nor be attacked. Pets now only attack when given the command to attack, and then continue attacking until given the command to clear orders. Note that when in combat, pet commands are handled like normal actions and are triggered after combat. Therefore pets neets to be given attack command before going into combat or they will remain passive.
usePlayerHoverText (true|false, hard)
Add custom tooltip-text when hovering over over a player. This will show [PvP] in the tooltip for players having the PvP-setting.
useKingdomsMayAlly (true|false, hard)
This setting will turn on the option for kingdoms to become allied. Allied kingdoms are not enemies and guards won't attack visiting players. Note: Tower guards won't listen to "guards!" calls from players of allied kingdoms.
useInitializeFarmToMidnightGMT (true|false, hard)
This will make farm ticks start the timer at 00:00 GMT instead of server start time. If the farm tick cycle is 24h it will always be at 00:00 GMT.
useFarmGrowthWhenTended (true|false, hard)
Farm tiles inside a deed border only go to the next growth stage when they have been tended. When a deed disbands, farm tiles will decay normally. Farm tiles can be used for decorating deeds in any growth stage by not tending them.
useAcceptingDeityNames (true|false, hard)
Will permit players to use deity names and other blocked names. To block specific names, simply create new characters with the names that should be blocked.
useIsTurnableFix (true|false, hard)
Fixes the GM-setting for items, so when set to not turnable, they are.
useIsMoveableFix (true|false, hard)
Fixes the GM-setting for items, so when set to not moveable, they are.
useBulkChest (true|false, hard)
Adds a smaller bulk storage item, the bulk chest, for storing bulk items in a furniture. It has a smaller volume and will store only a fraction of a BSB, but stores by volume and so small volume items can be stored in large numbers. The reason for this item is for mainly decorative purposes, place a bulk chest near an oven for wood scraps and kindling, or near a loom or spinning wheel for threads and yarn, etc. It may not loos as well with a large BSB. Can be loaded on a cart, so also works as a small loadable BSB.
useRecipeItems (true|false, hard)
Added custom recipe items, coffee beans, coffee, peanuts etc. To be used in custom recipes published on the WU forum for recipes. To gain access to this forum you must be a server host, apply to become member in the server hosts group.
useCorpseColourCreatureFix (true|false, hard)
For custom creatures. Corpses get the same colour as the living creature. This only applies to creatures where the template has a colour, so not creatures where the colour is because of a modifier such as "greenish".
useCorpseSizeCreatureFix (true|false, hard)
For custom creatures. Make the corpse get the same size as the creature. This only applies to creatures with a custom size. Corpses of creatures with modifiers such as "champion" get the same size anyway.
useAdjustSizeByTraits (true|false, hard)
Traits affects the size of creatures, making it possible to breed larger or smaller creatures. Note: cretures that can be mounted won't change size.
useAdjustMilkByTraits (true|false, hard)
Traits affects the amount of milk given, making it possible to breed for more or less milk.
useAdjustWoolByTraits (true|false, hard)
Traits affects the amount of wool given, making it possible to breed for more or less wool.
useBrandNullPointerFix (true|false, hard)
Bug fix for error messages when branding animals from outside the deed.
useMayDropDirt (true|false, hard)
Blocks dropping dirt on enemy deed tiles. This feature is for PvP servers, to prevent dropping dirt to pass dirt walls or moats. Instead, raiders have to use siege engines and climb dirt walls, which makes warfare more historically realistic.
useCheckForTreeSprout (true|false, hard)
Blocks oak and willow trees from spreading naturally by sprout.
useContinueInHouseWithoutManage (true|false, hard)
Permit continue building inside a house without Manage Building set.
useCanAllowEveryone (true|false, hard)
For PvP servers, adds option to set permissions for Everyone, i.e. including players from other kingdoms.
useCanPlantMarkerBlessed (true|false, hard)
Block planting highway markers such as catseyes unless blessed by a priest - making the highway system powered by magic.
useOldSkillMeditation (true|false, hard)
Use the old Wurm Online skill gains system for the meditation skill. This makes it possible to gain meditation 100 on a 1x1x server. Note that skill ticks are like on Wurm Online based on the action timer, and skill gains depends on the power of the skill check, so not all meditations will increase skill, and QL of the rug affects the chance of gains.
useOneCharacterPerSteamId (true|false, hard)
Block players from logging in with more than one character per steam ID at the same time.
useCharactersOnlySameKingdom (true|false, hard)
Blocking players from logging in with alts being citizens of different kingdoms. A main character is determined by selecting the alt with most online time, and alts of other kingdoms when logging in get one change to change kingdom and after that are unable to login again. Note that cross kingdom alts can still be created by using different steam IDs.
useHandleServerLag (true|false, hard)
Broadcasts a message when server is experiencing lag.
serverLagReportTime (default 10 minutes, soft)
Minimum time between lag reports.
antiMacroHandling (true|false, hard)
Activating the anti macro handling system, which detects macro patterns and sends a popup with a question "Are you a robot?", to which players need to answer "no" of course. A macro or clicker will continue the same action even after the question has been sent, and so if the question is failed the players is considered a player using a macro of some kind.
antiMacroPunishing (true|false, soft)
Activating punishing of players who has failed the robot question.
antiMacroPatternedActionTime (default 300 milliseconds, soft)
Time between actions in macro pattern detection.
antiMacroPatternedActions (default 100 actions, soft)
Minimum number of actions before sending the robot question.
antiMacroRobotActionsCounter (default 15 actions, soft)
Number of actions after the robot question has been sent, after which it will be considered macroing.
antiMacroRobotTestTimeMin (default 120 minutes, soft)
Minimum time before the robot question is sent.
antiMacroRobotTestTimeMax (default 240 minutes, soft)
Minimum time before the robot question is sent, random range min-max as minimum time.
antiMacroRobotPunishTime (default 10 minutes, soft)
If the robot question should be failed, either by answering "yes" or that the popup times out for some reason. The players can still pass the question by doing no actions at all for this amount of time. Next action after this time will send a message in the Event-log confirming the question passed.
antiMacroRandomActionsMin (default 1000 actions, soft)
Random number in the range min-max of actions between robot questions. So, robot questions will be sent as random tests even if no macro patterns have been detected.
antiMacroRandomActionsMax (default 2000 actions, soft)
Maximum value of the range of random actions between robot questions.
useDecayAbandonedLocks (true|false, hard)
This features removes locks on items such as carts and chests and BSBs, when the owner of the item has been offline for a set amount of time. This does not apply for items located inside deeds where the owner is a citizen. If the item is planted it will un-plant. The unlocking process is run at server restart and doesn't add to server runtime overhead.
decayAbandonedLocksDays (default 90 days)
Number of days of offline time of the owner of locked items, before locks decays.
decayAbandonedLocksPVEOnly (true|false, hard)
Limit lock decay to only be applied to items inside PvE zones or outside of PvP zones, depending on whether the server is PvP or PvE.
decayAbandonedLocksUnplant (true|false, hard)
Items where the lock decays also un-plant if planted.
useClaimByEmbarkUnlockedVehicle (true|false, soft)
Carts and ships without a lock change owner when a new player embark the vehicle as the driver. To remain owner the player should put on a lock.
usePlagues (true|false, hard)
Adds plagues to the server, causing random death to creatures in excess of maximum number of creatures.
plagueRadius (default 50 tiles, soft)
Each plague hit, creatures within a random circle with this radius are killed.
plagueMinPopulation (default 500 creatures, soft)
If population of a creature type is lower then this number, they are spared from the plague.
plagueMaxCreaturesMargin (default 1000 creatures, soft)
Margin added to maximum number of creatures.
useInventorySupplier (true|false, hard)
Resupply merchants with common trader wares (daily at 7, Wurm time):
kingdomTrader_1=<wurmId>
kingdomTrader_2=<wurmId>
etc.