|
| 31 May 2013 12:08 AM |
After seeing coplox's suggestion thread on unprotecting members (http://www.roblox.com/Forum/ShowPost.aspx?PostID=99461408), I decided to take the API dump and go through all of it to write down suggestions and stuff.
The result is a bit long:
Should not be protected: ; Property int Instance.DataCost [readonly] [RobloxPlaceSecurity] : Not harmful, but useful when used to measure the cost of storing an object using data persistence. ; Function string Instance:GetDebugId(int scopeLength = 4) [notbrowsable] [LocalUserSecurity] : Completely useless, but also completely harmless. ; Event BadgeService.BadgeAwarded(string message) [RobloxScriptSecurity] : Useful and completely harmless. ; Function string Script:GetHash() [RobloxPlaceSecurity] : Useful in very limited cases, and completely harmless. ; Function void Camera:PanUnits(int units) [RobloxScriptSecurity] ; Function bool Camera:TiltUnits(int units) [RobloxScriptSecurity] ; Function bool Camera:Zoom(float distance) [RobloxScriptSecurity] : Useful and completely harmless. ; Function void GuiService:SendNotification(string title, string text, string image, int duration, Function callback) [RobloxScriptSecurity] : Useful and completely harmless. ; Function int NetworkServer:GetClientCount() [LocalUserSecurity] : Not particularly useful, but completely harmless (already possible through other means). ; Property bool Player.Guest [readonly] [RobloxScriptSecurity] ; Function FriendStatus Player:GetFriendStatus(Instance player) [RobloxScriptSecurity] ; Function void Player:RemoveCharacter() [LocalUserSecurity] ; Function Instance Players:GetPlayerByID(int userID) [LocalUserSecurity] ; Event Players.PlayerChatted(PlayerChatType chatType, Instance player, string message, Instance targetPlayer) [LocalUserSecurity] : Useful, and completely harmless (already possible through other means).
Should be deprecated: ; Property bool Instance.archivable [hidden] : Most members with a startingLowerCase name were deprecated, but it appears this one was missed. Was replaced by "Archivable". ; Function Vector3 BodyPosition:lastForce() ; Function Vector3 BodyVelocity:lastForce() : Most members with a startingLowerCase name were deprecated, but it appears this one was missed. Was replaced by "GetLastForce". ; Function void InsertService:Insert(Instance instance) : Is equivalent to changing the object's parent to the workspace, but may cause problems in some particular cases, and should therefore not be used. ; Property FormFactor FormFactorPart.formFactor [hidden] : Most members with a startingLowerCase name were deprecated, but it appears this one was missed. Was replaced by "FormFactor".
Should be removed: ; Event AnimationTrack.Stopped() [deprecated] : This event is deprecated, but the animation API was never released and therefore it is very unlikely for any script to actually use this event.
Should be deprecated and renamed (the old name should be deprecated, and a new equivalent member with another name, not deprecated, should be created): ; Property Vector3 BodyAngularVelocity.angularvelocity : Should be called "AngularVelocity". ; Property Vector3 BodyAngularVelocity.maxTorque ; Property Vector3 BodyGyro.maxTorque : Should be called "MaxTorque". ; Property Vector3 BodyForce.force ; Property Vector3 BodyThrust.force : Should be called "Force". ; Property CoordinateFrame BodyGyro.cframe : Should be called "CFrame". ; Property Vector3 BodyPosition.maxForce ; Property Vector3 BodyVelocity.maxForce : Should be called "MaxForce". ; Property Vector3 BodyPosition.position : Should be called "Position". ; Property Vector3 BodyThrust.location : Should be called "Location". ; Property Vector3 BodyVelocity.velocity : Should be called "Velocity". ; Property Color3 Lighting.ColorShift_Bottom : Should be called "ColorShiftBottom". ; Property Color3 Lighting.ColorShift_Top : Should be called "ColorShiftTop". ; Event NetworkServer.IncommingConnection(string peer, Instance replicator) [RobloxScriptSecurity] : Should be called "IncomingConnection". ; Property int Player.userId : Should be called "UserId". ; Function Instance Players:GetPlayerByID(int userID) [LocalUserSecurity] : Should be called "GetPlayerByID". ; Property string ReflectionMetadataItem.summary : Should be called "Summary".
Should not be hidden: ; Property double DoubleConstrainedValue.ConstrainedValue [hidden] ; Property int IntConstrainedValue.ConstrainedValue [hidden] : Should be possible to set in the property window.
Consider unprotecting: ; Function void Players:SetChatStyle(ChatStyle style = Classic) [LocalUserSecurity] ; Event ScriptContext.CamelCaseViolation(Instance object, string member, Instance script) [RobloxScriptSecurity] ; Event ScriptContext.Error(string message, string stackTrace, Instance script) [RobloxPlaceSecurity] : Useful and not harmful.
_________________________________________________________________________ Twitter: https://twitter.com/MarkOtaris |
|
|
| Report Abuse |
|
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 31 May 2013 12:18 AM |
Well, I wanted my thread to somewhat appeal to the S&I regulars...
But yeah I agree with all of this. |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 31 May 2013 01:08 AM |
| I agree to all of this as well, would be super useful! |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 01:25 AM |
I published a version of this list on my website, so I can update it whenever I see a change in the change log, and so I can edit it; if anyone has suggestions of things to add, tell me: https://twitter.com/MarkOtaris/status/340352922556706816.
_________________________________________________________________________ Twitter: https://twitter.com/MarkOtaris |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 01:40 AM |
| Don't forget: Put BoolValue, BrickColorValue, CFrameValue, etc. under the superclass "ValueContainer", or something similar. |
|
|
| Report Abuse |
|
|
As8D
|
  |
