Skip to content

Suggestion: Player Weight System #8022

Description

@Lupancham

Please explain your feature request to the best of your abilities:

Reason: To prevent abuse by using alts to give a town more town blocks, an optional system should be implemented to allow weight-based town block granting. This also directly allows servers to create more content to grant more weight/engage players in the server even more.

Server Benefits:

  • Can or may prevent alt abuse.
  • Introduces new systems to make the server more engaging.

Player Benefits:

  • Allows players who have towns of their own to get town blocks without needing people to join their town. (EX: If a server has an XP system or Quest system, it can grant more weight to that player to upgrade their town status).
  • More engagement and reason to try server progression (If there is one) for the benefit of their own town.

Downsides:

  • It can cause another way of alt abuse, which can grant them more town blocks; however can be slower than the normal method of joining a large amount of alts to the town.

Implementations:

Granting Weight Implementation:

I am not completely sure on how this should be implemented, but I have 2 ideas on how it can be done.

Implementation 1:

  • Give players a towny.player.weight.$NUM permission to give them a specific weight. This permission can be stacked, so if a player has towny.player.weight.1 and towny.player.weight.2, their total weight will be 3.
    • Or the implementation could be toggled by either allowing permission stacking or making the highest permission be the player's weight

Implementation 2:

  • Grant players a weight using a command (EX: /townyadmin player <$PLAYER> <setweight/addweight/weight> [$NUM])
    • setweight sets the weight of the player.
    • addweight adds weight to the existing weight of the player.
    • weightreturns the weight of that player

Accessing a Player's Weight:

A player's weight can be accessed using /res <$PLAYER>, %townyadvanced_player_weight%, or %townyadvanced_player_getweight_<$PLAYER>%.

  • %townyadvanced_player_weight% Returns the player weight of that player.
  • %townyadvanced_player_getweight_<$PLAYER>% Returns the player weight of the specified player.

Using Player Weights to Grant Town/Nation Levels:

In Town Levels:

  - townBlockTypeLimits: {}
    upkeepModifier: 1.0
    townOutpostLimit: 0
    numResidents: 1
+   totalResidentWeight: 10
    debtCapModifier: 1.0
    namePostfix: ' (Camp)'
    bankCapModifier: 1.0
    mayorPrefix: 'Organizer '
    townBlockBuyBonusLimit: 50
    namePrefix: ''
    mayorPostfix: ''
    peacefulCostMultiplier: 1.0
    townBlockLimit: 50
    resourceProductionModifier: 1.0

In Nation Levels:

  - kingPostfix: ''
    capitalPostfix: ''
    upkeepModifier: 1.0
    kingPrefix: 'Leader '
    capitalPrefix: ''
    numResidents: 0
+   totalResidentWeight: 10
    nationBonusOutpostLimit: 0
    namePostfix: ' (Nation)'
    bankCapModifier: 1.0
    townBlockLimitBonus: 100
    namePrefix: ''
    peacefulCostMultiplier: 1.0
    nationZonesSize: 1
    nationTownUpkeepModifier: 1.0
    nationCapitalBonusOutpostLimit: '0'

Using Player Weights to Grant Town Blocks

claiming:
  
+ use_playerweight_system: true // Enable playerweight system (May be better to put somewhere else)
+ town_blocks_per_weight: '20' // 1 townblock per 20 playerweight

  # The maximum townblocks available to a town is (numResidents * ratio), if use_playerweight_system is
  # true, this system will not take effect.
  # Setting this value to 0 will instead use the level based jump values determined in the town level config.
  # Setting this to -1 will result in every town having unlimited claims.
  town_block_ratio: '0'

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions