Hi folks! I've been testing v0.7.0 locally using the headless client GoMMO_RF v0.1.1 for a research project involving scripted and AI-controlled characters
The automation API has been working well so far for combat, movement, looting, and equipping. I've run into a few limitations and bugs during testing, and I had some questions about the current implementation and what's planned next if you all are open to share :)
1. Missing automation features or possible bugs
There are a few things I haven't been able to do through the existing tools
- Party management: Inviting players, accepting invitations, leaving a party, and listing party members.
- NPC vendors: Buying, selling, and repairing equipment.
- Player trading: Trading items directly between characters.
- Portals and map changes: Using portals to move between maps.
- Animus and MAU: Summoning, recalling, and feeding Animus; calling, boarding, and refueling a MAU.
I believe most of these are listed as supported but I was not able to use any of them. Are any of these features planned to be released soon?
2. Missing information in observe
There are a few pieces of state that would be useful for AI-controlled characters but don't seem to be exposed right now:
- SP, and FP under its actual name rather than
mp. - Active buffs and debuffs, skill cooldowns, and whether a cast is currently in progress.
- Monster levels, which always show as 0, and absolute HP values instead of percentages.
- Current experience and the amount needed to reach the next level.
Are there plans to expose any of these through observe?
3. Skills and character setup
I've noticed a few things while testing skills:
- With
char.start_all_skills = on, the skills endpoint returns 82 entries, all named Force <n>, with a cost and level of 0. Casting still works (for example, slot 0 works, and FP drops from 535 to 505). Would it be possible to expose the actual skill names, FP costs, levels, ranges, and cooldowns? - I haven't been able to get any melee skills to appear in the skill bar. Is is feasible to expose this?
- Is there currently a way to grant skills or forces to an existing character through the control panel or API? I couldn't find any skill-related fields in the character editor.
4. Bugs and usability issues
A few issues I've run into during testing:
- GM commands: With
gm.player_commands = on, sending say "%lv 20" from the headless client just sends the text as regular chat. The command works as expected from the normal client. loot_nearby hanging: In roughly 1 out of 1,000 calls, the request never returns. I've had one instance remain blocked for over 30 minutes.- Multiple clients: Using
-clients N only exposes one character through the API. For now, I'm running a separate process for each character. is this intended? - Automation token: Every client startup overwrites the same
automation.token file, so I have to start multiple clients sequentially. A per-port token file or a -token-file argument would make running multiple instances much easier. - Character editor: Negative values for
pos_x are rejected, and changing cur_hp doesn't seem to have any effect.
5. A couple of additional questions
THIN_SCRIPTED_MOVEMENT: How frequently does a scripted client receive movement updates for other players? Does this setting affect monsters as well?- Panel settings API: Is there an officially supported API for reading and modifying panel settings? I'm currently using
GET/PUT /api/admin/settings. It works, but I found those endpoints by inspecting the page scripts, so I wasn't sure whether they're intended to be used directly.
Thanks for all the work you've put into this project @Ron! The headless AI automation has been really useful for experimenting with AI controlled characters, and I'm looking forward to seeing how it evolves.