Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Changelog
Towny Advanced 0.103.0.0
| Welcome to Towny 0.103.0.0. |
|---|
| Towny 0.103.0.0 is the first release in the 0.103.*.* series! |
| 0.103.0.0 marks another large shift in development, with the database now using UUIDs instead of names! |
| This means that downgrading after this point will require you to restore your Towny database from a backup. If you use mysql, make sure you create a backup. If you use Flatfile your Towny backups should already exist (unless you have disabled Towny's backup system.) |
| This version supports any Minecraft version 1.19.* and newer! This version of Towny should be run using Java 17 or newer! |
| This version contains new features and fixes that you want on your server! |
| This is a drag-and-drop update: just replace your old .jars with the new ones and Towny will take care of the rest of the update by itself. Your config file and Towny database will not be harmed. |
➕ Added (38)
➕ Added:
Add option to refund towns upon deletion.
- Adds a configurable system based on town age and size limits, to refund recently-made, "small" towns their full cost.
- Closes #7974.
Add new hovers to town and nation lists.
- Separate spawn and town/nation status screen hovers/clickables are now available.
- Closes #8100.
Add optional limits to town and nation ranks uses.
- New towny.ranklimit.# node which can be added to town and nation ranks to limit how many times a town or nation can use the rank.
- Closes #8035.
Add ability for nation members to teleport to outposts belonging to the nation's towns.
- Closes #5098.
- Closes #1728.
Add new message shown to mayor and assistants when someone spawns to their town and it has resulted in the town earning the money.
- Closes #7953.
Add the option to make the town bank cap plot-based.
- Closes #8045.
Add info/meta node for overriding teleport warmup.
- Closes #7950.
Add new CHESTS_WITHOUT_ENDERCHEST group, usable in the config switch_ids list, includes all chests but the enderchest.
- Closes #8095.
Add maximum deposit and withdraw settings for towns and nations.
- Closes #8046.
Adds option to deny cross world teleportation.
- Closes #8162.
Add hover to town and nation status screen title bars for admins.
- Displays name, uuid and town/nation level information.
Add test preventing copper golems moving items beyond same-owner plots.
Add protection for the waxed copper golem statues into the switch category when COPPER_GOLEM_STATUE is a switch_id.
Add waxed versions of copper chests into the COPPER_CHEST category.
Added option to hide nations and towns from the list pages when their banks are less than or equal to zero.
Add support for enabling conquering on a town via townyadmin command.
Add getFormattedTimeValue that accepts a player locale.
Add Scoreboard/HUD support for Folia, convert Scoreboards to Adventure.
UUID Database Update!
- READ CAREFULLY, THIS UPDATE HAS CHANGES THAT CANNOT BE REVERSED EASILY.
- Since Minecraft added UUIDs to players there has always been the idea of changing Towny over to using UUIDs as the main key in our database, but due to database instability this was not something that was considered a smart change. Database stability was majorly improved years ago however and starting in 2022 and 2023 I (LlmDl,) had pull requests on deck exploring/planning what a UUID-based database would look like for Towny. In the middle-to-late 2025 Warrior decided to revive the UUID database concept, breaking things into bite-sized pull requests that made the concept easier to review and merge. Those pull requests are as follows:
- Load UUIDs for residents, towns & nations early, courtesy of Warrior with PR #7945.
- Replace references to names with UUIDs in the database, courtesy of Warrior with PR #7962.
- Clean up town/nation/resident renaming logic, courtesy of Warrior with PR #7963.
- Use UUIDs for town/nation/resident file names in flatfile, courtesy of Warrior with PR #8023. Thanks to Warrior's efforts the UUID database has become a reality!
- What this means for Towny server admins:
- The database no longer saves using resident, town and nation names. Instead you will see UUID-named .txt files in the resident, town and nation folders, and UUIDs in the lists of friends, enemies and allies.
- Once you updated to this version your database will be converted and there is no going back. Towny will create backups of your pre-UUID database if you have backups enabled in the Towny config.yml and you are using Towny in flatfile!
- If your Towny database is stored in MYSQL you need to make your own backup! Towny doesn't back up MYSQL databases!
- Benefits:
- Your Towny database just got more error-proof.
- Renaming of residents, towns, nations should no longer be prone to edge-case scenarios that could cause issues.
- Server hosts which don't allow some unicode characters in the server file system's filenames will no longer fail to save/load towns and nations with special (usually accented,) characters.
- If you change hosts and your future-host does not allow the above unicode characters to be used in the filesystem, your server will not immediately fail to load!
- The main issue with Towny databases over the last few years was typically towns/nations being named with characters that server hosting would not allow in the filesystem, this database update will make this issue non-existant, which is why the benefits of this update outweigh the cons.
- Cons:
- The database's residents/towns/nations are no longer saved with their names. This makes editing your database manually trickier.
- To help this out the residents' files will now contain their town's last-known name, the towns' files will contain their nation's and mayor's last-known name. All residents, towns and nations files will contain their last-known name in their files.
- Ultimately, the benefits have outweighed the cons, stability has been good for Towny databases for 5+ years, and it is time to make this change in order to reduce the complexity of the codebase and to improve how Towny runs on varied server hosts.
Add new shear-to-remove-saddle mobs to entity list, courtesy of Warrior with PR #8018.
Future proof minecraft version parsing, courtesy of Warrior with PR #8034.
Bit pack perms in TownyPermission objects, courtesy of Warrior with PR #8048.
Add protection for golden dandelion usage, courtesy of Warrior with PR #8129.
Use mockito for unit testing, courtesy of Warrior with PR #8159.
- Improve NameValidation checks for banned names, courtesy of Veyronity with PR #8133.
- Prevents Towns and Nations being named with subcommands of /town and /nation.
- Replaced hard coded list with auto-populating list, which now also includes TownyCommandAddonAPI subcommands.
- Allow server owners to set a capital change cost, or for other plugins to modify it, courtesy of Veyronity with PR #8166.
- Configurable cost and NationKingChangeEvent#setCost now available.
- Add a cooldown to prevent towns spamming residents by outlawing and unoutlawing them, courtesy of Veyronity with PR #8074.
- Add PLOT_GROUP_TOGGLE to TownyCommandAddonAPI, courtesy of Veyronity with PR #8107.
- Add cooldown on how often towns & nations can request a merge with the same target, courtesy of Veyronity with PR #8134.
- Send dangerous action confirmation messages in red instead of gray, courtesy of Veyronity with PR #8145.
- Add a config option to allow dispensers damaging protected entities in PvP plots, courtesy of Veyronity with PR #8180.
- Add only_remove_claim_count for inactive resident claim limits, courtesy of GoodrichDev with PR #8119.
- When delete_old_residents.enable, only_remove_town, and only_remove_claim_count are all true (and delete_only_townless is false), residents who are offline longer than deleted_after_time no longer count toward ratio-based max town blocks.
- Resident data is kept: purge skips removing town/deleting residents in this mode.
- Add /ta resident set for lastonline/registered with timestamp validation, courtesy of GoodrichDev with PR #8120..
- Add /town nearby command, courtesy of Nrleryx with PR #8040. (First-Time Contributor!)
- Add setting manual NationLevels onto Nations, courtesy of confusedalex with PR #8112. (First-Time Contributor!)
- Add option to consider nation and town enemies as town outlaws, courtesy of Captain-S0L0 with PR #8132. (First-Time Contributor!)
- Separate public town/nation spawn default and maximum cost configs, courtesy of kaanalp28 with PR #8160. (First-Time Contributor!)
- Add config option to ingore ruined town in claiming distance check rules, courtesy of HydrolienF with PR #8178. (First-Time Contributor!)
➕ Automatic Config Edits (0)
➕ Towny's default config and world files will have the following automatic changes made:
- None.
✨ Command Changes (7)
✨ New Commands (7)
✨ New Commands:
/town nearby
- Shows a player up to 10 towns that are nearest to the player in the order of closest to furthest.
/n townoutposts listall
- list a nation's towns' outposts, with clickable teleportation.
/n townoutposts [townname] list
- lists a town's outposts, with clickable teleportation.
/n townoutposts [townname] [outpost]
- teleports to a town's outpost.
/ta nation NATIONNAME setnationlevel #|clear.
/ta resident <resident> set registered <timestamp>
- Sets the resident registered time with the timestamp being a long.
/ta resident <resident> set lastonline <timestamp>
- Sets the resident lastonline time with the timestamp being a long.
✨ Changed Commands (0)
✨ Changed Commands:
- None.
❌ Removed Commands (0)
❌ Removed Commands:
- None.
📕 Config Changes (24)
📕 New Config Options (24)
📕 New Config Options:
These new settings will be added to your config with their default settings.
global_town_settings.rank_names_to_be_treated_as_assistants
- Default: assistant
- The ranks to be given special priviledges, for instance when messages would be shown to only VIP town members.
- All ranks should be as defined in
townyperms.yml.global_town_settings.consider_enemies_outlaws
- Default: false
- If set to true, when a town is in a nation any player in another nation that the town's nation considers enemies will be considered an outlaw in that town.
global_town_settings.merge_request_cooldown_time
- Default: 60
- Number of seconds that must pass before a town can send a merge request to the same target.
global_nation_settings.merge_request_cooldown_time
- Default: 60
- Number of seconds that must pass before a nation can send a merge request to the same target.
economy.refund_deleted_new_towns.allow_refund_on_deletion
- Default: false
- Will towns that are recently created allow for a refund when the town is deleted by using the /t delete command?
- This allows a player who has founded their town in the wrong place to delete their town and move it.
- Towns must be less than the age specified below and have a configuable number of townblocks.
economy.refund_deleted_new_towns.max_town_age_in_hours
- Default: 1
- How many hours old is a town allowed to be in order to get the refund when being deleted.
economy.refund_deleted_new_towns.max_townblocks
- Default: 8
- How many townblocks is a town allowed to have in order to qualify for the refund.
economy.banks.hide_zero_or_under_banks_on_list_outputs
- Default: false
- When true town and nations with a bank balance of less than or equal to zero will not appear on the town and nation lists.
economy.banks.town_bank_cap_is_plotbased
- Default: false
- When true the bank cap is plot-based. The number of townblocks/plots a town has claimed will be multiplied by the above town_bank_cap value.
economy.banks.plotbased_bank_cap_uses_town_level_modifier
- Default: false
- When true the plot-based bank cap will also be multiplied by the town_levels' bank cap modifiers.
economy.banks.plotbased_town_bank_cap_minimum
- Default: 0.0
- The smallest cap that banks can have while using the plotbased bank cap.
- If this value is larger than the naturally-derived townblocks * town_bank_cap equation, this minimum will be used instead.
economy.banks.town_max_deposit
- Default: -1
- When greater than -1, the maximum amount of money players are allowed to deposit in town bank at a time.
economy.banks.town_max_withdraw
- Default: -1
- When greater than -1, the maximum amount of money players are allowed to withdraw from town bank at a time.
economy.banks.nation_max_deposit
- Default: -1
- When greater than -1, the maximum amount of money players are allowed to deposit in nation bank at a time.
economy.banks.nation_max_withdraw
- Default: -1
- When greater than -1, the maximum amount of money players are allowed to withdraw from nation bank at a time.
economy.spawn_travel.price_town_public_spawn_travel_maximum
- Default: 10.0
- Maximum cost to use /town spawn [town] that mayors can set using /t set spawncost.
- You can disable this setting by setting price_allow_mayors_to_override_public_spawn_cost to false. This will use the price_town_public_spawn_travel option to set a mandatory price.
economy.nation_capital_change_cost
- Default: 0
- The cost of a nation changing its capital
town_ruining.empty_towns_become_ruins
- Default: false
- When enabled, when the last resident is removed from a town and it becomes empty (such as when inactive resident deletion is enabled), the town will turn into a ruin instead of being immediately removed.
resident_settings.warn_player_on_outlaw_message_cooldown_in_seconds
- Default: 30
- How many seconds in between warning messages, to prevent spam.
resident_settings.delete_old_residents.only_remove_claim_count
- Default: false
- When true (and only_remove_town is true) residents are kept and only stop counting toward town claim limits after deleted_after_time.
spawning.require_spawn_destination_same_world
- Default: false
- When true, using /res, /t, /n spawn or /t outpost will fail when those spawn points are not in the same world as the player.
- Use this feature to require players use special portals to travel between your server's worlds.
spawning.nation_spawn.allow_nation_outpost_travel
- Default: true
- Allow regular residents to use /nation outpost [town] [outpost] (TP to other towns' outposts if they are public).
- Valid values are: true, false, war, peace.
- When war or peace is set, it is only possible to teleport to the nation, when there is a war or peace.
claiming.distance_rules.min_distances_ignored_for_ruined_towns
- Default: false
- If true, the below settings: min_plot_distance_from_town_plot and min_distance_from_town_homeblock will be ignored for towns that are ruined. Setting to false will keep all towns separated the same.
protection.are_mob_types_protected_against_block_projectile_sources
- Default: true
- Setting this to false will allow block projectile sources, namely dispensers, to harm the above protected mobs (using potions, arrows, etc.), if they're in the same townblock and PvP is enabled.
❌ Removed Config Options (0)
❌ Removed Config Options:
- None.
🔑 Permission Node Changes (6)
🔑 New Permission Nodes (6)
🔑 New Permission Nodes:
No change required in townyperms.yml.
- towny.command.town.nearby
- Will be automatically added to your nomads in the townyperms.yml.
- towny_teleport_warmup_seconds.N
- An info/option node (see https://github.com/TownyAdvanced/Towny/wiki/Towny-Permission-Nodes#infooptionmeta-nodes) that overrides a player's warmup time.
- Replace N with the seconds to use for a warmup time.
- When not set, the standard warmup time from the Towny config.yml is used.
- towny.command.townyadmin.nation.setnationlevel
- Child node of towny.command.townyadmin.nation.* and towny.admin.
- towny.town.spawn.nation.outpost
- Allows the use of /n townoutposts [townname] [outpost]
- child node of towny.town.spawn.nation, no changes to townyperms.yml required.
- towny.command.nation.outpost.listall
- Allows the use of /n townoutposts listall
- child node of towny.command.nation.*, no changes to townyperms.yml required.
- towny.command.nation.outpost.list
- Allows the use of /n townoutposts [townname] list
- child node of towny.command.nation.*, no changes to townyperms.yml required.
❌ Removed Permission Nodes (0)
❌ Removed Permission Nodes:
- None.
❌ Changed Permission Nodes (1)
❌ Changed Permission Nodes:
- Remove some townyadmincommand permission tests in favour of subcommand permission tests, allowing for more fine-grained permission node configurations.
- towny.command.townyadmin.town.*
- towny.command.townyadmin.nation.*
- towny.command.townyadmin.resident.*
- towny.command.townyadmin.toggle.*
- towny.command.townyadmin.plot.*
- The subcommands of these commands now rely soley on their own permission node, and do not require the parent permission node.
💻 API Changes (1)
💻 API:
- Add NationRangeAllowTownEvent, courtesy of Veyronity with PR #8128.
- An event thrown when a town is assessed during the nation proximity tests, allowing plugins to modify nation proximity rules on a per-town basis.
🔧 Fixed (60)
🔧 Fixed:
- Fix admin permissions on LuckPerms-using servers where OPs do not receieve towny.admin.
- OPs will now be given the towny.admin permission node by default.
- Closes #8017.
- Fix town bank accounts being removed before the feature isDeletedObjectBalancePaidToOwner can finish logging into the bank history book.
- Closes #8031.
- Fix copper golem test that caused Could not pass event ItemTransportingEntityValidateTargetEvent spam.
- Closes #8085.
- Fix outposts not following the min_distances_ignored_for_towns_in_same_nation and min_distances_ignored_for_towns_in_allied_nation when min_distance_for_outpost_from_plot is tested while creating an outpost using /t claim outpost.
- Closes #7829.
- Add Interaction entity to right click protected list.
- Closes #8121.
- Fix unclaiming near to outposts while min_adjacent_claims feature is in use.
- Closes #7891.
- Fix the message shown to mayors and assistants when someone spawns to their town showing prior to the teleport warmup time, resulting in unneeded messages.
- Fix 2 points where permission node tests bypass the adminbypass mode.
- Fix the message shown to mayors and assistants when someone spawns to their town showing prior to the teleport warmup time, resulting in unneeded messages.
- Fix towns having a spawn point in a non-existent world preventing the town being deleted.
- Fix admins with the adminbypass mode active not receiving teleport warmups and cooldowns.
- Fix occasions where plot groups exist in townblocks being removed.
- Fix itemuse list not being used against projectiles which are fired into the air.
- Fix titles messages showing their subtitle in the title position.
- Fix towny_teleport_warmup_seconds permission node not working.
- Fix adminbypass mode not applying to nationzones.
- Fix title and surname settings issues.
- Fix plot command being blocked in ruined Towns for players who are not town members.
- Fix nation-level-getting broken in 0.102.0.8.
- Fix HUDManager not accepting added HUDs.
- Fix empty nations saving themselves instead of getting deleted.
- Fix not throwing PlayerChangePlotEvents for passengers.
- Fix /towny prices missing the max tax percent caps when a town or nation has taxpercent in use.
- Fix added padding of scoreboards.
- Fix consider_enemies_outlaws config setting not applying to towns who are enemies with each other.
- Fix Nation's newCapitalFinder being able to pick a conquered town.
- Fix gradients not working when parsed through resident.formattedName().
- Fix a bunch of nation and town level weirdness, courtesy of Warrior with PR #8091.
- Fixed getTownLevelMax always being 1 too high
- Fixed TownLevelDecrease/IncreaseEvent firing for towns that have a manually set town level.
- Fixed the code around the Town/NationLevelDecrease/IncreaseEvent bypassing the level calculate events, possibly causing them to be wrongly fired when a plugin is calculating its own levels with the level calculate events.
- Town merge:
- Fixed the town's resident amount being used instead of the nation's resident amount for max outpost calculations.
- Fixed max purchased blocks not using the number of townblocks to calculate the town level when configured to do so.
- Fixed the purchased and bonus blocks of the succumbing town not being limited by the town block limit option when the town_block_ratio is in use.
- Fixed nation level methods wrongly using the modifier and level interchangeably (i.e. getNationLevelFromGivenInt was returning the floored modifier rather than the actual level).
- Prevent renaming town/nation files when name is invalid, courtesy of Warrior with PR #8137.
- Flatfile databases which loaded towns/nations with invalid names could result in a town/nation file being created with a name instead of a UUID.
- Fix exception when attempting to query NPC perms through LuckPerms, courtesy of Warrior with PR #8033.
- Remove world references stored inside WorldCoord, courtesy of Warrior with PR #8050.
- Fix message when attempting to overclaim your own town, courtesy of Warrior with PR #8051.
- Reduce allocations done by Resident hasRank methods, courtesy of Warrior with PR #8037.
- Lazily initialize maps used by TownBlock, courtesy of Warrior with PR #8049.
- Fix the townyperms group command not working with capitalized groups, courtesy of Warrior with PR #8055.
- Add null checks to the task schedulers, courtesy of Warrior with PR #8060.
- Enforce notnull for economy account name/uuid fields, courtesy of Warrior with PR #7705.
- Allow empty towns to turn into ruins, courtesy of Warrior with PR #8071.
- Fix IllegalArgumentException when a plugin we integrate with has a bad version, courtesy of Warrior with PR #8072.
- Fix the mayor succession event not being fired, courtesy of Warrior with PR #8086.
- Restrict usable minimessage tags in titles/surnames, courtesy of Warrior with PR #8096.
- Re-add removed res_8 lang string, courtesy of Warrior with PR #8097.
- Lower listener priorities for block events, courtesy of Warrior with PR #8123.
- Remove enderchests from default switch_ids config, courtesy of Warrior with PR #8147.
- Simplify explosion revert BlockState handling, courtesy of Warrior with PR #8153.
- Use dedicated age lock event instead of interact listener, courtesy of Warrior with PR #8158.
- Check the chunk is still wilderness after confirmation in /town new, courtesy of Veyronity with PR #8059. (First-Time Contributor!)
- Fix IndexOutOfBounds exception in /t join, courtesy of Veyronity with PR #8062.
- Ignore colors in length validation, strip unwanted minimessage tags, courtesy of Veyronity with PR #8116.
- NameValidation: Strip dangerous tags, not the allowed ones, courtesy of Veyronity with PR #8156.
- Bump javadoc plugin and fix javadoc goal not applying formatting, courtesy of SulkyWhale with PR #8161.
- Fix incorrect color for overclaimed upkeep, courtesy of SulkyWhale with PR #8173.
- Fix spacing for perm line after changing perms, courtesy of SulkyWhale with PR #8174.
- Fix a logic error in the PlotGroup#setResident function, courtesy of Remasuri with PR #8043. (First-Time Contributor!)
- Fix SQL loading of forSale, forSalePrice, and forSaleTime, courtesy of Groovymeister with PR #8063. (First-Time Contributor!)
- Fix unneeded msg_invalid_name exception message from /n enemy, courtesy of pernio with PR #8073. (First-Time Contributor!)
- Skip proximity checks when minimum plot distance is set to 0, courtesy of MakcNmk with PR #8087. (First-Time Contributor!)
- Fix Outlaw teleportation on Folia / Add support for Canvas outlaw teleportation, courtesy of Jsinco #8138. (First-Time Contributor!)
- Fix maxJailedUnjail method when town has no jailed residents, courtesy of Dionert with PR #8141. (First-Time Contributor!)
🌏 Language Updates (1)
🌏 Language Updates:
- Regular updates via Crowdin.
🌏 Dependency Updates (17)
🌏 Dependency Updates:
- Bump com.zaxxer:HikariCP from 6.2.1 to 7.0.2.
- Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.5.
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0.
- Bump org.apache.maven.plugins:maven-compiler-plugin from 3.13.0 to 3.15.0.
- Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.4.
- Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.0 to 3.6.2.
- Bump junit.version from 5.13.4 to 6.0.3.
- Bump net.luckperms:api from 5.4 to 5.5.
- Bump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0.
- Bump net.milkbowl.vault:VaultUnlockedAPI from 2.9 to 2.15.
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.11.2 to 3.12.0.
- Bump net.coreprotect:coreprotect from 22.4 to 23.2.
- Bump me.clip:placeholderapi from 2.11.6 to 2.12.2.
- Bump org.apache.commons:commons-compress from 1.26.2 to 1.28.0.
- Bump org.jetbrains:annotations from 26.0.2 to 26.1.0.
- Bump org.bstats:bstats-bukkit from 3.1.0 to 3.2.1.
- Bump io.github.git-commit-id:git-commit-id-maven-plugin from 9.0.2 to 10.0.0.
👽 Placeholder Updates (7)
👽 Placeholder Updates:
- %townyadvanced_player_location_in_homeblock% - Returns a string TRUE or FALSE if the player is in a homeblock.
- %townyadvanced_player_location_in_homeblock_owntown% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to their town.
- %townyadvanced_player_location_in_homeblock_ownnation% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town in the player's nation.
- %townyadvanced_player_location_in_homeblock_enemy% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town that is enemied with the player's town.
- %townyadvanced_player_location_in_homeblock_ally% - Returns a string TRUE or FALSE if the player is in a homeblock belonging to a town that is allied with the player's town.
- %townyadvanced_town_outposts_claimed%
- Displays how many outposts a town has, when the player has a town.
- Closes #8114.
- %townyadvanced_top_town_residents_and_open_n% - (Replace n with a number) Displays the nth Town that is open, arranged by the number of residents.
Towny Sponsors | |||||
|---|---|---|---|---|---|
| DrprofLuigi | akup001 | pebblehost | Diimoniix | tomhmagic | jshalbrook |
| Luexa | TurtleCraftMan | GoodrichDev | chessmastertobe | cobrex1 | lexiccn |
| Waspyethan | Stoniasawesome | SmallSansSerif | trevor1097 | KeNickGong | MilesBHuff |
| SolarCiv | Litning11 | Bloc-k | xSTORMYxSHM | lukemango | Theeno74 |
| Rekar7 | Folas1337 | keijodputt | NeumimTo | StevenSharker | Rialkingg |
| ewof | KermX | TylorTurner | HippieBeak | Newspoet | druidbrandon |
| yurdd | ZacharySeebeck2020 | JosefofMongolia | BattleBornPMC | MrG00s3 | ubobubob |
| loander | Karl4s | Kr1stuX | 32danny | xJ0Tx | KRDucky |
| minefortcom | Elementals-bit | EmperorDazed | Woodiie | Tesqage | FusionZ1 |
| ShermansWorld | yolo69-sts | AndyReckt | KeKnowlton | Atexur99 | StaccatoAunt007 |
| FantaFreak04 | Kuvvii | Jsinco | LucasUnderline | erenmakal | atlasmcplugins |
| DGCreates | ssdrive-flaktra | Phatdog731 | uplex11 | Krarwi | FutureLemon |
| Momshroom | gerardvanschip | ItzXPurpleX | spikehidden | AncientSM | CorruptedGreed |
| Triaie | Supersmurf82 | Nikkilectric | Cactusbandit | yurigarciia | spektrsoyuz |
| GeraldR12 | Triumvir-Civ | lDoomerl | NotAndre157 | Gl0W1E | gorbyhail |
| Sexy-Jura | TheNylox | and 36 private sponsors. | |||
If you want to support the developer, become a sponsor.(It's just like Patreon but instead 100% of your support goes to the developer.)Plus there are Sponsor Perks! | |||||
These are the people that help to make Towny's development as active as it is,
and who supported me during this release of Towny.
| Important Links | |||
|---|---|---|---|
| Frequently Asked Questions |
How Towny Works | Towny Install Guide | Towny Update Guide |
| Other Towny Plugins | Complete Changelog | Default Config Files | Commands/Permissions Placeholders |


