Jump to content


Evis's Content

There have been 24 items by Evis (Search limited from 29-March 23)


By content type

See this member's

Sort by                Order  

#7023 Menu with multiple choiches.

Posted by Evis on 31 March 2012 - 06:05 AM in Ask a Pro

View PostAdvert, on 31 March 2012 - 12:56 AM, said:

I have something coming along nicely, but I'm starting to create utility functions, as usual :o/>

Here's what I have so far: http://pastebin.com/MsAEDu6C

I think It's working now, I'll make a post with some examples once I'm awake again :o/>

Just tried this out. It's pretty slick. Going to tinker tomorrow.



#7018 [sugestion] Sugestion and servers sub forum

Posted by Evis on 31 March 2012 - 05:54 AM in General

I have a bukkit and worldguard + worldedit server. Also running ic/bc/rp with cc 1.31. Rather underutilized at the moment.

Having some permission issues so not ready to go public yet, but if you have whitelist, or/and no-build for default groups; short of hacking your server, griefing should not be too big of an issue. With a good backup script, you can restore.

To that same end, we are allowing user scripts so having complete strangers with wizard like lua skills, and a wild hair up their ass should be a consideration...



#7016 [1.4] cable

Posted by Evis on 31 March 2012 - 05:30 AM in Suggestions

At the same time if you use user defined UIDs, you can free up colors for something else.



#7015 Monitor Scrolling text

Posted by Evis on 31 March 2012 - 05:27 AM in Ask a Pro

I just got them working, any links to resources? I got three pages of search results, but don't see any guides.



#7003 ComputerCraft 1.3.1 for Minecraft 1.1 (BackPort)

Posted by Evis on 31 March 2012 - 03:24 AM in General

Sweet!

Client Install Instructions

Doing this on Win7:

1. Use window explore to browse to: system:UsersusernameAppDataRoaming.minecraftmods

You can get there easily by type %appdata% in the address bar of windows explore.

2. Create a folder on your desktop called CC-Backup, you'll use this later.

3. Locate the ComputerCraft folder at local address above and select cut and then paste the whole folder in CC-Backup on your desktop.

4. Locate ...userAppDataRoaming.minecraftconfig and repeat step 3 for the mod_ComputerCraft.cfg file. This creates a backup of the older mod. This doesn't backup your computers, which are stored locally in your saves

5. Once complete, add the computer craft folder from the zip into mods

6. Start a SP game. Test the screen. You should be good to go.

Note: Now I need to find an update to the IC texture pack since it didn't display at first. :o/>

Tested: OK

Server Install Instructions

Coming as soon as I break my server...



#6856 [LUA] [Question] Bundled RS Detection & States

Posted by Evis on 30 March 2012 - 05:03 AM in Ask a Pro

 luanub, on 29 March 2012 - 10:11 AM, said:

Try replacing

if rs.getBundledInput("back") == colors.white then


with this
if redstone.testBundledInput("back", colors.white ) == true then

I use something very similar in one of my programs and I have not had any issues with it.

That did the trick! Thanks!



#6703 [LUA] [Question] Bundled RS Detection & States

Posted by Evis on 29 March 2012 - 09:30 AM in Ask a Pro

Ah, was this patched?

http://www.computerc...enerate-events/



#6702 APIs to Learn and in Which Order.

Posted by Evis on 29 March 2012 - 09:28 AM in General

I'll learn with an entirely different order based on what I'll find to be most helpful to me and tasks for my world.

Right now my lua is dirty, but it'll get better with practice.



#6701 [LUA] [Question] Bundled RS Detection & States

Posted by Evis on 29 March 2012 - 09:22 AM in Ask a Pro

 Advert, on 29 March 2012 - 09:05 AM, said:

 Evis, on 29 March 2012 - 08:44 AM, said:

Just wanted to say thanks to you I have a much better understanding of LUA!

I'm still having one minor issue where; if two dissimilar color bundled cables are true; the script won't detect either of them.

Do I need a pullEvent? or loop?

I'm not quite sure what you mean; do you mean two different colored bundled cables?

If so, as long as they are both connected to the computer, and you're checking the right sides, it should work.

I mean I had magenta and cyan both true, and the code didn't detect. It did before sporatically, when there was only one wire connected and true.

I rewrote it as;

