ALE PCU Transferrer

LordTylus

Introduction

For administrators its a tedious job to paste grids in once CLANG demanded a new sacrifice to be given.

But to do that you have to paste the grid from workshop, or maybe even from a previous server iteration which results in OwnerID Changes. Also the "Keep Original Authorship" option in Space master is broken.

When you still want to enforce your own PCU and Block limits you need to make sure PCUs are properly set. However PCUs can only be transferred if you are the owner of them and you need to transfer all connected and subgrids.

This is what this plugin does

Commands

Space Master Commands

  • !freebuild
    • Increases all limits for the user to be able to paste limit exceeding grids. Run again to disable
  • !transfer <PlayerName>
    • Transfers all PCU and block ownership of the grid you are looking at over to the player.
  • !transfer <PlayerName> <GridName>
    • Transfers all PCU and block ownership of the named grid to the player.
  • !transferpcu <PlayerName>
    • Transfers only PCU of the grid you are looking at over to the player.
  • !transferpcu <PlayerName> <GridName>
    • Transfers only PCU of the named grid to the player.
  • !transferowner <PlayerName>
    • Transfers only block ownership of the grid you are looking at over to the player.
  • !transferowner <PlayerName> <GridName>
    • Transfers only block ownership of the named grid to the player.
  • !transfernobody [GrodName]
    • Transfers all PCU and block ownership of the grid with given name, or you are looking at over to nobody.
  • !transferpcunobody [GridName]
    • Transfers only PCU of the grid with given name, or you are looking at over to nobody.
  • !transferownernobody [GridName]
    • Transfers only block ownership of the grid with given name, or you are looking at over to nobody.
  • !forcetransfer <PlayerName>
    • Transfers all PCU and block ownership of the grid you are looking at over to the player ignoring ownership.
  • !forcetransfer <PlayerName> <GridName>
    • Transfers all PCU and block ownership of the named grid to the player ignoring limits.
  • !forcetransferpcu <PlayerName>
    • Transfers only PCU of the grid you are looking at over to the player ignoring limits.
  • !forcetransferpcu <PlayerName> <GridName>
    • Transfers only PCU of the named grid to the player ignoring limits.

When pasting some grids it may be possible they get some deformations or damage. To get rid of them easily there is also

  • !repair
    • Repairs all damaged and deformed blocks of the grid you are looking at.
  • !repair <GridName>
    • Repairs all damaged and deformed blocks of the given grid.

Unfinished blocks will not be fixed unless they are deformed or damaged. So blocks that are left on grid stage on purpose will not be changed.

Finally we have commands for world analysis

!listblocks <all|limited> [-pcu] [-player=<playerName>] [-faction=<factionTag>]

  • !listblocks all
    • Lists all blocks the world has.
  • !listblocks all -pcu
    • Lists all blocks and also outputs the total pcu.
  • !listblocks limited
    • similar to "!listblocks all" but shows only blocks that have block limits.
  • !listblocks limited -pcu
    • similar to "!listblocks all -pcu" but shows only blocks that have block limits.
  • !findblock <blockpairname> [-player=<PlayerName>] [-faction=<FactionTag>] [-groupby=<player|faction|grid>] [-metric=<author|owner>] [-findby=<blockpair|type|subtype>]
    • Shows which Faction or Player owns a specific block.
  • !listallblocks [-metric=<author|owner>]
    • Outputs which player has how many of which blocks in the world. This allows for easier overview so you dont need to run !listblocks or !findblock multiple times. You can also export the results to CSV for easier access.

You can filter the results by adding -grid=Gridname, -faction=XYZ or -player=Playername. If any of these filters contains spaces you need to set the whole expression in "". Example: !listblocks all -pcu "-player=My Player".

You can export the data to CSV using the -export=<filename> parameter. This will put the data into your Instances folder in ExportedStatistics.

Also sorting is possible with -orderby=blocks|name|pcu