| Joined: 24 Dec 2009 |
| Total Posts: 2907 |
|
|
| 31 May 2013 06:32 AM |
I agree with most of it.
Though, deprecating or removing a selection of properties and methods might cause trouble, and I'd have to incorporate Jobro13's environment-watcher to my scripts or replace all the .velocity, .position ect. with .Velocity and .Position. Though it would cause older games (owners quit playing Roblox) to break.
Yeh, that or just making both properties and methods and link them somehow.
local bp = Instance.new("BodyPosition") bp.position = Vector3.new(1, 2, 3) print(bp.Position)
> 1 2 3
- As, hurhur, I laik :GetHash(), thanx u Mark. |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 07:09 AM |
| I agree with all of the stuff, although like as8d said things shouldnt be deprecated/removed |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 07:29 AM |
| A lot of things will get "deprecated" over time. It's just how it works. |
|
|
| Report Abuse |
|
|
Oysi
|
  |
| Joined: 06 Jul 2009 |
| Total Posts: 9058 |
|
| |
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 31 May 2013 11:23 AM |
Also, Don't you just love how open roblox is with their availability of useful functions? |
|
|
| Report Abuse |
|
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 31 May 2013 11:57 AM |
| Isn't Player:GetUnder13() useful? It doesn't give out their age or anything. |
|
|
| Report Abuse |
|
|
uyjulian
|
  |
| Joined: 29 Nov 2012 |
| Total Posts: 1214 |
|
| |
|
digpoe
|
  |
| Joined: 02 Nov 2008 |
| Total Posts: 9092 |
|
|
| 31 May 2013 12:16 PM |
@coplox
It would be better if they had a player:GetSafeChatEnabled() method because most users lie about their age... |
|
|
| Report Abuse |
|
|
uyjulian
|
  |
| Joined: 29 Nov 2012 |
| Total Posts: 1214 |
|
| |
|
digpoe
|
  |
| Joined: 02 Nov 2008 |
| Total Posts: 9092 |
|
| |
|
uyjulian
|
  |
| Joined: 29 Nov 2012 |
| Total Posts: 1214 |
|
| |
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 31 May 2013 03:00 PM |
If they lie about their age then they would get all the content fit for the age they lied about.
If they complain "OMG WHY DID YOU MAKE BLOOD DEFAULT FOR ME I'M 9!", well, they said they were over 13 so that is what they will get. |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 04:00 PM |
> Though, deprecating or removing a selection of properties and methods might cause trouble, and I'd have to incorporate Jobro13's environment-watcher to my scripts or replace all the .velocity, .position ect. with .Velocity and .Position. Though it would cause older games (owners quit playing Roblox) to break.
> I agree with all of the stuff, although like as8d said things shouldnt be deprecated/removed
What are you both talking about? The only thing I suggested to remove is something that is deprecated and that no user on ROBLOX has ever used. Deprecating something doesn't break anything; deprecation is just a status, it doesn't change how the item behaves in any way.
_________________________________________________________________________ Twitter: https://twitter.com/MarkOtaris |
|
|
| Report Abuse |
|
|
As8D
|
  |
| Joined: 24 Dec 2009 |
| Total Posts: 2907 |
|
|
| 31 May 2013 05:18 PM |
Ah, okay.
But: > that no user on ROBLOX has ever used. > no user
Uhm... so I am "no user"? Or not the only...
Well, the fact that properties are case-sensitive is quite a problem, as typos might ruin a test-run. ):
- As, We Are Talking About Cake. Serious Cake. And Sophisticated Cake. |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 05:24 PM |
> Uhm... so I am "no user"? Or not the only...
You have never used AnimationTrack.Stopped, the only member I have suggested to remove, for the simple reason that you cannot use it in the first place since the animation API is not released.
_________________________________________________________________________ Twitter: https://twitter.com/MarkOtaris |
|
|
| Report Abuse |
|
|
|
| 31 May 2013 05:24 PM |
> Well, the fact that properties are case-sensitive is quite a problem, as typos might ruin a test-run. ):
And this is why I have specifically mentioned that those should be deprecated, and that new equivalents with the correct name should be created.
_________________________________________________________________________ Twitter: https://twitter.com/MarkOtaris |
|
|
| Report Abuse |
|
|
Seranok
|
  |
| Joined: 12 Dec 2009 |
| Total Posts: 11083 |
|
|
| 31 May 2013 05:45 PM |
| There seems to be a misunderstanding that a method should only be locked if it is abusable. Actually, many methods are locked because developers don't want to people writing code that relies on them because then the developers can't change or remove the methods at will. |
|
|
| Report Abuse |
|
|
coplox
|
  |
| Joined: 07 Jun 2008 |
| Total Posts: 3252 |
|
|
| 31 May 2013 05:48 PM |
| Can't they unlock them and label them as experimental/unstable/indev? |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 31 May 2013 05:52 PM |
Seranok!!! From foruming to foruming ;) |
|
|
| Report Abuse |
|
|