ulx4
ulx4 copied to clipboard
The ULX addon for Garry's Mod
ULX
NOTE: This version of ULX is in early development, and is not currently a full replacement for ULX 3. Do not run this on your servers yet!
ULX is an addon for Garry's Mod. Insert some witty and concise description here.
ULX is licensed under the MIT license. For an easy-to-understand summary of the license, please check out tl;dr Legal.
Note that ULX is written primarily in MoonScript (described below). Even though Garry's Mod will be running the compiled version of the MoonScript, we ship ULX with both the original and the compiled source for your convenience.
Credits
Authors
Brett "Nayruden" Smith (Team Lead)
Stickly Man! (GUI Expert)
JamminR (Morale & Support)
MrPresident (Developer)
Timmy (Developer)
Translations
The following amazing folks have contributed translations for ULX.
- German - Markus
- Portuguese - Bruno "comedinha" Carvalho
- Russian - Fixator10
Dependencies
Runtime Dependencies (Included)
Besides the modified version of Garry's Mod's Lua 5.1, ULX needs the following dependencies to function. These dependencies are included with ULX.
tableshape - A Lua library for verifying the shape (schema, structure, etc.) of a table. This helps ULX verify the validity of data as it's being loaded or moved around.
Development Dependencies (Not Included)
ULX's codebase and documentation were built using the following tools. You do not need these dependencies installed for ULX to function.
MoonScript - A programmer friendly language that compiles to Lua. MoonScript was chosen for ULX in order to minimize typing, increase clarity of intent, and because it remains compatible with Garry's modified version of Lua 5.1.
Busted - Elegant Lua unit testing. Busted tests our core functionality to ensure that everything is working as advertised.
lua-cjson - A JSON library. JSON is the format of choice for ULX when writing to plain text files. This format was chosen over the existing Source KeyValues format because it's an accepted Internet standard (and thus easier to move the data around) in addition to being less prone to errors. Garry's Mod natively supports JSON, but we need to process JSON data in our unit tests.
LuaFileSystem - File System Library for the Lua Programming Language. This is necessary since vanilla Lua only implements very basic file I/O functionality.
Natural Docs - Documentation generator. Natural Docs generates ULX documentation from comments in the source code and is available online at https://ulyssesmod.net/ulx4-doc.
PlantUML - Generates Unified Modeling Language (UML) diagrams from plain-text descriptions. This allows us to quickly document ULX source structure without the hassle of a graphical UML editor.
Installation
Install ULX by placing the contents of this repository in addons\ulx
such that addon.txt
resides in addons\ulx\addon.txt
. Your file structure should look like the following:
Usage
Type ulx help
in your console for a list of available actions.
Development
If you want to change or add to ULX, please review the developer's read me.