1) There is table on shared.lua (called ttt_playermodels) with all the models, it does a random thing when a new round starts and changes GAMEMODE.playermodel
You can do that :
local function playerModels()
local alyx_model = Model("path_to_alyxs_model.mdl")
local barney_model = Model("path_to_barneys_model")
for k,v in pairs(player.GetAll()) do
if v:IsAdmin() then
v:SetModel(barney_model)
elseif v:IsUserGroup("clanmembers") then
v:SetModel(alyx_model)
end
end
end
hook.Add("TTTPrepareRound", "TTTPrepareRoundModels", playerModels)
But then it will ruin the disguiser, so you should also think about changing the playermodel after disguising.
Edit SetDisguise function on weaponry.lua :
local function SetDisguise(ply, cmd, args)
if not ValidEntity(ply) or not ply:IsActiveTraitor() then return end
if ply:HasEquipmentItem(EQUIP_DISGUISE) then
local state = #args == 1 and tobool(args[1])
ply:SetNWBool("disguised", state)
if v:IsAdmin() or ply:IsUserGroup("communitymembers") then
if state then
ply:SetModel(GAMEMODE.playermodel)
else
if ply:IsAdmin() then ply:SetModel(Model("blablah")) end
elseif ply:IsUserGroup("communitymembers") then ply:SetModel(Model("blablah")) end
end
end
LANG.Msg(ply, state and "disg_turned_on" or "disg_turned_off")
end
end
2) See player.lua, there is a table called deathsounds