3D2D Textscreens

3D2D Textscreens
http://cloud-4.steampowered.com/ugc/37479089160507722/6597E61E07AF998065DD2D7CA1FC7008A033DD66/268x268.resizedimage

This addon is now open source! Contribute to development of this addon on GitHub. All pull requests are welcomed!
This tool can be found under “Construction - SS” in your tool menu.

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 font sizes and colours
  • Heavily optimised
    • Full scale testing on a highly popular RP server
    • Draw distance optimisations
    • Minimal FPS hit
  • Option to make screens permanent - perfect for welcome messages or rules
    • Hold C for context menu, right click on the textscreen, and make the text screen permanent! (only works for admins)

Server owners:

  • sbox_maxtextscreens controls the maximum amount of text screens that each player can spawn. This defaults to 1.
  • To install this onto your server, follow the instructions listed here

Grab the tool from the Steam Workshop!

Nailed it. Good effort

Hey, it looks like there are still some kind people around on Facepunch. Thanks for sharing. :slight_smile:

Fixed the workshop addon not including the actual gmod_tool stool. Silly oversight.

LOL, So thats why I thought it was fake.

In response to Dempsey on the workshop item comments, certainly! Here’s a script I use to spawn our welcome sign at spawn:

[lua]

local textoutput = {
[“rp_downtown_v2”] = {
pos = Vector(-2680.464355, -2416.205078, -150.402771),
{r = 0, g = 255, b = 255, a = 255, size = 100, Text = “Welcome to SammyServers!”},
{r = 33, g = 255, b = 0, a = 255, size = 50, Text = “Enjoy your stay!”},
{r = 0, g = 255, b = 255, a = 255, size = 30, Text = " "},
{r = 255, g = 96, b = 0, a = 255, size = 40, Text = “Visit us online at SammyServers.com”},
},
[“rp_downtown_v2_fiend_v2c”] = {
pos = Vector(-3089.28, -2407.61, 156.03),
{r = 0, g = 255, b = 255, a = 255, size = 100, Text = “Welcome to SammyServers!”},
{r = 33, g = 255, b = 0, a = 255, size = 50, Text = “Enjoy your stay!”},
{r = 0, g = 255, b = 255, a = 255, size = 30, Text = " "},
{r = 255, g = 96, b = 0, a = 255, size = 40, Text = “Visit us online at SammyServers.com”},
}
}
hook.Add(“InitPostEntity”, “SpawnWelcomeSigns”, function()
if not textoutput[string.lower(game.GetMap())] then return end
local textscreen = ents.Create(“sammyservers_textscreen”)
textscreen:SetPos(textoutput[string.lower(game.GetMap())][‘pos’])
textscreen:SetAngles(Angle(0,0,90))
textscreen:Spawn()
textscreen:Activate()
textscreen:SetMoveType(MOVETYPE_NONE)
for k,v in pairs(textoutput[string.lower(game.GetMap())]) do
if type(v) != “table” then continue end
for ,o in pairs(v) do
if o == “Text” then
textscreen:SetNWString(
…k, o)
else
textscreen:SetNWInt(_…k, o)
end
end
end
end)
[/lua]

That only allows for one screen per map, but editing it will be rather simple.

I also run a Dark RP server, im wondering were the code above would go…

Any server side file, really.

lua/autorun/server/welcomesign.lua may be a good place.

Hey Cherry,

I was wondering how would you go about finding out the pos = vectors on a map?

get pos in console?

getpos in console.

Or something simple like

[lua]lua_run_cl print(LocalPlayer():GetEyeTrace().HitPos)[/lua]

would print the vector position of where you’re looking.

You could also spawn a prop, align it, look at it and then run:

[lua]lua_run_cl local ent = LocalPlayer():GetEyeTrace().Entity print("angles: “…ent:GetAngles()…” position: "…ent:GetPos())[/lua]

How do make it so there is more then one text lot of text in the same map. I want welcome text and a wall of fame text in a different spot on the same map. :stuck_out_tongue: Can you help me out with this at all?

Untested, but something like this should work:
[lua]local textoutput = {
[“rp_downtown_v2”] = {
textscreens = {
[1] = {
pos = Vector(-2680.464355, -2416.205078, -150.402771),
{r = 0, g = 255, b = 255, a = 255, size = 100, Text = “Welcome to SammyServers!”},
{r = 33, g = 255, b = 0, a = 255, size = 50, Text = “Enjoy your stay!”},
{r = 0, g = 255, b = 255, a = 255, size = 30, Text = " "},
{r = 255, g = 96, b = 0, a = 255, size = 40, Text = “Visit us online at SammyServers.com”},
},
[2] = {
pos = Vector(-2680.464355, -2416.205078, -150.402771),
{r = 0, g = 255, b = 255, a = 255, size = 100, Text = “Welcome to SammyServers!”},
{r = 33, g = 255, b = 0, a = 255, size = 50, Text = “Enjoy your stay!”},
{r = 0, g = 255, b = 255, a = 255, size = 30, Text = " "},
{r = 255, g = 96, b = 0, a = 255, size = 40, Text = “Visit us online at SammyServers.com”},
}
},
[“rp_downtown_v2_fiend_v2c”] = {
textscreens = {
[1] = {
pos = Vector(-3089.28, -2407.61, 156.03),
{r = 0, g = 255, b = 255, a = 255, size = 100, Text = “Welcome to SammyServers!”},
{r = 33, g = 255, b = 0, a = 255, size = 50, Text = “Enjoy your stay!”},
{r = 0, g = 255, b = 255, a = 255, size = 30, Text = " "},
{r = 255, g = 96, b = 0, a = 255, size = 40, Text = “Visit us online at SammyServers.com”},
}
}
}
}
hook.Add(“InitPostEntity”, “SpawnWelcomeSigns”, function()
if not textoutput[string.lower(game.GetMap())] then return end
for k,v in pairs(textoutput[string.lower(game.GetMap())][textscreens]) do
local textscreen = ents.Create(“sammyservers_textscreen”)
textscreen:SetPos(v.pos)
textscreen:SetAngles(Angle(0,0,90))
textscreen:Spawn()
textscreen:Activate()
textscreen:SetMoveType(MOVETYPE_NONE)
for k,c in pairs(v) do
if type© ~= “table” then continue end
for ,o in pairs© do
if o == “Text” then
textscreen:SetNWString(
…k, o)
else
textscreen:SetNWInt(_…k, o)
end
end
end
end
end)[/lua]

Thank you very very much it drove me crazy. XD

I have tried it and tried but now both are not showing up. :stuck_out_tongue:

If there is anyway you could help me out again I would appreciate it. :slight_smile:

So there is noway you could make this beautiful piece of work a perma tool? Like the gmod 12 ThreeD text?

Updated with a permanent option. Hold C for context menu, right click on the textscreen, and make the text screen permanent! (only works for admins)

Thank you very much man! Omg I just jizzed. xD

This is fucking marvelous.

Even after changing sbox_maxtextscreens from the server console to 10, I can’t spawn more than one. Do you know why?

Better late than never I guess! Setting the cvar in your server.cfg or similar should allow you to spawn up to the number you set. Feel free to let me know if that’s not the case.

For reaching almost 100k subscribers via the Steam Workshop, I’ve open sourced this at https://github.com/CherryJimbo/3D2D-TextScreens and removed the small advertisement in the addon that really upset people. All pull requests are welcomed!