|
| 28 Apr 2013 07:00 PM |
I wrote a small script that uses Anaminus' API dump parser to get all the data types that can be found in the API dump. Doing this, I discovered about some data types that I've never seen other people talk about. It seems many of these data types come from the debugger objects Erik Cassel was working on (before he... died, I guess?).
Here is the complete list:
Object Content Array Instance double BrickColor int string Dictionary Region3 Map CoordinateFrame Color3 float Function Vector2 Vector2int16 bool Region3int16 Faces Tuple Variant UDim2 Objects Axes Property ProtectedString Ray Vector3 void
I already knew about all of these except the following:
Array Dictionary Map Variant
The utility of all of them is obvious: the first three are all C++ implementations of some data type, and the last one is for variables of types that may vary. The variant type is in particular used by Erik's debugging objects (because they allow you to manipulate Lua variables, and, of course, since Lua variables can have any type of value...). |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:01 PM |
| Why can't we use all of those? xD |
|
|
| Report Abuse |
|
|
|
| 28 Apr 2013 07:01 PM |
| So, is there any practical use for this knowledge or...? |
|
|
| Report Abuse |
|
|
|
| 28 Apr 2013 07:02 PM |
@ArceusInator
Yes. Updating the official wiki, and actually knowing that there isn't any data type other than these that the admins are hiding from us. |
|
|
| Report Abuse |
|
|
|
| 28 Apr 2013 07:04 PM |
It's really unfortunate we can't use the ScriptDebugger class yet. It'd allow us to do so much stuff with scripts...
Just look at its API (and note how it's all unlocked):
Property int ScriptDebugger.CurrentLine [readonly] Property bool ScriptDebugger.IsDebugging [readonly] Property bool ScriptDebugger.IsPaused [readonly] Property Object ScriptDebugger.Script [readonly] Function Instance ScriptDebugger:AddWatch(string expression) Function Objects ScriptDebugger:GetBreakpoints() Function Map ScriptDebugger:GetGlobals() Function Map ScriptDebugger:GetLocals(int stackFrame = 0) Function Array ScriptDebugger:GetStack() Function Map ScriptDebugger:GetUpvalues(int stackFrame = 0) Function Variant ScriptDebugger:GetWatchValue(Instance watch) Function Objects ScriptDebugger:GetWatches() Function void ScriptDebugger:Resume() Function Instance ScriptDebugger:SetBreakpoint(int line) Function void ScriptDebugger:SetGlobal(string name, Variant value) Function void ScriptDebugger:SetLocal(string name, Variant value, int stackFrame = 0) Function void ScriptDebugger:SetUpvalue(string name, Variant value, int stackFrame = 0) Function void ScriptDebugger:StepIn() Function void ScriptDebugger:StepOut() Function void ScriptDebugger:StepOver() Event ScriptDebugger.BreakpointAdded(Instance breakpoint) Event ScriptDebugger.BreakpointRemoved(Instance breakpoint) Event ScriptDebugger.EncounteredBreak(int line) Event ScriptDebugger.Resuming() Event ScriptDebugger.WatchAdded(Instance watch) Event ScriptDebugger.WatchRemoved(Instance watch) |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:05 PM |
| It's like the NetworkFilter. They just hate us. |
|
|
| Report Abuse |
|
|
|
| 28 Apr 2013 07:09 PM |
@dekkonot
Yep.
There are also some other debugging objects that go with the ScriptDebugger object:
Class DebuggerBreakpoint : Instance [notCreatable] Property string DebuggerBreakpoint.Condition Property bool DebuggerBreakpoint.IsEnabled Property int DebuggerBreakpoint.Line [readonly] Class DebuggerService : Instance Property bool DebuggerService.DebuggingEnabled [readonly] Function Instance DebuggerService:AddDebugger(Instance script) Function void DebuggerService:EnableDebugging() [RobloxScriptSecurity] Function Objects DebuggerService:GetDebuggers() Event DebuggerService.DebuggerAdded(Instance debugger) Event DebuggerService.DebuggerRemoved(Instance debugger) Class DebuggerWatch : Instance Property string DebuggerWatch.Expression Function void DebuggerWatch:CheckSyntax() |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:10 PM |
| I'd honestly just be happy if they added multi-player studio. :L |
|
|
| Report Abuse |
|
|
Parthax
|
  |
| Joined: 27 Apr 2011 |
| Total Posts: 6941 |
|
| |
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 28 Apr 2013 07:15 PM |
| Multiplayer studio is already possible but it's kinda hacky. |
|
|
| Report Abuse |
|
|
lombardo2
|
  |
| Joined: 30 Nov 2008 |
| Total Posts: 1604 |
|
|
| 28 Apr 2013 07:15 PM |
| Yeah :L. I use c9.io when I'm in a group project that I never finish. |
|
|
| Report Abuse |
|
|
| |
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:16 PM |
| How do I do multi-player studio? xD I'm in a project and it's a pain. |
|
|
| Report Abuse |
|
|
lombardo2
|
  |
| Joined: 30 Nov 2008 |
| Total Posts: 1604 |
|
| |
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 28 Apr 2013 07:19 PM |
Okay just keep a little hush about this because we (including you) don't want it to go mainstream. You simply use Start Server, then use the PlayerConnect method of the NetworkClient.
This was impossible before in studio 1.0 after they patched it up but it was unpatched in 2.0 |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:20 PM |
| So we could basically set up a dedicated Roblox server? =D |
|
|
| Report Abuse |
|
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 28 Apr 2013 07:21 PM |
You'd have to run the join script manually for each specific client and people can run their own join scripts so, it's not secure at all.
Basically you should only do that for people you trust. |
|
|
| Report Abuse |
|
|
lombardo2
|
  |
| Joined: 30 Nov 2008 |
| Total Posts: 1604 |
|
| |
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:23 PM |
| Oh it's secure all right. I could prevent connections from IPs that weren't in a white list so you'd have to ask me first. |
|
|
| Report Abuse |
|
|
lombardo2
|
  |
| Joined: 30 Nov 2008 |
| Total Posts: 1604 |
|
|
| 28 Apr 2013 07:23 PM |
@Dekkonot: Yeah, for creating the server just do
game:GetService("NetworkServer"):Start(25565) --Port
and for connecting
game:GetService("NetworkClient"):PlayerConnect(0, "IP", 25565) |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:25 PM |
| I'd have to make it a little more secure than that. I'd have to prevent 1.) Players that weren't white listed and 2.) IPs that weren't white listed. |
|
|
| Report Abuse |
|
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 28 Apr 2013 07:30 PM |
| I mean the players that you DO let in can do nasty things and you can't really stop them besides removing them. |
|
|
| Report Abuse |
|
|
lombardo2
|
  |
| Joined: 30 Nov 2008 |
| Total Posts: 1604 |
|
|
| 28 Apr 2013 07:31 PM |
| It only works with localhost >:c |
|
|
| Report Abuse |
|
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 28 Apr 2013 07:32 PM |
| You have to port-forward or use a VPN. |
|
|
| Report Abuse |
|
|
dekkonot
|
  |
| Joined: 22 Dec 2010 |
| Total Posts: 6685 |
|
|
| 28 Apr 2013 07:32 PM |
| Well that's why it wouldn't exactly be "public", would it? We'd have to come up with A LOT of ways to prevent griefing, like have an 'Execute Script' script take a snapshot of the game every 10 minutes or so and store it in a folder and/or tablet that we could reverse. |
|
|
| Report Abuse |
|
|