Stickmen would get a bit lame after awhile. And I think creating a character would be, pretty interesting. Also adding users as your friends and a chatbar would be great. Would the same rules apply as they are here?
@NUCLEAR_FOX Hmm, I'd imagine. Perhaps and of course some integrated communication GUI between users of a group so they can plan creations or make administrative decisions. I'm still not certain what sort of 'character' you mean though if such isn't just a mere avatar.
Indeed, probably via some safe google doc or group forum, else just here to brainstorm and list out the features.
local empty_name = "    " --TPT supposedly prefers 4 char names.
local function create_new_element(name, description, colour, menusection,
hotair, weight, temperature, highpressure--[[, highpressure_transistion--]])
	--Creates a new element.
	local elem = elements.allocate("CUSTOM", string.upper(name))
	elements.element(elem, elements.element(elements.DEFAULT_PT_DUST))
	
	elements.property(elem, "Name", string.upper(name))
	elements.property(elem, "Description", description)
	elements.property(elem, "Colour", colour)
	elements.property(elem, "MenuSection", menusection)
	elements.property(elem, "HotAir", hotair)
	elements.property(elem, "Weight", weight)
	elements.property(elem, "Temperature", temperature)
	elements.property(elem, "HighPressure", highpressure)
  --elements.property(elem, "HighPressureTransistion", highpressure_transistion)
  
	local identifier = elements.property(elem, "Identifier")
	return identifier --This really doesn't _do_ anything.
end
local function get_max_ID()
	--Finds out the greatest element ID in use.
	local expl = create_new_element("EXPL", "CUSTOM",
	0x000000, 9, -0.009, 333, 4556, 200, elements.DEFAULT_PT_DUST)
	
	local max_ID = elements.CUSTOM_PT_EXPL
	return max_ID
end
local function remove_name(ID)
	--Removes names of the elements.
	if unexpected_condition then print("Skipping " .. ID) end
	elements.property(ID, "Name", tostring(ID))
end
local function remove_description(ID)
	--Removes descriptions of the elements.
	if unexpected_condition then print("Skipping " .. ID) end
	elements.property(ID, "Description", empty_name)
end
local function new_window()
	--Initialize a window
	local define_window = Window:new(-1, -1, 300, 200)
	
	local current_y = 10
	
	local test_button = Button:new(10, current_y, (select(1, define_window:size(
	)) / 2) - 20, 16, "This is a test button.")
	
	--Initialize textbox #1
	current_y = current_y + 20
	local textbox_info = Label:new(10+((select(1, define_window:size()) / 2) -
	20), current_y, (select(1, define_window:size()) / 2) - 20, 16, "ID")
	
	local test_textbox = Textbox:new(10, current_y, (select(1,
	define_window:size()) / 2) - 20, 16, "", "[Type ID number here.]")
	
	--Initialize textbox #2
	current_y = current_y + 20
	local textbox_info2 = Label:new(10+((select(1, define_window:size()) / 2) -
	20), current_y, (select(1, define_window:size()) / 2) - 20, 16, "Name")
	
	local test_textbox2 = Textbox:new(10, current_y, (select(1,
	define_window:size()) / 2) - 20, 16, "", "[Type name here.]")
	
	--Initialize textbox #3
	current_y = current_y + 20
	local textbox_info3 = Label:new(10+((select(1, define_window:size()) / 2) -
	20), current_y, (select(1, define_window:size())/2) - 20, 16, "Description")
	
	local test_textbox3 = Textbox:new(10, current_y, (select(1,
	define_window:size()) / 2) - 20, 16, "", "[Type description here.]")
	
	--Initialize a close button
	local close_button = Button:new(10, select(2, define_window:size()) - 26,
	100, 16, "Apply")
	
	close_button:action(function()
		local newID = tonumber(test_textbox:text())
		local newName = test_textbox2:text()
		local newDesc = test_textbox3:text()
		
		elements.property(newID, "Name", newName)
		elements.property(newID, "Description", newDesc)
		interface.closeWindow(define_window)
	end
	)
	
	define_window:onTryExit(function() interface.closeWindow(define_window) end) 
	--Allow the default exit events
	
	define_window:addComponent(test_textbox)
	define_window:addComponent(textbox_info)
	define_window:addComponent(test_textbox2)
	define_window:addComponent(textbox_info2)
	define_window:addComponent(test_textbox3)
	define_window:addComponent(textbox_info3)
	define_window:addComponent(close_button)
	
	--[[
	define_window:onKeyRelease(
		function(key, char, shift, ctrl, alt)
			print("Key: " .. key)
			print("Char: " .. char)
			print("Shift: " .. tostring(shift))
			print("Ctrl: " .. tostring(ctrl))
			print("Alt: " .. tostring(alt))
			
			if key == 101 and ctrl == True then
				interface.showWindow(define_window)
			end
		end
	) --]]
	
	--[[
	while true do
		local input = io.read()
		if input then
			if string.lower(input) == "c" or string.lower(input) == "change" then
			  --]]interface.showWindow(define_window)--[[
			end
		end
	end --]]
end
local function main()
	--Runs the program.
	print("Program started")
	local max_ID = get_max_ID()
	--local max_ID = 145
	local ID = 0
	
	while ID < max_ID and ID < 179 do
		if ID == 146 then ID = ID + 1 end
		remove_description(ID)
		remove_name(ID)
		
		ID = ID + 1
		print(ID)
	end
end
main()
new_window()