Topic: [MOD] TW+ - iFreeze and Instagib-Mod
Hello Tees!
Started as experiment and just for fun, even in remembrance of Tom94's legendary TeeWorlds+-Mod I'm glad to present you now the final version of my TW+-Mod.
This modification is mainly directed to Instagib-players but of course Vanilla is supported too.
TW+ contains a lot of features which might be useful for one or two and is highly customizable, what means that you can disable features which you dont want or need.
Features:
New Gametypes (Possible: DM+, TDM+, CTF+, iDM+, iTDM+, iCTF+, iFreeze+, gDM+, gTDM+, gCTF+)
Mute-On-Spam
Anti-Capslock
Anticamper
Chat-commands to control the game
Private message
Spawnprotection
Logging player stats (useful for wars)
Loltext (by fisted)
Message loops for chat
Killing-spree and killing-spree award
Live-stats for every player
Emotional Tees
Laserjumps
... many more
iFreeze+
As you see it also includes the iFreeze-gametype which was very popular in old 0.5.
The gameplay is similar to (open-)fng and TDM. You have just one weapon; your laser. If you kill a player he becomes frozen and cant move anymore. Your team will score when every tee of the opponent team is frozen, then all frozen players become melted and it starts again.
Of course you can also melt your teammates: When you stand near to a frozen teammate, after some time he becomes melted and can continue playing.
You will score both by freezing a opponent and melting a teammate. It is very important to melt your teammates, otherwise your team will probably loose.
Variables
 
# General things
 
sv_vote_forcereason
    Description: "Allow only votes with a reason (except settings)"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_go_time
    Description: "The restart time for the go-command"
        Default: 5
        Minimum: 0
        Maximum: 600
 
sv_stopgo_feature
    Description: "Enable stop/go-feature in chat"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_xonx_feature
    Description: "Enable chat-commands like /1on1 - /6on6 for wars"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_war_time
    Description: "Default warmup-time before a war"
        Default: 15
        Minimum: 0
        Maximum: 600
 
sv_laserjumps
    Description: "Enable laserjumps (only in instagib)"
        Default: 0
        Minimum: 0
        Maximum: 1
 
sv_emotional_tees
    Description: "Enable emotional tees"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_private_message
    Description: "Enable/Disable private message"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_spawnprotection
    Description: "Spawnprotection in seconds (0 disables)"
        Default: 0
        Minimum: 0
        Maximum: 5
 
sv_laser_reload_time
    Description: "Reload-time for laser when you are not at killing-spree (Default: 800)"
        Default: 800
        Minimum: 0
        Maximum: 2400
_____________________________________________________________________________________________
 
# Mute-on-spam and Chat-settings
 
sv_chat_value
    Description: "A value which is added on each message and decreased on each tick"
        Default: 250
        Minimum: 100
        Maximum: 1000
 
sv_chat_threshold
    Description: "If this threshold will exceed by too many messages the player will be muted"
        Default: 1000
        Minimum: 250
        Maximum: 10000
 
sv_mute_duration
    Description: "How long the player will be muted (in seconds)"
        Default: 60
        Minimum: 0
        Maximum: 3600
 
sv_chat_max_duplicates
    Description: "How many duplicates of a chat message is allowed to send in a row (-1 for no limit)"
        Default: 3
        Minimum: -1
        Maximum: 25
 
sv_vote_mute
    Description: "Allow voting to mute players"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_vote_mute_duration
    Description: "How many seconds to mute a player after being muted by vote."
        Default: 180
        Minimum: 0
        Maximum: 600
 
sv_chat_message
    Description: "A message which will be periodically shown in chat"
         Default: ""
 
sv_chat_message_interval
    Description: "The interval in minutes where the chatmessage is sent to the chat"
        Default: 15
        Minimum: 7
        Maximum: 1000000
 
 
# Anti-Capslock
 