Moderator Commands

  • !checkowner
    • Lists the owners and amount of blocks they own in descending order of the grid you are looking at.
  • !checkowner <Gridname>
    • Lists the owners and amount of blocks they own in descending order of the grid with the given name.
  • !checkauthor
    • Lists the authors and amount of PCU they own in descending order of the grid you are looking at.
  • !checkauthor <Gridname>
    • Lists the authors and amount of PCU they own in descending order of the grid with the given name.
  • !listgridsowner <PlayerName>
    • Lists all grids the player has block ownership on
  • !listgridsowner <PlayerName> -gps
    • Lists all grids the player has block ownership on and adds gps to executing player
  • !listgridsowner <PlayerName> -position
    • Lists all grids the player has block ownership also shows GPS in the window can be combined with -gps
  • !listgridsowner <PlayerName> -id
    • Lists all grids the player has block ownership also shows EntityId of the grid
  • !listgridsauthor <PlayerName>
    • Lists all grids the player has PCU ownership on
  • !listgridsauthor <PlayerName> -gps
    • Lists all grids the player has PCU ownership on and adds gps to executing player
  • !listgridsauthor <PlayerName> -position
    • Lists all grids the player has PCU ownership also shows GPS in the window can be combined with -gps
  • !listgridsauthor <PlayerName> -id
    • Lists all grids the player has PCU ownership also shows EntityId of the grid
  • !listgrids [-player=<PlayerName>] [-faction=<FactionTag>] [-orderby=<pcu|name|blocks|faction|owner>] [-id]
    • Lists all Grids and allows for filtering by player or faction and custom sorting.
  • !listnoauthor [-gps] [-position] [-id]
    • Lists all grids which have at least 1 block without authorship.
  • !checkusage player [-npc] [-online] [-faction=<Tag>] [-orderby=<pcu|block|name>] [-minblocks=<number>] [-minpcu=<number>]
    • Outputs the PCU and Blocks of ALL players on the server. Ordered by Block-Count by default. With min blocks and pcu 1.
  • !checkusage faction [-npc] [-orderby=<pcu|block|name>] [-minblocks=<number>] [-minpcu=<number>]
    • Outputs the PCU and Blocks of ALL factions on the server. Ordered by Block-Count by default. With min blocks and pcu 1.

Cleanup Commands

  • !gridcleanup <days> [-keepfactions]
    • Similar to !identity purge in essentials it deletes grids of inactive players, assigns ownership of shared grids to the biggest active owner and kicks inactives from the faction.
    • Unlike Essentials however it does not delete the Identity. Because identity purge will leave a then dead ID in the PCU ownership. Causing various issues depending on your world settings.
    • Auto reassinging PCU to the next player is a bad idea because that one player will most likely go over limits then. And just deleting blocks will destroy grids. Which is why just leaving the identity in there is probably the best solution.
    • if -keepfactions is set the players wont be removed from the faction
  • !deleteblocks buildby <playername> <gridname>
    • Deletes all blocks on specified grid build by the given player. Use "allgrids" to delete the blocks on ALL grids.
  • !deleteblocks ownedby <playername> <gridname>
    • Deletes all blocks on specified grid owned by the given player. Use "allgrids" to delete the blocks on ALL grids.

Things to be aware of

  • Similar to the game itself when transferring ownership to an other player connectors will unlock. So you need to ensure beforehand that nothing can get damaged in the process.

  • Also when the grid you are transferring has no PCU owner it wont immediately be updated the player will see it in its info tab and block limits, but when looking with the welder at the block grid you just transferred it may be that it is not shown at the moment. Sadly there is some game features missing to do it right away. Transferring from Player to Player works without issue

  • You can also transfer to players that are currently online.

  • The plugin will respect PCU and block limits as well as block-type limits. The plugin will tell you what will be exceeded for the player if you perform the transfer and will not allow it.

    • With the exception of the force commands. These will ignore the any limits.

Executing via Console

An online character is needed in order to run the commands that require looking at a grid.

All commands that want you to pass a grid name can be run by console also.

Github

See Here

