Job: Experienced Clockwork GLua Developer Needed
Clockwork GLua Developer Needed
I am looking for an experienced Garry's Mod GLua developer to assist with the continued development, modification, optimization, and expansion of a Begotten III-based roleplay server.
Begotten III is built upon a heavily modified version of the Clockwork framework, and I am looking for someone capable of understanding an existing, relatively large codebase rather than simply installing and configuring premade GModStore addons. (GitHub Repository https://github.com/DETrooper/Begotten-III )
Developer I Am Looking For
The ideal developer should have strong experience with GLua/Lua development for Garry's Mod, particularly with existing gamemodes and roleplay frameworks.
Experience specifically with Clockwork, Begotten III, Schema development, or similar frameworks such as NutScript/Helix would be extremely valuable.
The developer needs to be comfortable examining unfamiliar existing code, determining how its systems interact, and adding new functionality without unnecessarily rewriting or breaking existing systems.
Required Skills
The developer should be comfortable with:
- Garry's Mod Lua / GLua development
- Client-side, server-side, and shared Lua
- Garry's Mod hooks and networking
- net messages and secure client/server communication
- Derma/VGUI interfaces
- Custom entities, weapons, items, and usable objects
- Player and character data
- Persistent data storage
- SQL/database-backed systems where necessary
- Timers, commands, permissions, and administrator functionality
- Creating and modifying Clockwork plugins
- Working with existing schema code
- Debugging Lua errors and conflicting addons
- Performance optimization
- Preventing unnecessary networking or server-side processing
- Maintaining compatibility with an existing live gamemode
- Git or another form of version control
Clockwork Experience
I am particularly interested in developers who understand how Clockwork schemas and plugins are structured.
You do not necessarily need to have previously worked specifically on Begotten III, provided you are an experienced GLua developer capable of learning an unfamiliar framework. However, previous Clockwork or Begotten experience will receive strong preference.
The developer should be capable of determining whether functionality should be implemented as:
- a standalone addon
- a Clockwork plugin
- a modification to an existing Begotten plugin
- a schema-level modification
- an external dependency
I want new systems to integrate naturally with Begotten rather than functioning as unrelated addons placed on top of the gamemode.
Type of Development
Work may involve creating entirely new systems as well as modifying existing Begotten III functionality.
Examples of the type of work that may be required include:
- New roleplay systems and mechanics
- Faction-specific functionality
- Character and player systems
- Inventory and item functionality
- Custom entities
- Custom weapons/SWEP functionality
- Administrative tools
- Database and persistence systems
- User interfaces and menus
- New Clockwork plugins
- Modification of existing Begotten plugins
- Server configuration systems
- Gameplay balancing
- Bug fixes
- Exploit fixes
- Networking optimization
- Server performance improvements
- Integration between multiple existing systems
Some projects may be relatively small standalone plugins, while others may require modifying or extending major portions of the existing schema.
Code Quality
I am specifically looking for someone who writes maintainable code.
Code should be reasonably organized and documented so that another competent GLua developer can understand and continue working on it later.
I do not want systems that are unnecessarily hard-coded, dependent upon undocumented modifications, or constructed in a manner that makes future maintenance impossible.
Where appropriate, systems should use configuration files or clearly defined variables rather than requiring core code to be edited every time something changes.
The developer should also avoid modifying core Begotten files when the same functionality can reasonably be accomplished through hooks or plugins.
Performance
Performance is particularly important because Begotten is already a relatively complicated gamemode.
The developer should understand common Garry's Mod performance issues, including:
- excessively frequent Think hooks
- unnecessary timers
- excessive network traffic
- inefficient database queries
- repeated entity searches
- unnecessary client/server communication
- poorly optimized UI
- unnecessary file loading
- code that scales poorly as player count increases
New systems should be designed with multiplayer server performance in mind.
Security
The developer should understand that information received from a Garry's Mod client cannot automatically be trusted.
Systems involving inventories, currency, permissions, character information, administrative functions, or other sensitive functionality should have proper server-side validation.
I expect reasonable precautions against obvious exploits, net-message abuse, permission bypasses, item duplication, and similar issues.
Existing Code
The developer must be willing to work with the existing codebase instead of replacing systems simply because they are unfamiliar.
Before making substantial changes, I would prefer the developer understand what an existing system does, identify the problem, and determine the least destructive method of accomplishing the requested change.
Large rewrites should only occur when there is a legitimate technical reason for them.
Deliverables
For commissioned work, I expect:
- Complete source code
- All necessary Lua files
- Any required configuration files
- Installation instructions where necessary
- Identification of external dependencies
- Explanation of any existing files that had to be modified
- Reasonably organized and readable code
- Testing before final delivery
There should be no encrypted, obfuscated, or deliberately inaccessible code in commissioned server-side development unless specifically discussed beforehand. If an existing third-party system must be modified, the developer should identify the system and explain what was changed.
Working Relationship
I am looking for someone who communicates clearly and is willing to discuss the design of systems before implementing major changes.
I can provide detailed descriptions of how mechanics are intended to function from a gameplay and roleplay perspective. I need the developer to translate those concepts into technically sound implementations.
If something I request would be inefficient, insecure, or difficult to maintain, I would prefer the developer explain the issue and suggest a better implementation rather than simply building it incorrectly.
This will lead to ongoing continued development work if the developer is reliable and the initial projects go well.
When Applying
Please provide:
- Your experience with Garry's Mod Lua.
- Whether you have worked with Clockwork, Begotten, NutScript, Helix, or another roleplay framework.
- Examples of previous GLua work if available.
- Your experience modifying existing gamemodes rather than only creating standalone addons.
- Your approximate availability.
- Your preferred method of pricing work.
- Whether you are interested in occasional individual commissions or continued development work.
- Your portfolio and examples of your work.
Payment & Communication
Payment will be made on a task-by-task basis, with the price and scope of each task negotiated and agreed upon before work begins. Unless otherwise agreed, payment will be divided into two installments: 50% upon commencement of the task and the remaining 50% upon satisfactory completion and delivery of the agreed-upon work.
Payment methods will be agreed upon prior to the start of each task; however, Bitcoin or other cryptocurrency payments will not be accepted.
All primary project communication, coordination, progress updates, and discussion of individual tasks will be conducted through Discord.
Because development will be commissioned piece-by-piece rather than as a single fixed-price project, applicants should be comfortable providing estimates and discussing the scope, price, and expected deliverables for each individual task before beginning work.