Desktop Game Development
Worldwide
Game & Environment Overview 1. Silkroad Online Silkroad Online (SRO) is a massively multiplayer online DESKTOP RPG based on the historical Silk Road. Players travel between cities, fight monsters, trade, and interact with other players. The game has an in-game economy where players buy and sell items using Gold. The plugin will be developed for Silkroad Online (iSRO) and will interact with the game through PHBot. (or you can built your own application). 2. PHBot PHBot is a bot/automation platform for Silkroad Online that provides APIs and events for interacting with the game. The proposed solution will be developed as a PHBot Python plugin, but developers has all ability to use whatever 3rd party tools or build your own app. If some required information is not directly available through PHBot, the developer should identify the limitation and use the most reliable available approach. 3. Players & Stalls Players in the game can open stalls to sell items to other players. Each player can define whatever the price for his items. A stall can contain multiple items (10 as maximum), each with its own quantity and selling price in Gold. The plugin should automatically detect and scan these stalls without requiring the user to manually open them. For each stall, the main information is: • Player name. • Player coordinates. • City/map. • Stall title. • Items being sold. • Item quantity. • Item price. • Available item properties. Stalls are dynamic and may disappear when a player closes the stall, disconnects, or update/change items in stall. 4. Item Information Different item types can contain different properties. For example, equipment may have: • Degree. • Plus (+). • Blue attributes. • Stats. • Durability. • Required level. • Other special attributes. Pets, fellows, and other items may have different information. The plugin should collect as much item information as is available through PHBot/game data, similar to the information displayed when viewing an item's details in the game. 5. Gold Gold is the main in-game currency. The plugin must record the selling price of each item and allow the collected data to be sorted and filtered by price. If quantity and total price are available, both should be stored and the price per item can also be calculated. 6. System Requirements Here are the system requirements for the game, you should download and install it Component Requirement CPU 1 GHz+ RAM 1 GB (32-bit) / 2 GB (64-bit) VGA GeForce2 / ATI 9000 or better Sound DirectX 9.0c compatible HDD 4 GB+ OS Windows 7 SP1 or later For additional game details visit: https://www.joymax.com/portal/property_front.aspx?workurl=https://portalcp.joymax.com/Download/ClientDownload.aspx 2- PhBot: https://forum.projecthax.com/ These are the approximate game requirements. The plugin itself should have a low CPU and memory footprint. 7. Overall Objective Create an automated Silkroad Online Stall Market Scanner as a PHBot Python plugin: Detect Stalls → Navigate → Open/Read Stall → Collect Items & Prices → Store Data → Continue Scanning → Complete Scan Cycle The final data should be searchable, sortable, and filterable. Whatever the output is (database, excel, json, anything else) at the end I want to view the items as if I am in the game. The main goal is to automate the entire process. I do not want to manually open each stall. 1. Main UI The plugin should have a simple UI inside PHBot with the following main controls: Start Scan Starts the automatic stall-scanning process. The plugin should: • Automatically navigate around the current city/area. • Detect open stalls. • Approach and open/read each stall. • Collect the stall owner, location, title, items, prices, and available item details. • Continue until all reachable/detected stalls in the current scan cycle have been processed. Stop Scan Stops the current scanning process safely. The plugin should remember the collected data and allow the scan to be started again later. Save / Export Allow the user to define the output location. The preferred primary storage should be ANY types of data the I can view/shows as if I am in the game. Also provide an option to export the collected data to Excel (.xlsx). The exported/database data should be structured so I can easily search, sort, and filter items similar to browsing stalls directly in the game. 2. Automatic Stall Navigation The scanning process must be automated. The plugin should determine how to move through the city and discover stalls. The exact implementation should be decided based on the PHBot API and the game environment. Possible approaches can include: • Scanning by geographic/map areas or grid cells. • Detecting nearby stalls and moving toward them. • Using a configurable search radius. • Maintaining a list of already detected/scanned stalls. • Repeating the process until no new stalls are detected. The implementation should avoid repeatedly scanning the same stall during the same scan cycle or for a specific duration/time. If a stall cannot be reached, opened, or read, the plugin should log the failure and continue with other stalls instead of stopping the entire scan. 3. Scan Cycle A scan should have a clear lifecycle: Start Scan → Discover Stalls → Navigate → Open/Read Stall → Collect Data → Mark Stall as Scanned → Continue → Finish Cycle When there are no new stalls remaining in the defined scanning area, the cycle should be considered complete. The UI in PHBOW should show: • Current scanning status. • Number of stalls detected. • Number of stalls scanned. • Number of stalls remaining/unscanned. • Number of failed scans. • Number of items collected. • Current scan duration. • Last completed scan time. • Total scan-cycle duration. The plugin should also support continuous scanning, where a new scan cycle can start automatically after the previous cycle finishes. 4. Stall Identification and Duplicate Handling The plugin should prevent duplicate stall records, or at least after defined time. A stall should not be identified using the player name alone. Use an appropriate combination of available information, such as: • Player name. • Player coordinates. • City/map. • Stall state/session information if available. If the same player changes the items or prices in their stall, the plugin should update the existing stall information instead of creating unnecessary duplicate records. Each scan should have a timestamp. Recommended fields include: • First Seen • Last Seen • Last Scan Time • Stall Status • Scan Cycle ID If a previously detected stall disappears, do not immediately delete its historical data. Instead, mark it as inactive/not currently found. 5. Stall Information For every scanned stall, collect at least: • Player/Owner Name • Player Coordinates • City/Map • Stall Title • Stall Status • Scan Timestamp • First Seen • Last Seen 6. Item Information For every item inside the stall, collect all available information. At minimum: • Item Name • Item Type • Quantity • Price • Currency The plugin should also capture item-specific properties whenever they are available through the game/PHBot interface. For example, equipment may contain: • Degree • Enhancement • Blue attributes • Stats • Durability • Required level • Special attributes • Other item properties For pets, fellows, and other special items, collect the available information in a way that represents the same details a player would see when hovering over the item in the game. The design should not be limited to a fixed list of item attributes if additional properties can be obtained from the game/API. 7. Price Each item must have its selling price. Include at least: • Price (Gold: game coins) • Quantity • Price per item, if applicable The data should allow filtering and sorting by price. 8. PHBot UI Table The plugin should provide a table inside the PHBot interface showing the collected data. The table should support useful columns such as: • Player Name: should not be repeated for different items within the same stall. • City • Coordinates • Stall Title • Item Name • Item Type • Quantity • Price • Degree • Plus • Blues/Attributes • Last Scan Time • Stall Status The exact columns can be adjusted depending on the information available from PHBot. Reset UI Table Add a Reset UI Table button. This should only clear the displayed table inside the plugin UI. It must not delete or modify the underlying database data or whatever the output format is. After resetting the UI, the user should still be able to reload/display the stored data. 9. Navigation and Recovery The plugin should handle common situations without crashing or stopping the entire process. For example: • Stall cannot be reached. • Stall closes before scanning. • Character gets stuck. • Character is disconnected. • No stalls are currently detected. Failures should be logged and the plugin should continue whenever possible. 10. Configuration Provide configurable settings for parameters such as: • Scan radius. • Movement/search area. • Delay between stalls. • Delay before reading stall information. • Rescan interval. • Continuous scanning ON/OFF. • Maximum number of scan attempts for a failed stall. • Database/output location. 13. Logging The plugin should provide a simple log area showing events such as: • Scan started. • Stall detected. • Stall scanned successfully. • Stall skipped. • Stall failed. • Item collection completed. • Scan cycle completed. • Navigation failure. • Database save/update. • Scan cycle duration. The log should help diagnose problems without requiring the developer to reproduce every situation manually. 14. Recommended Database Structure Prefer separating the data into logical entities rather than putting everything into one large table. For example: Stalls • Stall ID • Player Name • City • Map • X • Y • Z • Stall Title • Status • First Seen • Last Seen Items • Item ID • Item Name • Item Type • Degree • Plus • Quantity • Item Attributes • Other available item information Stall Items • Stall ID • Item ID • Price • Quantity • Scan Timestamp This structure should make it easier to track changes in prices/items and avoid duplicate records. 15. Important Design You have option to use whatever technologies/software needed as long as I will be able to use it for free. Check the attached photo that i want to view in the output (database or excel) when i hover my mouse on item cell.
$5.00
Fixed-price- IntermediateExperience Level
- Remote Job
- One-time projectProject Type
Skills and Expertise
Activity on this job
- Proposals:Less than 5
- Last viewed by client:5 days ago
- Interviewing:1
- Invites sent:0
- Unanswered invites:0
About the client
- Saudi Arabia8:54 AM
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by