sv_anticapslock
    Description: "If all letters of a chat-message are capitalized they will be lowercased"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_anticapslock_tolerance
    Description: "How many letters of 10 are allowed to be lowercased that it just work"
        Default: 5
        Minimum: 0
        Maximum: 10
 
 sv_anticapslock_minimum
     Description: Minimum number of letters that the anti-capslock feature works"
         Default: 4
         Minimum: 1
         Maximum: 15
 _____________________________________________________________________________________________
 
# Anticamper
 
sv_anticamper
    Description: "0 disables, 1 enables anticamper in all modes and 2 only in instagib gamemodes"
        Default: 0
        Minimum: 0
        Maximum: 2
 
sv_anticamper_freeze
    Description: "If a player should freeze on camping (and how long) or die"
        Default: 0
        Minimum: 0
        Maximum: 15
 
sv_anticamper_time
    Description: "How many seconds to wait till the player dies/freezes"
        Default: 9
        Minimum: 5
        Maximum: 20
 
sv_anticamper_range
    Description: "Distance how far away the player must move to escape anticamper"
        Default: 200
        Minimum: 0
        Maximum: 1000
_____________________________________________________________________________________________
 
# Stats
 
sv_stats_file
    Description: "Name of the file where the statistics are stored in"
        Default: "stats.txt"
 
sv_stats_outputlevel
    Description: "How much informations in the statistics-file should be saved (0 to disable saving)"
        Default: 0
        Minimum: 0
        Maximum: 3
_____________________________________________________________________________________________
 
# Loltext
 
sv_loltext_show
    Description: "Show loltext"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_loltext_hspace
    Description: "Horizontal offset between loltext 'pixels'"
        Default: 14
        Minimum: 10
        Maximum: 25
 
sv_loltext_vspace
    Description: "Vertical offset between loltext 'pixels'"
        Default: 14
        Minimum: 10
        Maximum: 25
 
sv_loltext_lifespan
    Description: "How long the loltext is shown"
        Default: 50
        Minimum: 25
        Maximum: 100
_____________________________________________________________________________________________
 
# Grenade-Gamemode(s)
 
sv_grenade_min_damage
    Description: "Minimum damage the grenade must make to kill the player (depends how far away the bullet explodes)"
        Default: 4
        Minimum: 3
        Maximum: 6
 
sv_grenade_ammo
    Description: "How much ammo for the grenade"
        Default: 6
        Minimum: -1
        Maximum: 10
 
sv_grenade_ammo_regen
    Description: "Time till one bullet regenerates"
        Default: 1000
        Minimum: 800
        Maximum: 2000
_____________________________________________________________________________________________
 
# iFreeze
 
sv_ifreeze_automelt_time
    Description: "Time till the player respawn automatically when he's frozen"
        Default: 30
        Minimum: 10
        Maximum: 120
 
sv_ifreeze_melt_range
    Description: "Maximum range to melt a player"
        Default: 100
        Minimum: 10
        Maximum: 1000
 
sv_ifreeze_melt_time
    Description: "Time (in ms) the player must stand next to a player to melt him"
        Default: 1200
        Minimum: 500
        Maximum: 5000
 
sv_ifreeze_melt_respawn
    Description: "If a player respawns after he was being melted"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_ifreeze_frozen_tag
    Description: "If frozen players have "[F]" in front of their name"
        Default: 1
        Minimum: 0
        Maximum: 1
_____________________________________________________________________________________________
 
# Killing-spree
 
sv_kspree_kills
    Description: "How many kills are needed to be on a killing-spree"
        Default: 5
        Minimum: 3
        Maximum: 20
 
sv_kspree_award
    Description: "If players with more than "sv_killingspree_kills" kills get the killingspree award"
        Default: 0
        Minimum: 0
        Maximum: 1
 
sv_kspree_ifreeze
    Description: "Give the killingspree award only in iFreeze"
        Default: 1
        Minimum: 0
        Maximum: 1
 