Beta? Version Note Date Download DL Count
v1.1.10.1 Added -findby option to !listallblocks 10/1/20 9:28:50 PM Download 117
v1.1.10.0 !gridcleanup has now a -keepfactions parameter which disables the automated faction cleanup for this call. Any kind of grid transfer, or player filter can now also work with steamID and identityID in case players come up with funny names. And !listblocks and !findblock now have an -export parameter which allows to output the data to csv file in your instances folder. Lastly there is a !listallblocks command which lists how many of each block all players have. So you dont need to spam the !listblocks or !findblock commands for each blocktype or player. 8/8/20 12:39:27 PM Download 186
v1.1.8.8 Added !checkusage player and !checkusage faction commands that printout PCU and Blocks per player and faction 8/6/20 7:33:22 PM Download 102
v1.1.8.7 Added some secret command to yeet the asteroid seeds out of the world basically a light version of what essentials does. It doesnt belong in the plugin but didnt want to do a new one so undocumented secret command that wont annoy anyone it is then ^^ 6/29/20 6:38:58 PM Download 190
v1.1.8.6 Compatibility fixes and recompile for 195 Update. No new Features 6/24/20 7:05:39 PM Download 134
v1.1.8.5 Delete Blocks is no longer prevented by safezones 6/13/20 10:27:28 AM Download 135
v1.1.8.4 Added !deleteblocks noauthor and fixed error when player was not found by !deleteblocks buildby <playname> 6/11/20 4:31:03 PM Download 112
v1.1.8.3 !listnoauthor and !listgridsrange now also have the -id parameter 6/6/20 4:46:25 PM Download 127
v1.1.8.2 !listgrids !listgridsowner !listgridsauthor have now an -id parameter to display the entity ID. And !listblocks can now filter by gridname with wildcard as in Sm*223 or entityId 6/6/20 4:39:27 PM Download 52
v1.1.8.1 No longer blocks transfers if block limit mode is set to NONE 5/27/20 5:25:36 PM Download 130
v1.1.8.0 CheckOwner and CheckAuthor now open Dialog Messages instead of spamming the chat. 4/16/20 9:11:45 PM Download 192
v1.1.7.0 Improved Problem-Logging. Instead of just outputting the first Block that goes over limit there now is a Full List of all Blocks and how far they are over limit. Also We I added support for BlockLimiter Plugin which when installed can be asked if a Transfer is possible. This however is disabled by default. Also there are issues where BlockLimiter gets confused when transferring so the Limits may go out of sync, or it may even prevent the transfer alltogether. However neither of these issues is new. 4/11/20 1:22:52 PM Download 132
v1.1.6.0 added -findby=<type|subtype|blockpair> option to !listblocks and !findblock. Also Added -metric=<owner|author> filter to determine how the blocks will be filtered when -player or -faction is used. And !listgridsrange will now also output the range next to the gridname. 4/3/20 7:49:33 PM Download 142
v1.1.5.1 Just a recompile to fix various problems with new update no code changes 3/19/20 10:48:43 PM Download 164
v1.1.5.0 added !deleteblocks commands 2/15/20 6:49:11 PM Download 175
v1.1.4.9 Added -groupby=grid option to !findblock 2/8/20 6:18:25 PM Download 141
v1.1.4.8 Added !listnoauthor command 2/7/20 9:43:41 PM Download 124
v1.1.4.7 added a -owner option to !listgridsauthor and !listgridsowner to figure out easily which grids belong to an entirely different player 1/21/20 7:09:29 PM Download 156
v1.1.4.6 We now filter duplicates from the !listgridsrange command 1/19/20 2:31:34 PM Download 129
v1.1.4.5 Added a -grid Filter option to !listblocks 1/14/20 5:48:55 PM Download 142
v1.1.4.4 Added Debug Info to Plugin 12/17/19 11:13:19 AM Download 176
v1.1.4.3 No Functional Changes just reorganized the Project and updated Dependencies 12/16/19 9:55:39 PM Download 133
v1.1.4.1 Added !listgridsrange <range> command to see what grids are around your character 12/16/19 3:10:40 PM Download 134
v1.1.4.0 added !cleanupgrids command which works similar to !identity purge but without deleting the identity. 11/23/19 2:42:48 PM Download 163
v1.1.3.2 Bugfix: When transferowner did not found a player it no longer cause errors 11/23/19 12:42:19 PM Download 104
v1.1.3.1 Added way to transfer from nonexistent players, added option to transfer to nobody with !transfernobody 10/3/19 8:39:21 PM Download 191
v1.1.3.0 If Blocklimits are disabled / MaxBlocks set to 0 you can now transfer blocks also 9/20/19 8:28:48 PM Download 170
v1.1.2.6 !protect and !unportect commands added 9/15/19 2:35:07 PM Download 154
v1.1.2.5 !findblock command implemented, that shows which player has how many of which block. 9/10/19 7:32:01 PM Download 167
v1.1.2.4 New command !listgrids added that lists all grids and allows for custom filtering and sorting 9/10/19 5:52:48 PM Download 153
v1.1.2.3 -orderby=<blocks|name|pcu> added to !listblocks command 9/10/19 4:20:27 PM Download 128
v1.1.2.1 !checklimits command now shows "build / total (remaining)" for PCU and Blocks to be less confusing. 6/2/19 6:50:42 PM Download 276
v1.1.2.0 UI Added and Freebuild command can now be disabled again 5/23/19 6:10:30 PM Download 167
v1.1.1.0 filters for faction and player added to listBlocks command 5/19/19 2:45:41 PM Download 169
v1.1.0.1 checklimits command is now also available for moderators 5/18/19 8:36:39 PM Download 154
v1.1.0.0 Gridtransfer to offline players is now possible. Also there are a few new Analysis commands for Blocks, Grids and Players 5/18/19 8:34:30 PM Download 141
v1.0.3.0 New Command !freebuild that increases blocklimits of the user to be able to paste otherwise limit exceeding grids 5/5/19 9:07:25 PM Download 163
v1.0.2.0 New Commands listGridsOwner and listGridsAuthor to find all grids based on owner/authorship of an player 5/2/19 8:55:50 PM Download 153
v1.0.1.0 check commands for owner and authorchip and force option for transfer to ignore limits 5/1/19 7:33:31 PM Download 147
v1.0.0.2 Some small refactoring no new features 4/30/19 10:10:09 PM Download 148
v1.0.0.1 performance fixes & better logging 4/30/19 9:39:50 PM Download 139
v1.0.0.0 First Plugin Version 4/28/19 2:56:57 PM Download 146