View difference between Paste ID: tmrdbjMa and 00uenFhi
SHOW: | | - or go back to the newest paste.
1
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
4
local RealPlayer = Player
5
do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end
6
plr = game.Players.LocalPlayer
7
repeat wait() until plr.Character
8
char = plr.Character
9
10
BRICKC = BrickColor.new
11
inthenether = false
12
13
function createimage(Type, Parent, Face, ID)
14
	local image = Instance.new(Type,Parent)
15
	image.Face = Face
16
	image.Texture = ID
17
end
18
function createtexture(Parent, Face, ID, StudsU, StudsV, Transparency)
19
	local image = Instance.new("Texture",Parent)
20
	image.Face = Face
21
	image.Texture = ID
22
    image.StudsPerTileU = StudsU
23
    image.StudsPerTileV = StudsV 
24
    image.Transparency = Transparency
25
end
26
function createpart(Parent, Material, BrickC, Anchored, CF, Name, Size, Collide, Orientation)
27
	local part = Instance.new("Part",Parent)
28
	part.Material = Material
29
	part.BrickColor = BRICKC(tostring(BrickC))
30
	part.Anchored = Anchored
31
	part.CFrame = CF	
32
	part.Name = Name
33
	part.Size = Size
34
	part.CanCollide = Collide
35
	part.Orientation = Orientation
36
end
37
function createimageonallsides(ID, Parent)
38
	createimage("Decal", Parent, "Top", ID)
39
	createimage("Decal", Parent, "Bottom", ID)
40
	createimage("Decal", Parent, "Left", ID)
41
	createimage("Decal", Parent, "Right", ID)
42
	createimage("Decal",Parent, "Front", ID)
43
	createimage("Decal", Parent, "Back", ID)
44
end
45
46
local NetherPortal = Instance.new("Model",workspace)
47
NetherPortal.Name = "Portal"
48
49
local Nether = Instance.new("Model",char)
50
Nether.Parent = nil
51
Nether.Name = "Nether"
52
53
54
function createportal()
55
	local part1 = createpart(NetherPortal, "Slate", BRICKC("Really black"), true, CFrame.new(-0.19, 18, -11.43),"Part1", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
56
	local part2 = createpart(NetherPortal, "Slate", BRICKC("Really black"), true, CFrame.new(-12.19, 14, -11.43),"Part2", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
57
	local part3 = createpart(NetherPortal, "Slate", BRICKC("Really black"), true, CFrame.new(-8.19, 18, -11.43),"Part3", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
58
	local part4 = createpart(NetherPortal, "Slate", BRICKC("Really black"), true, CFrame.new(-4.19, 18, -11.43), "Part4", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
59
	local part5 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-0.19, 14, -11.43), "Part5", Vector3.new(4,4,4),true, Vector3.new(0,0,0))
60
	local part6 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-12.19, 10, -11.43), "Part6", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
61
	local part7 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-12.19, 18, -11.43), "Part7", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
62
	local part8 = createpart(NetherPortal, "Slate", BRICKC'Bright violet', true, CFrame.new(-6.142, 10, -11.466), "Part8", Vector3.new(8, 1.6, 12), false, Vector3.new(90,0,0))
63
	local part9 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-0.19, 10, -11.43), "Part9", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
64
	local part10 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-12.19, 6, -11.43), "Part10", Vector3.new(4,4,4), true , Vector3.new(0,0,0))
65
	local part11 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-12.19, 2, -11.43), "Part11", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
66
	local part12 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-4.19, 2, -11.43), "Part12", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
67
	local part13 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-0.19, 6, -11.43), "Part13", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
68
	local part14 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-8.19, 2, -11.43), "Part14", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
69
	local part15 = createpart(NetherPortal, "Slate", BRICKC'Really black', true, CFrame.new(-0.19, 2, -11.43), "Part15", Vector3.new(4,4,4), true, Vector3.new(0,0,0))
70
end
71
72
createportal()
73
74
75
function generatenether()
76
	local base = createpart(Nether, "Plastic", BRICKC'Bright green', true, CFrame.new(-11.935, 5000, -45.017), "Base", Vector3.new(377.7, 399.93, 2),true, Vector3.new(90,0,0))
