3D2D Textscreens is a Garry's Mod addon that I've maintained for over 7 years. It was originally created by a friend of mine, Dellkan, for my gaming community SammyServers, and then heavily tweaked and fixed by me for the various new versions of Garry's Mod that added new features, options, and deprecated older functionality.
The addon is written in gLua, a Garry's Mod adaptation of the Lua language, and it currently sits at over 1 million unique subscribers and is growing every day.
Features
- Create 3D2D text anywhere in the world
- Rotate and manipulate this text simply via your physgun
- Up to 5 lines of text
- Multiple different fonts, font sizes, and colours
- Heavily optimised
- Full scale testing on a highly popular RP server
- Draw distance optimisations
- Minimal FPS hit
- Permanent text screens
- Hold C for context menu, right click on the textscreen, and make the text screen permanent (only works for admins). This is perfect for welcome messages or rules.
- Presets
- Define preset textscreen data (size, text, colours, etc) and save/load these for future use at any time. This is very useful to trying to replicate multiple textscreens across maps.
User Customisation
ss_render_range
controls how far textscreens have to be away from you in order to render (default1500
). Setting this to a lower number can help with lag on older machinesss_render_rainbow
controls if rainbow textscreens should actually rotate their colours, or render as solid white (default enabled1
).0
will cause them to render as solid white, which can be beneficial for accessibility
Server owners
sbox_maxtextscreens
controls the maximum amount of text screens that each player can spawn. This defaults to 1. This cvar only exists on the server, so make sure it's set via RCON, or in something like server.cfg.ss_enable_rainbow
controls whether players on your server can use the rainbow effect. Set this to0
in yourserver.cfg
to prevent anyone from using rainbow effects.- Set
ss_call_to_home 1
on your server to provide anonymous analytics including your operating system, version of the addon, and rough, anonymised geo-location. This is entirely optional and used solely to put a smile on my face. - To install this onto your server, follow the instructions listed here. You can purchase your own server at Nodecraft.
Prevent specific users/groups from using textscreens
This addon supports a PlayerSpawnTextscreen
hook that passes the player context. If this hook returns false, the player will be prevented from spawning a textscreen. For example:
hook.Add("PlayerSpawnTextscreen", "MyCustomTextscreensSpawnFunc", function(ply)
return ply:IsVIP()
end)
Custom admin permissions
This addon supports custom permissions via the use of a TextscreensCanAdmin
hook. When this hook isn't present, or doesn't return anything, it defaults to an IsSuperAdmin
check. If you want to override this behaviour for your own admin permissions, create a hook that exists both server and client side, similar to the following:
hook.Add("TextscreensCanAdmin", "MyCustomAdminFunc", function(ply)
return ply:SteamID() == "STEAM_0:0:43716939"
end)
You can view the source code on GitHub, and subscribe to the addon on Steam.