sv_kspree_award_laser
    Description: "How many lasers will shot when you got the award"
        Default: 3
        Minimum: 1
        Maximum: 10
 
sv_kspree_award_laser_split
    Description: "Split of the lasers while having the award"
        Default: 1
        Minimum: 1
        Maximum: 10
 
sv_kspree_award_laser_firedelay
    Description: "Firedelay of the weapon when you got the award"
        Default: 100
        Minimum: 0
        Maximum: 800Rcon-Commands
Note: The letters behind a command determines what kind of argument and how many are required. i = number, r = string.
freeze ii
    Description: Freeze a player for x seconds
        Usage: freeze <ClientID> <Time in sec>
 
unfreeze i
    Description: Unfreeze a player
        Useage: unfreeze <ClientID>
 
melt i
    Description: Melt a player (same effect like unfreeze)
        Useage: melt <ClientID>
 
mute ii
    Description: Mute a player for x sec
        Useage: mute <ClientID> <Time in sec>
 
unmuteid i
    Description: Unmutes a player by its client id
        Useage: unmute <ClientID>
 
unmuteip i
    Description: Remove a mute by its index (see "mutes")
        Useage: unmuteip <Index>
 
mutes
    Description: Show all mutes
        Useage: mutes
 
mute_spec ?i
    Description: All messages written in spectators will be redirect to teamchat for this round (Note: Can be also used as callvote)
        Useage: mute_spec <"0" or "1" or nothing>
 
stop
    Description: Pause the game
        Useage: stop
 
go ?i
    Description: Continue the game
        Useage: go <Time in sec or nothing>
 
set_name ir
    Description: Set the name of a player
        Useage: set_name <ClientID> <New Name>
 
set_clan ir
    Description: Set the clan of a player
        Useage: set_clan <ClientID> <New Clanname>
 
kill i
    Description: Kills a player
        Useage: kill <ClientID>
 
whois
    Description: Show a list of players which are currently logged in in rcon
        Useage: whoisChat-Commands
/info
    -> Show information about this mod
/credits
    -> Show some credits...
/stats
    -> Show player statistics
        Useage: /stats <Playername> shows the stats of any other player. But you dont need to write your own name for your own statistics.
 
/sayto , /st , /pm
    -> Send a private message to a player in the server
        Useage: /sayto <Name/ID> <Message>
/ans , /r 
    -> Answer to a private message. The receiver is the player from where the last message was received or sent
        Useage: /ans <Message> 
/emote
    -> Set an emote. Available are "surprise", "blink", "happy", "pain", "angry" or "normal".
        Useage: /emote <Emotename> <Time in sec>
 
/stop
    -> Pause the game
/go
    -> Start the game
/restart
    -> Restart the game
/1on1 - /6on6
    -> Start a war and set spectator slots
/reset
    -> Reset spectator slotsAlso included is an extended version of the banmasters, so you have easy control and you can ban players of all your servers. 
Please note that in the default-settings I will be notified if a player on your server gets a ban. The sent information (name and ip) will be used to ban botters from a bigger amount of servers so that they can't simply change the server to continue cheating there. But there are definitely no automated bans. If you anyway dont want this, set  "sv_global_bantime" to 0 to disable the banmaster-feature. If you dont want to abandom banmasters write in the first line of your banmasters.cfg "clear_banmasters" and add your own addresses in the following lines.
Download
Current Version: 0.7.5
Example Configs:
iCTF+
iFreeze+
(They are also part of the ZIP-folder)
Note: I finished the Anti-Capslock-feature with 0.7.3. It should work now for the most latin letters.
Important: In the last version of teeworlds and thus in TW+ was a critical bug, which has been fixed now. Please update the mod to 0.7.5 (current)
If you find any bugs or if you have an awesome idea just write it here or open an issue on GitHub. I'm looking forward to every comment 
Much fun <3


? I'm glad it worked out good, will test when I have more time.
						