77
	local wall1 = createpart(Nether, "Plastic", BRICKC'Bright green', true, CFrame.new(-191.117, 5212.282, -43.413), "Wall1", Vector3.new(404.32, 421.87, 4),true, Vector3.new(0, -90, 0))
78
	local wall2 = createpart(Nether, "Plastic", BRICKC'Bright green', true, CFrame.new(178.849, 5212.282, -43.413), "Wall2", Vector3.new(404.32, 421.87, 4),true, Vector3.new(0, 90, 0))
79
	local wall3 = createpart(Nether, "Plastic", BRICKC'Bright green', true, CFrame.new(-8.58, 5212.282, -244.122), "Wall3", Vector3.new(370.83, 421.87, 4), true, Vector3.new(0, 180, 180))
80
	local wall4 = createpart(Nether, "Plastic", BRICKC'Bright green', true, CFrame.new(-8.58, 5212.282, 155.843), "Wall4", Vector3.new(370.83, 421.87, 4), true, Vector3.new(0, 180, 180))
81
	local roof = createpart(Nether, "Plastic", BRICKC'Bright green', true, CFrame.new(-11.935, 5415.161, -45.017), "Roof", Vector3.new(370.83, 421.87, 4), true, Vector3.new(-90, 0, 0))
82
end
83
84
85
for i,v in pairs(NetherPortal:GetChildren()) do
86
	if v.Name ~= "Part8" then
87
	
88
	end
89
	if v.Name == "Part8" then
90
		createtexture(v, "Top", "http://www.roblox.com/asset/?id=77399998", 4 , 4, 0.1)
91
	    createtexture(v, "Bottom", "http://www.roblox.com/asset/?id=77399998", 4, 4, 0.1)
92
	    v.Transparency = 0.7
93
	end
94
end
95
timer = 50
96
generatenether()
97
local NetherTheme = Instance.new("Sound",char)
98
NetherTheme.SoundId = "rbxassetid://169283546"
99
NetherTheme.Volume = 4
100
NetherTheme.Looped = true
101
for i,v in pairs(Nether:GetChildren()) do
102
	if v.Name ~= "Base" then
103
		createtexture(v, "Front", "rbxassetid://75881126", 4, 4, 0)
104
	end
105
	if v.Name == "Base" and v.Name ~= "Wall4" then
106
		createtexture(v, "Front", "rbxassetid://42112689", 4, 4, 0)
107
	end
108
	if v.Name == "Wall4" then
109
		createtexture(v, "Back", "rbxassetid://75881126", 4, 4, 0)
110
	end
111
	v.Anchored = true
112
	v.CanCollide = true
113
end
114
115
116
117
118
 screen = Instance.new("ScreenGui")
119
            frame = Instance.new("Frame", screen)
120
            frame.Size = UDim2.new(1,0 , 1,0)
121
            frame.BackgroundTransparency = 1
122
            frame.BackgroundColor3 = BRICKC'Royal purple'.Color
123
124
local idle = Instance.new("Sound",NetherPortal)
125
idle.SoundId = "rbxassetid://144392025"
126
idle.Volume = 4
127
NetherPortal.Part8.Touched:connect(function(part)
128
	local human = part.Parent:FindFirstChildOfClass("Humanoid")
129
	if human then
130
		screen.Parent = game.Players[human.Parent.Name].PlayerGui 
131
		for i = 1,timer do
132
			wait()
133
		    frame.BackgroundTransparency = frame.BackgroundTransparency - 0.0005
134
		end
135
		Nether.Parent = char
136
		human.Parent.Torso.CFrame = Nether.Base.CFrame + Vector3.new(0, 5, 0)
137
		NetherTheme:Play()
138
		screen.Parent = nil
139
		inthenether = true
140
	end
141
end)
142
while true do
143
	wait()
144
	if not inthenether then
145
	wait(math.random(1,5))
146
	idle:Play()
147
	repeat wait() until idle.IsPlaying == false
148
	end
149
end