You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Garry's Mod TTT Rewrite with focus on performance and role customization.
**Technically just a round-based gamemode with TTT roles by default
Objective
Create a Garry's Mod TTT Rewrite with focus on clientside customization, extendability and ease of modding.
Purpose
The base TTT gamemode has long been overdue for a complete overhaul, with the lack of customization and lack of proper features such as prediction on weapons (properly and done right) as well as the growing demand for customizing roles.
Advantages over original TTT
This gamemode is completely written from the ground up with a small amount of developers, making it easy to read and section off code properly.
Having a role system allows developers to add their own roles with own logic and new teams and have role selection be all overwritten easily and maintainably.
Clientside customization.
Built for performance around x64 branch of Garry's Mod.
Shared Hooks
These are hooks that allow developers to extend the gamemode or change behaviors.
TTTPrepareRoles(Team, Role) -> no value
use this to set up custom teams and roles.see: sh_roles.lua
TTTRoleSeesRole(role, seers_list) -> no value
use this to set up who sees what role in custom teams and roles.see: sh_roles.lua
TTTUpdatePlayerSpeed(ply, data) -> no value
adds a multiplier to player speed
add a entry to data with a value of a multiplier to change the speed of the player.
hook.Add("TTTUpdatePlayerSpeed", "slow_down", function(ply, data)
localsloweduntil=ply:GetSlowedUntil()
if (sloweduntil>CurTime() andply:GetSlowedStart() <CurTime()) thendata.SlowMultiplier=0.5endend)
TTTGetHiddenPlayerVariables(variable_list) -> no value
adds hidden variables for players that are predicted, adds accessors Player.Get and Setcalls hook OnPlayer<Name>Change(ply, old value, new value)