if rs.getBundledInput("back") == colors.white then
term.setCursorPos(36, 3)
print("RUN ")
else
term.setCursorPos(36, 3)
print("STBY")
sleep(0.5)
end

This is the only 'check' for that input and it doesn't see the white wire as true.

Strange behavior, or am I missing something?

I found this snip in another thread;

os.pullEvent('redstone')
If rs.getBundledInput(side) == color then



#6699 [LUA] [Question] Bundled RS Detection & States

Posted by Evis on 29 March 2012 - 08:44 AM in Ask a Pro

Just wanted to say thanks to you I have a much better understanding of LUA!

I'm still having one minor issue where; if two dissimilar color bundled cables are true; the script won't detect either of them.

Do I need a pullEvent? or loop?



#6597 [LUA] [Question] Bundled RS Detection & States

Posted by Evis on 28 March 2012 - 11:39 AM in Ask a Pro

Thanks a very much for the help and examples. I've made some progress on #1 and #2 (below)

I'm running into a problem when I have two states to check. It won't detect them after adding the second state, which I've commented out. I suppose it needs to check them every so often.

Going to read for #3, and experiment with the functions which seems much better.

Thanks again!

Control
--EvBios System Check .v06
--Adapted from original by Shif
--Ready the Terminal
local function clearScreen()
  term.clear()
  term.setCursorPos(1, 1)
end
term.clear()
--Start the Built In Test
term.setCursorPos(1, 1)
print("Power On BIT Started:")
sleep(1)
-- Check for detection of control signal
sleep(3)
if rs.getBundledInput("back") == colors.cyan then
term.setCursorPos(2, 3)
print("Signal DETECTED")
else
print("Signal Not Detected")
sleep(2)
end
--Continue BIT
term.setCursorPos(1, 5)
print("EvBIOS v.04")
sleep(1)
term.setCursorPos(1, 7)
print("Bundled Cable Detected")
sleep(2)
term.setCursorPos(1, 9)
print("Loading Management Profile...")
sleep(2)
term.setCursorPos(31, 9)
print("COMPLETE")
sleep(2)
term.clear()

--Check the Asset System
term.setCursorPos(1, 1)
print("Checking Asset System..|")
sleep(1)
term.setCursorPos(1, 3)
print("Ice System Reports Low Supply!")
sleep(1)
--Prompt an input to start ice
print("Do you want to start ice collection? Y or N")
print("Press X to Cancel")
local userinput = read()
if userinput == "y" then
print("STARTED")
rs.setBundledOutput("back", colors.lightBlue)
sleep(2)
term.clear()
elseif
userinput == "x" then
print("Terminal Shutting Down")
sleep(2)
os.shutdown()
else
print("SKIPPED")
sleep(2)
term.clear()
end
term.setCursorPos(1, 1)
print("Checking Asset System..|")
sleep(1)
term.setCursorPos(1, 5)
print("Compressors ONLINE")
sleep(2)
term.setCursorPos(1, 7)
print("All Filters ONLINE")
sleep(2)
term.setCursorPos(1, 9)
print("Collectors ONLINE")
sleep(2)
term.setCursorPos(1, 11)
print("Transposers ONLINE")
sleep(1)
term.setCursorPos(1, 13)
print("Asset System ONLINE")
sleep(3)
clearScreen()
--Check the Blutricity and Sorting System
print("Checking Sorting System../")
sleep(2)
term.setCursorPos(1, 3)
print("Blutricity Grid ONLINE")
sleep(2)
term.setCursorPos(1, 5)
print("Sorter ONLINE")
sleep(2)
term.setCursorPos(1, 7)
print("Sorter AI Reports:")
sleep(2)
term.setCursorPos(20, 7)
print("READY")
sleep(4)
clearScreen()
--Check the EU Power System
print("Checking Power Subsystem..--")
sleep(2)
term.setCursorPos(1, 3)
print("MV Power Grid Nominal")
sleep(2)
term.setCursorPos(1, 5)
print("Local MFSU Status: ")
-- Check for a full mfsu
--sleep(3)
--if rs.getBundledInput("back") == colors.magenta then
-- term.setCursorPos(22, 5)
-- print("FULL")
--else
-- term.setCursorPos(22, 5)
-- print("CHARGING")
-- sleep(3)
--end

