Skip to content

Suggestion: Player Weight System #8022

@Lupancham

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'

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