sup guys, i made in 20-25 minuts a fully functional chat system
its all working, but its WITHOUT word wrap.
use it in what ever you want i dont really mind

and feel free to edit it and post here a better version of it.
this one uses NON plugins and works like charm!
dim ChatArray(0) as String
global TotalChatSpaces as Integer
TotalChatSpaces = 20
sync on
sync rate 60
make object cube 1,10
do
text 0,0,"Press Enter to start using the chat"
yrotate object 1,object angle y(1)+1
Chat()
sync
loop
//All your chat functions.
function Chat()
ChatKeys()
ChatWindowGUI(100,100,400,150)
endfunction
global EnterKey as Byte
global ChatInUse as Byte
global LastChatMsg as String
global ChatKey as String
global ChatInputTimer as Integer
global ChatInputStr as String
function ChatWindowGUI(PosX as Integer,PosY as Integer,SizeX as Integer,SizeY as Integer)
text PosX,PosY-15,"Chat Box"
//if Chat is opened
if ChatInUse =2
box PosX,PosY,PosX+SizeX,PosY+SizeY,rgb(0,0,0),rgb(50,50,50),rgb(0,0,0),rgb(50,50,50)
box PosX,PosY+SizeY,PosX+SizeX,PosY+SizeY+20,rgb(50,50,50),rgb(50,50,50),rgb(50,50,50),rgb(50,50,50)
line PosX,PosY+SizeY,PosX,PosY+SizeY+20
line PosX+SizeX,PosY+SizeY,PosX+SizeX,PosY+SizeY+20
line PosX,PosY+SizeY+20,PosX+SizeX,PosY+SizeY+20
ChatInput(PosX+4,PosY+SizeY)
endif
if ChatInUse = 3
ChatSubmitMsg(LastChatMsg)
LastChatMsg = ""
endif
line PosX,PosY,PosX+SizeX,PosY
line PosX,PosY,PosX,PosY+SizeY
line PosX+SizeX,PosY,PosX+SizeX,PosY+SizeY
Line PosX,PosY+SizeY,PosX+SizeX,PosY+SizeY
ChatDisplayHistoryText(PosX+3,PosY+SizeY)
endfunction
function ChatKeys()
if EnterKey = 3 then EnterKey = 0
if EnterKey = 2 and returnkey()=0 then EnterKey = 3
if EnterKey = 1 then EnterKey = 2
if EnterKey = 0 and returnkey()=1 then EnterKey = 1
if ChatInuse = 1 and EnterKey > 1 then ChatInuse = 2
if EnterKey = 1 and ChatInUse = 0 then ChatInuse = 1
if ChatInUse = 3 then ChatInuse = 0
if EnterKey = 1 and ChatInuse = 2 then ChatInuse = 3
endfunction
function ChatInput(PosX as Integer,PosY as Integer)
ChatKey = entry$(0)
if ChatInputTimer < timer()
ChatInputTimer = timer()+100
if len(ChatInputStr)>0 then ChatInputStr = "" else ChatInputStr = "|"
endif
if returnkey()=0 and len(ChatKey) >0 and keystate(14)=0
LastChatMsg = LastChatMsg + ChatKey
clear entry buffer
endif
//Backspacing..
if len(ChatKey)>0 and keystate(14)=1
lastChatMsg = left$(LastChatMsg,len(LastChatMsg)-1)
clear entry buffer
endif
text PosX,PosY,LastChatMsg+ChatInputStr
endfunction
function ChatSubmitMsg(Txt as String)
//Move all chat array 1 index forward..
a as integer
dim ChatArray(array count(ChatArray(0))+1) as String
for a = Array count(ChatArray(0))-1 to 1 step -1
ChatArray(a) = ChatArray(a-1)
next a
ChatArray(0) = txt
endfunction
function ChatDisplayHistoryText(PosX as Integer,PosY as Integer)
for a=0 to 10
if a <= Array count(ChatArray(0))-1 then text PosX,PosY-(15*a)-15,ChatArray(a)
next a
endfunction