sleep(1)
term.setCursorPos(1, 7)
print("Local MFE Capacity 100%")
sleep(2)
term.setCursorPos(1, 9)
print("Local Unit Capacity 100%")
sleep(1)
term.setCursorPos(1, 11)
print("All Power Systems  READY")
sleep(4)
clearScreen()
--Check the other stuff
print("Checking System Integration..")  -- Here is the escaped backslash.
sleep(2)
term.setCursorPos(1, 3)
print("Talkback OK")
sleep(2)
term.setCursorPos(1, 5)
print("CPU READY")
sleep(2)
term.setCursorPos(1, 7)
print("Lag Detected: Downloading More RAM..")
sleep(4)
term.setCursorPos(1, 9)
print("RAM Download COMPLETE")
sleep(3)
clearScreen()
--Check redwire connections
print("Checking Redwire Network..|")
sleep(4)
term.setCursorPos(1, 3)
print("System Integrity 100%")
sleep(2)
term.setCursorPos(1, 5)
print("Removing Safeties")
sleep(2)
term.setCursorPos(1, 7)
print("Disabling Homicidal AI")
sleep(3)
clearScreen()
--BIT Success
print("All Reactor Support System READY")
sleep(1)
term.setCursorPos(1, 3)
print("Operators Must Wear Eye Protection")
sleep(2)
term.setCursorPos(1, 5)
print("Do Not Send Ice to Reactors; OFFLINE")
sleep(2)
term.setCursorPos(1, 8)
print("Loading Interface... Please wait...")
sleep(4)
--Load the control program
shell.run("control")



#6591 [LUA] [Question] Bundled RS Detection & States

Posted by Evis on 28 March 2012 - 10:17 AM in Ask a Pro

Alright so I've adapted two samples provided on these forums for an ice machine process used to cool down my IC reactors. I'm not looking for anyone to do any of it for me, but I'm wondering if I can get help on three things; (code below)

I've used the built in help, but when I try to detect, it breaks the script. I guess I need some help with the formatting and/or some direction.

1.

I have two files, the start-up runs through the various components, and prints reports. Right now, they are simply dummy text, but my goal is to display states based on true or false; e.g. Detect a color input on the bundled cable and print either text and/or a value.

So lets say I have 3 power storage units that output when full. On power-up, the test will check the bundled cable, red wire to see if a RS signal is true.

