GameModes

Recently, I have been preparing our Modified Statistics, AntiName and Streaks plugins for a newer TShock build that we should update to. There will be no functional changes to those plugins, other than compatibility with the newer TShock Build, fixes to some issues and of course there will be some changes to tshock commands and tshock internals, but other than that there will be no significant changes. Instead I will be releasing the first part of a GameModes System, with some Abilities to use in them.

Here are the specs of the initial GameModes release:
[ul]
[li]GameTypes: TDM, FFA and Duels[/li]
[li]7 Abilities (5 PR, 5 GR, 2 Neutral, 1 For Non-Traders [Deathnades])[/li]
[li]Lobbies supporting up to 10 Players[/li]
[li]Lobby Hosts who control the Lobby[/li]
[li]Lobby Chat (Default when in a Lobby, “/all” to chat in Global[/li]
[li]Random Arena Selection[/li]
[li]Player-Created Arena’s[/li]
[li]Arena GameType-Templates[/li]
[li]Multiple Arena SpawnPoints[/li]
[li]Use of ‘Status’ packet (Normally used for “Receiving Tile Updates: 50%”|) for a Menu[/li]
[li]‘Allowed’ GameTypes per Arena[/li]
[li]GameTypes Paramaters[/li]
[/ul]

Keywords:

  • GameType
  • Battle
  • GameMode
  • Lobby

A Battle is the state that a Lobby goes into when an Arena, GameType and Parameters have been set and the ‘Host’ makes the transition. In this state, Players will be forced-PvP, and will need to leave the Lobby to exit the Arena.

GameTypes
This simply means the type of Battle that will be used when the Lobby Host starts the Battle. The basics (TDM, FFA, Duel) will be provided only in the initial release, other GameTypes will be discussed and implemented after. Such as CTF, Dom, Bag Tag, Flame Tag, Virus, Assault, Elimination, Escort, Knockout, Last Stand, Vampire, Thief, Leech, Zones and Gladiator. (Source)

Abilities
Deathnades will be the ability for non-Traders. This simply sends out Grenade Launcher projectiles on-death. The other Abilities will be detailed in the Abilities Thread when they are all finished. Neutral refers to being available for both PR and GR.

Lobbies
One of the important features of GameModes over previous plugins, such as C3Mod, is that it utilizes Lobbies to allow players to invite others into a Lobby, Select an Arena, GameType, Template, GameType Parameters and GameMode Paramaters. With a ‘Host’ being allowed to kick other players and control the lobby as such. The Host is either the person who created the Lobby, or the person that was given ‘Host’ after the actual ‘Host’ left. This means that if certain players are being a nuisance, they can be kicked from the Lobby. Only players that were invited (by players already in the lobby) can join.

However, there are two types of Lobbies; Public and Private. The one described above is a Private Lobby, where a ‘Host’ controls the Lobby, and players must be invited. This is the only Lobby Type that will be in the initial release. The Public Lobby does not have a host, instead participants in the Lobby will vote as a group for any changes, and a Battle will start automatically after a certain time period.

Arenas
An Arena is a defined area that GameTypes can be attributed to, and Battles can take place. An Arena can only be in-use by one Lobby at a time. Note that this is an important feature from previous experiences: 4 Arena’s can be used for the same GameType at the same time, the only limit is on the use of each Arena, which includes only one-Lobby per Arena, as well as those defined by the Creator and Maintainers of each Arena, including the ‘Allowed GameTypes’.

Player-Created Arena’s will also be included. This means the ability for non-Staff Members to create their own Arena’s, and push them into the Arena Pool for the GameModes plugin. A Player will be required to either specify a House Region or TShock Region (which they own) as a basis of the area for the Arena, other Parameters can then be set and modified later, such as SpawnPoints, Allowed GameTypes and Max Players. People will also be free to create their own Templates for Arena’s which other people can use. Such as the Template “Sniper’s Only” for the Arena “Death Valley”; these templates can be loaded by Lobby Hosts which will Macro-Change the Lobby Settings for a Map. Alternatively, these settings can be manually modified by the Lobby Host before a Battle is started, and later saved as a Template.

Lobby Menu
The area where the ‘Receiving Tile’ stuff usually goes, there will be a Lobby Menu, including Players In-Lobby, their Teams (if Battle Started or Host-Defined), current selected GameType, current selected Arena and Current/Max Players.

Parameters will include:
[ul]
[li]Weapon Blacklist/Whitelist (Blacklist is like ‘No Rainbow Gun’, Whitelist is like ‘Only Sniper’|)[/li]
[li]Tool Blacklist/Whitelist (Such as ‘No RoD’, 'No Grappling Hooks, or ‘Only x Grappling Hook’|)[/li]
[li]Respawn Timer[/li]
[li]Random/Defined Spawns (Defined means the spawns defined by the Arena Creator)[/li]
[li]Max Score (Kills for FFA/TDM; Round Wins for Duels)[/li]
[li]Mob Interference (Whether Mobs are allowed in the Arena)[/li]
[li]Automatic or Defined Player Teams[/li]
[/ul]

However, future Parameters may include:
[ul]
[li]Max Projectile Velocity / Projectile Velocity Modifier[/li]
[li]Projectile Damage Modifier (Such as Half Damage)[/li]
[li]No Abilities[/li]
[li]LOS (Line of Sight)[/li]
[li]Max LOS Distance[/li]
[li]Killstreaks/Deathstreaks[/li]
[li]Arena Events (Such as Floods) or Random Mob Spawns[/li]
[/ul]

Future Non-Parameter Updates
In the Future, new GameTypes, Lobby Features and also Statistics for each GameType+Arena.

1 Like

waw I read so much and only understood like 5 things .-. can you simplify the more complicated parts like " A Player will be required to either specify a House Region or TShock Region (which they own) as a basis of the area for the Arena, other Parameters can then be set and modified later, such as SpawnPoints, Allowed GameTypes and Max Players. People will also be free to create their own Templates for Arena’s which other people can use. Such as the Template “Sniper’s Only” for the Arena “Death Valley”; these templates can be loaded by Lobby Hosts which will Macro-Change the Lobby Settings for a Map. Alternatively, these settings can be manually modified by the Lobby Host before a Battle is started, and later saved as a Template.

Lobby Menu
The area where the ‘Receiving Tile’ stuff usually goes, there will be a Lobby Menu, including Players In-Lobby, their Teams (if Battle Started or Host-Defined), current selected GameType, current selected Arena and Current/Max Players. "

What is there to simplify? Unless there are some words you do not understand.

this part A Player will be required to either specify a House Region or TShock Region (which they own) as a basis of the area for the Arena

I play on the CTF server so I understand the tite stuff

what does it mean by “house region” or “TShock Region”

I worked the last part out XD

You need to define an area for which players cannot leave while in a Battle (The Arena), to do this it will be required that player uses an existing area that they own; a House Region or TShock Region. Once they have defined the area, they can setup player’s spawnpoints, set what Game Types are allowed in that Arena (Some GameTypes may not work in small arena’s, and so would be not allowed).

The Templates are a pre-configured list of settings for a Lobby, as there will be loads of setting to change, such as a Blacklist of weapons, it will be useful to save all the settings into a ‘Template’ which anyone can then load in later.

so basically the first part is about setting the home like in the server???

Usually to define an area, you would use something like “/region set 1” and “/region set 2” or the “/house” equivalent. Players will use “/house” to protect their own creations. If they decide to make an Arena and want to add it to the list of Arena’s, they will need to protect it first using “/house”, and then register their house as an Arena. This defines the area that the Arena covers. After this they can set it up.

thx it makes much more sense

Is the update for “top 10, top 20 weapons in pvp” coming out before this one?

@jassofallout - No. The problem with having a master process that creates workers to update weapon stats is that I was having issues with it on Linux that wouldn’t appear on Windows. When I do finally do the master and worker scripts I will most likely implement a lot more than just Weapon Stat syncing for the use of DP gain, and do things like Stat Syncing of recently online players to automatically update their level (and therefore tag if equipped) without them refreshing the page each time.

In regards to GameModes, the left To-Do features are:
[ul]
[li]Blacklists / Whitelists [20][/li]
[li]Templating [20][/li]
[li]Mob Interference [10][/li]
[li]Defined Teams [15][/li]
[li]Owners of Arenas [10][/li]
[li]Creating Arena Region from House Region[10][/li]
[li]Abilities Merge [10][/li]
[/ul]

Est. Completion: Saturday
Est. Server Update: Sunday

I have no clue how Linux works but I’m not sure how difficult it is to make it compatible with Windows. That’s a lot of stuff you’re getting done! I’m really excited to try it out. Usually when I’m playing, I’m online on the forums as well so if you need any assistance just message me on here or in game.

GameModes Initial is now Finished.
There are 7 Abilities, all of which are a try-whatever basis. You can only switch Abilities before a game, or while you are dead, and only if the Lobby Host has allowed Abilities. These Abilities are accessible only by Trading Member’s and above.

Stats, Anti-Name and Streaks are now to be updated to work with the latest TShock (and GameModes plugin). Once they are updated, the Main Server will be restarted to apply the new updates.

Hopefully those that are into pvp have tried out the Lobbying and have played a few games by now. There may be some rare bugs that still exist, but from my testing I have eliminated common and annoying bugs.

Although I do not have a great deal of time, I want to make sure that additions to this have a big impact. For anyone interested in this, then you can voice your opinion on what the next addition should be.

Choices:
[ul]
[li]A new GameType[/li]
[li]Automatic, Public Lobbies[/li]
[li]A few new Abilities[/li]
[li]More customization[/li]
[/ul]

A further explanation on what More Customization entails: There are quite a few things you can do. A list of examples would be: One defined damage (all weapons do the same damage), damage multipliers, velocity multipliers, projectile threshold (the max is defined by the server-set config, however you can limit spammy weapons further using this), mob spawns, custom mobs/bosses (a lot of trouble entails…) which are basically a chosen mob, with any game AI you want (like zombie with slime AI, so it acts like a slime), any HP you want (but testing has proved otherwise for certain mobs), if it can go through tiles, if it shoots projectiles, if it morphs into another custom or normal mob when it dies, etc.

One of the awesome possibilities is with an SSC PvP GameModes Server. While I will not be able to make such a server, for two reasons, it is possible that with SSC the plugin could allow you to modify Round Health, Round Mana, Round Weapon Loadouts (more useful with whitelists enforcing a certain weapon list) and JumpPads (this exists as a plugin for SSC already).

I would like to suggest a few abilities for mages. There isn’t much mages who pvp because they’re usually not viable in pvp fights. Some suggestions would be like Mana Shield or Mage Armor which would use some kind of algorithm to multiply armor depending on how much magic damage you deal or something? But I’ve noticed that all the abilities are allowed by all classes so maybe the mage skills would have to be more balanced.

Here are possibilities:
Projectiles could be modified to have buffed damage, just like berserk does. The only downside to this is that if you’re lagging or it is close-combat, then you might not receive the modified projectile before your client registers a hit. In which case it would be a combination of looking at the last projectile the client killed, and using that to identify a buff for the damage that it sends afterwards. But that is not perfect, because melee weapons (the actual melee damage, not proj) might get mixed up. You would also need a list of all mage-related projectiles. It is a lot of work sure, not necessarily hard, but long.

I am also considering fixing berserk when it comes to melee weapons. Since it is either I fix berserk so that things like paladin’s hammer work properly, or I take out the damage buff and let paladin’s hammer go through walls as part of the ability.

I actually like what the paladin’s hammer does but I do suggest you fix that instead. My suggestions were just for funzies.

Well if it is possible, I might try add a Sentry or something. Which is basically just a fake player, that shoots projectiles at nearby enemies, expires after a set amount of time or when it is killed. If not a player, a mob that stays still.

Alright, now that one sounds really cool. I’m curious how it’d work though.

What about the idea of having an ability that places down a clone that looks exactly like the player, turning the player whom used it invisible for a few seconds? Would that even be possible in terraria?

Yes but the issue I’m having right now is how the hell do I spawn a fake player. I thought I saw it made before. The issue is when you say invisible does that mean no projectile collision detection for enemies (they literally cannot see you), or just invisibility buff with faked social armor to make you invisible.

Ok I have something at least. I managed to spawn a fake player, with default looks, that follows you around (just sets pos to your own). So that’s something.