mmyers / eug Goto Github PK
View Code? Open in Web Editor NEWModding tools for Paradox games including Europa Universalis IV and Crusader Kings II
Modding tools for Paradox games including Europa Universalis IV and Crusader Kings II
Nov 06, 2021 1:44:34 PM editor.Main main
INFO: Java version: 1.8.0_311
Nov 06, 2021 1:44:34 PM editor.Main main
INFO: Editor version: 0.9.7
Nov 06, 2021 1:44:47 PM editor.Main$4 actionPerformed
INFO: **************************************************
Nov 06, 2021 1:44:47 PM editor.Main lambda$main$0
SEVERE: Uncaught exception
java.lang.NullPointerException
at editor.Main$4.actionPerformed(Main.java:268)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Also it would be nice if the lists sorted alpha without considering capitalization. Currently all the Capital items are first then the non capitalized items at the end. This happens when I am too lazy to localize things like culture names or regions etc.
I get this error when trying to load a ck2 save, both compressed and uncompressed, non ironman.
There is also a lot of warnings about illegal strings in Crusader Kings II\common\religions\crusade.info.
Modifying a super region and then doing a force reload does not update the editor.
Fantastic tools!
I am trying to add a city, which the Positions Editor made easy, but the question is now: How can I associate the new position to the new city (name, population, etc.)?
For example, I played until 1800, and I want to store the map at 1400 for later playing.
The editor also needs to be updated to use the mod\defines folder if it exists so that the editor knows the mods start date. Currently the editor still uses the old method of expecting the mod to have a full defines file at the bottom of the common folder and if not found then looks at the main game.
More or less the title. This line here
in Main.java should check to see if the path is absolute, and if it is, convert it to the relative path that the rest of the program expects.
Unfortunately, the solution isn't as simple as "just using a relative path in the descriptor", since mods created through the launcher are sometimes automatically created with an absolute path - with no way to change it.
The trade nodes mapmode shows the links between nodes, but direction is not indicated. Little arrow heads on each link would be nice.
It just crashing when im loading the save
Since an EU4 province can now only be in one area, one region, one super-region, and one continent, it is now possible to show all at once instead of only a single area at a time.
Hello, the current version (Scenario_Editor_0.9.1.zip) fails to load any .eu4 on my Debian system.
Follows errors printed:
[...]
YYINITIAL: Illegal character: '' (#0) on line 169, column 1 of /mnt/scratch/steamos/home/pllx/.local/share/Steam/userdata/6412481/236850/remote/save games/aragon.eu4
YYINITIAL: Illegal character: '' (#1e) on line 169, column 2 of /mnt/scratch/steamos/home/pllx/.local/share/Steam/userdata/6412481/236850/remote/save games/aragon.eu4
/mnt/scratch/steamos/home/pllx/.local/share/Steam/userdata/6412481/236850/remote/save games/aragon.eu4: Unmatched right brace on line 169, column 3
Loading took 55190680 ns.
mars 24, 2016 7:55:09 PM editor.EditorUI setDataSource
INFOS: Done.
mars 24, 2016 7:55:09 PM editor.EditorUI setDataSource
INFOS: Loading province history...
mars 24, 2016 7:55:09 PM editor.EditorUI setDataSource
INFOS: Done.
mars 24, 2016 7:55:09 PM editor.Main lambda$main$17
GRAVE: Uncaught exception
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at editor.EditorUI.setDataSource(EditorUI.java:210)
at editor.EditorUI.(EditorUI.java:85)
at editor.Main.startEditor(Main.java:335)
at editor.Main.access$300(Main.java:42)
at editor.Main$4.actionPerformed(Main.java:283)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Any clues?
Could you please change how views are selected (at least regions). I mean, it's tedious to navigate through for instance regions when you have 100+ of them. Perhaps a search option or something like that?
Something like auto-complete/content assist would be nice.
I expect the editor also needs to know about the localization\replace folder but for me this is not as important. It may be more important for others.
Do you plan to update this wonderful tool of yours for Cossacks?
Namely they introduced areas and changed regions map modes.
It would also be extremely convenient if i could edit these files from within editor.
May 15, 2022 1:29:05 PM editor.MapPanel initialize
INFO: Reading map from image...
May 15, 2022 1:29:06 PM editor.MapPanel initialize
INFO: Done.
May 15, 2022 1:29:06 PM editor.EditorUI setDataSource
INFO: Loading saved game...
Loading C:\Users\micha\OneDrive\Documents\Paradox Interactive\Europa Universalis IV\save games\Austria1444_11_11.eu4.
C:\Users\micha\OneDrive\Documents\Paradox Interactive\Europa Universalis IV\save games\Austria1444_11_11.eu4: Warning: Unexpected string: EU4txt on line 1
C:\Users\micha\OneDrive\Documents\Paradox Interactive\Europa Universalis IV\save games\Austria1444_11_11.eu4: Warning: Unexpected string: map_area_data on line 38
Everything seems to be going fine up until this point - I can't for the life of me put my finger on the issue, though I'm by no means an expert.
Could it be possible to implement development of provinces? (base tax + base production + base manpower)
This should be a quite simple feature for EU4.
The editor currently doesn't manage editing sub-mods very well.
The current border-detection algorithm in editor.MapData is rather crude. It would be nice to extend or re-implement it to provide:
[P]lease consider turning off the creation of backup files like ~provincehistoryfile or ~countryhistoryfile. I think this has been requested by others in the past. The backups clutter up the mods and the error utility checkers complain about them. I think most modders keep regular backups of their whole mods so these individual file backups are not needed.
Probably the best way to do this is to make it an option in config.txt and turn it off by default.
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
C:\Users\Sam\Downloads\Clausewitz Scenario Editor>java -Xmx512m -jar EU3_Scenario_Editor.jar
Jun 21, 2019 7:27:08 AM editor.Main main
INFO: Java version: 10.0.2
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at editor.Main.main(Main.java:66)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
C:\Users\Sam\Downloads\Clausewitz Scenario Editor>pause
Press any key to continue . . .
In the editors windows to edit a province file or a country file - the search replace option was never made functional. Search works I think but not search replace. I think the on screen graphics are in place already to do this but the background code does not exist or is not hooked to the screen prompts.
They added a area file which is like the old region file containing province numbers:
western_mediterrenean_area = {
1293 1294 1295 1296 1297 1298 1300 1301 1302 1303 1304 1305 1307
}
They changed the region file to a new format - it now contains area names (from the area file) rather than province numbers:
france_region = {
brittany_area
normandy_area
provence_area
guyenne_area
languedoc_area
massif_central_area
savoy_dauphine_area
lorraine_area
picardy_area
seine_area
loire_area
bourgogne_area
pyrenees_area
}
They added a new superregion file - consisting of region names from the new region file:
india_superregion = {
bengal_region
hindusthan_region
rajputana_region
deccan_region
coromandel_region
west_india_region
}
They added a new provincegroup file which works like the old regions did containing province numbers:
mytestgroup = {
1 2 3
}
Another request. When the editor is in full screen the buttons on the bottom for province and country work fine. If I have less then full screen by hitting the upper right middle button ( so I can have two of the editors open so I can compare mods etc ) then the buttons on the bottom are almost cut off and it takes a lot of work/hassle to resize to get the bottom edge to display so I can see the buttons. It would be nice when in non full screen it would some how shrink the displayed content while keeping the bottom buttons still available. I hope this makes sense. This is with 1024 X 768. I do not know about other resolutions.
I'd also love for each province's terrain to be shown (color wise and tooltip).
On Linux, you are unable to load a mod's definition.csv. This seems to be because the path gets mangled up somewhere in the process, which results in a ..
being added between the path to the game folder and the path to the mod itself.
Jul 28, 2021 9:27:55 PM editor.Main main
INFO: Java version: 16.0.2
Jul 28, 2021 9:27:55 PM editor.Main main
INFO: Editor version: 0.9.6
Jul 28, 2021 9:27:55 PM editor.Main listMods
INFO: Checking for mods in /home/miko/Victoria 2/mod
Jul 28, 2021 9:27:55 PM editor.Main listMods
INFO: Mod: Historical Project Mod 0.4.6; file path: /home/miko/Victoria 2/mod/HPM.mod; mod path: /home/miko/Victoria 2/mod/HPM
Jul 28, 2021 9:27:55 PM editor.Main listMods
INFO: Mod: Shatter 0.1.0; file path: /home/miko/Victoria 2/mod/shatter.mod; mod path: /home/miko/Victoria 2/mod/shatter
Jul 28, 2021 9:27:55 PM editor.Main listMods
INFO: Mod: Wild West submod for HPM/HFM (0.1.0); file path: /home/miko/Victoria 2/mod/wild_west.mod; mod path: /home/miko/Victoria 2/mod/wild-west
Jul 28, 2021 9:27:55 PM editor.Main listMods
INFO: Mod: Greater Flavor Mod; file path: /home/miko/Victoria 2/mod/GFM.mod; mod path: /home/miko/Victoria 2/mod/GFM
Jul 28, 2021 9:27:55 PM editor.Main listMods
INFO: Checking for mods in /home/miko/Paradox Interactive/Victoria 2/mod
Jul 28, 2021 9:27:58 PM editor.Main$4 actionPerformed
INFO: **************************************************
Jul 28, 2021 9:27:58 PM editor.Main$4 actionPerformed
INFO: Loading A House Divided. Mod: Greater Flavor Mod
Jul 28, 2021 9:27:58 PM editor.Main$4 actionPerformed
INFO: Game path: /home/miko/Victoria 2
Jul 28, 2021 9:27:58 PM editor.Main$4 actionPerformed
INFO: Mod path: /home/miko/Victoria 2/mod/GFM
Loading /home/miko/Victoria 2/mod/GFM.mod.
Loading took 270173 ns.
Loading /home/miko/Victoria 2/mod/GFM.mod.
Loading took 203798 ns.
Jul 28, 2021 9:27:58 PM editor.ProvinceData <init>
SEVERE: /home/miko/Victoria 2/../mod/GFM/map/definition.csv (No such file or directory)
java.io.FileNotFoundException: /home/miko/Victoria 2/../mod/GFM/map/definition.csv (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:211)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:153)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:108)
at java.base/java.io.FileReader.<init>(FileReader.java:60)
at editor.ProvinceData.parseDefs(ProvinceData.java:65)
at editor.ProvinceData.<init>(ProvinceData.java:44)
at editor.EditorUI.<init>(EditorUI.java:81)
at editor.Main.startEditor(Main.java:342)
at editor.Main.access$300(Main.java:42)
at editor.Main$4.actionPerformed(Main.java:290)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6382)
at java.desktop/java.awt.Container.processEvent(Container.java:2264)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4934)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4563)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4504)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)```
Ability to view province ID of a selected province without mousing over it.
The mod is not being loaded. The map always shows vanilla files
In EU3 and EU4, provinces with citysize greater than 1000 should not be colored in native size, native aggression, or native hostility mapmodes.
Another thing that would be awesome would be a way to select several provinces and then save that group, for the purpose of e.g. regions, trade nodes, etc. Like holding down the left mouse button and move over the provinces with the cursor, thus selecting them.
Implement a map mode using the terrain_override lists from terrain.txt (EU4).
Example of a terrain definition:
forest = {
color = { 31 116 16 }
type = forest
sound_type = forest
movement_cost = 1.25
defence = 1
combat_width = -0.20
supply_limit = 4
local_development_cost = 0.2
nation_designer_cost_multiplier = 0.9
terrain_override = {
2 4 8 9 11 18 29 30 31 315 4123 4124 # Sweden
309 1955 #Russia
2611 996 997 998 2575 #n am
1054 1046 10
993 1011 2572 2583 2671
978 980 2022 2517 2573 2582 2593
960
1085 1246
}
}
Provinces in the terrain_override list have the forest terrain regardless of their color in terrain.bmp.
Is it possible to edit multiple provinces at once? I have a HUGE load of provinces to work on (CK2 save export) and to edit every single one of them would be incredible tiresome...
Province owner, controller, culture, religion, core. The HoI3PosEd had the option to select multiple provinces and then only showed the things they had in common, which allowed you to edit multiple provinces at once. It only took [me] a load of klicks and 5 minutes to edit in the complete Ukraine.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.