General
437 ideas
-
0 votes
Ingame Player communication plugin
Add an object system in game that would trigger a popup window with an option to add custom text.
Example: Players click an object(Notice board) outside town, pop up comes up with a text about what area is this, what items drop in here etc, any relatable information(This is all customisable).
This can also be used as a good way to interact with players and guide them without them leaving the game. ( I just started paying, click on a notice board and it guides me to level up 50 levels and then I get xyz item reward etc, or that don't go west of the map because big monster will eat you etc.).
These objects can also be used as a part of the world. Click on a stone pop up window comes on and there's an info about specific event or some hidden extras. This opens for more potential custom content.
-
0 votes
Ambience Bundle/Plugin idea(Weather effects)
Hi!
Would be great if we had an option to change/add weather effects, fog colours and swimming on/off per map!
Effects such as: rain, snow, heavy snow, sandstorm, leaf fall, water/bubbles etc.
Fog colours similar to glow.bmd where we could change colours of the fog per map and perhaps distance when zoomed out with the 3D cam to hide the pop in distance?
This would help for more customs to be made and create more freshness to the game.
-
0 votes
Configurable Global Cap System for Item Options
Idea:
Currently, item options stack based on equipped gear. I would like to propose a new "Total Cap" system as an optional feature. This would allow server administrators to define a global maximum limit (via configuration files) for specific item option IDs.
Example Use Case: For instance, an administrator could set a global cap of 25% for Automatic HP Recovery (ID 53). Once defined, the server would enforce this limit regardless of the total amount provided by the equipped items. The same logic could be applied to Damage Reflect Increase (ID 24) and other options, providing more flexibility in configuring specific server environments.
Implementation Goal: A configuration file where we can assign: OptionID -> MaxValue.
This addition would grant administrators greater control over balancing their server progression, offering an efficient way to fine-tune mechanics without needing custom source adjustments.
-
3 votes
/post messages nightmare
Hi, can you please add some kind of GM command that removes the /post/gpost messages by specific player? I really dont like anyone coming in my server saying whatever they want and me as an admin being helpless not being able to delete that message even if ban them, the message remains. Its very unfair as there are tons of troll players or even troll admins who join other servers just to create chaos in the chat..
-
3 votes
Add FailPenalty into Trade BOT
Hello,
I would like to suggest add FailPenalty mode into CraftItem section of Trade BOT
// FailPenalty: In case of failure, different kind of penalties may be applied: // ~ -1: No penalty // ~ 0: Destroy item // ~ 1-15: Reduce item level by random number up to defined value Thanks
-
2 votes
Lua API (onItemGetInventory) new callback
Same as "function onItemGet" (Called when: Player picks up item from ground)
function onItemGetInventory (Called when: Player receives an item from the box directly to the inventory)
Or just add this functionality to the onItemGet callback
Thanks!
-
1 voteCompleted
GameServer LUA button relocation
Hello.
My suggestion is to move the LUA button to the main line like this: " Players Events Data LUA About "
During tests, we can refresh it tens and hundreds of times 😅
-
4 votes
Ability to define where items will be created using the Lua API.
Hello developers, through this I would like to request the addition of a way to define where the item will be created, for example:
EventInventory GremoryCase CashShop Inventory Ground Currently, there is nothing that allows us to define where the item will be created, such as: https://github.com/srv-config/Configs-Preview/wiki/Item-Structures
-
2 votes
Add a configuration file setting to control the maximum limit for PLUS
I would like to request the addition of a configuration setting to control the maximum limit for "PLUS" operations (currently capped at 99). I believe it would be beneficial to have the ability to customize this maximum value. Please implement this setting; thank you very much.
-
4 votes
UserOptionTable (LuaApi)
UserGetOptionTable(aIndex)
aIndex = User index.
Return the option table from the chosen user.
Table elements: AddDamage, AddPhysiDamage, AddMagicDamage, AddCurseDamage, AddDefense, AddElementalDamage, AddElementalDefense, AddSpeed, AddMaxHP, AddMaxMP, AddMaxBP, AddMaxSD, AddHPRecoveryRate, AddMPRecoveryRate, AddBPRecoveryRate, AddSDRecoveryRate, AddDamageReduction, AddDamageDecrease, AddDamageReflect, AddCriticalDamage, AddExcellentDamage, AddCriticalDamageRate, AddExcellentDamageRate, AddIgnoreDefenseRate, AddDoubleDamageRate, AddTripleDamageRate, AddFullDamageReflectRate, AddDefensiveFullHPRestoreRate, AddDefensiveFullSDRestoreRate, AddOffensiveFullHPRestoreRate, AddOffensiveFullSDRestoreRate, MulDamage, MulPhysiDamage, MulMagicDamage, MulCurseDamage, MulDefense, MulElementalDamage, MulElementalDefense, MulMaxHP, MulMaxMP, MulMaxBP, MulMaxSD
UserSetOptionTable(aIndex)
aIndex = User index.
aValue = Option table.
example:
local UserOption = UserGetOptionTable(aIndex) UserOption.AddDefense = 10 UserOption.AddElementalDamage = 25 UserSetOptionTable(aIndex, UserOption)
-
3 votesRefused
Add new callback for CurrentInfo character
Hello developers, through this request, I would like to include a callback that captures a player's complete information.
Example:
onCurrentCharacterUserData(oPlayer, currentData)
The idea of this method is to retrieve all the character's information:
Items, Level, Resets, Inventory, Attributes, Master Level, Enhancements, Skills Generally, the idea of the method would be to save this information for the creation of an event (Battle Royale). The idea of this event is to place all players in an arena with absolutely nothing. When the event starts, items will begin to appear so that players can equip themselves and use skills until only one survivor remains. But, to implement this event, we need a method that captures the player's current information and saves their current state in a generalized way, because at the end of the event, when the players leave the Battle Royale area, the player's current state would need to be retrieved.
In other words, it would basically be a method that stores the player's current information so that we can plan the event accordingly.
Demonstration video of a Battle Royale in action:
-
5 votes
Add a callback to retrieve the character's login.
Hello developers, through this message I'm requesting a callback to retrieve the character login. Currently, all callbacks are used for oPlayer. Some customizations, especially those that apply bonuses to wcoin, goblinpoint, VIP balance, or any other type of interaction that requires the character login, are being cached, but depending on the context, this isn't the best practice.
Therefore, I would like to request a callback that can retrieve the account login more easily, as well as the wcoin and goblinpoint balance, something like:
onAccountPlayer(oPlayer oTarget)
Retrieves the character login
onAccountAmount(oPlayer oCoins)
Retrieves the account/character login and coin balance
onAccountVipType(oPlayer oTypeVip)
Retrieves the player's actual VIP type
-
6 votes
Add callback for attack target
I'm creating an event where infection is implemented in PLAYER_KILL mode, not by hit, because currently LuaAPI doesn't expose a reliable attack/hit callback to trigger character infection upon receiving an attack.
Therefore, I'm requesting a callback that captures the moment of the attack on the target (oPlayer), as currently we only have the death callback.
The idea would be a callback that intercepts the target's first hits.
onPlayerAttackHit(oPlayer, target)
-
21 votesCompleted
Splash Damage parameter in MapAttribute
The same as CastleSiegeDisable="1" ArcaBattleDisable="1" for each skill in SkillAOETargetting.xml for enable/disable "splash" damage but in MapAttribute.xml for each map.
Characters like IK, SL in Gens Maps, can hit characters far away than 8 range. One IK right in front of other character, hitting him. The IK damage can "bounce" to characters that are not even in the screen.
This "issue" could be solved if we were able to enable/disable skills like in SkillAOETargetting.xml
Or add a parameter GensMapDisable="X" (for example) in each skill line in SkillAOETargetting.xml
Thanks.
-
2 votesCompleted
Add Combat Hook API for Skill Usage and Damage Events
Dear IGCN Team,
I would like to suggest adding a Lua combat hook that is triggered when a player deals damage to a monster.
I understand that modifying individual skill formulas is the correct and necessary way to tightly control damage, and I am already doing that. However, there is a long-standing issue related to high-level maps.
Current Problem
Monsters in higher-level maps have significantly higher defense values. Because of this:
Magic-based classes are still able to deal consistent damage Melee classes struggle to penetrate monster defense The damage gap becomes larger as monster DEF increases Class balance in PvM becomes heavily skewed toward magic classes Even with careful tuning of individual skills, it is difficult to address this problem globally without introducing inconsistencies between skills.
Why a Combat Hook Would Help
A combat hook would allow applying small conditional adjustments specifically when attacking monsters, for example:
Slight bonus damage for melee classes against high-DEF monsters Conditional scaling based on monster defense Map-specific PvM balancing Additional damage modifiers only in PvM (not PvP) Suggested APIs
It would be very helpful to have one of the following callbacks:
function onPlayerUseSkill(oPlayer, skillId, targetIndex) end or
function onPlayerDealDamage(oPlayer, oTarget, skillId, damage) -- allow modifying damage return damage end This callback could allow controlled adjustments only when needed, for example:
only vs monsters only for melee classes only when monster defense is high only in specific maps Benefit
This would help:
Improve PvM balance between melee and magic classes Reduce reliance on heavy per-skill adjustments Allow cleaner and more maintainable scripts Provide better control for high-defense map design Thank you for considering this suggestion.
-
6 votes
Add LuaAPI callbacks for offTrade
Through this letter, I request the inclusion of new callbacks for handling the off-trade system.
offTradeCommand(coinType, value)
-
3 votesRefused
Extended LuaAPI Monsters name for client
Through this, I would like to request from the developers at least one LuaAPI extension that allows changing the names of NPCs/Monsters to be seen as defined in our scripts. I know this would depend on the client, so that's why I'm requesting at least a small extension for this issue. This way, we wouldn't keep the default names for monsters/NPCs, since in many cases we will use the same NPCs and/or monsters with different functions and scripts.
The idea would be to include at least this simpler part so that the names defined in the scripts can be seen by the client.
-
2 votesCompleted
Add option limit for Damage Return and Double/Triple Damage.
Just like Exe, Crit and Reflect Damage, add another option for limit these options on CalcCharacter
-
-2 votesCompleted
Lua API (Castle Siege)
Hello. Can you please allow us to read/edit the value of "Accumulated seconds" on the crown in the Castle Siege event?
It will allow us to make a unique mechanic. Thank you!
-
6 votes
Lua API (Guild)
I would like to suggest adding a few extra functions.
1) Function Guild.AddMember - Gives the ability to add a member to the guild.
2) Function Guild.DelMember - Gives the ability to remove a member from the guild.
3) Function Guild.AlianceCreation - Create an alliance between 2 guilds
4) Function Guild.AlianceDestroy - Destroy an alliance between 2 guilds
Any other function which can be usefull in terms of guild? 🙂
-
7 votes
Add callback for PvP Damage Map Reduction
Hello, would it be possible to implement a PvP damage reduction system that varies according to map?
It would be interesting to create a customized system, allowing for organization and addition same damage reduction functions as in the ARKA and Castle Siege events.
Like:
onTotalDamageClass()
onTotalDamageMap()
-
6 votes
LuaAPI (party)
I would like to suggest add 2 extra function.
1) Function Party.DelMember - Gives the ability to delete a member from the party.
2) Function Party.ChangePartyLeader - Gives ability to change party leader
-
4 votes
Add callback for currency handling
Hello developers, I noticed that the documentation only mentions Player.SetMoney and Player.SetRuud.
I would like to request the inclusion of the same functionality for CashShop coins, so we don't need to work with caching or queries using onDS... Something like:
GetWcoins(oPlayer, oValue) GetGoblinPoints(oPlayer, oValue) Customizations that will have payment fees, such as new commands.
I used the onDS dataserver callback... But that wouldn't be the best practice.
-
3 votesCompleted
LuaAPI Monsters important callbacks
Through this, I request that the developers add callbacks that allow us to manipulate all the monster's attributes (MonsterList.xml) according to their respective indexes.
onMonsterGetAttr(oMonster, oTarget), -- Return all the monster's attributes according to their index in MonsterList onMonsterSetAttr(oMonster, oTarget), -- To set/change specific monster attributes onMonsterTracker(oMonster, oTarget) -- To track the object/player
Currently, the monsters are appearing 100% stationary, and since we can't manipulate their attributes, the events are becoming extremely low quality because players like to compete, but without being able to manipulate these attributes, we can't offer that to the players.
On a reset server, attribute alteration is fundamental.
-
2 votesCompleted
Moss Merchant Actions API
Hi IGCN Team,
I'm currently implementing a Lua system around the Moss Merchant spin boxes and I would like to display messages to the player whenever they perform a spin.
The ideal behavior would be:
When the player clicks Open Box / Spin in the Moss Merchant UI, the server can detect that action.
Immediately show a message like:
You used x2 Jewel of Wish to spin.
After the reward is generated, show another message:
You received: Jewel of Chaos x1.
Right now the only available hooks related to this interaction appear to be:
onNpcTalk(oPlayer, oNpc)
onCloseWindow(oPlayer)
These only allow detecting when the NPC window opens or closes, which means we can only compare inventory before and after the session, but we cannot detect each individual spin action.
So my question is:
Is there any Lua API (existing or planned) that can catch the player action when they click the Moss Merchant "Open Box / Spin" button?
For example something like:
onMossSpin(oPlayer, boxType)
onChaosBoxMix(oPlayer, mixId)
onNpcAction(oPlayer, actionId)
or any event triggered when the server processes the spin request.
Being able to hook this action would allow Lua scripts to:
display spin cost messages
show reward notifications
log Moss spins
implement custom spin mechanics
If such an API does not exist yet, would it be possible to expose a hook for the Moss Merchant spin action?
Thank you!
