I’m far from a professional in this industry, basically an experienced student level person in the industry, but on Roblox that title would be correct, thank you.
First thing to note, 20k tri guns are typically only seen in triple-A games as first person view models not third person weapons, which are rarely over 5,000 tries. If you are using more then 5,000 tris for a weapon, you are doing something wrong.
As for characters, 10,000 tris and some creativity with how you mangage your topology, mesh shading, vertex color and/or texture usage, will be plenty for a character on Roblox, custom or modified version of the default character. This includes all assets such as armor, hats, capes, shoes, necklaces, hair etc. Most games outside of Roblox rarely need more then 15,000 tris for their characters, however just about every engine except Roblox has normal, bump, & specular texture map support for their assets which allows for a lot more detail to be added without needing extra polygons, which isn’t the case for Roblox. But this is Roblox, not Unreal, you really should be creating low poly looking assets to match the aesthetic of the platform and majority of the characters that players use.
tl:dr version: 20k tris is way too much for a weapon model, keep it under 5k unless you don’t want mobile players. Do your best to keep characters under 10k, because you’re going to have a lot of characters on screen in a full game, same thing with weapons.
However there is also an extremely important note that not many people take note of, and was something I and some other developers in Melon Development learned the hard way while working on Robloxia World is texture size and the amount of Textures (images) you have in a game. Robloxia World has 132 hair models, each one required a separate texture, each texture was 512x1024 in the beginning which quickly ate up a devices memory, especially mobile, and led to a really laggy experience, Keep in mind, we still have textures for the other accessories, NPCs and some props. iirc the total texture count (excluding UI) was around 260 images.
Textures eat up more memory then tris, and meshes are actually less costly to render then textures, especially transparent textured meshes (which in Robloxia world, every hair was transparent), so if you start texturing your stuff make sure you learn how to properly UV unwrap so your assets, guns, vehicles, armors, etc can all use the same texture to have a new skin, which is the key to having a lot of skins in games, Mad City does this for all of its weapons and vehicles. 1 single texture works for all vehicles because of proper and careful UV layout.