How could I pull that variable and include in print("Unit 1 is [state]" where state is FULL or CHARGING. I get if bundled cable red is true, then print(...) but all my efforts have failed.

is it;

if rs.getBundledInput(back,red) == true then
print("Red Unit FULL")
else
print("Red Unit Charging")

2.

Once it is detected, I'm completely lost on read.io; I wanted to give the option to start ice production if supply is low. So if my counter reads 64, it should throw the "Low Supply" and ask if you'd like to turn on the Snow Collector Array. (SCA)

Do you want to start ice collection now? y to start | n to continue...

The SCA is controlled by a second program (See below) called control, also adopted. I tried to set the output with;

if rs.getBundledInput(back,blue) == true then
rs.setBundledOutput(back,green) == true


If I got the above to work, I imagine the control program would reset the wire state.

Lastly, 3 ..

If I wanted to make some momentary switches, or choose to send a timed pulse to a specific wire, how would I format it?

I'm still learning timers and loops and I believe that's the way here.

Any help and direction is greatly appreciated!

Code

startup

--EvBios System Check .v03
--Adapted from original by unknown

--Ready the Terminal
local function clearScreen()
  term.clear()
  term.setCursorPos(1, 1)
end

--Start the Built In Test
print("Power On BIT Started:")
sleep(3)
term.setCursorPos(1, 5)
print("EvBIOS v.03")
sleep(3)
term.setCursorPos(1, 7)
print("Bundled Cable Detected")
sleep(2)
term.setCursorPos(1, 9)
print("Loading Management Profile...")
sleep(3)
term.setCursorPos(31, 9)
print("COMPLETE")
sleep(3)
clearScreen()

--Check the Asset System
print("Checking Asset System..|")
sleep(3)
term.setCursorPos(1, 3)
print("Ice System Reports Low Supply!")
sleep(1)
term.setCursorPos(1, 5)
print("Compressors ONLINE")
sleep(1)
term.setCursorPos(1, 7)
print("All Filters ONLINE")
sleep(1)
term.setCursorPos(1, 9)
print("Collectors ONLINE")
sleep(1)
term.setCursorPos(1, 11)
print("Transposers ONLINE")
sleep(6)
clearScreen()

--Check the Blutricity and Sorting System
print("Checking Sorting System../")
sleep(3)
term.setCursorPos(1, 3)
print("Blutricity Grid ONLINE")
sleep(2)
term.setCursorPos(1, 5)
print("Sorter ONLINE")
sleep(2)
term.setCursorPos(1, 7)
print("Sorter AI Reports:")
sleep(2)
term.setCursorPos(20, 7)
print("READY")
sleep(4)
clearScreen()

--Check the EU Power System
print("Checking Power Subsystem..--")
sleep(3)
term.setCursorPos(1, 3)
print("MV Power Grid Nominal")
sleep(3)
term.setCursorPos(1, 5)
print("Local MFSU Capacity 100%")
sleep(1)
term.setCursorPos(1, 7)
print("Local MFE Capacity 100%")
sleep(1)
term.setCursorPos(1, 9)
print("Local Unit Capacity 100%")
sleep(1)
term.setCursorPos(1, 11)
print("All Power Systems  READY")
sleep(4)
clearScreen()

--Check the other stuff
print("Checking System Integration..\\")  -- Here is the escaped backslash.
sleep(2)
term.setCursorPos(1, 3)
print("Talkback OK")
sleep(2)
term.setCursorPos(1, 5)
print("CPU READY")
sleep(2)
term.setCursorPos(1, 7)
print("Lag Detected: Downloading More RAM..")
sleep(4)
term.setCursorPos(1, 9)
print("RAM Download COMPLETE")
sleep(3)
clearScreen()

--Check redwire connections
print("Checking Redwire Network..|")
sleep(4)
term.setCursorPos(1, 3)
print("System Integrity 100%")
sleep(2)
term.setCursorPos(1, 5)
print("Removing Safeties")
sleep(2)
term.setCursorPos(1, 7)
print("Disabling Homicidal AI")
sleep(3)
clearScreen()

--BIT Success
print("All Reactor Support System READY")
sleep(1)
term.setCursorPos(1, 3)
print("Operators Must Wear Eye Protection")
sleep(2)
term.setCursorPos(1, 5)
print("Do Not Send Ice to Reactors; OFFLINE")
sleep(4)
term.setCursorPos(1, 8)
print("Loading Interface... Please wait...")
sleep(3)

--Load the control program
shell.run("control")

control

-- Reactor Coolant Control v.03 by Evis
-- Original by Shif

shell.run("clear");

-- Creates 3 arrays, s to store the constant of each color, o to store the toggles and sn to store the names of the toggles
s = {colors.white, colors.red, colors.lightBlue, colors.yellow, colors.blue, colors.black};
o = {"off", "off", "off", "off", "off", "off"};
sn = {"Extract Ice Blocks", "External Power Disconnect", "Supply Snow to Compressors", "Start Snow Collector Array", "Supply Ice to Reactors", "Local MFSU Disconnect"};

-- some placeholders for later
cs = 1;
co = "off";

-- master color variable, the sum of all the color constants of services that are on will be stored here
master = 0;
while true do
shell.run("clear");

-- reset master
master = 6;
print("/// Reactor Coolant Support Controller v.03 ///\n");

-- for loop to check if a toggle is on and if it is then it adds the color value to the master variable
for i=1, 6 do

-- the status variable will store "on" or "off", i use it to convert "on" to "on " so the text doesnt move
status = o[i];
if(o[i] == "on") then
status = status.." ";
master = master + s[i];
end

-- this is what turns each cable on, based on the value of the master variable it decides which cables to turn on
redstone.setBundledOutput("back", master);

-- this prints each of the services and their states
print(i.." - "..status.." - "..sn[i]);
end

-- here it asks for what service to toggle, if the number is not in the list it asks again
sValid = true;
while sValid do
write("\nSelect a service to toggle: ");
cs = read();

-- this took me some painful moments of troubleshooting, if you dont convert what you read() and then try to use it to point inside an array it will point to different data, example: not calling tonumber(cs) and then doing i[cs] would do i["3"] instead of i[3]
cs = tonumber(cs);
if((cs == 1) or (cs == 2) or (cs == 3) or (cs == 4) or (cs == 5) or (cs == 6)) then
sValid = false;
else
print("Invalid Service");
end
end

--here it toggles the service, if its on it turns it off and vice versa
co = o[cs];
if(co == "on") then
o[cs] = "off";
else
o[cs] = "on";
end
end

-- here is where we print detection events
--



#2812 Bundles Cables do not generate events

Posted by Evis on 04 March 2012 - 11:04 AM in Suggestions

Found this topic looking for the very thing in the OP. Been trying to create a detector for machines, and ic storages. Thanks!

With regards to ideas; I always think in terms of what practical but hopelessly complex devices or information can be created and reported on? Since so many of us find ourselves in complex environments with BC/IC, and given the total amount of information one could pull out with redpower mod; why not construct a matrix for 1. control 2. messengers & information 3. automation. The lines are a bit blurred because of the nature of their integration.

Figure 6 pages (for 6 bundled input sides) of control and status indications. Perhaps a page (bundled cable line) could have two modes; controller (sends commands) or reporter/messenger (for tripping banks of lights/displays or audible alerts via noteblocks) -- or triggering events across terminals or via circuits.

Sounds as if such a matrix could end up becoming a network of MC Super Computers which are likely to become sentient... since it would a. automate, count, sort, and serve your food; mine & manufacture your tools & armor, convert raw materials into useful resources, control power distribution, and facility security & lighting ...it may one day choose to kill you by ceasing food production, opening all the doors, and turning off all the lights. Come to think of it, this should also be a mode. ...or even a gamemode.

sleep(10000)
BaseAI do(kill_residents)

Anyway, the example turned story is more of a use case for having a complex series of commands, controls, triggers, and information at your fingertips. A process for controlling your in-game process and gives you solid control & metrics. I think it would be a considerable challenge, at least for me.

Sounds like a fun project; something I'm going to attempt as I learn.



#2788 Fortress Control

Posted by Evis on 04 March 2012 - 08:10 AM in Programs

Ok I got 16 services (kinda) working;

If ya don't mind, Shif...

-- Original by Shif
-- Edit by Evis v.03
-- Svc 7 Doesn't Work

shell.run("clear");
-- Creates 3 arrays, s to store the constant of each color, o to store the toggles and sn to store the names of the toggles
s = {colors.white, colors.orange, colors.magenta, colors.lightBlue, colors.yellow, colors.lime, colors.pink, colors.gray, colors.lightGray, colors.cyan, colors.purple, colors.blue, colors.brown, colors.green, colors.red, colors.black};
o = {"off", "off", "off", "off", "off", "off", "off", "off", "off", "off", "off", "off", "off", "off", "off", "off"};
sn = {"Service 1", "Service 2", "Service 3", "Service 4", "Service 5", "Service 6", "Service 7", "Service 8", "Service 9", "Service 10", "Service 11", "Service 12", "Service 13", "Service 14", "Service 15", "Service 16"};
-- some placeholders for later
cs = 1;
co = "off";
-- master color variable, the sum of all the color constants of services that are on will be stored here
master = 0;
while true do
shell.run("clear");
-- reset master
master = 16;
print("/// Fort Systems Controller ///n");
-- for loop to check if a toggle is on and if it is then it adds the color value to the master variable
for i=1, 16 do
-- the status variable will store "on" or "off", i use it to convert "on" to "on " so the text doesnt move
status = o[i];
if(o[i] == "on") then
status = status.." ";
master = master + s[i];
end
-- this is what turns each cable on, based on the value of the master variable it decides which cables to turn on
redstone.setBundledOutput("top", master);
-- this prints each of the services and their states
print(i.." - "..status.." - "..sn[i]);
end
-- here it asks for what service to toggle, if the number is not in the list it asks again
sValid = true;
while sValid do
write("nSelect a service to toggle: ");
cs = read();
-- this took me some painful moments of troubleshooting, if you dont convert what you read() and then try to use it to point inside an array it will point to different data, example: not calling tonumber(cs) and then doing i[cs] would do i["3"] instead of i[3]
cs = tonumber(cs);
if((cs == 1) or (cs == 2) or (cs == 3) or (cs == 4) or (cs == 5) or (cs == 6) or (cs == 7) or (cs == 8) or (cs == 9) or (cs == 10) or (cs == 11) or (cs == 12) or (cs == 13) or (cs == 14) or (cs == 15) or (cs == 16)) then
sValid = false;
else
print("Invalid Service");
end
end
--here it toggles the service, if its on it turns it off and vice versa
co = o[cs];
if(co == "on") then
o[cs] = "off";
else
o[cs] = "on";
end
end

Service 7 is throwing a arithmetic error; any ideas?

control16:34: attempt to perform arithmetic 'add' on nil


Fixed the above error (spelling) but having a new error where 5 & 6 are inverted signals. ...hmm



#2783 Fortress Control

Posted by Evis on 04 March 2012 - 07:06 AM in Programs

View Postfrancogp, on 02 March 2012 - 06:42 AM, said:

View PostEvis, on 02 March 2012 - 06:25 AM, said:

View Postfrancogp, on 02 March 2012 - 04:33 AM, said:

View PostTimonator, on 01 March 2012 - 11:08 PM, said:

you have to load redpower before computercraft else the bundled cable output is bugged. Just put an a before redpower.

Excuse my ignorance, how do you change the load order?

For the server go to /jar/mods and rename redpower-all-2.0p4d-b1.1R3.zip to Aredpower-all-2.0p4d-b1.1R3.zip

Thanks!, this problem is only for server side?

I think it only effects servers hosted on Linux. When I was having the trouble my SP was working fine.
--
Now I'm on the hunt for a program similar to this one, that lets me select a side, and manage 16 colors out of that bundle. I tried to add to.modify this, but butchered it.



#2495 Fortress Control

Posted by Evis on 02 March 2012 - 06:25 AM in Programs

View Postfrancogp, on 02 March 2012 - 04:33 AM, said:

View PostTimonator, on 01 March 2012 - 11:08 PM, said:

you have to load redpower before computercraft else the bundled cable output is bugged. Just put an a before redpower.

Excuse my ignorance, how do you change the load order?

For the server go to /jar/mods and rename redpower-all-2.0p4d-b1.1R3.zip to Aredpower-all-2.0p4d-b1.1R3.zip



#2469 Computercraft V1.2 (Very) Basic Lua Tutorial

Posted by Evis on 02 March 2012 - 01:18 AM in Tutorials

A rednet tutorial would be awesome when you have time.



#2457 Ultimate Control System

Posted by Evis on 01 March 2012 - 11:22 PM in Programs

Just to update; this now works after adding "A1" to the front of RP mod on the server.

I see one bug though; "view states" will not stay on the screen; instead reverting back to side-control a moment after selection.



#2456 Fortress Control

Posted by Evis on 01 March 2012 - 11:21 PM in Programs

View PostTimonator, on 01 March 2012 - 11:08 PM, said:

you have to load redpower before computercraft else the bundled cable output is bugged. Just put an a before redpower.

Got it! thanks. I actually had to add "A1" instead of "A" - when I did that, it started working.

Appreciate the offer for help. How you wanna do this?



#2378 Fortress Control

Posted by Evis on 01 March 2012 - 09:57 AM in Programs

Just tried this on 1.3; no go - the output doesn't work. I cannot get it to output a rs signal even though the interface works fine.

Any tips for getting this to work ...and for all 16 colors?

I see a vast array of uses for these types of programs, and particularly like the way you have the GUI laid out / functioning.



#1884 Ultimate Control System

Posted by Evis on 27 February 2012 - 08:07 PM in Programs

View Postarongy, on 16 February 2012 - 07:23 AM, said:

Ultimate Control System


Arongy,

Will this script work on 1.3?



#1845 Bc/ic2 Block Parameters Detection Possible?

Posted by Evis on 27 February 2012 - 03:42 PM in Ask a Pro

I was wondering if there was a method for reading heat values from IC2 nuclear reactors.

Secondary to that; what functions might be used for displaying these values, and also triggering conditional process or routines.

Example:

Reactor 1 reaches heat level n which is 80% integrity compromise, thus triggering a chat or visual (on bit) alert.



#1634 Ultimate Control System

Posted by Evis on 26 February 2012 - 05:19 PM in Programs

Epic!

Great for banks of machines



#1629 [1.2/1.3/1.4]Redworks Addon

Posted by Evis on 26 February 2012 - 04:52 PM in Programs

This is exciting stuff. I was playing with it on SP and having a blast.

Any tips for adding this to my server?