×
Create a new article
Write your page title here:
We currently have 276 articles on Waste Of Space Wiki. Type your article name above or create one of the articles listed here!



    Waste Of Space Wiki

    Programming: Difference between revisions

    Content added Content deleted
    No edit summary
    No edit summary
    Line 40: Line 40:
    ** Screen:ClearElements(), which clears all elements in a gui
    ** Screen:ClearElements(), which clears all elements in a gui
    Alternatively, a wiki exclusive to Pilot.lua can be found here: https://github.com/iimurpyh/pilot.lua/wiki. You can also visit https://wos.mawesome4ever.com for a list of all the parts, a brief description and their programmable properties/events which are all pulled using a script so there might be a few kinks.
    Alternatively, a wiki exclusive to Pilot.lua can be found here: https://github.com/iimurpyh/pilot.lua/wiki. You can also visit https://wos.mawesome4ever.com for a list of all the parts, a brief description and their programmable properties/events which are all pulled using a script so there might be a few kinks.

    == Programmable Parts ==
    There are several parts which have functions and variables exclusive to that part only.

    * [[Screen#Programming|Screen]]
    * [[StarMap#Programming|StarMap]]

    [[Category:Tutorials]]
    [[Category:Tutorials]]

    Revision as of 15:29, 25 May 2021

    File:8282717dfaf08e4c024e6ec7a3d9b700.gif
    A flappy bird arcade machine, made by iiMurpyh

    The game features an in-depth programming language that allows you to write and execute software that can manage and manipulate the state of other objects in-game. The name of this programming language is called Pilot.lua, which is a reference to rbx.lua.

    The main parts of programming are

    • Microcontroller - An object that stores and runs code when triggered by polysilicon and powered.
    • Port - Allows the microcontroller to interact with other objects, trigger and configure, etc.
    • Screen - A programmable object that can display user interface objects such as TextLabel, ImageLabel, etc.
    • Disk - Stores values in a directory-like format.

    The code below is code for a smart turret that takes chat commands and targets players accordingly, with the command "target playername"

    local Gyro = GetPartFromPort(1, "Gyro") -- Gets gyro attached to port 1
    local Microphone = GetPartFromPort(2, "Microphone") -- Gets microphone attached to port 2
    local Commanders = { -- List of usernames allowed to use the smart turret
      ["Robuyasu"] = true;
    }
    -- Connects to the microphone, adding an event to it that will listen for chat input
    Microphone:ConnectToEvent("Chatted", function(Player, Message) 
    
      -- This simply makes sure that the player speaking is allowed to run a command
      if not Commanders[Player] then return end
    
      if Message:lower():sub(0, 6) == "target" then -- If the message starts with target
        local Victim = Message:sub(8) -- Gets the rest of the message
        Gyro:Configure({Seek=Victim}) -- Configures the seeker to target that person
      end
    end)
    

    There are many functions in Pilot.lua that allow you to interact with other objects. These are the following default functions listed.

    • GetPort(ID) - Returns a port instance that can be used in other functions.
    • GetPartFromPort(ID or Port Instance, ClassName) Returns a part if found directly attached to a port. An example would be GetPartFromPort(2, "Screen")
    • TriggerPort(ID or Port Instance)

    All objects will contain certain programmable properties and functions. However, all instances will contain the following properties:

    • Configurable properties, for example an ionrocket's thrust speed property
    • ClassName, which is simply the name of the object
    • Object:Trigger(), which simply triggers the object
    • Object:Configure({Property=NewValue}), which configures the part to the given dictionary/table
    • Object:ConnectToEvent, which is similar to roblox connections (part.Touched:Connect). An example includes TouchTrigger:ConnectToEvent("Touched", function() end)

    Certain parts however will have their own special properties.

    • Screen
      • Screen:CreateElement(GUIClassName, Properties), an example includes Screen:CreateElement("TextLabel", {Text = "Hello World!"; TextScaled = true});
      • Screen:ClearElements(), which clears all elements in a gui

    Alternatively, a wiki exclusive to Pilot.lua can be found here: https://github.com/iimurpyh/pilot.lua/wiki. You can also visit https://wos.mawesome4ever.com for a list of all the parts, a brief description and their programmable properties/events which are all pulled using a script so there might be a few kinks.

    Programmable Parts

    There are several parts which have functions and variables exclusive to that part only.

    Cookies help us deliver our services. By using our services, you agree to our use of cookies.

    Recent changes

  • Axenori • 3 days ago
  • Voivsone • 4 days ago
  • Axenori • 4 days ago
  • Axenori • 5 days ago
  • Cookies help us deliver our services. By using our services, you agree to our use of cookies.