ProtectedString: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>SoulStealer9875
No edit summary
>SoulStealer9875
No edit summary
(No difference)

Revision as of 07:10, 14 September 2011

WARNING: The following tutorial will not work anymore because the String property was locked.

Introduction

A ProtectedString is a data type that imitates the behavior of a String while still being very differrent. This type of String is neither readable or writable from Scripts. Here, I will use the Script's Source property to demonstrate what would happen if you were to attempt to manipulate a ProtectedString.

print( Workspace.Script.Source )

This would call an error saying that Source is not a valid member of Script. This is because the script you are using doesn't recognize Script.Source. It won't recognize any other ProtectedString value either.

There is no way to create a ProtectedString value.



Getting around Script.Source

This is a major obstacle that gets in the way of many scripters all around Roblox. It's the problem of setting a Script's Source. Many scripters will try to set Script.Source the conventional way:

Workspace.Script.Source = [[print("Hello, World!")]]

Unfortunately, this does not work. One way to get around this is to add a StringValue to simulate the Source of the script.

HIERARCHY:

Workspace
-Script
--SourceCode   [className = StringValue]

Workspace.Script's source:

script.SourceCode.Changed:connect(function()
loadstring( script.SourceCode.Value )()
end

Your script's source:

Workspace.Script.SourceCode.Value = [[print("Hello, World!")]]

--> Hello, World!